diff options
author | PikalaxALT <pikalaxalt@gmail.com> | 2018-04-14 16:11:45 -0400 |
---|---|---|
committer | PikalaxALT <pikalaxalt@gmail.com> | 2018-04-14 16:11:45 -0400 |
commit | 21e006d680b2cf3b511e2f346cf997ab2fbbee47 (patch) | |
tree | 91fc842ab9e99231d2de88bc59bda909545f4473 /src | |
parent | ea25c05dcc8ba88c967f08d39f9d4c4db2e0cd3a (diff) |
through debug_80C42B8
Diffstat (limited to 'src')
-rw-r--r-- | src/debug/watanabe_debug_menu.c | 157 |
1 files changed, 155 insertions, 2 deletions
diff --git a/src/debug/watanabe_debug_menu.c b/src/debug/watanabe_debug_menu.c index 1f9bb8672..a75ee16f1 100644 --- a/src/debug/watanabe_debug_menu.c +++ b/src/debug/watanabe_debug_menu.c @@ -18,16 +18,24 @@ #include "save.h" #include "sound.h" #include "pokedex.h" +#include "load_save.h" EWRAM_DATA u8 gUnknown_Debug_20389EC[0x20] = { 0 }; EWRAM_DATA u8 gUnknown_Debug_2038A0C[0x10] = { 0 }; EWRAM_DATA u8 gUnknown_Debug_2038A1C[4] = { 0 }; EWRAM_DATA u8 gUnknown_Debug_2038A20[4] = { 0 }; -u8 byte_3005E30[0x20]; +u32 byte_3005E30; void debug_80C3A50(u8 taskId); void debug_80C3D2C(u8 taskId); +void debug_80C4214(u8); +void debug_80C42B8(u8 taskId); +void debug_80C4348(u8 taskId); +void debug_80C44EC(u8 taskId); +void debug_80C4694(void); +void debug_80C4704(void); +void debug_80C47BC(u8 taskId); void debug_80C68CC(u16, u8, u8, u8); extern const u8 gUnknown_Debug_083F7FD4[2]; // = _("▶"); @@ -42,6 +50,8 @@ extern const u8 gUnknown_Debug_083F800C[13]; // = _("Aボタン▶そうさき extern const u8 gUnknown_Debug_083F8019[9]; // = _("Bボタン▶やめる"); extern const u8 gUnknown_Debug_083F8022[6]; // = _("スタート:"); extern const u8 gUnknown_Debug_083F8028[6]; // = _(":セレクト"); +extern const u8 gUnknown_Debug_083F8194[12]; // = _("ポケモンを えらんでね"); +extern const u8 gUnknown_Debug_083F81A0[13]; // = _("{COLOR RED}START:つぎへ"); extern const struct SpriteSheet stru_83F8828[2]; extern const struct SpritePalette stru_83F8838[2]; @@ -209,7 +219,7 @@ u16 debug_80C38B4(u8 a0, u16 a1) void debug_80C38E4(u8 a0, u8 a1, u8 a2, u8 a3, u8 a4) { // u8 sp00[] = _("▶"); - u8 sp00[2]; + u8 sp00[sizeof(gUnknown_Debug_083F7FD4)]; memcpy(sp00, gUnknown_Debug_083F7FD4, ARRAY_COUNT(gUnknown_Debug_083F7FD4)); Menu_BlankWindowRect(a1, a2, a1, a3); @@ -786,4 +796,147 @@ void debug_80C3D2C(u8 taskId) } } +void debug_80C405C(u8 * dest, u16 species) +{ + u8 i; + + for (i = 0; i < 10; i++) + dest[i] = CHAR_SPACE; + dest[i] = EOS; + + dest[0] = CHAR_HYPHEN; + + if (species != SPECIES_NONE) + { + for (i = 0; gSpeciesNames[species][i] != EOS && i < 10; i++) + dest[i] = gSpeciesNames[species][i]; + } +} + +void debug_80C40C4(bool8 who) +{ + u8 i; + u16 maxHp; + + for (i = 0; i < PARTY_SIZE; i++) + { + if (who) + { + struct Pokemon *pokemon = gEnemyParty + i; + if (GetMonData(pokemon, MON_DATA_SPECIES) != SPECIES_NONE) + { + CalculateMonStats(pokemon); + maxHp = GetMonData(pokemon, MON_DATA_MAX_HP); + SetMonData(pokemon, MON_DATA_HP, &maxHp); + } + } + else + { + struct Pokemon *pokemon = gPlayerParty + i; + if (GetMonData(pokemon, MON_DATA_SPECIES) != SPECIES_NONE) + { + CalculateMonStats(pokemon); + maxHp = GetMonData(pokemon, MON_DATA_MAX_HP); + SetMonData(pokemon, MON_DATA_HP, &maxHp); + } + } + } +} + +void InitBattleForDebug(void) +{ + SavePlayerParty(); + gUnknown_Debug_2038A0C[13] = gSaveBlock2.playerGender; + gUnknown_Debug_2038A0C[0] = 0; + gUnknown_Debug_2038A0C[1] = 0; + gUnknown_Debug_2038A0C[2] = 0; + gUnknown_Debug_2038A0C[3] = 0; + gUnknown_Debug_2038A0C[4] = 0; + gUnknown_Debug_2038A0C[5] = 0; + gUnknown_Debug_2038A0C[6] = 0; + gUnknown_Debug_2038A0C[7] = 0; + gUnknown_Debug_2038A0C[8] = 0; + gUnknown_Debug_2038A0C[12] = 0; + byte_3005E30 = 0; + ZeroPlayerPartyMons(); + ZeroEnemyPartyMons(); + debug_80C4214(0); + CreateTask(debug_80C47BC, 0); +} + +void debug_80C41A8(void) +{ + gUnknown_Debug_2038A0C[1] = 0; + gUnknown_Debug_2038A0C[2] = 0; + ZeroPlayerPartyMons(); + ZeroEnemyPartyMons(); + debug_80C4214(0); + CreateTask(debug_80C47BC, 0); +} + +void debug_80C41D4(void) +{ + debug_80C40C4(0); + debug_80C4214(0); + CreateTask(debug_80C42B8, 0); +} + +void debug_80C41F4(void) +{ + debug_80C40C4(1); + debug_80C4214(1); + CreateTask(debug_80C42B8, 0); +} + +void debug_80C4214(UNUSED u8 a0) +{ + debug_80C35DC(); + REG_WIN0H = 0; + REG_WIN0V = 0; + REG_WIN1H = 0; + REG_WIN1V = 0; + REG_WININ = 0x1111; + REG_WINOUT = 0x0031; + REG_BLDCNT = BLDCNT_TGT1_BG0 | BLDCNT_TGT1_BD | BLDCNT_EFFECT_DARKEN; + REG_BLDALPHA = 0; + REG_BLDY = 7; + + { + u16 imeBak = REG_IME; + REG_IME = 0; + REG_IE |= INTR_FLAG_VBLANK; + REG_IME = imeBak; + } + + SetVBlankCallback(debug_80C3758); + SetMainCallback2(debug_80C370C); + REG_DISPCNT = DISPCNT_MODE_0 | DISPCNT_OBJ_1D_MAP | DISPCNT_BG0_ON | DISPCNT_OBJ_ON | DISPCNT_WIN0_ON | DISPCNT_WIN1_ON; + REG_WIN0H = 0x01EF; + REG_WIN0V = 0x819F; +} + +void debug_80C42B8(u8 taskId) +{ + u8 sp00[sizeof(gUnknown_Debug_083F8194)]; + u8 sp0c[sizeof(gUnknown_Debug_083F81A0)]; + + memcpy(sp00, gUnknown_Debug_083F8194, sizeof(gUnknown_Debug_083F8194)); + memcpy(sp0c, gUnknown_Debug_083F81A0, sizeof(gUnknown_Debug_083F81A0)); + + // u8 sp00[] = _("ポケモンを えらんでね"); + // u8 sp0c[] = _("{COLOR RED}START:つぎへ"); + + Menu_DrawStdWindowFrame(0, 16, 29, 19); + Menu_PrintText(sp00, 1, 17); + Menu_PrintText(sp0c, 20, 17); + + debug_80C4694(); + debug_80C4704(); + + if (gUnknown_Debug_2038A0C[0]) + gTasks[taskId].func = debug_80C44EC; + else + gTasks[taskId].func = debug_80C4348; +} + #endif // DEBUG |