From 628a71bed7bb350f6e69b8bd2528ea7103a16cbe Mon Sep 17 00:00:00 2001 From: PikalaxALT Date: Tue, 27 Jun 2017 18:51:55 -0400 Subject: Start decompiling pokeblock.s --- src/pokeblock.c | 30 ++++++++++++++++++++++++++++++ 1 file changed, 30 insertions(+) create mode 100755 src/pokeblock.c (limited to 'src') diff --git a/src/pokeblock.c b/src/pokeblock.c new file mode 100755 index 000000000..79df0fb29 --- /dev/null +++ b/src/pokeblock.c @@ -0,0 +1,30 @@ +// +// Created by scott on 6/27/2017. +// + +#include "global.h" +#include "sprite.h" +#include "task.h" +#include "text.h" +#include "palette.h" +#include "pokeblock.h" + +void sub_810B674(void) +{ + AnimateSprites(); + BuildOamBuffer(); + RunTasks(); + UpdatePaletteFade(); +} + +void sub_810B68C(void) +{ + u16 *src; + vu16 *dest; + LoadOam(); + ProcessSpriteCopyRequests(); + TransferPlttBuffer(); + src = gBGTilemapBuffers[2]; + dest = (vu16 *)(VRAM + 0x7800); + DmaCopy16(3, src, dest, sizeof gBGTilemapBuffers[2]); +} -- cgit v1.2.3 From fc5d035bdaf86d5cc68994657e3e47666308d7c3 Mon Sep 17 00:00:00 2001 From: PikalaxALT Date: Tue, 27 Jun 2017 19:25:30 -0400 Subject: sub_810B6C0 --- src/pokeblock.c | 127 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 127 insertions(+) (limited to 'src') diff --git a/src/pokeblock.c b/src/pokeblock.c index 79df0fb29..9f921e357 100755 --- a/src/pokeblock.c +++ b/src/pokeblock.c @@ -3,10 +3,15 @@ // #include "global.h" +#include "rom4.h" #include "sprite.h" #include "task.h" +#include "unknown_task.h" #include "text.h" +#include "main.h" +#include "menu.h" #include "palette.h" +#include "menu_helpers.h" #include "pokeblock.h" void sub_810B674(void) @@ -28,3 +33,125 @@ void sub_810B68C(void) dest = (vu16 *)(VRAM + 0x7800); DmaCopy16(3, src, dest, sizeof gBGTilemapBuffers[2]); } + +bool8 sub_810B998(void); +u8 sub_810BA50(s16, s16, u8); +void sub_810BC98(void); +void sub_810BD08(void); +void sub_810BB0C(void); +void sub_810BB30(void); +void sub_810BC84(u8); + +bool32 sub_810B6C0(void) +{ + u16 ime; + switch (gMain.state) + { + case 0: + sub_80F9438(); + sub_80F9368(); + REG_BG2CNT = BGCNT_SCREENBASE(15) | BGCNT_CHARBASE(2) | BGCNT_PRIORITY(2); + REG_BLDCNT = 0; + gMain.state++; + break; + case 1: + remove_some_task(); + gMain.state++; + break; + case 2: + ResetPaletteFade(); + gPaletteFade.bufferTransferDisabled = TRUE; + gMain.state++; + break; + case 3: + ResetSpriteData(); + gMain.state++; + break; + case 4: + if (gUnknown_02039244 != 2) + { + ResetTasks(); + } + gMain.state++; + break; + case 5: + SetUpWindowConfig(&gWindowConfig_81E6E34); + gMain.state++; + break; + case 6: + SetUpWindowConfig(&gWindowConfig_81E6E50); + gMain.state++; + break; + case 7: + MultistepInitMenuWindowBegin(&gWindowConfig_81E6E34); + gMain.state++; + break; + case 8: + if (MultistepInitMenuWindowContinue()) + { + gMain.state++; + } + break; + case 9: + MultistepInitMenuWindowBegin(&gWindowConfig_81E6E50); + gMain.state++; + break; + case 10: + if (MultistepInitMenuWindowContinue()) + { + ewram[0x1ffff] = 0; + gMain.state++; + } + break; + case 11: + if (sub_810B998()) + { + gMain.state++; + } + break; + case 12: + sub_80F944C(); + LoadScrollIndicatorPalette(); + CreateVerticalScrollIndicators(0, 0xb0, 0x08); + CreateVerticalScrollIndicators(1, 0xb0, 0x98); + gMain.state++; + break; + case 13: + ewram[0x1fffe] = sub_810BA50(0x38, 0x40, 0); + gMain.state++; + break; + case 14: + sub_810BC98(); + sub_810BD08(); + gMain.state++; + break; + case 15: + sub_810BB0C(); + sub_810BB30(); + sub_810BC84(gUnknown_02039248[1]); + gMain.state++; + break; + case 16: + ime = REG_IME; + REG_IME = 0; + REG_IE |= 1; + REG_IME = ime; + REG_DISPSTAT |= DISPSTAT_VBLANK_INTR; + SetVBlankCallback(sub_810B68C); + REG_DISPCNT = DISPCNT_OBJ_ON | DISPCNT_BG2_ON | DISPCNT_BG1_ON | DISPCNT_BG0_ON | DISPCNT_OBJ_1D_MAP; + gMain.state++; + break; + case 17: + if (sub_8055870() != TRUE) + { + gMain.state++; + } + break; + case 18: + BeginNormalPaletteFade(-1, 0, 0x10, 0, 0); + gPaletteFade.bufferTransferDisabled = FALSE; + SetMainCallback2(sub_810B674); + return TRUE; + } + return FALSE; +} -- cgit v1.2.3 From 3661177dc197119b53ff4a677359d27272c816e0 Mon Sep 17 00:00:00 2001 From: PikalaxALT Date: Tue, 27 Jun 2017 19:35:29 -0400 Subject: sub_810B96C --- src/pokeblock.c | 21 +++++++++++++++++---- 1 file changed, 17 insertions(+), 4 deletions(-) (limited to 'src') diff --git a/src/pokeblock.c b/src/pokeblock.c index 9f921e357..76a06c5ea 100755 --- a/src/pokeblock.c +++ b/src/pokeblock.c @@ -14,7 +14,7 @@ #include "menu_helpers.h" #include "pokeblock.h" -void sub_810B674(void) +static void sub_810B674(void) { AnimateSprites(); BuildOamBuffer(); @@ -22,7 +22,7 @@ void sub_810B674(void) UpdatePaletteFade(); } -void sub_810B68C(void) +static void sub_810B68C(void) { u16 *src; vu16 *dest; @@ -42,7 +42,7 @@ void sub_810BB0C(void); void sub_810BB30(void); void sub_810BC84(u8); -bool32 sub_810B6C0(void) +static bool8 sub_810B6C0(void) { u16 ime; switch (gMain.state) @@ -134,7 +134,7 @@ bool32 sub_810B6C0(void) case 16: ime = REG_IME; REG_IME = 0; - REG_IE |= 1; + REG_IE |= INTR_FLAG_VBLANK; REG_IME = ime; REG_DISPSTAT |= DISPSTAT_VBLANK_INTR; SetVBlankCallback(sub_810B68C); @@ -155,3 +155,16 @@ bool32 sub_810B6C0(void) } return FALSE; } + +void sub_810BF7C(u8); + +void sub_810B96C(void) +{ + do { + if (sub_810B6C0() == TRUE) + { + CreateTask(sub_810BF7C, 0); + break; + } + } while (sub_80F9344() != TRUE); +} -- cgit v1.2.3 From 25355e8530142e6ad88f4173c3c3dc9d881d7fa8 Mon Sep 17 00:00:00 2001 From: PikalaxALT Date: Tue, 27 Jun 2017 20:17:39 -0400 Subject: sub_810B998 and ALL the data --- src/decoration.c | 8 +-- src/pokeblock.c | 173 ++++++++++++++++++++++++++++++++++++++++++++++++++++++- src/pokemon_3.c | 6 +- 3 files changed, 179 insertions(+), 8 deletions(-) mode change 100644 => 100755 src/decoration.c (limited to 'src') diff --git a/src/decoration.c b/src/decoration.c old mode 100644 new mode 100755 index 9eba54ad7..e829cb072 --- a/src/decoration.c +++ b/src/decoration.c @@ -1396,7 +1396,7 @@ const u8 *const gUnknown_083EC624[] = { gMenuText_GoBackToPrev }; -const struct MenuAction3 gUnknown_083EC634[] = { +const struct YesNoFuncTable gUnknown_083EC634[] = { {sub_80FF5BC, sub_80FF058}, {sub_81017A0, sub_80FF058}, {sub_81017A0, sub_80FF058}, @@ -1871,16 +1871,16 @@ void sub_80FE948(u8 taskId) gUnknown_020388F5 = gUnknown_020388F2 + gUnknown_020388F4; if (gUnknown_020388F5 == gUnknown_020388D5) { - gUnknown_083EC634[gTasks[taskId].data[11]].func2(taskId); + gUnknown_083EC634[gTasks[taskId].data[11]].noFunc(taskId); } else { - gUnknown_083EC634[gTasks[taskId].data[11]].func1(taskId); + gUnknown_083EC634[gTasks[taskId].data[11]].yesFunc(taskId); } } else if (gMain.newKeys & B_BUTTON) { HandleDestroyMenuCursors(); PlaySE(SE_SELECT); - gUnknown_083EC634[gTasks[taskId].data[11]].func2(taskId); + gUnknown_083EC634[gTasks[taskId].data[11]].noFunc(taskId); } } } diff --git a/src/pokeblock.c b/src/pokeblock.c index 76a06c5ea..7b67eb408 100755 --- a/src/pokeblock.c +++ b/src/pokeblock.c @@ -5,15 +5,158 @@ #include "global.h" #include "rom4.h" #include "sprite.h" +#include "strings.h" #include "task.h" #include "unknown_task.h" #include "text.h" #include "main.h" #include "menu.h" #include "palette.h" +#include "graphics.h" +#include "decompress.h" #include "menu_helpers.h" +#include "battle.h" +#include "item_menu.h" #include "pokeblock.h" +// rodata + +const s8 gPokeblockFlavorCompatibilityTable[][5] = { + // Cool, Beauty, Cute, Smart, Tough + { 0, 0, 0, 0, 0}, // Hardy + { 1, 0, 0, 0, -1}, // Lonely + { 1, 0, -1, 0, 0}, // Brave + { 1, -1, 0, 0, 0}, // Adamant + { 1, 0, 0, -1, 0}, // Naughty + { -1, 0, 0, 0, 1}, // Bold + { 0, 0, 0, 0, 0}, // Docile + { 0, 0, -1, 0, 1}, // Relaxed + { 0, -1, 0, 0, 1}, // Impish + { 0, 0, 0, -1, 1}, // Lax + { -1, 0, 1, 0, 0}, // Timid + { 0, 0, 1, 0, -1}, // Hasty + { 0, 0, 0, 0, 0}, // Serious + { 0, -1, 1, 0, 0}, // Jolly + { 0, 0, 1, -1, 0}, // Naive + { -1, 1, 0, 0, 0}, // Modest + { 0, 1, 0, 0, -1}, // Mild + { 0, 1, -1, 0, 0}, // Quiet + { 0, 0, 0, 0, 0}, // Bashful + { 0, 1, 0, -1, 0}, // Rash + { -1, 0, 0, 1, 0}, // Calm + { 0, 0, 0, 1, -1}, // Gentle + { 0, 0, -1, 1, 0}, // Sassy + { 0, -1, 0, 1, 0}, // Careful + { 0, 0, 0, 0, 0} // Quirky +}; + +void (*const gUnknown_083F7EA8[])(void) = { + sub_80A5B40, + c2_exit_to_overworld_2_switch, + sub_802E424, + c2_exit_to_overworld_2_switch +}; + +const u8 *const gPokeblockNames[] = { + NULL, + ContestStatsText_RedPokeBlock, + ContestStatsText_BluePokeBlock, + ContestStatsText_PinkPokeBlock, + ContestStatsText_GreenPokeBlock, + ContestStatsText_YellowPokeBlock, + ContestStatsText_PurplePokeBlock, + ContestStatsText_IndigoPokeBlock, + ContestStatsText_BrownPokeBlock, + ContestStatsText_LiteBluePokeBlock, + ContestStatsText_OlivePokeBlock, + ContestStatsText_GrayPokeBlock, + ContestStatsText_BlackPokeBlock, + ContestStatsText_WhitePokeBlock, + ContestStatsText_GoldPokeBlock +}; + +void sub_810C508(u8); +void sub_810C5C0(u8); +void sub_810C748(u8); +void sub_810C788(u8); +void sub_810C854(u8); + +const struct MenuAction2 gUnknown_083F7EF4[] = { + OtherText_Use, sub_810C508, + OtherText_Toss, sub_810C5C0, + gOtherText_CancelNoTerminator, sub_810C748, + OtherText_Use, sub_810C788, + OtherText_Use, sub_810C854, +}; + +const u8 gUnknown_083F7F1C[] = {0, 1, 2}; +const u8 gUnknown_083F7F1F[] = {3, 2}; +const u8 gUnknown_083F7F21[] = {4, 2}; + +void sub_810C610(u8); +void sub_810C668(u8); + +const struct YesNoFuncTable gUnknown_083F7F24[] = {sub_810C610, sub_810C668}; + +const u8 UnreferencedData_083F7F2C[] = {0x16, 0x17, 0x18, 0x21, 0x2f}; + +const struct OamData gOamData_83F7F34 = { + .size = 3, + .priority = 2 +}; + +const union AnimCmd gSpriteAnim_83F7F3C[] = { + ANIMCMD_FRAME(.imageValue = 0, .duration = 0), + ANIMCMD_END +}; + +const union AnimCmd *const gSpriteAnimTable_83F7F44[] = { + gSpriteAnim_83F7F3C +}; + +const union AffineAnimCmd gSpriteAffineAnim_83F7F48[] = { + AFFINEANIMCMD_FRAME(0, 0, -2, 2), + AFFINEANIMCMD_FRAME(0, 0, 2, 4), + AFFINEANIMCMD_FRAME(0, 0, -2, 4), + AFFINEANIMCMD_FRAME(0, 0, 2, 2), + AFFINEANIMCMD_END +}; + +const union AffineAnimCmd *const gSpriteAffineAnimTable_83F7F70[] = { + gSpriteAffineAnim_83F7F48 +}; + +const struct CompressedSpriteSheet gUnknown_083F7F74 = { + gMenuPokeblockDevice_Gfx, + 0x800, + 0x39d0 +}; + +const struct CompressedSpritePalette gUnknown_083F7F7C = { + gMenuPokeblockDevice_Pal, + 0x39d0 +}; + +const struct SpriteTemplate gSpriteTemplate_83F7F84 = { + 0x39d0, + 0x39d0, + &gOamData_83F7F34, + gSpriteAnimTable_83F7F44, + NULL, + gDummySpriteAffineAnimTable, + SpriteCallbackDummy +}; + +const u8 gUnknown_083F7F9C[][8] = { + { 1, 20, 0, 0, 0, 0, 20, 0}, + { 2, 0, 20, 0, 0, 0, 20, 0}, + { 3, 0, 0, 20, 0, 0, 20, 0}, + { 4, 0, 0, 0, 20, 0, 20, 0}, + { 5, 0, 0, 0, 0, 20, 20, 0} +}; + +// text + static void sub_810B674(void) { AnimateSprites(); @@ -34,7 +177,7 @@ static void sub_810B68C(void) DmaCopy16(3, src, dest, sizeof gBGTilemapBuffers[2]); } -bool8 sub_810B998(void); +static bool8 sub_810B998(void); u8 sub_810BA50(s16, s16, u8); void sub_810BC98(void); void sub_810BD08(void); @@ -168,3 +311,31 @@ void sub_810B96C(void) } } while (sub_80F9344() != TRUE); } + +static bool8 sub_810B998(void) +{ + switch (ewram[0x1ffff]) + { + case 0: + LZDecompressVram(gMenuPokeblock_Gfx, (void *)VRAM + 0x8000); + ewram[0x1ffff]++; + break; + case 1: + sub_800D238(gMenuPokeblock_Tilemap, gBGTilemapBuffers[2]); + ewram[0x1ffff]++; + break; + case 2: + LoadCompressedPalette(gMenuPokeblock_Pal, 0, 0xc0); + ewram[0x1ffff]++; + break; + case 3: + LoadCompressedObjectPic(&gUnknown_083F7F74); + ewram[0x1ffff]++; + break; + case 4: + LoadCompressedObjectPalette(&gUnknown_083F7F7C); + ewram[0x1ffff] = 0; + return TRUE; + } + return FALSE; +} diff --git a/src/pokemon_3.c b/src/pokemon_3.c index cb8eb2a46..9a2a5d8e4 100644 --- a/src/pokemon_3.c +++ b/src/pokemon_3.c @@ -70,7 +70,7 @@ extern u32 gTMHMLearnsets[][2]; extern u8 gBattleMonForms[]; extern const u8 BattleText_Wally[]; extern const u16 gHMMoves[]; -extern s8 gUnknown_083F7E28[]; +extern s8 gPokeblockFlavorCompatibilityTable[]; extern u8 gLastUsedAbility; extern const u8 BattleText_PreventedSwitch[]; extern u16 gBattlePartyID[]; @@ -1238,13 +1238,13 @@ bool8 sub_8040A3C(u16 species) s8 sub_8040A54(struct Pokemon *mon, u8 a2) { u8 nature = GetNature(mon); - return gUnknown_083F7E28[nature * 5 + a2]; + return gPokeblockFlavorCompatibilityTable[nature * 5 + a2]; } s8 sub_8040A7C(u32 personality, u8 a2) { u8 nature = GetNatureFromPersonality(personality); - return gUnknown_083F7E28[nature * 5 + a2]; + return gPokeblockFlavorCompatibilityTable[nature * 5 + a2]; } bool8 IsTradedMon(struct Pokemon *mon) -- cgit v1.2.3 From b61b1fd911a15cb9bf9999658d4186b4825c4492 Mon Sep 17 00:00:00 2001 From: PikalaxALT Date: Tue, 27 Jun 2017 21:08:41 -0400 Subject: through sub_810BB88 --- src/pokeblock.c | 86 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 86 insertions(+) (limited to 'src') diff --git a/src/pokeblock.c b/src/pokeblock.c index 7b67eb408..437f25e46 100755 --- a/src/pokeblock.c +++ b/src/pokeblock.c @@ -17,6 +17,8 @@ #include "menu_helpers.h" #include "battle.h" #include "item_menu.h" +#include "item.h" +#include "items.h" #include "pokeblock.h" // rodata @@ -339,3 +341,87 @@ static bool8 sub_810B998(void) } return FALSE; } + +u8 sub_810BA50(s16 x, s16 y, u8 subpriority) +{ + return CreateSprite(&gSpriteTemplate_83F7F84, x, y, subpriority); +} + +void sub_810BA7C(u8 a0) +{ + gUnknown_02039244 = a0; + switch (gUnknown_02039244) + { + default: + gUnknown_03000758 = gUnknown_083F7F1C; + gUnknown_0203924C = sizeof gUnknown_083F7F1C; + break; + case 2: + gUnknown_03000758 = gUnknown_083F7F1F; + gUnknown_0203924C = sizeof gUnknown_083F7F1F; + break; + case 3: + gUnknown_03000758 = gUnknown_083F7F21; + gUnknown_0203924C = sizeof gUnknown_083F7F21; + break; + } +} + +void sub_810BADC(void) +{ + sub_810BA7C(2); + SetMainCallback2(sub_810B96C); +} + +void sub_810BAF4(void) +{ + sub_810BA7C(3); + SetMainCallback2(sub_810B96C); +} + +void sub_810BB0C(void) +{ + BasicInitMenuWindow(&gWindowConfig_81E6E34); + sub_8072BD8(ItemId_GetItem(ITEM_POKEBLOCK_CASE)->name, 2, 1, 0x48); +} + +void sub_810BB30(void) +{ + BasicInitMenuWindow(&gWindowConfig_81E6E34); + MenuPrint(gContestStatsText_Spicy, 2, 13); + MenuPrint(gContestStatsText_Dry, 2, 15); + MenuPrint(gContestStatsText_Sweet, 2, 17); + MenuPrint(gContestStatsText_Bitter, 8, 13); + MenuPrint(gContestStatsText_Sour, 8, 15); +} + +u8 sub_810C9B0(struct Pokeblock *); + +void sub_810BB88(u8 a0) +{ + u8 i; + u8 y; + u8 *buf; + BasicInitMenuWindow(&gWindowConfig_81E6E34); + for (i=a0; i<=a0+8; i++) + { + y = (i - a0) << 1; + if (i == gUnknown_02039248[2]) + { + buf = sub_8072C74(gStringVar1, gContestStatsText_StowCase, 0x78, 0); + MenuPrint(gStringVar1, 15, y + 1); + if (i != a0 + 8) + { + MenuZeroFillWindowRect(15, y + 3, 29, 18); + } + break; + } + buf = sub_8072C74(gStringVar1, gPokeblockNames[gSaveBlock1.pokeblocks[i].color], 0x5e, 0); + buf[0] = EXT_CTRL_CODE_BEGIN; + buf[1] = 0x14; + buf[2] = 0x06; + buf += 3; + ConvertIntToDecimalStringN(buf, sub_810C9B0(&gSaveBlock1.pokeblocks[i]), STR_CONV_MODE_RIGHT_ALIGN, 3); + MenuPrint(gStringVar1, 15, y + 1); + } +} -- cgit v1.2.3 From 5f3b6f124ff35593eeecc028234ae7d48589c768 Mon Sep 17 00:00:00 2001 From: PikalaxALT Date: Tue, 27 Jun 2017 21:27:07 -0400 Subject: through sub_810BD08 --- src/pokeblock.c | 49 +++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 49 insertions(+) (limited to 'src') diff --git a/src/pokeblock.c b/src/pokeblock.c index 437f25e46..111bf2160 100755 --- a/src/pokeblock.c +++ b/src/pokeblock.c @@ -425,3 +425,52 @@ void sub_810BB88(u8 a0) MenuPrint(gStringVar1, 15, y + 1); } } + +void sub_810BDAC(bool8); + +void sub_810BC84(u8 a0) +{ + sub_810BB88(a0); + sub_810BDAC(FALSE); +} + +void sub_810BC98(void) +{ + u16 i, j; + struct Pokeblock buf; + for (i=0; i<39; i++) + { + for (j=i+1; j<40; j++) + { + if (gSaveBlock1.pokeblocks[i].color == 0) + { + buf = gSaveBlock1.pokeblocks[i]; + gSaveBlock1.pokeblocks[i] = gSaveBlock1.pokeblocks[j]; + gSaveBlock1.pokeblocks[j] = buf; + } + } + } +} + +void sub_810BD08(void) +{ + u8 i; + gUnknown_02039248[2] = 0; + for (i=0; i<40; i++) + { + if (gSaveBlock1.pokeblocks[i].color != 0) + gUnknown_02039248[2]++; + } + if (gUnknown_02039248[2] < 8) + { + gUnknown_02039248[3] = gUnknown_02039248[2]; + } + else + { + gUnknown_02039248[3] = 8; + } + if (gUnknown_02039248[1] + 8 > gUnknown_02039248[2] && gUnknown_02039248[1] != 0) + { + gUnknown_02039248[1]--; + } +} -- cgit v1.2.3 From 7fe3e5af79fba97a5077ffd0590cf36cc6de4ee2 Mon Sep 17 00:00:00 2001 From: PikalaxALT Date: Tue, 27 Jun 2017 21:37:54 -0400 Subject: sub_810BD64 --- src/pokeblock.c | 11 +++++++++++ 1 file changed, 11 insertions(+) (limited to 'src') diff --git a/src/pokeblock.c b/src/pokeblock.c index 111bf2160..ee2e5417b 100755 --- a/src/pokeblock.c +++ b/src/pokeblock.c @@ -474,3 +474,14 @@ void sub_810BD08(void) gUnknown_02039248[1]--; } } + +void sub_810BD64(u16 a0) +{ + u8 i; + int y; + for (i=0; i<14; i++) + { + (gBGTilemapBuffers)[2][(2 * gUnknown_02039248[0] + 1) * 32 + (y = i + 15)] = a0; + (gBGTilemapBuffers)[2][(2 * gUnknown_02039248[0] + 2) * 32 + y] = a0; + } +} -- cgit v1.2.3 From 6c024a4dd3207de47324b2ba68b2bec2fc5742dc Mon Sep 17 00:00:00 2001 From: PikalaxALT Date: Tue, 27 Jun 2017 22:32:10 -0400 Subject: sub_810BDAC --- src/pokeblock.c | 71 ++++++++++++++++++++++++++++++++++++++++++++++++++++++--- 1 file changed, 68 insertions(+), 3 deletions(-) (limited to 'src') diff --git a/src/pokeblock.c b/src/pokeblock.c index ee2e5417b..e7405349f 100755 --- a/src/pokeblock.c +++ b/src/pokeblock.c @@ -475,13 +475,78 @@ void sub_810BD08(void) } } -void sub_810BD64(u16 a0) +void sub_810BD64(u16 a0, u16 a1) { u8 i; int y; for (i=0; i<14; i++) { - (gBGTilemapBuffers)[2][(2 * gUnknown_02039248[0] + 1) * 32 + (y = i + 15)] = a0; - (gBGTilemapBuffers)[2][(2 * gUnknown_02039248[0] + 2) * 32 + y] = a0; + gBGTilemapBuffers[2][(2 * gUnknown_02039248[0] + 1) * 32 + (y = i + 15)] = a0; + gBGTilemapBuffers[2][(2 * gUnknown_02039248[0] + 2) * 32 + y] = a0; + } +} + +s16 sub_810CA9C(struct Pokeblock *, u8); +u8 sub_810C9E8(struct Pokeblock *); + +void sub_810BDAC(bool8 flag) +{ + u8 i; + u16 v0; + if (!flag) + { + sub_810BD64(0x1005, 0x1014); + } + else + { + sub_810BD64(0x2005, 0x2014); + } + if (gUnknown_02039248[1]) + { + sub_80F979C(0, 0); + } + else + { + sub_80F979C(0, 1); + } + if (gUnknown_02039248[2] > gUnknown_02039248[3] && gUnknown_02039248[1] + gUnknown_02039248[3] != gUnknown_02039248[2]) + { + sub_80F979C(1, 0); + } + else + { + sub_80F979C(1, 1); + } + for (i=0; i<5; i++) + { + v0 = ((i % 3) << 6) + 0x1a1 + (i / 3) * 6; + if (gUnknown_02039248[0] + gUnknown_02039248[1] != gUnknown_02039248[2]) + { + if (sub_810CA9C(&gSaveBlock1.pokeblocks[gUnknown_02039248[0] + gUnknown_02039248[1]], i + 1) > 0) + { + gBGTilemapBuffers[2][v0] = (i << 12) + 23; + gBGTilemapBuffers[2][v0 + 32] = (i << 12) + 24; + } + else + { + gBGTilemapBuffers[2][v0] = 15; + gBGTilemapBuffers[2][v0 + 32] = 15; + } + } + else + { + gBGTilemapBuffers[2][v0] = 15; + gBGTilemapBuffers[2][v0 + 32] = 15; + } + } + BasicInitMenuWindow(&gWindowConfig_81E6E34); + if (gUnknown_02039248[0] + gUnknown_02039248[1] != gUnknown_02039248[2]) + { + sub_8072C14(gStringVar1, sub_810C9E8(&gSaveBlock1.pokeblocks[gUnknown_02039248[0] + gUnknown_02039248[1]]), 16, 1); + MenuPrint(gStringVar1, 11, 17); + } + else + { + MenuZeroFillWindowRect(11, 17, 12, 18); } } -- cgit v1.2.3 From b2ac045c71d0695dcdde96f1cb6a5b513fbaa294 Mon Sep 17 00:00:00 2001 From: PikalaxALT Date: Wed, 28 Jun 2017 08:45:32 -0400 Subject: sub_810BF7C --- src/pokeblock.c | 82 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 82 insertions(+) (limited to 'src') diff --git a/src/pokeblock.c b/src/pokeblock.c index e7405349f..e22752253 100755 --- a/src/pokeblock.c +++ b/src/pokeblock.c @@ -5,6 +5,7 @@ #include "global.h" #include "rom4.h" #include "sprite.h" +#include "script.h" #include "strings.h" #include "task.h" #include "unknown_task.h" @@ -19,6 +20,8 @@ #include "item_menu.h" #include "item.h" #include "items.h" +#include "sound.h" +#include "songs.h" #include "pokeblock.h" // rodata @@ -550,3 +553,82 @@ void sub_810BDAC(bool8 flag) MenuZeroFillWindowRect(11, 17, 12, 18); } } + +void sub_810C8D4(struct Sprite *); + +void sub_810BF38(bool8 flag) +{ + PlaySE(SE_SELECT); + gSprites[ewram[0x1fffe]].callback = sub_810C8D4; + sub_810BDAC(flag); +} + +void sub_810C0C8(u8); +void sub_810C31C(u8); +void sub_810C368(u8); + +void sub_810BF7C(u8 taskId) +{ + if (!gPaletteFade.active) + { + if (gMain.newAndRepeatedKeys & DPAD_UP) + { + if (gUnknown_02039248[0] != 0) + { + sub_810BD64(5, 20); + gUnknown_02039248[0]--; + sub_810BF38(FALSE); + } + else if (gUnknown_02039248[1] != 0) + { + gUnknown_02039248[1]--; + sub_810BB88(gUnknown_02039248[1]); + sub_810BF38(FALSE); + } + } + else if (gMain.newAndRepeatedKeys & DPAD_DOWN) + { + if (gUnknown_02039248[0] != gUnknown_02039248[3]) + { + sub_810BD64(5, 20); + gUnknown_02039248[0]++; + sub_810BF38(FALSE); + } + else if (gUnknown_02039248[1] + gUnknown_02039248[0] != gUnknown_02039248[2]) + { + gUnknown_02039248[1]++; + sub_810BB88(gUnknown_02039248[1]); + sub_810BF38(FALSE); + } + } + else if (gMain.newKeys & SELECT_BUTTON) + { + if (gUnknown_02039248[1] + gUnknown_02039248[0] != gUnknown_02039248[2]) + { + PlaySE(SE_SELECT); + sub_810BDAC(TRUE); + gTasks[taskId].data[0] = gUnknown_02039248[1] + gUnknown_02039248[0]; + gTasks[taskId].func = sub_810C0C8; + } + } + else if (gMain.newKeys & A_BUTTON) + { + PlaySE(SE_SELECT); + if (gUnknown_02039248[1] + gUnknown_02039248[0] == gUnknown_02039248[2]) + { + gScriptResult = 0xffff; + sub_810C31C(taskId); + } + else + { + sub_810C368(taskId); + } + } + else if (gMain.newKeys & B_BUTTON) + { + PlaySE(SE_SELECT); + gScriptResult = 0xffff; + sub_810C31C(taskId); + } + } +} -- cgit v1.2.3 From a33c8cb4f38a6977d9b2d41c06555243892efa54 Mon Sep 17 00:00:00 2001 From: scnorton Date: Wed, 28 Jun 2017 09:32:50 -0400 Subject: sub_810C0C8 --- src/pokeblock.c | 57 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 57 insertions(+) (limited to 'src') diff --git a/src/pokeblock.c b/src/pokeblock.c index e22752253..0f1e36ee7 100755 --- a/src/pokeblock.c +++ b/src/pokeblock.c @@ -632,3 +632,60 @@ void sub_810BF7C(u8 taskId) } } } + +void sub_810C1C8(u8, u8); +void sub_810C23C(u8); + +void sub_810C0C8(u8 taskId) +{ + if (gMain.newAndRepeatedKeys & DPAD_UP) + { + if (gUnknown_02039248[0] != 0) + { + sub_810BD64(5, 20); + gUnknown_02039248[0]--; + sub_810BF38(TRUE); + sub_810C1C8(taskId, 1); + } + else if (gUnknown_02039248[1] != 0) + { + sub_810C1C8(taskId, 0); + gUnknown_02039248[1]--; + sub_810BB88(gUnknown_02039248[1]); + sub_810BF38(TRUE); + sub_810C1C8(taskId, 1); + } + } + else if (gMain.newAndRepeatedKeys & DPAD_DOWN) + { + if (gUnknown_02039248[0] != gUnknown_02039248[3]) + { + sub_810BD64(5, 20); + gUnknown_02039248[0]++; + sub_810BF38(TRUE); + sub_810C1C8(taskId, 1); + } + else if (gUnknown_02039248[1] + gUnknown_02039248[0] != gUnknown_02039248[2]) + { + sub_810C1C8(taskId, 0); + gUnknown_02039248[1]++; + sub_810BB88(gUnknown_02039248[1]); + sub_810BF38(TRUE); + sub_810C1C8(taskId, 1); + } + } + else if (gMain.newKeys & A_BUTTON || gMain.newKeys & SELECT_BUTTON) + { + PlaySE(SE_SELECT); + sub_810C1C8(taskId, 0); + sub_810C23C(taskId); + gTasks[taskId].func = sub_810BF7C; + } + else if (gMain.newKeys & B_BUTTON) + { + PlaySE(SE_SELECT); + sub_810C1C8(taskId, 0); + sub_810BDAC(0); + gTasks[taskId].func = sub_810BF7C; + } +} -- cgit v1.2.3 From 8f84aa839874e2b69bd0e31694fad7560ca90d17 Mon Sep 17 00:00:00 2001 From: scnorton Date: Wed, 28 Jun 2017 09:46:43 -0400 Subject: sub_810C1C8 --- src/pokeblock.c | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) (limited to 'src') diff --git a/src/pokeblock.c b/src/pokeblock.c index 0f1e36ee7..775bc42ab 100755 --- a/src/pokeblock.c +++ b/src/pokeblock.c @@ -689,3 +689,24 @@ void sub_810C0C8(u8 taskId) gTasks[taskId].func = sub_810BF7C; } } + +void sub_810C1C8(u8 taskId, u8 flag) +{ + u8 i; + u32 x; + s16 y; + u16 v0 = 0x1005; + if (!flag) + { + v0 = 0x0005; + } + y = gTasks[taskId].data[0] - gUnknown_02039248[1]; + if ((u16)y <= 8 && y != gUnknown_02039248[0]) + { + for (i=0; i<14; i++) + { + gBGTilemapBuffers[2][(2 * y + 1) * 32 + (x = i + 15)] = v0; + gBGTilemapBuffers[2][(2 * y + 2) * 32 + x] = v0; + } + } +} -- cgit v1.2.3 From c038b3a51cd82ec56ed09965513e8f846a3490df Mon Sep 17 00:00:00 2001 From: scnorton Date: Wed, 28 Jun 2017 09:51:41 -0400 Subject: sub_810C23C --- src/pokeblock.c | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) (limited to 'src') diff --git a/src/pokeblock.c b/src/pokeblock.c index 775bc42ab..a47890fe9 100755 --- a/src/pokeblock.c +++ b/src/pokeblock.c @@ -710,3 +710,21 @@ void sub_810C1C8(u8 taskId, u8 flag) } } } + +void sub_810C23C(u8 taskId) +{ + struct Pokeblock buf; + u8 selidx = gUnknown_02039248[1] + gUnknown_02039248[0]; + if (selidx == gUnknown_02039248[2]) + { + sub_810BDAC(FALSE); + } + else + { + buf = gSaveBlock1.pokeblocks[selidx]; + gSaveBlock1.pokeblocks[selidx] = gSaveBlock1.pokeblocks[gTasks[taskId].data[0]]; + gSaveBlock1.pokeblocks[gTasks[taskId].data[0]] = buf; + sub_810BB88(gUnknown_02039248[1]); + sub_810BDAC(FALSE); + } +} -- cgit v1.2.3 From f01cdd2a380174613dc0da6e04dd19a1b0520b0a Mon Sep 17 00:00:00 2001 From: scnorton Date: Wed, 28 Jun 2017 10:31:51 -0400 Subject: sub_810C368 --- src/menu.c | 2 +- src/pokeblock.c | 49 +++++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 50 insertions(+), 1 deletion(-) (limited to 'src') diff --git a/src/menu.c b/src/menu.c index 45cfbbc2f..d532fc602 100644 --- a/src/menu.c +++ b/src/menu.c @@ -571,7 +571,7 @@ void PrintMenuItems(u8 left, u8 top, u8 menuItemCount, const struct MenuAction m MenuPrint(menuItems[i].text, left, top + 2 * i); } -void PrintMenuItemsReordered(u8 left, u8 top, u8 menuItemCount, const struct MenuAction menuItems[], u8 *order) +void PrintMenuItemsReordered(u8 left, u8 top, u8 menuItemCount, const struct MenuAction menuItems[], const u8 *order) { u8 i; diff --git a/src/pokeblock.c b/src/pokeblock.c index a47890fe9..e62e8cf90 100755 --- a/src/pokeblock.c +++ b/src/pokeblock.c @@ -12,6 +12,7 @@ #include "text.h" #include "main.h" #include "menu.h" +#include "field_fadetransition.h" #include "palette.h" #include "graphics.h" #include "decompress.h" @@ -728,3 +729,51 @@ void sub_810C23C(u8 taskId) sub_810BDAC(FALSE); } } + +void sub_810C2B0(void) +{ + DestroyVerticalScrollIndicator(0); + DestroyVerticalScrollIndicator(1); + BuyMenuFreeMemory(); +} + +void sub_810C2C8(u8 taskId) +{ + if (!gPaletteFade.active) + { + if (gUnknown_02039244 == 3) + { + gFieldCallback = sub_8080990; + } + sub_810C2B0(); + SetMainCallback2(gUnknown_083F7EA8[gUnknown_02039244]); + DestroyTask(taskId); + } +} + +void sub_810C31C(u8 taskId) +{ + BeginNormalPaletteFade(-1, 0, 0, 16, 0); + if (gUnknown_02039244 > 1) + { + gScriptItemId = ITEM_NONE; + } + gTasks[taskId].func = sub_810C2C8; +} + +void sub_810C40C(u8); + +void sub_810C368(u8 taskId) +{ + int v0 = 0; + if (gUnknown_02039244 > 1) + v0 = 2; + sub_80F98A4(0); + sub_80F98A4(1); + BasicInitMenuWindow(&gWindowConfig_81E6E50); + MenuDrawTextWindow(7, v0 + 4, 13, 11); + PrintMenuItemsReordered(8, v0 + 5, gUnknown_0203924C, (const struct MenuAction *)gUnknown_083F7EF4, gUnknown_03000758); + InitMenu(0, 8, v0 + 5, gUnknown_0203924C, 0, 5); + gScriptItemId = gUnknown_02039248[0] + gUnknown_02039248[1]; + gTasks[taskId].func = sub_810C40C; +} -- cgit v1.2.3 From 7018449024766d1b24d3de4271f998d285e19cd0 Mon Sep 17 00:00:00 2001 From: scnorton Date: Wed, 28 Jun 2017 10:38:43 -0400 Subject: sub_810C40C --- src/pokeblock.c | 30 ++++++++++++++++++++++++++++++ 1 file changed, 30 insertions(+) (limited to 'src') diff --git a/src/pokeblock.c b/src/pokeblock.c index e62e8cf90..8ea8de838 100755 --- a/src/pokeblock.c +++ b/src/pokeblock.c @@ -777,3 +777,33 @@ void sub_810C368(u8 taskId) gScriptItemId = gUnknown_02039248[0] + gUnknown_02039248[1]; gTasks[taskId].func = sub_810C40C; } + +void sub_810C40C(u8 taskId) +{ + if (gMain.newAndRepeatedKeys & DPAD_UP) + { + if (GetMenuCursorPos()) + { + PlaySE(SE_SELECT); + MoveMenuCursor(-1); + } + } + else if (gMain.newAndRepeatedKeys & DPAD_DOWN) + { + if (GetMenuCursorPos() != gUnknown_0203924C - 1) + { + PlaySE(SE_SELECT); + MoveMenuCursor(+1); + } + } + else if (gMain.newKeys & A_BUTTON) + { + PlaySE(SE_SELECT); + gUnknown_083F7EF4[gUnknown_03000758[GetMenuCursorPos()]].func(taskId); + } + else if (gMain.newKeys & B_BUTTON) + { + PlaySE(SE_SELECT); + sub_810C748(taskId); + } +} -- cgit v1.2.3 From c6255560d7577edf6058171ba61331c7c6f78dfc Mon Sep 17 00:00:00 2001 From: scnorton Date: Wed, 28 Jun 2017 10:51:18 -0400 Subject: through sub_810C540 --- src/pokeblock.c | 30 ++++++++++++++++++++++++++++++ 1 file changed, 30 insertions(+) (limited to 'src') diff --git a/src/pokeblock.c b/src/pokeblock.c index 8ea8de838..a8de73549 100755 --- a/src/pokeblock.c +++ b/src/pokeblock.c @@ -807,3 +807,33 @@ void sub_810C40C(u8 taskId) sub_810C748(taskId); } } + +void sub_8136130(struct Pokeblock *, MainCallback); + +void sub_810C4C4(u8 taskId) +{ + if (!gPaletteFade.active) + { + sub_810C2B0(); + sub_8136130(&gSaveBlock1.pokeblocks[gScriptItemId], sub_810B96C); + DestroyTask(taskId); + } +} + +void sub_810C508(u8 taskId) +{ + BeginNormalPaletteFade(-1, 0, 0, 16, 0); + gTasks[taskId].func = sub_810C4C4; +} + +void sub_810C5EC(u8); + +void sub_810C540(u8 taskId) +{ + BasicInitMenuWindow(&gWindowConfig_81E6E50); + HandleDestroyMenuCursors(); + MenuZeroFillWindowRect(7, 4, 13, 11); + StringCopy(gStringVar1, gPokeblockNames[gSaveBlock1.pokeblocks[gUnknown_02039248[0] + gUnknown_02039248[1]].color]); + StringExpandPlaceholders(gStringVar4, gContestStatsText_ThrowAwayPrompt); + DisplayItemMessageOnField(taskId, gStringVar4, sub_810C5EC, 0); +} -- cgit v1.2.3 From 0197921d32ac4af5a4290fa3bdcb65a275e8067c Mon Sep 17 00:00:00 2001 From: scnorton Date: Wed, 28 Jun 2017 11:33:39 -0400 Subject: through sub_810C788 --- src/mori_debug_menu.c | 2 +- src/pokeblock.c | 85 +++++++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 86 insertions(+), 1 deletion(-) (limited to 'src') diff --git a/src/mori_debug_menu.c b/src/mori_debug_menu.c index ba79261c0..2d9e3fa6f 100644 --- a/src/mori_debug_menu.c +++ b/src/mori_debug_menu.c @@ -133,7 +133,7 @@ s8 MoriDebugMenu_PokeblockCase(void) s32 loopCounter; for (loopCounter = 0; loopCounter <= 39; loopCounter++) - sub_810CA6C((u8)loopCounter); + sub_810CA6C(loopCounter); CloseMenu(); return 1; diff --git a/src/pokeblock.c b/src/pokeblock.c index a8de73549..9c6ccfc9f 100755 --- a/src/pokeblock.c +++ b/src/pokeblock.c @@ -837,3 +837,88 @@ void sub_810C540(u8 taskId) StringExpandPlaceholders(gStringVar4, gContestStatsText_ThrowAwayPrompt); DisplayItemMessageOnField(taskId, gStringVar4, sub_810C5EC, 0); } + +void sub_810C5C0(u8 taskId) +{ + sub_80F979C(1, 1); + gTasks[taskId].func = sub_810C540; +} + +void sub_810C5EC(u8 taskId) +{ + DisplayYesNoMenu(7, 6, 1); + DoYesNoFuncWithChoice(taskId, gUnknown_083F7F24); +} + +void sub_810C704(u8); + +void sub_810C610(u8 taskId) +{ + MenuZeroFillWindowRect(7, 6, 13, 11); + sub_810CA6C((gUnknown_02039248[0] + gUnknown_02039248[1])); + StringExpandPlaceholders(gStringVar4, gContestStatsText_WasThrownAway); + DisplayItemMessageOnField(taskId, gStringVar4, sub_810C704, 0); + sub_810BC98(); + sub_810BD08(); +} + +void sub_810C668(u8 taskId) +{ + StartVerticalScrollIndicators(0); + StartVerticalScrollIndicators(1); + if (gUnknown_02039248[2] > gUnknown_02039248[3] && gUnknown_02039248[1] + gUnknown_02039248[3] != gUnknown_02039248[2]) + { + sub_80F979C(1, 0); + } + BasicInitMenuWindow(&gWindowConfig_81E6E50); + MenuZeroFillWindowRect(7, 6, 13, 11); + MenuZeroFillWindowRect(0, 14, 29, 19); + gTasks[taskId].func = sub_810BF7C; +} + +void sub_810C6DC(u8 taskId) +{ + if (gMain.newKeys & A_BUTTON || gMain.newKeys & B_BUTTON) + { + sub_810C668(taskId); + } +} + +void sub_810C704(u8 taskId) +{ + BasicInitMenuWindow(&gWindowConfig_81E6E34); + sub_810BC84(gUnknown_02039248[1]); + sub_80F979C(1, 1); + gTasks[taskId].func = sub_810C6DC; +} + +void sub_810C748(u8 taskId) +{ + StartVerticalScrollIndicators(0); + StartVerticalScrollIndicators(1); + HandleDestroyMenuCursors(); + MenuZeroFillWindowRect(7, 4, 13, 11); + gTasks[taskId].func = sub_810BF7C; +} + +void sub_810C788(u8 taskId) +{ + s16 v0 = sub_810CAE4(GetNature(&gEnemyParty[0]), &gSaveBlock1.pokeblocks[gScriptItemId]); + StringCopy(gBattleTextBuff1, gPokeblockNames[gSaveBlock1.pokeblocks[gScriptItemId].color]); + sub_810CA6C(gScriptItemId); + gScriptItemId = gSaveBlock1.pokeblocks[gScriptItemId].color << 8; + if (v0 == 0) + { + gScriptItemId += 1; + } + if (v0 > 0) + { + gScriptItemId += 2; + } + if (v0 < 0) + { + gScriptItemId += 3; + } + BeginNormalPaletteFade(-1, 0, 0, 16, 0); + gTasks[taskId].func = sub_810C2C8; +} -- cgit v1.2.3 From 180a1aba1687423fadca8f7d19567f95b47ecb73 Mon Sep 17 00:00:00 2001 From: scnorton Date: Wed, 28 Jun 2017 12:33:11 -0400 Subject: Finish decompilation of pokeblock.s --- src/pokeblock.c | 238 ++++++++++++++++++++++++++++++++++++++++++++++++-------- 1 file changed, 205 insertions(+), 33 deletions(-) (limited to 'src') diff --git a/src/pokeblock.c b/src/pokeblock.c index 9c6ccfc9f..fd2e2acde 100755 --- a/src/pokeblock.c +++ b/src/pokeblock.c @@ -23,37 +23,38 @@ #include "items.h" #include "sound.h" #include "songs.h" +#include "safari_zone.h" #include "pokeblock.h" // rodata -const s8 gPokeblockFlavorCompatibilityTable[][5] = { +const s8 gPokeblockFlavorCompatibilityTable[] = { // Cool, Beauty, Cute, Smart, Tough - { 0, 0, 0, 0, 0}, // Hardy - { 1, 0, 0, 0, -1}, // Lonely - { 1, 0, -1, 0, 0}, // Brave - { 1, -1, 0, 0, 0}, // Adamant - { 1, 0, 0, -1, 0}, // Naughty - { -1, 0, 0, 0, 1}, // Bold - { 0, 0, 0, 0, 0}, // Docile - { 0, 0, -1, 0, 1}, // Relaxed - { 0, -1, 0, 0, 1}, // Impish - { 0, 0, 0, -1, 1}, // Lax - { -1, 0, 1, 0, 0}, // Timid - { 0, 0, 1, 0, -1}, // Hasty - { 0, 0, 0, 0, 0}, // Serious - { 0, -1, 1, 0, 0}, // Jolly - { 0, 0, 1, -1, 0}, // Naive - { -1, 1, 0, 0, 0}, // Modest - { 0, 1, 0, 0, -1}, // Mild - { 0, 1, -1, 0, 0}, // Quiet - { 0, 0, 0, 0, 0}, // Bashful - { 0, 1, 0, -1, 0}, // Rash - { -1, 0, 0, 1, 0}, // Calm - { 0, 0, 0, 1, -1}, // Gentle - { 0, 0, -1, 1, 0}, // Sassy - { 0, -1, 0, 1, 0}, // Careful - { 0, 0, 0, 0, 0} // Quirky + 0, 0, 0, 0, 0, // Hardy + 1, 0, 0, 0, -1, // Lonely + 1, 0, -1, 0, 0, // Brave + 1, -1, 0, 0, 0, // Adamant + 1, 0, 0, -1, 0, // Naughty + -1, 0, 0, 0, 1, // Bold + 0, 0, 0, 0, 0, // Docile + 0, 0, -1, 0, 1, // Relaxed + 0, -1, 0, 0, 1, // Impish + 0, 0, 0, -1, 1, // Lax + -1, 0, 1, 0, 0, // Timid + 0, 0, 1, 0, -1, // Hasty + 0, 0, 0, 0, 0, // Serious + 0, -1, 1, 0, 0, // Jolly + 0, 0, 1, -1, 0, // Naive + -1, 1, 0, 0, 0, // Modest + 0, 1, 0, 0, -1, // Mild + 0, 1, -1, 0, 0, // Quiet + 0, 0, 0, 0, 0, // Bashful + 0, 1, 0, -1, 0, // Rash + -1, 0, 0, 1, 0, // Calm + 0, 0, 0, 1, -1, // Gentle + 0, 0, -1, 1, 0, // Sassy + 0, -1, 0, 1, 0, // Careful + 0, 0, 0, 0, 0 // Quirky }; void (*const gUnknown_083F7EA8[])(void) = { @@ -153,12 +154,12 @@ const struct SpriteTemplate gSpriteTemplate_83F7F84 = { SpriteCallbackDummy }; -const u8 gUnknown_083F7F9C[][8] = { - { 1, 20, 0, 0, 0, 0, 20, 0}, - { 2, 0, 20, 0, 0, 0, 20, 0}, - { 3, 0, 0, 20, 0, 0, 20, 0}, - { 4, 0, 0, 0, 20, 0, 20, 0}, - { 5, 0, 0, 0, 0, 20, 20, 0} +const struct Pokeblock gUnknown_083F7F9C[] = { + { PBLOCK_CLR_RED, 20, 0, 0, 0, 0, 20}, + { PBLOCK_CLR_BLUE, 0, 20, 0, 0, 0, 20}, + { PBLOCK_CLR_PINK, 0, 0, 20, 0, 0, 20}, + { PBLOCK_CLR_GREEN, 0, 0, 0, 20, 0, 20}, + { PBLOCK_CLR_YELLOW, 0, 0, 0, 0, 20, 20} }; // text @@ -490,7 +491,7 @@ void sub_810BD64(u16 a0, u16 a1) } } -s16 sub_810CA9C(struct Pokeblock *, u8); +s16 sub_810CA9C(const struct Pokeblock *, u8); u8 sub_810C9E8(struct Pokeblock *); void sub_810BDAC(bool8 flag) @@ -922,3 +923,174 @@ void sub_810C788(u8 taskId) BeginNormalPaletteFade(-1, 0, 0, 16, 0); gTasks[taskId].func = sub_810C2C8; } + +void sub_810C854(u8 taskId) +{ + SafariZoneActivatePokeblockFeeder(gScriptItemId); + StringCopy(gStringVar1, gPokeblockNames[gSaveBlock1.pokeblocks[gScriptItemId].color]); + gScriptResult = gScriptItemId; + sub_810CA6C(gScriptItemId); + BeginNormalPaletteFade(-1, 0, 0, 16, 0); + gTasks[taskId].func = sub_810C2C8; +} + +void sub_810C8D4(struct Sprite *sprite) +{ + if (sprite->data0 > 1) + { + sprite->data0 = 0; + } + switch (sprite->data0) + { + case 0: + sprite->oam.affineMode = 1; + sprite->affineAnims = gSpriteAffineAnimTable_83F7F70; + InitSpriteAffineAnim(sprite); + sprite->data0 = 1; + sprite->data1 = 0; + break; + case 1: + if (++sprite->data1 > 11) + { + sprite->oam.affineMode = 0; + sprite->data0 = 0; + sprite->data1 = 0; + FreeOamMatrix(sprite->oam.matrixNum); + sprite->callback = SpriteCallbackDummy; + } + break; + } +} + +void ClearPokeblock(u8 pokeblockIdx) +{ + gSaveBlock1.pokeblocks[pokeblockIdx].color = 0; + gSaveBlock1.pokeblocks[pokeblockIdx].spicy = 0; + gSaveBlock1.pokeblocks[pokeblockIdx].dry = 0; + gSaveBlock1.pokeblocks[pokeblockIdx].sweet = 0; + gSaveBlock1.pokeblocks[pokeblockIdx].bitter = 0; + gSaveBlock1.pokeblocks[pokeblockIdx].sour = 0; + gSaveBlock1.pokeblocks[pokeblockIdx].feel = 0; +} + +void ClearPokeblocks(void) +{ + u8 pokeblockIdx; + for (pokeblockIdx=0; pokeblockIdx 99) + feel = 99; + return feel; +} + +s8 sub_810CA00(void) +{ + u8 i; + for (i=0; icolor; + if (field == 1) + return pokeblock->spicy; + if (field == 2) + return pokeblock->dry; + if (field == 3) + return pokeblock->sweet; + if (field == 4) + return pokeblock->bitter; + if (field == 5) + return pokeblock->sour; + if (field == 6) + return pokeblock->feel; + return 0; +} + +s16 sub_810CAE4(u8 nature, const struct Pokeblock *pokeblock) +{ + u8 flavor; + s16 curGain; + s16 totalGain = 0; + for (flavor=0; flavor<5; flavor++) + { + curGain = sub_810CA9C(pokeblock, flavor + 1); + if (curGain > 0) + { + totalGain += curGain * gPokeblockFlavorCompatibilityTable[5 * nature + flavor]; + } + } + return totalGain; +} + +void sub_810CB44(struct Pokeblock *pokeblock, u8 *dest) +{ + u8 color = sub_810CA9C(pokeblock, 0); + StringCopy(dest, gPokeblockNames[color]); +} + +bool8 sub_810CB68(u8 nature, u8 *dest) +{ + u8 flavor; + for (flavor=0; flavor<5; flavor++) + { + if (sub_810CAE4(nature, &gUnknown_083F7F9C[flavor]) > 0) + { + StringCopy(dest, gPokeblockNames[flavor + 1]); + return TRUE; + } + } + return FALSE; +} -- cgit v1.2.3 From c0b4472f9547e334aa449f6cdbc1078d2190fb0f Mon Sep 17 00:00:00 2001 From: scnorton Date: Wed, 28 Jun 2017 12:44:43 -0400 Subject: Delete conflicting declaration in player_pc.c --- src/player_pc.c | 1 - 1 file changed, 1 deletion(-) (limited to 'src') diff --git a/src/player_pc.c b/src/player_pc.c index 9cb395432..38e01b92e 100644 --- a/src/player_pc.c +++ b/src/player_pc.c @@ -26,7 +26,6 @@ extern void DoPlayerPCDecoration(u8); extern void BuyMenuFreeMemory(void); extern void DestroyVerticalScrollIndicator(u8); extern void PauseVerticalScrollIndicator(u8); -extern void StartVerticalScrollIndicators(int); extern void LoadScrollIndicatorPalette(void); extern void ClearMailStruct(struct MailStruct *); extern u8 sub_807D770(void); -- cgit v1.2.3 From a7a374266fec8eb34208f8b7008e769cfb0da327 Mon Sep 17 00:00:00 2001 From: scnorton Date: Wed, 28 Jun 2017 14:37:06 -0400 Subject: Move static function declarations to top of c file, and exported declarations to appropriate headers --- src/pokeblock.c | 182 +++++++++++++++++++++++++++++--------------------------- 1 file changed, 95 insertions(+), 87 deletions(-) (limited to 'src') diff --git a/src/pokeblock.c b/src/pokeblock.c index fd2e2acde..a7c6daa8b 100755 --- a/src/pokeblock.c +++ b/src/pokeblock.c @@ -24,10 +24,61 @@ #include "sound.h" #include "songs.h" #include "safari_zone.h" +#include "use_pokeblock.h" #include "pokeblock.h" +// function declarations + +// gUnknown_083F7EF4 +static void sub_810C508(u8); +static void sub_810C5C0(u8); +static void sub_810C748(u8); +static void sub_810C788(u8); +static void sub_810C854(u8); + +// gUnknown_083F7F24 +static void sub_810C610(u8); +static void sub_810C668(u8); + +// sub_810B6C0 +static bool8 sub_810B998(void); +static void sub_810BC98(void); +static void sub_810BD08(void); +static void sub_810BB0C(void); +static void sub_810BB30(void); +static void sub_810BC84(u8); + +// sub_810B96C +static void sub_810BF7C(u8); + +// sub_810BC84 +static void sub_810BDAC(bool8); + +// sub_810BF38 +static void sub_810C8D4(struct Sprite *); + +// sub_810BF7C +static void sub_810C0C8(u8); +static void sub_810C31C(u8); +static void sub_810C368(u8); + +// sub_810C0C8 +static void sub_810C1C8(u8, u8); +static void sub_810C23C(u8); + +// sub_810C368 +static void sub_810C40C(u8); + +// sub_810C540 +static void sub_810C5EC(u8); + +// sub_810C610 +static void sub_810C704(u8); + // rodata +#define GFX_TAG_POKEBLOCK_CASE 14800 + const s8 gPokeblockFlavorCompatibilityTable[] = { // Cool, Beauty, Cute, Smart, Tough 0, 0, 0, 0, 0, // Hardy @@ -82,28 +133,19 @@ const u8 *const gPokeblockNames[] = { ContestStatsText_GoldPokeBlock }; -void sub_810C508(u8); -void sub_810C5C0(u8); -void sub_810C748(u8); -void sub_810C788(u8); -void sub_810C854(u8); - const struct MenuAction2 gUnknown_083F7EF4[] = { - OtherText_Use, sub_810C508, - OtherText_Toss, sub_810C5C0, - gOtherText_CancelNoTerminator, sub_810C748, - OtherText_Use, sub_810C788, - OtherText_Use, sub_810C854, + {OtherText_Use, sub_810C508}, + {OtherText_Toss, sub_810C5C0}, + {gOtherText_CancelNoTerminator, sub_810C748}, + {OtherText_Use, sub_810C788}, + {OtherText_Use, sub_810C854}, }; const u8 gUnknown_083F7F1C[] = {0, 1, 2}; const u8 gUnknown_083F7F1F[] = {3, 2}; const u8 gUnknown_083F7F21[] = {4, 2}; -void sub_810C610(u8); -void sub_810C668(u8); - -const struct YesNoFuncTable gUnknown_083F7F24[] = {sub_810C610, sub_810C668}; +const struct YesNoFuncTable gUnknown_083F7F24 = {sub_810C610, sub_810C668}; const u8 UnreferencedData_083F7F2C[] = {0x16, 0x17, 0x18, 0x21, 0x2f}; @@ -136,17 +178,17 @@ const union AffineAnimCmd *const gSpriteAffineAnimTable_83F7F70[] = { const struct CompressedSpriteSheet gUnknown_083F7F74 = { gMenuPokeblockDevice_Gfx, 0x800, - 0x39d0 + GFX_TAG_POKEBLOCK_CASE }; const struct CompressedSpritePalette gUnknown_083F7F7C = { gMenuPokeblockDevice_Pal, - 0x39d0 + GFX_TAG_POKEBLOCK_CASE }; const struct SpriteTemplate gSpriteTemplate_83F7F84 = { - 0x39d0, - 0x39d0, + GFX_TAG_POKEBLOCK_CASE, + GFX_TAG_POKEBLOCK_CASE, &gOamData_83F7F34, gSpriteAnimTable_83F7F44, NULL, @@ -184,14 +226,6 @@ static void sub_810B68C(void) DmaCopy16(3, src, dest, sizeof gBGTilemapBuffers[2]); } -static bool8 sub_810B998(void); -u8 sub_810BA50(s16, s16, u8); -void sub_810BC98(void); -void sub_810BD08(void); -void sub_810BB0C(void); -void sub_810BB30(void); -void sub_810BC84(u8); - static bool8 sub_810B6C0(void) { u16 ime; @@ -306,8 +340,6 @@ static bool8 sub_810B6C0(void) return FALSE; } -void sub_810BF7C(u8); - void sub_810B96C(void) { do { @@ -324,7 +356,7 @@ static bool8 sub_810B998(void) switch (ewram[0x1ffff]) { case 0: - LZDecompressVram(gMenuPokeblock_Gfx, (void *)VRAM + 0x8000); + LZDecompressVram(gMenuPokeblock_Gfx, (u8 *)BG_CHAR_ADDR(2)); ewram[0x1ffff]++; break; case 1: @@ -384,13 +416,13 @@ void sub_810BAF4(void) SetMainCallback2(sub_810B96C); } -void sub_810BB0C(void) +static void sub_810BB0C(void) { BasicInitMenuWindow(&gWindowConfig_81E6E34); sub_8072BD8(ItemId_GetItem(ITEM_POKEBLOCK_CASE)->name, 2, 1, 0x48); } -void sub_810BB30(void) +static void sub_810BB30(void) { BasicInitMenuWindow(&gWindowConfig_81E6E34); MenuPrint(gContestStatsText_Spicy, 2, 13); @@ -400,9 +432,7 @@ void sub_810BB30(void) MenuPrint(gContestStatsText_Sour, 8, 15); } -u8 sub_810C9B0(struct Pokeblock *); - -void sub_810BB88(u8 a0) +static void sub_810BB88(u8 a0) { u8 i; u8 y; @@ -431,15 +461,13 @@ void sub_810BB88(u8 a0) } } -void sub_810BDAC(bool8); - -void sub_810BC84(u8 a0) +static void sub_810BC84(u8 a0) { sub_810BB88(a0); sub_810BDAC(FALSE); } -void sub_810BC98(void) +static void sub_810BC98(void) { u16 i, j; struct Pokeblock buf; @@ -457,7 +485,7 @@ void sub_810BC98(void) } } -void sub_810BD08(void) +static void sub_810BD08(void) { u8 i; gUnknown_02039248[2] = 0; @@ -480,7 +508,7 @@ void sub_810BD08(void) } } -void sub_810BD64(u16 a0, u16 a1) +static void sub_810BD64(u16 a0, u16 a1) { u8 i; int y; @@ -491,10 +519,7 @@ void sub_810BD64(u16 a0, u16 a1) } } -s16 sub_810CA9C(const struct Pokeblock *, u8); -u8 sub_810C9E8(struct Pokeblock *); - -void sub_810BDAC(bool8 flag) +static void sub_810BDAC(bool8 flag) { u8 i; u16 v0; @@ -556,20 +581,14 @@ void sub_810BDAC(bool8 flag) } } -void sub_810C8D4(struct Sprite *); - -void sub_810BF38(bool8 flag) +static void sub_810BF38(bool8 flag) { PlaySE(SE_SELECT); gSprites[ewram[0x1fffe]].callback = sub_810C8D4; sub_810BDAC(flag); } -void sub_810C0C8(u8); -void sub_810C31C(u8); -void sub_810C368(u8); - -void sub_810BF7C(u8 taskId) +static void sub_810BF7C(u8 taskId) { if (!gPaletteFade.active) { @@ -635,10 +654,7 @@ void sub_810BF7C(u8 taskId) } } -void sub_810C1C8(u8, u8); -void sub_810C23C(u8); - -void sub_810C0C8(u8 taskId) +static void sub_810C0C8(u8 taskId) { if (gMain.newAndRepeatedKeys & DPAD_UP) { @@ -692,7 +708,7 @@ void sub_810C0C8(u8 taskId) } } -void sub_810C1C8(u8 taskId, u8 flag) +static void sub_810C1C8(u8 taskId, u8 flag) { u8 i; u32 x; @@ -713,7 +729,7 @@ void sub_810C1C8(u8 taskId, u8 flag) } } -void sub_810C23C(u8 taskId) +static void sub_810C23C(u8 taskId) { struct Pokeblock buf; u8 selidx = gUnknown_02039248[1] + gUnknown_02039248[0]; @@ -731,14 +747,14 @@ void sub_810C23C(u8 taskId) } } -void sub_810C2B0(void) +static void sub_810C2B0(void) { DestroyVerticalScrollIndicator(0); DestroyVerticalScrollIndicator(1); BuyMenuFreeMemory(); } -void sub_810C2C8(u8 taskId) +static void sub_810C2C8(u8 taskId) { if (!gPaletteFade.active) { @@ -752,7 +768,7 @@ void sub_810C2C8(u8 taskId) } } -void sub_810C31C(u8 taskId) +static void sub_810C31C(u8 taskId) { BeginNormalPaletteFade(-1, 0, 0, 16, 0); if (gUnknown_02039244 > 1) @@ -762,9 +778,7 @@ void sub_810C31C(u8 taskId) gTasks[taskId].func = sub_810C2C8; } -void sub_810C40C(u8); - -void sub_810C368(u8 taskId) +static void sub_810C368(u8 taskId) { int v0 = 0; if (gUnknown_02039244 > 1) @@ -779,7 +793,7 @@ void sub_810C368(u8 taskId) gTasks[taskId].func = sub_810C40C; } -void sub_810C40C(u8 taskId) +static void sub_810C40C(u8 taskId) { if (gMain.newAndRepeatedKeys & DPAD_UP) { @@ -809,9 +823,7 @@ void sub_810C40C(u8 taskId) } } -void sub_8136130(struct Pokeblock *, MainCallback); - -void sub_810C4C4(u8 taskId) +static void sub_810C4C4(u8 taskId) { if (!gPaletteFade.active) { @@ -821,15 +833,13 @@ void sub_810C4C4(u8 taskId) } } -void sub_810C508(u8 taskId) +static void sub_810C508(u8 taskId) { BeginNormalPaletteFade(-1, 0, 0, 16, 0); gTasks[taskId].func = sub_810C4C4; } -void sub_810C5EC(u8); - -void sub_810C540(u8 taskId) +static void sub_810C540(u8 taskId) { BasicInitMenuWindow(&gWindowConfig_81E6E50); HandleDestroyMenuCursors(); @@ -839,21 +849,19 @@ void sub_810C540(u8 taskId) DisplayItemMessageOnField(taskId, gStringVar4, sub_810C5EC, 0); } -void sub_810C5C0(u8 taskId) +static void sub_810C5C0(u8 taskId) { sub_80F979C(1, 1); gTasks[taskId].func = sub_810C540; } -void sub_810C5EC(u8 taskId) +static void sub_810C5EC(u8 taskId) { DisplayYesNoMenu(7, 6, 1); - DoYesNoFuncWithChoice(taskId, gUnknown_083F7F24); + DoYesNoFuncWithChoice(taskId, &gUnknown_083F7F24); } -void sub_810C704(u8); - -void sub_810C610(u8 taskId) +static void sub_810C610(u8 taskId) { MenuZeroFillWindowRect(7, 6, 13, 11); sub_810CA6C((gUnknown_02039248[0] + gUnknown_02039248[1])); @@ -863,7 +871,7 @@ void sub_810C610(u8 taskId) sub_810BD08(); } -void sub_810C668(u8 taskId) +static void sub_810C668(u8 taskId) { StartVerticalScrollIndicators(0); StartVerticalScrollIndicators(1); @@ -877,7 +885,7 @@ void sub_810C668(u8 taskId) gTasks[taskId].func = sub_810BF7C; } -void sub_810C6DC(u8 taskId) +static void sub_810C6DC(u8 taskId) { if (gMain.newKeys & A_BUTTON || gMain.newKeys & B_BUTTON) { @@ -885,7 +893,7 @@ void sub_810C6DC(u8 taskId) } } -void sub_810C704(u8 taskId) +static void sub_810C704(u8 taskId) { BasicInitMenuWindow(&gWindowConfig_81E6E34); sub_810BC84(gUnknown_02039248[1]); @@ -893,7 +901,7 @@ void sub_810C704(u8 taskId) gTasks[taskId].func = sub_810C6DC; } -void sub_810C748(u8 taskId) +static void sub_810C748(u8 taskId) { StartVerticalScrollIndicators(0); StartVerticalScrollIndicators(1); @@ -902,7 +910,7 @@ void sub_810C748(u8 taskId) gTasks[taskId].func = sub_810BF7C; } -void sub_810C788(u8 taskId) +static void sub_810C788(u8 taskId) { s16 v0 = sub_810CAE4(GetNature(&gEnemyParty[0]), &gSaveBlock1.pokeblocks[gScriptItemId]); StringCopy(gBattleTextBuff1, gPokeblockNames[gSaveBlock1.pokeblocks[gScriptItemId].color]); @@ -924,7 +932,7 @@ void sub_810C788(u8 taskId) gTasks[taskId].func = sub_810C2C8; } -void sub_810C854(u8 taskId) +static void sub_810C854(u8 taskId) { SafariZoneActivatePokeblockFeeder(gScriptItemId); StringCopy(gStringVar1, gPokeblockNames[gSaveBlock1.pokeblocks[gScriptItemId].color]); @@ -934,7 +942,7 @@ void sub_810C854(u8 taskId) gTasks[taskId].func = sub_810C2C8; } -void sub_810C8D4(struct Sprite *sprite) +static void sub_810C8D4(struct Sprite *sprite) { if (sprite->data0 > 1) { @@ -962,7 +970,7 @@ void sub_810C8D4(struct Sprite *sprite) } } -void ClearPokeblock(u8 pokeblockIdx) +static void ClearPokeblock(u8 pokeblockIdx) { gSaveBlock1.pokeblocks[pokeblockIdx].color = 0; gSaveBlock1.pokeblocks[pokeblockIdx].spicy = 0; -- cgit v1.2.3 From 496fd707b7527382bf97bb08a94ea1d78d543d8e Mon Sep 17 00:00:00 2001 From: scnorton Date: Wed, 28 Jun 2017 14:45:38 -0400 Subject: Remove excess declarations of gScriptItemId --- src/battle_anim_8137220.c | 2 +- src/battle_party_menu.c | 2 +- src/berry.c | 2 +- src/berry_tag_screen.c | 2 +- src/item_use.c | 1 - src/link.c | 2 +- src/party_menu.c | 2 +- src/pokeblock.c | 1 + 8 files changed, 7 insertions(+), 7 deletions(-) (limited to 'src') diff --git a/src/battle_anim_8137220.c b/src/battle_anim_8137220.c index 42d6cb8da..bb181d5fb 100644 --- a/src/battle_anim_8137220.c +++ b/src/battle_anim_8137220.c @@ -12,6 +12,7 @@ #include "songs.h" #include "sound.h" #include "sprite.h" +#include "item_use.h" #include "string_util.h" #include "task.h" #include "text.h" @@ -33,7 +34,6 @@ extern u8 gBattleBufferA[][0x200]; extern u8 gObjectBankIDs[]; extern MainCallback gPreBattleCallback1; extern bool8 gDoingBattleAnim; -extern u16 gScriptItemId; extern u16 gBattlePartyID[]; extern u8 gHealthboxIDs[]; extern u16 gBattleTypeFlags; diff --git a/src/battle_party_menu.c b/src/battle_party_menu.c index cf572642e..73b847713 100644 --- a/src/battle_party_menu.c +++ b/src/battle_party_menu.c @@ -2,6 +2,7 @@ #include "battle_party_menu.h" #include "battle.h" #include "item_menu.h" +#include "item_use.h" #include "main.h" #include "menu.h" #include "menu_helpers.h" @@ -55,7 +56,6 @@ extern void nullsub_14(); extern void OpenPartyMenu(); extern u8 sub_803FBBC(void); -extern u16 gScriptItemId; extern u8 gPlayerPartyCount; extern u8 gNoOfAllBanks; extern u16 gBattlePartyID[]; diff --git a/src/berry.c b/src/berry.c index d6fbb955e..fa15672e7 100644 --- a/src/berry.c +++ b/src/berry.c @@ -5,6 +5,7 @@ #include "fieldmap.h" #include "item.h" #include "item_menu.h" +#include "item_use.h" #include "items.h" #include "main.h" #include "rng.h" @@ -974,7 +975,6 @@ const struct Berry gBerries[] = const struct BerryTree gBlankBerryTree = {0}; extern u8 BerryTreeScript; -extern u16 gScriptItemId; extern u16 gScriptLastTalked; extern u16 gSpecialVar_0x8004; extern u16 gSpecialVar_0x8005; diff --git a/src/berry_tag_screen.c b/src/berry_tag_screen.c index 116ca2cca..0e81e4fec 100644 --- a/src/berry_tag_screen.c +++ b/src/berry_tag_screen.c @@ -5,6 +5,7 @@ #include "field_map_obj.h" #include "item_menu.h" #include "items.h" +#include "item_use.h" #include "main.h" #include "menu.h" #include "menu_helpers.h" @@ -35,7 +36,6 @@ struct BerryTagStatus extern struct Struct2000000 unk_2000000; extern u8 gUnknown_0203932C; extern struct BerryTagStatus gUnknown_0203932E; -extern u16 gScriptItemId; extern u16 gUnknown_030041B4; extern const struct CompressedSpriteSheet gUnknown_083C1F74; diff --git a/src/item_use.c b/src/item_use.c index a92161e9a..b906f91ad 100644 --- a/src/item_use.c +++ b/src/item_use.c @@ -50,7 +50,6 @@ extern u8 gUnknown_081A168F[]; extern u16 gBattlePartyID[]; -extern u16 gScriptItemId; extern u16 gBattleTypeFlags; static const u8 gSSTidalBetaString[] = _("この チケットで ふねに のりほうだい\nはやく のってみたいな"); diff --git a/src/link.c b/src/link.c index 363a8b494..5858ad8bf 100644 --- a/src/link.c +++ b/src/link.c @@ -4,6 +4,7 @@ #include "berry.h" #include "berry_blender.h" #include "hall_of_fame.h" +#include "item_use.h" #include "main.h" #include "menu.h" #include "palette.h" @@ -38,7 +39,6 @@ struct LinkTestBGInfo extern u8 unk_2000000[]; extern u8 unk_2004000[]; extern u16 gBattleTypeFlags; -extern u16 gScriptItemId; extern u16 word_3004858; diff --git a/src/party_menu.c b/src/party_menu.c index 99bbb5f83..1fcd2cdda 100644 --- a/src/party_menu.c +++ b/src/party_menu.c @@ -6,6 +6,7 @@ #include "data2.h" #include "event_data.h" #include "item.h" +#include "item_use.h" #include "mail_data.h" #include "main.h" #include "menu.h" @@ -78,7 +79,6 @@ extern u16 gUnknown_0202E8F8; extern u8 gUnknown_0202E8FA; extern u8 gLastFieldPokeMenuOpened; extern u8 gPlayerPartyCount; -extern u16 gScriptItemId; extern s32 gBattleMoveDamage; //extern const u16 gUnknown_083769A8[][6]; diff --git a/src/pokeblock.c b/src/pokeblock.c index a7c6daa8b..dec549bfa 100755 --- a/src/pokeblock.c +++ b/src/pokeblock.c @@ -19,6 +19,7 @@ #include "menu_helpers.h" #include "battle.h" #include "item_menu.h" +#include "item_use.h" #include "item.h" #include "items.h" #include "sound.h" -- cgit v1.2.3 From b73b15dc9c10ace5145e3d4b339ca833413a1522 Mon Sep 17 00:00:00 2001 From: scnorton Date: Wed, 28 Jun 2017 15:43:12 -0400 Subject: Decompile debug_sub_8120F98 --- src/pokeblock.c | 11 +++++++++++ 1 file changed, 11 insertions(+) (limited to 'src') diff --git a/src/pokeblock.c b/src/pokeblock.c index dec549bfa..b7fa5daa8 100755 --- a/src/pokeblock.c +++ b/src/pokeblock.c @@ -417,6 +417,17 @@ void sub_810BAF4(void) SetMainCallback2(sub_810B96C); } +#ifdef DEBUG +void debug_sub_8120F98(void) +{ + u8 i; + for (i=0; i<40 && gUnknown_083F7F9C[i].color != 0; i++) + { + gSaveBlock1.pokeblocks[i] = gUnknown_083F7F9C[i]; + } +} +#endif + static void sub_810BB0C(void) { BasicInitMenuWindow(&gWindowConfig_81E6E34); -- cgit v1.2.3