summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorscnorton <scnorton@biociphers.org>2017-06-28 11:33:39 -0400
committerscnorton <scnorton@biociphers.org>2017-06-28 11:33:39 -0400
commit0197921d32ac4af5a4290fa3bdcb65a275e8067c (patch)
treee2398d8636ceaa0b3590706dc84bd31b4634aabe
parentc6255560d7577edf6058171ba61331c7c6f78dfc (diff)
through sub_810C788
-rwxr-xr-xasm/pokeblock.s320
-rwxr-xr-xinclude/battle.h2
-rwxr-xr-xinclude/menu_helpers.h1
-rwxr-xr-xinclude/pokeblock.h2
-rw-r--r--src/mori_debug_menu.c2
-rwxr-xr-xsrc/pokeblock.c85
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;
+}