diff options
author | scnorton <scnorton@biociphers.org> | 2017-06-28 11:33:39 -0400 |
---|---|---|
committer | scnorton <scnorton@biociphers.org> | 2017-06-28 11:33:39 -0400 |
commit | 0197921d32ac4af5a4290fa3bdcb65a275e8067c (patch) | |
tree | e2398d8636ceaa0b3590706dc84bd31b4634aabe | |
parent | c6255560d7577edf6058171ba61331c7c6f78dfc (diff) |
through sub_810C788
-rwxr-xr-x | asm/pokeblock.s | 320 | ||||
-rwxr-xr-x | include/battle.h | 2 | ||||
-rwxr-xr-x | include/menu_helpers.h | 1 | ||||
-rwxr-xr-x | include/pokeblock.h | 2 | ||||
-rw-r--r-- | src/mori_debug_menu.c | 2 | ||||
-rwxr-xr-x | src/pokeblock.c | 85 |
6 files changed, 90 insertions, 322 deletions
diff --git a/asm/pokeblock.s b/asm/pokeblock.s index 5d04f40eb..2f0f42e51 100755 --- a/asm/pokeblock.s +++ b/asm/pokeblock.s @@ -6,326 +6,6 @@ .text - thumb_func_start sub_810C5C0 -sub_810C5C0: @ 810C5C0 - push {r4,lr} - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - movs r0, 0x1 - movs r1, 0x1 - bl sub_80F979C - ldr r1, _0810C5E4 @ =gTasks - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 3 - adds r0, r1 - ldr r1, _0810C5E8 @ =sub_810C540 - str r1, [r0] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0810C5E4: .4byte gTasks -_0810C5E8: .4byte sub_810C540 - thumb_func_end sub_810C5C0 - - thumb_func_start sub_810C5EC -sub_810C5EC: @ 810C5EC - push {r4,lr} - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - movs r0, 0x7 - movs r1, 0x6 - movs r2, 0x1 - bl DisplayYesNoMenu - ldr r1, _0810C60C @ =gUnknown_083F7F24 - adds r0, r4, 0 - bl DoYesNoFuncWithChoice - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0810C60C: .4byte gUnknown_083F7F24 - thumb_func_end sub_810C5EC - - thumb_func_start sub_810C610 -sub_810C610: @ 810C610 - push {r4,r5,lr} - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - movs r0, 0x7 - movs r1, 0x6 - movs r2, 0xD - movs r3, 0xB - bl MenuZeroFillWindowRect - ldr r1, _0810C658 @ =gUnknown_02039248 - ldrb r0, [r1, 0x1] - ldrb r1, [r1] - adds r0, r1 - lsls r0, 24 - lsrs r0, 24 - bl sub_810CA6C - ldr r5, _0810C65C @ =gStringVar4 - ldr r1, _0810C660 @ =gContestStatsText_WasThrownAway - adds r0, r5, 0 - bl StringExpandPlaceholders - ldr r2, _0810C664 @ =sub_810C704 - adds r0, r4, 0 - adds r1, r5, 0 - movs r3, 0 - bl DisplayItemMessageOnField - bl sub_810BC98 - bl sub_810BD08 - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_0810C658: .4byte gUnknown_02039248 -_0810C65C: .4byte gStringVar4 -_0810C660: .4byte gContestStatsText_WasThrownAway -_0810C664: .4byte sub_810C704 - thumb_func_end sub_810C610 - - thumb_func_start sub_810C668 -sub_810C668: @ 810C668 - push {r4,lr} - lsls r0, 24 - lsrs r4, r0, 24 - movs r0, 0 - bl StartVerticalScrollIndicators - movs r0, 0x1 - bl StartVerticalScrollIndicators - ldr r2, _0810C6CC @ =gUnknown_02039248 - ldrb r0, [r2, 0x2] - ldrb r1, [r2, 0x3] - cmp r0, r1 - bls _0810C698 - ldrb r0, [r2, 0x1] - ldrb r1, [r2, 0x3] - adds r0, r1 - ldrb r2, [r2, 0x2] - cmp r0, r2 - beq _0810C698 - movs r0, 0x1 - movs r1, 0 - bl sub_80F979C -_0810C698: - ldr r0, _0810C6D0 @ =gWindowConfig_81E6E50 - bl BasicInitMenuWindow - movs r0, 0x7 - movs r1, 0x6 - movs r2, 0xD - movs r3, 0xB - bl MenuZeroFillWindowRect - movs r0, 0 - movs r1, 0xE - movs r2, 0x1D - movs r3, 0x13 - bl MenuZeroFillWindowRect - ldr r1, _0810C6D4 @ =gTasks - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 3 - adds r0, r1 - ldr r1, _0810C6D8 @ =sub_810BF7C - str r1, [r0] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0810C6CC: .4byte gUnknown_02039248 -_0810C6D0: .4byte gWindowConfig_81E6E50 -_0810C6D4: .4byte gTasks -_0810C6D8: .4byte sub_810BF7C - thumb_func_end sub_810C668 - - thumb_func_start sub_810C6DC -sub_810C6DC: @ 810C6DC - push {lr} - lsls r0, 24 - lsrs r2, r0, 24 - ldr r0, _0810C700 @ =gMain - ldrh r1, [r0, 0x2E] - movs r0, 0x1 - ands r0, r1 - cmp r0, 0 - bne _0810C6F6 - movs r0, 0x2 - ands r0, r1 - cmp r0, 0 - beq _0810C6FC -_0810C6F6: - adds r0, r2, 0 - bl sub_810C668 -_0810C6FC: - pop {r0} - bx r0 - .align 2, 0 -_0810C700: .4byte gMain - thumb_func_end sub_810C6DC - - thumb_func_start sub_810C704 -sub_810C704: @ 810C704 - push {r4,lr} - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - ldr r0, _0810C738 @ =gWindowConfig_81E6E34 - bl BasicInitMenuWindow - ldr r0, _0810C73C @ =gUnknown_02039248 - ldrb r0, [r0, 0x1] - bl sub_810BC84 - movs r0, 0x1 - movs r1, 0x1 - bl sub_80F979C - ldr r1, _0810C740 @ =gTasks - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 3 - adds r0, r1 - ldr r1, _0810C744 @ =sub_810C6DC - str r1, [r0] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0810C738: .4byte gWindowConfig_81E6E34 -_0810C73C: .4byte gUnknown_02039248 -_0810C740: .4byte gTasks -_0810C744: .4byte sub_810C6DC - thumb_func_end sub_810C704 - - thumb_func_start sub_810C748 -sub_810C748: @ 810C748 - push {r4,lr} - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - movs r0, 0 - bl StartVerticalScrollIndicators - movs r0, 0x1 - bl StartVerticalScrollIndicators - bl HandleDestroyMenuCursors - movs r0, 0x7 - movs r1, 0x4 - movs r2, 0xD - movs r3, 0xB - bl MenuZeroFillWindowRect - ldr r1, _0810C780 @ =gTasks - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 3 - adds r0, r1 - ldr r1, _0810C784 @ =sub_810BF7C - str r1, [r0] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0810C780: .4byte gTasks -_0810C784: .4byte sub_810BF7C - thumb_func_end sub_810C748 - - thumb_func_start sub_810C788 -sub_810C788: @ 810C788 - push {r4-r7,lr} - mov r7, r8 - push {r7} - sub sp, 0x4 - lsls r0, 24 - lsrs r0, 24 - mov r8, r0 - ldr r0, _0810C834 @ =gEnemyParty - bl GetNature - lsls r0, 24 - lsrs r0, 24 - ldr r7, _0810C838 @ =gScriptItemId - ldrh r1, [r7] - lsls r1, 3 - ldr r5, _0810C83C @ =gSaveBlock1 + 0x7F8 - adds r1, r5 - bl sub_810CAE4 - adds r4, r0, 0 - lsls r4, 16 - lsrs r4, 16 - ldr r0, _0810C840 @ =gBattleTextBuff1 - ldr r2, _0810C844 @ =gPokeblockNames - ldr r1, _0810C848 @ =0xfffff808 - adds r5, r1 - ldrh r1, [r7] - lsls r1, 3 - adds r1, r5 - movs r6, 0xFF - lsls r6, 3 - adds r1, r6 - ldrb r1, [r1] - lsls r1, 2 - adds r1, r2 - ldr r1, [r1] - bl StringCopy - ldrb r0, [r7] - bl sub_810CA6C - ldrh r0, [r7] - lsls r0, 3 - adds r0, r5 - adds r0, r6 - ldrb r0, [r0] - lsls r0, 8 - strh r0, [r7] - lsls r4, 16 - asrs r4, 16 - cmp r4, 0 - bne _0810C7F4 - adds r0, 0x1 - strh r0, [r7] -_0810C7F4: - cmp r4, 0 - ble _0810C7FE - ldrh r0, [r7] - adds r0, 0x2 - strh r0, [r7] -_0810C7FE: - cmp r4, 0 - bge _0810C808 - ldrh r0, [r7] - adds r0, 0x3 - strh r0, [r7] -_0810C808: - movs r0, 0x1 - negs r0, r0 - movs r1, 0 - str r1, [sp] - movs r2, 0 - movs r3, 0x10 - bl BeginNormalPaletteFade - ldr r1, _0810C84C @ =gTasks - mov r2, r8 - lsls r0, r2, 2 - add r0, r8 - lsls r0, 3 - adds r0, r1 - ldr r1, _0810C850 @ =sub_810C2C8 - str r1, [r0] - add sp, 0x4 - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_0810C834: .4byte gEnemyParty -_0810C838: .4byte gScriptItemId -_0810C83C: .4byte gSaveBlock1 + 0x7F8 -_0810C840: .4byte gBattleTextBuff1 -_0810C844: .4byte gPokeblockNames -_0810C848: .4byte 0xfffff808 -_0810C84C: .4byte gTasks -_0810C850: .4byte sub_810C2C8 - thumb_func_end sub_810C788 - thumb_func_start sub_810C854 sub_810C854: @ 810C854 push {r4,r5,lr} diff --git a/include/battle.h b/include/battle.h index a480ca95e..6b81bbf19 100755 --- a/include/battle.h +++ b/include/battle.h @@ -225,6 +225,8 @@ extern u8 ewram[]; #define ewram17810 ((struct Struct2017810 *) (ewram + 0x17810)) #define ewram17840 (*(struct Struct2017840 *) (ewram + 0x17840)) +extern u8 gBattleTextBuff1[]; + // asm/battle_1.o void sub_800D6D4(); void sub_800D74C(); diff --git a/include/menu_helpers.h b/include/menu_helpers.h index 6146f0847..1df5053e7 100755 --- a/include/menu_helpers.h +++ b/include/menu_helpers.h @@ -25,5 +25,6 @@ void sub_80F98DC(int); void sub_80F996C(u8); void LoadScrollIndicatorPalette(void); void sub_80F98A4(u8); +void StartVerticalScrollIndicators(u8); #endif // GUARD_MENU_HELPERS_H diff --git a/include/pokeblock.h b/include/pokeblock.h index 6fdb67369..008734a69 100755 --- a/include/pokeblock.h +++ b/include/pokeblock.h @@ -15,7 +15,7 @@ extern const u8 *gUnknown_03000758; void sub_810B96C(void); void sub_810BA7C(u8); void ClearPokeblocks(void); -void sub_810CA6C(s32); +void sub_810CA6C(u8); s16 sub_810CAE4(u8, struct Pokeblock *); #endif // GUARD_POKEBLOCK_H 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; +} |