summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPikalaxALT <PikalaxALT@users.noreply.github.com>2019-06-23 22:00:47 -0400
committerGitHub <noreply@github.com>2019-06-23 22:00:47 -0400
commit5b7c34096cff301c4d74bb2e67a7164b66bcc5dd (patch)
tree6124fc5f2881ec5d698509101b407a36fdb934cd
parente0a5896de36da0bb83c3983df8b2f47d019a8896 (diff)
parent756f2c3a71c8f7e832a9e70a542210f549f4c61b (diff)
Merge pull request #74 from jiangzhengwenjz/misc
menu_helpers
-rw-r--r--asm/battle_message.s2
-rw-r--r--asm/berry_pouch.s8
-rw-r--r--asm/field_specials.s6
-rw-r--r--asm/item_menu.s14
-rw-r--r--asm/link_rfu.s2
-rw-r--r--asm/mail_data.s8
-rw-r--r--asm/menu.s6
-rw-r--r--asm/menu_helpers.s628
-rw-r--r--asm/new_menu_helpers.s4
-rw-r--r--asm/overworld.s16
-rw-r--r--asm/party_menu.s34
-rw-r--r--asm/pokemon_storage_system.s16
-rw-r--r--asm/pokemon_summary_screen.s4
-rw-r--r--asm/shop.s6
-rw-r--r--asm/start_menu.s4
-rw-r--r--asm/trade.s2
-rw-r--r--include/field_specials.h3
-rw-r--r--include/link.h1
-rw-r--r--include/mail_data.h2
-rw-r--r--include/menu.h6
-rw-r--r--include/menu_helpers.h10
-rw-r--r--include/overworld.h3
-rw-r--r--ld_script.txt4
-rw-r--r--src/field_special_scene.c26
-rw-r--r--src/item_pc.c6
-rw-r--r--src/menu_helpers.c251
-rw-r--r--src/mystery_event_script.c2
-rw-r--r--src/scrcmd.c4
-rw-r--r--src/teachy_tv.c8
-rw-r--r--src/tm_case.c6
-rw-r--r--sym_ewram.txt10
31 files changed, 376 insertions, 726 deletions
diff --git a/asm/battle_message.s b/asm/battle_message.s
index 9505d542b..efd7e1385 100644
--- a/asm/battle_message.s
+++ b/asm/battle_message.s
@@ -2683,7 +2683,7 @@ _080D87F2:
ands r0, r1
cmp r0, 0
beq _080D881C
- bl sub_80CBE00
+ bl ContextNpcGetTextColor
lsls r0, 24
lsrs r0, 24
mov r2, sp
diff --git a/asm/berry_pouch.s b/asm/berry_pouch.s
index ab157ab99..67d189a12 100644
--- a/asm/berry_pouch.s
+++ b/asm/berry_pouch.s
@@ -183,7 +183,7 @@ _0813CE84:
.4byte _0813CFB0
.4byte _0813CFBE
_0813CED0:
- bl VblankHblankHandlerSetZero
+ bl SetVBlankHBlankCallbacksToNull
bl clear_scheduled_bg_copies_to_vram
b _0813CFD2
_0813CEDA:
@@ -386,7 +386,7 @@ _0813D078: .4byte gUnknown_203F370
thumb_func_start sub_813D07C
sub_813D07C: @ 813D07C
push {r4,lr}
- bl InitBgReg
+ bl ResetAllBgsCoordinatesAndBgCntRegs
ldr r4, _0813D0DC @ =gUnknown_203F36C
ldr r0, [r4]
adds r0, 0xC
@@ -2338,7 +2338,7 @@ sub_813E010: @ 813E010
adds r0, r4, 0
adds r0, 0x10
ldrh r1, [r4, 0x4]
- bl sub_80BF848
+ bl AdjustQuantityAccordingToDPadInput
lsls r0, 24
lsrs r0, 24
cmp r0, 0x1
@@ -3091,7 +3091,7 @@ sub_813E690: @ 813E690
adds r0, r5, 0
adds r0, 0x10
ldrh r1, [r5, 0x4]
- bl sub_80BF848
+ bl AdjustQuantityAccordingToDPadInput
lsls r0, 24
lsrs r0, 24
cmp r0, 0x1
diff --git a/asm/field_specials.s b/asm/field_specials.s
index fcec338e7..ad1806d2e 100644
--- a/asm/field_specials.s
+++ b/asm/field_specials.s
@@ -3150,8 +3150,8 @@ _080CBDF8: .4byte gSelectedEventObject
_080CBDFC: .4byte gUnknown_20370DA
thumb_func_end sub_80CBDE8
- thumb_func_start sub_80CBE00
-sub_80CBE00: @ 80CBE00
+ thumb_func_start ContextNpcGetTextColor
+ContextNpcGetTextColor: @ 80CBE00
push {lr}
ldr r0, _080CBE18 @ =gUnknown_20370DA
ldrh r0, [r0]
@@ -3192,7 +3192,7 @@ _080CBE48:
bx r1
.align 2, 0
_080CBE4C: .4byte gMapObjects
- thumb_func_end sub_80CBE00
+ thumb_func_end ContextNpcGetTextColor
thumb_func_start sub_80CBE50
sub_80CBE50: @ 80CBE50
diff --git a/asm/item_menu.s b/asm/item_menu.s
index bdefc393f..4e4c2ebfd 100644
--- a/asm/item_menu.s
+++ b/asm/item_menu.s
@@ -253,7 +253,7 @@ _08107F60:
.4byte _081080D8
.4byte _081080DE
_08107FB0:
- bl VblankHblankHandlerSetZero
+ bl SetVBlankHBlankCallbacksToNull
bl clear_scheduled_bg_copies_to_vram
b _08108104
_08107FBA:
@@ -520,7 +520,7 @@ _081081CC: .4byte gUnknown_203AD1C
thumb_func_start sub_81081D0
sub_81081D0: @ 81081D0
push {r4,r5,lr}
- bl InitBgReg
+ bl ResetAllBgsCoordinatesAndBgCntRegs
ldr r5, _08108230 @ =gUnknown_203AD14
movs r4, 0x80
lsls r4, 4
@@ -3551,7 +3551,7 @@ _081099EC:
strb r0, [r4]
ldr r0, _08109A10 @ =gSpecialVar_ItemId
ldrh r0, [r0]
- bl itemid_is_mail
+ bl ItemIsMail
lsls r0, 24
lsrs r0, 24
cmp r0, 0x1
@@ -4035,7 +4035,7 @@ sub_8109DEC: @ 8109DEC
adds r0, r4, 0
adds r0, 0x10
ldrh r1, [r4, 0x4]
- bl sub_80BF848
+ bl AdjustQuantityAccordingToDPadInput
lsls r0, 24
lsrs r0, 24
cmp r0, 0x1
@@ -4817,7 +4817,7 @@ sub_810A468: @ 810A468
lsrs r4, r0, 16
adds r6, r4, 0
adds r0, r4, 0
- bl itemid_is_mail
+ bl ItemIsMail
lsls r0, 24
lsrs r0, 24
cmp r0, 0x1
@@ -5296,7 +5296,7 @@ sub_810A85C: @ 810A85C
adds r0, r5, 0
adds r0, 0x10
ldrh r1, [r5, 0x4]
- bl sub_80BF848
+ bl AdjustQuantityAccordingToDPadInput
lsls r0, 24
lsrs r0, 24
cmp r0, 0x1
@@ -5659,7 +5659,7 @@ sub_810AB88: @ 810AB88
adds r0, r4, 0
adds r0, 0x10
ldrh r1, [r4, 0x4]
- bl sub_80BF848
+ bl AdjustQuantityAccordingToDPadInput
lsls r0, 24
lsrs r0, 24
cmp r0, 0x1
diff --git a/asm/link_rfu.s b/asm/link_rfu.s
index a1d543dd6..a2b6a20fc 100644
--- a/asm/link_rfu.s
+++ b/asm/link_rfu.s
@@ -3259,7 +3259,7 @@ sub_80FEC54: @ 80FEC54
push {r4,lr}
lsls r0, 24
lsrs r4, r0, 24
- bl is_c1_link_related_active
+ bl IsUpdateLinkStateCBActive
cmp r0, 0
bne _080FEC70
_080FEC62:
diff --git a/asm/mail_data.s b/asm/mail_data.s
index 421aaf452..e19c99e59 100644
--- a/asm/mail_data.s
+++ b/asm/mail_data.s
@@ -89,7 +89,7 @@ MonHasMail: @ 8097D08
bl GetMonData
lsls r0, 16
lsrs r0, 16
- bl itemid_is_mail
+ bl ItemIsMail
lsls r0, 24
cmp r0, 0
beq _08097D30
@@ -605,8 +605,8 @@ _080980E8:
bx r1
thumb_func_end sub_809803C
- thumb_func_start itemid_is_mail
-itemid_is_mail: @ 80980F8
+ thumb_func_start ItemIsMail
+ItemIsMail: @ 80980F8
push {lr}
lsls r0, 16
lsrs r0, 16
@@ -621,6 +621,6 @@ _0809810A:
_0809810C:
pop {r1}
bx r1
- thumb_func_end itemid_is_mail
+ thumb_func_end ItemIsMail
.align 2, 0 @ Don't pad with nop.
diff --git a/asm/menu.s b/asm/menu.s
index 2229f41d8..c8e823fc1 100644
--- a/asm/menu.s
+++ b/asm/menu.s
@@ -5,8 +5,8 @@
.text
- thumb_func_start sub_810EDC4
-sub_810EDC4: @ 810EDC4
+ thumb_func_start DrawDialogFrameWithCustomTileAndPalette
+DrawDialogFrameWithCustomTileAndPalette: @ 810EDC4
push {r4,r5,lr}
adds r4, r1, 0
lsls r0, 24
@@ -38,7 +38,7 @@ _0810EDFA:
_0810EE00: .4byte gUnknown_203ADF0
_0810EE04: .4byte gUnknown_203ADF2
_0810EE08: .4byte sub_810EE5C
- thumb_func_end sub_810EDC4
+ thumb_func_end DrawDialogFrameWithCustomTileAndPalette
thumb_func_start sub_810EE0C
sub_810EE0C: @ 810EE0C
diff --git a/asm/menu_helpers.s b/asm/menu_helpers.s
deleted file mode 100644
index e68c428cd..000000000
--- a/asm/menu_helpers.s
+++ /dev/null
@@ -1,628 +0,0 @@
- .include "asm/macros.inc"
- .include "constants/constants.inc"
-
- .syntax unified
-
- .text
-
- thumb_func_start DisplayMessageAndContinueTask
-DisplayMessageAndContinueTask: @ 80BF474
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- sub sp, 0x10
- ldr r4, [sp, 0x28]
- ldr r5, [sp, 0x2C]
- lsls r0, 24
- lsrs r0, 24
- mov r8, r0
- lsls r1, 24
- lsrs r1, 24
- adds r6, r1, 0
- lsls r2, 16
- lsrs r2, 16
- lsls r3, 24
- lsrs r3, 24
- lsls r4, 24
- lsrs r7, r4, 24
- lsls r5, 24
- lsrs r5, 24
- ldr r0, _080BF500 @ =gUnknown_20399D0
- strb r6, [r0]
- adds r0, r6, 0
- movs r1, 0x1
- bl sub_810EDC4
- ldr r4, _080BF504 @ =gStringVar4
- ldr r0, [sp, 0x30]
- cmp r0, r4
- beq _080BF4B8
- adds r0, r4, 0
- ldr r1, [sp, 0x30]
- bl StringExpandPlaceholders
-_080BF4B8:
- ldr r2, _080BF508 @ =gTextFlags
- ldrb r0, [r2]
- movs r1, 0x1
- orrs r0, r1
- strb r0, [r2]
- movs r0, 0
- str r0, [sp]
- movs r0, 0x2
- str r0, [sp, 0x4]
- movs r0, 0x1
- str r0, [sp, 0x8]
- movs r0, 0x3
- str r0, [sp, 0xC]
- adds r0, r6, 0
- adds r1, r7, 0
- adds r2, r4, 0
- adds r3, r5, 0
- bl AddTextPrinterParameterized2
- ldr r1, _080BF50C @ =gUnknown_20399CC
- ldr r0, [sp, 0x34]
- str r0, [r1]
- ldr r1, _080BF510 @ =gTasks
- mov r2, r8
- lsls r0, r2, 2
- add r0, r8
- lsls r0, 3
- adds r0, r1
- ldr r1, _080BF514 @ =Task_ContinueTaskAfterMessagePrints
- str r1, [r0]
- add sp, 0x10
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080BF500: .4byte gUnknown_20399D0
-_080BF504: .4byte gStringVar4
-_080BF508: .4byte gTextFlags
-_080BF50C: .4byte gUnknown_20399CC
-_080BF510: .4byte gTasks
-_080BF514: .4byte Task_ContinueTaskAfterMessagePrints
- thumb_func_end DisplayMessageAndContinueTask
-
- thumb_func_start sub_80BF518
-sub_80BF518: @ 80BF518
- push {r4,lr}
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- bl RunTextPrinters
- adds r0, r4, 0
- bl IsTextPrinterActive
- lsls r0, 16
- lsrs r0, 16
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_80BF518
-
- thumb_func_start Task_ContinueTaskAfterMessagePrints
-Task_ContinueTaskAfterMessagePrints: @ 80BF534
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r0, _080BF558 @ =gUnknown_20399D0
- ldrb r0, [r0]
- bl sub_80BF518
- lsls r0, 16
- cmp r0, 0
- bne _080BF552
- ldr r0, _080BF55C @ =gUnknown_20399CC
- ldr r1, [r0]
- adds r0, r4, 0
- bl _call_via_r1
-_080BF552:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080BF558: .4byte gUnknown_20399D0
-_080BF55C: .4byte gUnknown_20399CC
- thumb_func_end Task_ContinueTaskAfterMessagePrints
-
- thumb_func_start sub_80BF560
-sub_80BF560: @ 80BF560
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- bl Menu_ProcessInputNoWrapClearOnChoose
- lsls r0, 24
- asrs r1, r0, 24
- cmp r1, 0
- beq _080BF586
- cmp r1, 0
- bgt _080BF580
- movs r0, 0x1
- negs r0, r0
- cmp r1, r0
- beq _080BF5A8
- b _080BF5C0
-_080BF580:
- cmp r1, 0x1
- beq _080BF5A8
- b _080BF5C0
-_080BF586:
- movs r0, 0x5
- bl PlaySE
- ldr r1, _080BF5A0 @ =gTasks
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r0, r1
- ldr r1, _080BF5A4 @ =gUnknown_20399C8
- ldr r1, [r1]
- ldr r1, [r1]
- b _080BF5BE
- .align 2, 0
-_080BF5A0: .4byte gTasks
-_080BF5A4: .4byte gUnknown_20399C8
-_080BF5A8:
- movs r0, 0x5
- bl PlaySE
- ldr r1, _080BF5C8 @ =gTasks
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r0, r1
- ldr r1, _080BF5CC @ =gUnknown_20399C8
- ldr r1, [r1]
- ldr r1, [r1, 0x4]
-_080BF5BE:
- str r1, [r0]
-_080BF5C0:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080BF5C8: .4byte gTasks
-_080BF5CC: .4byte gUnknown_20399C8
- thumb_func_end sub_80BF560
-
- thumb_func_start CreateYesNoMenuWithCallbacks
-CreateYesNoMenuWithCallbacks: @ 80BF5D0
- push {r4-r7,lr}
- sub sp, 0xC
- adds r6, r0, 0
- adds r0, r1, 0
- adds r1, r2, 0
- adds r2, r3, 0
- ldr r3, [sp, 0x20]
- ldr r4, [sp, 0x24]
- ldr r5, [sp, 0x28]
- ldr r7, [sp, 0x2C]
- lsls r6, 24
- lsrs r6, 24
- lsls r1, 24
- lsrs r1, 24
- lsls r2, 24
- lsrs r2, 24
- lsls r3, 24
- lsrs r3, 24
- lsls r4, 16
- lsrs r4, 16
- lsls r5, 24
- lsrs r5, 24
- str r4, [sp]
- str r5, [sp, 0x4]
- movs r4, 0
- str r4, [sp, 0x8]
- bl CreateYesNoMenu
- ldr r0, _080BF624 @ =gUnknown_20399C8
- str r7, [r0]
- ldr r1, _080BF628 @ =gTasks
- lsls r0, r6, 2
- adds r0, r6
- lsls r0, 3
- adds r0, r1
- ldr r1, _080BF62C @ =sub_80BF560
- str r1, [r0]
- add sp, 0xC
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080BF624: .4byte gUnknown_20399C8
-_080BF628: .4byte gTasks
-_080BF62C: .4byte sub_80BF560
- thumb_func_end CreateYesNoMenuWithCallbacks
-
- thumb_func_start GetLRKeysState
-GetLRKeysState: @ 80BF630
- push {lr}
- ldr r0, _080BF650 @ =gSaveBlock2Ptr
- ldr r0, [r0]
- ldrb r0, [r0, 0x13]
- cmp r0, 0x1
- bne _080BF666
- ldr r0, _080BF654 @ =gMain
- ldrh r1, [r0, 0x2E]
- movs r0, 0x80
- lsls r0, 2
- ands r0, r1
- cmp r0, 0
- beq _080BF658
- movs r0, 0x1
- b _080BF668
- .align 2, 0
-_080BF650: .4byte gSaveBlock2Ptr
-_080BF654: .4byte gMain
-_080BF658:
- movs r0, 0x80
- lsls r0, 1
- ands r0, r1
- cmp r0, 0
- beq _080BF666
- movs r0, 0x2
- b _080BF668
-_080BF666:
- movs r0, 0
-_080BF668:
- pop {r1}
- bx r1
- thumb_func_end GetLRKeysState
-
- thumb_func_start sub_80BF66C
-sub_80BF66C: @ 80BF66C
- push {lr}
- ldr r0, _080BF68C @ =gSaveBlock2Ptr
- ldr r0, [r0]
- ldrb r0, [r0, 0x13]
- cmp r0, 0x1
- bne _080BF6A2
- ldr r0, _080BF690 @ =gMain
- ldrh r1, [r0, 0x30]
- movs r0, 0x80
- lsls r0, 2
- ands r0, r1
- cmp r0, 0
- beq _080BF694
- movs r0, 0x1
- b _080BF6A4
- .align 2, 0
-_080BF68C: .4byte gSaveBlock2Ptr
-_080BF690: .4byte gMain
-_080BF694:
- movs r0, 0x80
- lsls r0, 1
- ands r0, r1
- cmp r0, 0
- beq _080BF6A2
- movs r0, 0x2
- b _080BF6A4
-_080BF6A2:
- movs r0, 0
-_080BF6A4:
- pop {r1}
- bx r1
- thumb_func_end sub_80BF66C
-
- thumb_func_start sub_80BF6A8
-sub_80BF6A8: @ 80BF6A8
- push {lr}
- lsls r0, 16
- lsrs r0, 16
- cmp r0, 0xAF
- bne _080BF6D0
- ldr r0, _080BF6CC @ =gSaveBlock1Ptr
- ldr r0, [r0]
- ldrh r1, [r0, 0x4]
- movs r0, 0x80
- lsls r0, 1
- cmp r1, r0
- beq _080BF6C8
- bl InUnionRoom
- cmp r0, 0x1
- bne _080BF6D0
-_080BF6C8:
- movs r0, 0
- b _080BF6D2
- .align 2, 0
-_080BF6CC: .4byte gSaveBlock1Ptr
-_080BF6D0:
- movs r0, 0x1
-_080BF6D2:
- pop {r1}
- bx r1
- thumb_func_end sub_80BF6A8
-
- thumb_func_start itemid_80BF6D8_mail_related
-itemid_80BF6D8_mail_related: @ 80BF6D8
- push {r4,lr}
- lsls r0, 16
- lsrs r4, r0, 16
- bl is_c1_link_related_active
- cmp r0, 0x1
- beq _080BF6EE
- bl InUnionRoom
- cmp r0, 0x1
- bne _080BF700
-_080BF6EE:
- adds r0, r4, 0
- bl itemid_is_mail
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _080BF700
- movs r0, 0
- b _080BF702
-_080BF700:
- movs r0, 0x1
-_080BF702:
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end itemid_80BF6D8_mail_related
-
- thumb_func_start MenuHelpers_LinkSomething
-MenuHelpers_LinkSomething: @ 80BF708
- push {lr}
- bl is_c1_link_related_active
- cmp r0, 0x1
- beq _080BF71A
- ldr r0, _080BF720 @ =gReceivedRemoteLinkPlayers
- ldrb r0, [r0]
- cmp r0, 0x1
- bne _080BF724
-_080BF71A:
- movs r0, 0x1
- b _080BF726
- .align 2, 0
-_080BF720: .4byte gReceivedRemoteLinkPlayers
-_080BF724:
- movs r0, 0
-_080BF726:
- pop {r1}
- bx r1
- thumb_func_end MenuHelpers_LinkSomething
-
- thumb_func_start sub_80BF72C
-sub_80BF72C: @ 80BF72C
- push {lr}
- bl MenuHelpers_LinkSomething
- lsls r0, 24
- cmp r0, 0
- beq _080BF742
- bl sub_8058244
- lsls r0, 24
- lsrs r0, 24
- b _080BF744
-_080BF742:
- movs r0, 0
-_080BF744:
- pop {r1}
- bx r1
- thumb_func_end sub_80BF72C
-
- thumb_func_start sub_80BF748
-sub_80BF748: @ 80BF748
- push {lr}
- bl sub_80BF72C
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- beq _080BF75E
- bl sub_800B270
- cmp r0, 0x1
- bne _080BF762
-_080BF75E:
- movs r0, 0x1
- b _080BF764
-_080BF762:
- movs r0, 0
-_080BF764:
- pop {r1}
- bx r1
- thumb_func_end sub_80BF748
-
- thumb_func_start VblankHblankHandlerSetZero
-VblankHblankHandlerSetZero: @ 80BF768
- push {lr}
- movs r0, 0
- bl SetVBlankCallback
- movs r0, 0
- bl SetHBlankCallback
- pop {r0}
- bx r0
- thumb_func_end VblankHblankHandlerSetZero
-
- thumb_func_start sub_80BF77C
-sub_80BF77C: @ 80BF77C
- push {r4,lr}
- sub sp, 0xC
- bl InitBgReg
- mov r1, sp
- movs r0, 0
- strh r0, [r1]
- movs r1, 0xC0
- lsls r1, 19
- ldr r2, _080BF7BC @ =0x0100c000
- mov r0, sp
- bl CpuSet
- movs r4, 0
- str r4, [sp, 0x4]
- add r0, sp, 0x4
- movs r1, 0xE0
- lsls r1, 19
- ldr r2, _080BF7C0 @ =0x05000100
- bl CpuSet
- add r0, sp, 0x8
- strh r4, [r0]
- movs r1, 0xA0
- lsls r1, 19
- ldr r2, _080BF7C4 @ =0x01000200
- bl CpuSet
- add sp, 0xC
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080BF7BC: .4byte 0x0100c000
-_080BF7C0: .4byte 0x05000100
-_080BF7C4: .4byte 0x01000200
- thumb_func_end sub_80BF77C
-
- thumb_func_start InitBgReg
-InitBgReg: @ 80BF7C8
- push {lr}
- movs r0, 0
- movs r1, 0
- bl SetGpuReg
- movs r0, 0xE
- movs r1, 0
- bl SetGpuReg
- movs r0, 0xC
- movs r1, 0
- bl SetGpuReg
- movs r0, 0xA
- movs r1, 0
- bl SetGpuReg
- movs r0, 0x8
- movs r1, 0
- bl SetGpuReg
- movs r0, 0
- movs r1, 0
- movs r2, 0
- bl ChangeBgX
- movs r0, 0
- movs r1, 0
- movs r2, 0
- bl ChangeBgY
- movs r0, 0x1
- movs r1, 0
- movs r2, 0
- bl ChangeBgX
- movs r0, 0x1
- movs r1, 0
- movs r2, 0
- bl ChangeBgY
- movs r0, 0x2
- movs r1, 0
- movs r2, 0
- bl ChangeBgX
- movs r0, 0x2
- movs r1, 0
- movs r2, 0
- bl ChangeBgY
- movs r0, 0x3
- movs r1, 0
- movs r2, 0
- bl ChangeBgX
- movs r0, 0x3
- movs r1, 0
- movs r2, 0
- bl ChangeBgY
- pop {r0}
- bx r0
- thumb_func_end InitBgReg
-
- thumb_func_start sub_80BF848
-sub_80BF848: @ 80BF848
- push {r4-r6,lr}
- adds r2, r0, 0
- lsls r1, 16
- lsrs r1, 16
- adds r5, r1, 0
- ldrh r4, [r2]
- adds r6, r4, 0
- ldr r0, _080BF87C @ =gMain
- ldrh r0, [r0, 0x30]
- movs r3, 0xF0
- ands r3, r0
- cmp r3, 0x40
- bne _080BF880
- adds r0, r4, 0x1
- strh r0, [r2]
- movs r3, 0
- ldrsh r0, [r2, r3]
- cmp r0, r1
- ble _080BF872
- movs r0, 0x1
- strh r0, [r2]
-_080BF872:
- movs r0, 0
- ldrsh r1, [r2, r0]
-_080BF876:
- lsls r0, r4, 16
- b _080BF8CA
- .align 2, 0
-_080BF87C: .4byte gMain
-_080BF880:
- cmp r3, 0x80
- bne _080BF896
- subs r0, r4, 0x1
- strh r0, [r2]
- lsls r0, 16
- cmp r0, 0
- bgt _080BF890
- strh r1, [r2]
-_080BF890:
- movs r3, 0
- ldrsh r1, [r2, r3]
- b _080BF876
-_080BF896:
- cmp r3, 0x10
- bne _080BF8B0
- adds r0, r4, 0
- adds r0, 0xA
- strh r0, [r2]
- movs r1, 0
- ldrsh r0, [r2, r1]
- cmp r0, r5
- ble _080BF8AA
- strh r5, [r2]
-_080BF8AA:
- movs r3, 0
- ldrsh r1, [r2, r3]
- b _080BF876
-_080BF8B0:
- cmp r3, 0x20
- bne _080BF8DA
- adds r0, r4, 0
- subs r0, 0xA
- strh r0, [r2]
- lsls r0, 16
- cmp r0, 0
- bgt _080BF8C4
- movs r0, 0x1
- strh r0, [r2]
-_080BF8C4:
- movs r0, 0
- ldrsh r1, [r2, r0]
- lsls r0, r6, 16
-_080BF8CA:
- asrs r0, 16
- cmp r1, r0
- beq _080BF8DA
- movs r0, 0x5
- bl PlaySE
- movs r0, 0x1
- b _080BF8DC
-_080BF8DA:
- movs r0, 0
-_080BF8DC:
- pop {r4-r6}
- pop {r1}
- bx r1
- thumb_func_end sub_80BF848
-
- thumb_func_start sub_80BF8E4
-sub_80BF8E4: @ 80BF8E4
- push {lr}
- bl sub_80CBE00
- lsls r0, 24
- cmp r0, 0
- beq _080BF8F4
- movs r0, 0x5
- b _080BF8F6
-_080BF8F4:
- movs r0, 0x4
-_080BF8F6:
- pop {r1}
- bx r1
- thumb_func_end sub_80BF8E4
-
- .align 2, 0 @ Don't pad with nop.
diff --git a/asm/new_menu_helpers.s b/asm/new_menu_helpers.s
index 9efda4372..5e7b10e5b 100644
--- a/asm/new_menu_helpers.s
+++ b/asm/new_menu_helpers.s
@@ -814,7 +814,7 @@ sub_80F6D5C: @ 80F6D5C
ands r1, r2
orrs r1, r0
strb r1, [r3]
- bl sub_80CBE00
+ bl ContextNpcGetTextColor
lsls r0, 24
lsrs r0, 24
cmp r0, 0
@@ -2040,7 +2040,7 @@ _080F77A4:
adds r0, r4, 0
adds r1, r5, 0
movs r3, 0xF
- bl sub_810EDC4
+ bl DrawDialogFrameWithCustomTileAndPalette
pop {r4,r5}
pop {r0}
bx r0
diff --git a/asm/overworld.s b/asm/overworld.s
index ee0e8aa6d..62add03d2 100644
--- a/asm/overworld.s
+++ b/asm/overworld.s
@@ -3225,8 +3225,8 @@ sub_8056420: @ 8056420
bx r0
thumb_func_end sub_8056420
- thumb_func_start is_c1_link_related_active
-is_c1_link_related_active: @ 805642C
+ thumb_func_start IsUpdateLinkStateCBActive
+IsUpdateLinkStateCBActive: @ 805642C
push {lr}
ldr r0, _0805643C @ =gMain
ldr r1, [r0]
@@ -3243,7 +3243,7 @@ _08056444:
_08056446:
pop {r1}
bx r1
- thumb_func_end is_c1_link_related_active
+ thumb_func_end IsUpdateLinkStateCBActive
thumb_func_start sub_805644C
sub_805644C: @ 805644C
@@ -3662,7 +3662,7 @@ _080567D8: .4byte sub_80565B4
thumb_func_start CB2_ReturnToField
CB2_ReturnToField: @ 80567DC
push {lr}
- bl is_c1_link_related_active
+ bl IsUpdateLinkStateCBActive
cmp r0, 0x1
bne _080567F4
ldr r0, _080567F0 @ =c2_exit_to_overworld_2_link
@@ -6144,7 +6144,7 @@ _08057C72:
bl sub_805833C
cmp r0, 0x1
bls _08057CA8
- bl is_c1_link_related_active
+ bl IsUpdateLinkStateCBActive
cmp r0, 0x1
bne _08057CA8
bl sub_800A00C
@@ -6976,7 +6976,7 @@ _08058240: .4byte gUnknown_81BB9F0
thumb_func_start sub_8058244
sub_8058244: @ 8058244
push {lr}
- bl is_c1_link_related_active
+ bl IsUpdateLinkStateCBActive
cmp r0, 0
bne _08058252
movs r0, 0
@@ -7009,7 +7009,7 @@ sub_8058274: @ 8058274
bl sub_800B248
cmp r0, 0x1
bls _080582D8
- bl is_c1_link_related_active
+ bl IsUpdateLinkStateCBActive
cmp r0, 0x1
bne _080582D8
bl sub_800A00C
@@ -7062,7 +7062,7 @@ sub_80582E0: @ 80582E0
bl sub_805833C
cmp r0, 0x1
bls _08058304
- bl is_c1_link_related_active
+ bl IsUpdateLinkStateCBActive
cmp r0, 0x1
bne _08058304
bl sub_800A00C
diff --git a/asm/party_menu.s b/asm/party_menu.s
index 2c3623442..9042219e3 100644
--- a/asm/party_menu.s
+++ b/asm/party_menu.s
@@ -276,8 +276,8 @@ _0811EC24:
.4byte _0811EDD0
.4byte _0811EDDE
_0811EC80:
- bl VblankHblankHandlerSetZero
- bl sub_80BF77C
+ bl SetVBlankHBlankCallbacksToNull
+ bl ClearVramOamPltt
bl clear_scheduled_bg_copies_to_vram
b _0811EDFC
_0811EC8E:
@@ -565,7 +565,7 @@ _0811EEC8: .4byte gUnknown_203B0B8
thumb_func_start sub_811EECC
sub_811EECC: @ 811EECC
push {r4,r5,lr}
- bl InitBgReg
+ bl ResetAllBgsCoordinatesAndBgCntRegs
ldr r5, _0811EF34 @ =gUnknown_203B0BC
movs r4, 0x80
lsls r4, 4
@@ -3218,7 +3218,7 @@ sub_8120328: @ 8120328
lsrs r4, r0, 24
adds r5, r4, 0
movs r0, 0x6
- bl sub_80BF518
+ bl RunTextPrinters_CheckActive
lsls r0, 16
lsrs r0, 16
cmp r0, 0x1
@@ -3536,7 +3536,7 @@ sub_81205C8: @ 81205C8
lsrs r4, r5, 16
adds r7, r4, 0
adds r0, r4, 0
- bl itemid_is_mail
+ bl ItemIsMail
lsls r0, 24
lsrs r0, 24
cmp r0, 0x1
@@ -4529,7 +4529,7 @@ sub_8120D08: @ 8120D08
ldr r5, _08120D38 @ =gTasks+0x8
adds r0, r4, r5
ldrb r0, [r0]
- bl sub_80BF518
+ bl RunTextPrinters_CheckActive
lsls r0, 16
lsrs r0, 16
cmp r0, 0x1
@@ -4643,7 +4643,7 @@ sub_8120DE0: @ 8120DE0
ldr r6, _08120E14 @ =gTasks+0x8
adds r4, r5, r6
ldrb r0, [r4]
- bl sub_80BF518
+ bl RunTextPrinters_CheckActive
lsls r0, 16
lsrs r0, 16
cmp r0, 0x1
@@ -7031,7 +7031,7 @@ sub_81220D4: @ 81220D4
movs r1, 0x1
movs r2, 0x4F
movs r3, 0xE
- bl sub_810EDC4
+ bl DrawDialogFrameWithCustomTileAndPalette
ldr r1, _0812210C @ =gUnknown_8417457
adds r0, r4, 0
bl sub_8122084
@@ -7553,7 +7553,7 @@ sub_81224D0: @ 81224D0
.align 2, 0
_081224F4: .4byte gSprites
_081224F8:
- bl itemid_is_mail
+ bl ItemIsMail
lsls r0, 24
cmp r0, 0
beq _0812251C
@@ -7643,7 +7643,7 @@ _08122588:
adds r0, r7, r5
ldrb r4, [r0]
adds r0, r1, 0
- bl itemid_is_mail
+ bl ItemIsMail
adds r1, r0, 0
lsls r1, 24
lsrs r1, 24
@@ -7676,7 +7676,7 @@ _081225CC:
adds r0, r5, r7
ldrb r4, [r0, 0x6]
adds r0, r1, 0
- bl itemid_is_mail
+ bl ItemIsMail
adds r1, r0, 0
lsls r1, 24
lsrs r1, 24
@@ -8327,7 +8327,7 @@ _08122AB6:
bl GetMonData
lsls r0, 16
lsrs r0, 16
- bl itemid_is_mail
+ bl ItemIsMail
lsls r0, 24
cmp r0, 0
beq _08122AEC
@@ -9937,7 +9937,7 @@ _081237C4: .4byte gPlayerParty
_081237C8: .4byte sub_81238A4
_081237CC:
ldrh r0, [r6]
- bl itemid_is_mail
+ bl ItemIsMail
lsls r0, 24
cmp r0, 0
beq _081237F8
@@ -10165,7 +10165,7 @@ _081239A4: .4byte gTasks
_081239A8: .4byte sub_81203B8
_081239AC:
ldrh r0, [r5]
- bl itemid_is_mail
+ bl ItemIsMail
lsls r0, 24
cmp r0, 0
beq _081239EC
@@ -16736,7 +16736,7 @@ _08126F84: .4byte gUnknown_203B0A0
_08126F88: .4byte gPlayerParty
_08126F8C:
ldrh r0, [r5]
- bl itemid_is_mail
+ bl ItemIsMail
lsls r0, 24
cmp r0, 0
beq _08126FA0
@@ -16780,7 +16780,7 @@ sub_8126FD8: @ 8126FD8
lsrs r4, r0, 24
ldr r5, _08127004 @ =gUnknown_203B0A0
ldrh r0, [r5, 0xC]
- bl itemid_is_mail
+ bl ItemIsMail
lsls r0, 24
cmp r0, 0
beq _08127010
@@ -17135,7 +17135,7 @@ _081272C4: .4byte gUnknown_203B0D8
_081272C8: .4byte gStringVar4
_081272CC:
adds r0, r4, 0
- bl itemid_is_mail
+ bl ItemIsMail
lsls r0, 24
cmp r0, 0
beq _081272F0
diff --git a/asm/pokemon_storage_system.s b/asm/pokemon_storage_system.s
index 4c851f4cb..a4c77e32e 100644
--- a/asm/pokemon_storage_system.s
+++ b/asm/pokemon_storage_system.s
@@ -3377,7 +3377,7 @@ _0808D3DC:
ldr r1, _0808D40C @ =0x00000ce2
adds r0, r1
ldrh r0, [r0]
- bl itemid_is_mail
+ bl ItemIsMail
lsls r0, 24
cmp r0, 0
beq _0808D404
@@ -3491,7 +3491,7 @@ _0808D4D8:
ldr r1, _0808D504 @ =0x00000ce2
adds r0, r1
ldrh r0, [r0]
- bl itemid_is_mail
+ bl ItemIsMail
lsls r0, 24
cmp r0, 0
beq _0808D508
@@ -4109,7 +4109,7 @@ _0808DA20:
ldr r2, _0808DA54 @ =0x00000ce2
adds r0, r2
ldrh r0, [r0]
- bl itemid_is_mail
+ bl ItemIsMail
lsls r0, 24
cmp r0, 0
bne _0808DAA0
@@ -4154,7 +4154,7 @@ _0808DA90:
ldr r2, _0808DAA8 @ =0x00000ce2
adds r0, r1, r2
ldrh r0, [r0]
- bl itemid_is_mail
+ bl ItemIsMail
lsls r0, 24
cmp r0, 0
beq _0808DAAC
@@ -4971,7 +4971,7 @@ _0808E166:
ldr r1, _0808E17C @ =0x00000ce2
adds r0, r1
ldrh r0, [r0]
- bl itemid_is_mail
+ bl ItemIsMail
lsls r0, 24
cmp r0, 0
bne _0808E180
@@ -5275,7 +5275,7 @@ _0808E3FC:
ldr r1, _0808E418 @ =0x00000ce2
adds r0, r1
ldrh r0, [r0]
- bl itemid_is_mail
+ bl ItemIsMail
lsls r0, 24
cmp r0, 0
bne _0808E41C
@@ -18314,7 +18314,7 @@ _08094A48: .4byte gUnknown_20397B0
_08094A4C: .4byte 0x00000ce2
_08094A50:
ldrh r0, [r1]
- bl itemid_is_mail
+ bl ItemIsMail
lsls r0, 24
cmp r0, 0
bne _08094A68
@@ -18344,7 +18344,7 @@ _08094A70:
_08094A8C: .4byte 0x00000ce2
_08094A90:
ldrh r0, [r1]
- bl itemid_is_mail
+ bl ItemIsMail
lsls r0, 24
lsrs r0, 24
cmp r0, 0x1
diff --git a/asm/pokemon_summary_screen.s b/asm/pokemon_summary_screen.s
index 60062910c..301d7e0d7 100644
--- a/asm/pokemon_summary_screen.s
+++ b/asm/pokemon_summary_screen.s
@@ -8431,7 +8431,7 @@ _08138B48: .4byte 0x00003208
thumb_func_start sub_8138B4C
sub_8138B4C: @ 8138B4C
push {lr}
- bl is_c1_link_related_active
+ bl IsUpdateLinkStateCBActive
cmp r0, 0
bne _08138B84
bl sub_811FA20
@@ -13239,7 +13239,7 @@ _0813B16C:
_0813B190: .4byte 0x000032f4
_0813B194: .4byte 0x00003210
_0813B198:
- bl is_c1_link_related_active
+ bl IsUpdateLinkStateCBActive
cmp r0, 0
bne _0813B1C4
ldr r0, _0813B1C0 @ =gReceivedRemoteLinkPlayers
diff --git a/asm/shop.s b/asm/shop.s
index c59fb15df..370f8b296 100644
--- a/asm/shop.s
+++ b/asm/shop.s
@@ -23,7 +23,7 @@ sub_809AAB0: @ 809AAB0
strb r0, [r4, 0x16]
movs r0, 0
strh r0, [r4, 0xC]
- bl sub_80CBE00
+ bl ContextNpcGetTextColor
lsls r0, 24
cmp r0, 0
bne _0809AAF0
@@ -515,7 +515,7 @@ _0809AEA0: .4byte gTasks
_0809AEA4: .4byte sub_809AE00
_0809AEA8: .4byte sub_809ADE4
_0809AEAC:
- bl VblankHblankHandlerSetZero
+ bl SetVBlankHBlankCallbacksToNull
str r4, [sp, 0x8]
movs r1, 0xE0
lsls r1, 19
@@ -2365,7 +2365,7 @@ sub_809BD8C: @ 809BD8C
adds r0, r4, 0x2
ldr r6, _0809BDD0 @ =gUnknown_2039934
ldrh r1, [r6, 0x14]
- bl sub_80BF848
+ bl AdjustQuantityAccordingToDPadInput
lsls r0, 24
lsrs r0, 24
cmp r0, 0x1
diff --git a/asm/start_menu.s b/asm/start_menu.s
index 9dc9fbab6..cf06662d2 100644
--- a/asm/start_menu.s
+++ b/asm/start_menu.s
@@ -11,7 +11,7 @@ sub_806ED54: @ 806ED54
ldr r0, _0806ED6C @ =gUnknown_20370F5
movs r1, 0
strb r1, [r0]
- bl is_c1_link_related_active
+ bl IsUpdateLinkStateCBActive
cmp r0, 0x1
bne _0806ED70
bl sub_806EE34
@@ -634,7 +634,7 @@ _0806F254: .4byte gUnknown_20370F0
thumb_func_start ShowStartMenu
ShowStartMenu: @ 806F258
push {lr}
- bl is_c1_link_related_active
+ bl IsUpdateLinkStateCBActive
cmp r0, 0
bne _0806F26E
bl player_bitmagic
diff --git a/asm/trade.s b/asm/trade.s
index eac1fdea5..a45cedc3e 100644
--- a/asm/trade.s
+++ b/asm/trade.s
@@ -13984,7 +13984,7 @@ sub_8053B48: @ 8053B48
ldrh r0, [r5, 0x28]
cmp r0, 0
beq _08053CC0
- bl itemid_is_mail
+ bl ItemIsMail
lsls r0, 24
cmp r0, 0
beq _08053CB4
diff --git a/include/field_specials.h b/include/field_specials.h
index a12fee575..0e4fdd787 100644
--- a/include/field_specials.h
+++ b/include/field_specials.h
@@ -8,5 +8,8 @@ u8 CountDigits(u16 number);
void TV_PrintIntToStringVar(u8, int);
u16 ScrSpecial_GetStarter(void);
void sub_80CCB68(void);
+void nullsub_60(void);
+void nullsub_61(void);
+u8 ContextNpcGetTextColor(void);
#endif // GUARD_FIELD_SPECIALS_H
diff --git a/include/link.h b/include/link.h
index 33f04a42a..0ec32d8a0 100644
--- a/include/link.h
+++ b/include/link.h
@@ -206,5 +206,6 @@ void sub_800AA80(u8);
void sub_80098D8(void);
void CloseLink(void);
bool8 sub_800A4BC(void);
+bool32 sub_800B270(void);
#endif // GUARD_LINK_H
diff --git a/include/mail_data.h b/include/mail_data.h
index 0275d8dc6..79a4a7851 100644
--- a/include/mail_data.h
+++ b/include/mail_data.h
@@ -10,6 +10,6 @@
// Exported ROM declarations
u16 sub_80D45E8(u16, u16 *);
-bool8 itemid_is_mail(u16 itemId);
+bool8 ItemIsMail(u16 itemId);
#endif //GUARD_MAIL_DATA_H
diff --git a/include/menu.h b/include/menu.h
index fa8552484..bc45e7e61 100644
--- a/include/menu.h
+++ b/include/menu.h
@@ -2,10 +2,12 @@
#define GUARD_MENU_H
#include "global.h"
-
#include "text.h"
#include "window.h"
+#define MENU_NOTHING_CHOSEN -2
+#define MENU_B_PRESSED -1
+
struct MenuAction
{
const u8 *text;
@@ -45,7 +47,7 @@ void sub_810F71C(void);
void sub_810F740(void);
u8 ProgramAndPlaceMenuCursorOnWindow(u8 windowId, u8 fontId, u8 left, u8 top, u8 cursorHeight, u8 numChoices, u8 initialCursorPosition);
void CreateYesNoMenu(const struct WindowTemplate *, u8, u8, u8, u16, u8, u8);
-
+void DrawDialogFrameWithCustomTileAndPalette(u8 windowId, bool8 copyToVram, u16 a2, u8 a3);
void StartBlendTask(u8 eva_start, u8 evb_start, u8 eva_end, u8 evb_end, u8 ev_step, u8 priority);
bool8 IsBlendTaskActive(void);
void AddItemMenuActionTextPrinters(u8 windowId, u8 fontId, u8 left, u8 top, u8 letterSpacing, u8 lineHeight, u8 itemCount, const struct MenuAction *strs, const u8 *a8);
diff --git a/include/menu_helpers.h b/include/menu_helpers.h
index 25ef3252e..93a4fe5d3 100644
--- a/include/menu_helpers.h
+++ b/include/menu_helpers.h
@@ -19,14 +19,14 @@ void sub_812225C(u16 *, u16 *, u8, u8);
void sub_8122298(u16 *, u16 *, u8, u8, u8);
void sub_8121F68(u8 taskId, const struct YesNoFuncTable *data);
bool8 sub_81221AC(void);
-bool16 sub_80BF518(u8 textPrinterId);
+bool16 RunTextPrinters_CheckActive(u8 textPrinterId);
bool8 sub_80BF72C(void);
bool8 MenuHelpers_LinkSomething(void);
-void VblankHblankHandlerSetZero(void);
-void InitBgReg(void);
+void SetVBlankHBlankCallbacksToNull(void);
+void ResetAllBgsCoordinatesAndBgCntRegs(void);
u8 sub_80BF8E4(void);
-u8 sub_80BF848(s16 * a0, u16 a1);
+u8 AdjustQuantityAccordingToDPadInput(s16 * a0, u16 a1);
void DisplayMessageAndContinueTask(u8 taskId, u8 windowId, u16 arg2, u8 arg3, u8 fontId, u8 textSpeed, const u8 *string, void *taskFunc);
-void CreateYesNoMenuWithCallbacks(u8 taskId, const struct WindowTemplate * unk1, u8 unk2, u8 unk3, u8 unk4, u8 unk5, u8 unk6, const struct YesNoFuncTable *ptrs);
+void CreateYesNoMenuWithCallbacks(u8 taskId, const struct WindowTemplate *template, u8 arg2, u8 arg3, u8 arg4, u16 tileStart, u8 palette, const struct YesNoFuncTable *yesNo);
#endif //GUARD_MENU_HELPERS_H
diff --git a/include/overworld.h b/include/overworld.h
index ab77542c2..fed1a33a5 100644
--- a/include/overworld.h
+++ b/include/overworld.h
@@ -61,7 +61,7 @@ void Overworld_SetSavedMusic(u16);
void Overworld_ChangeMusicToDefault(void);
void Overworld_ChangeMusicTo(u16);
-bool32 is_c1_link_related_active(void);
+bool32 IsUpdateLinkStateCBActive(void);
void strange_npc_table_clear(void);
const struct MapHeader *get_mapheader_by_bank_and_number(u16, u16);
@@ -116,5 +116,6 @@ bool8 sub_8055FC4(void);
bool8 is_light_level_8_or_9(u8 mapType);
bool32 sub_8055C9C(void);
void sub_8054D70(void);
+bool32 sub_8058244(void);
#endif //GUARD_ROM4_H
diff --git a/ld_script.txt b/ld_script.txt
index 50e25d378..2664d8010 100644
--- a/ld_script.txt
+++ b/ld_script.txt
@@ -151,7 +151,7 @@ SECTIONS {
asm/pc_screen_effect.o(.text);
asm/fldeff_poison.o(.text);
src/fldeff_berrytree.o(.text);
- asm/field_special_scene.o(.text);
+ src/field_special_scene.o(.text);
asm/safari_zone.o(.text);
src/item_use.o(.text);
asm/battle_anim_effects_1.o(.text);
@@ -176,7 +176,7 @@ SECTIONS {
asm/easy_chat.o(.text);
asm/mon_markings.o(.text);
asm/mail.o(.text);
- asm/menu_helpers.o(.text);
+ src/menu_helpers.o(.text);
asm/script_pokemon_util_80BF8FC.o(.text);
src/heal_location.o(.text);
asm/region_map.o(.text);
diff --git a/src/field_special_scene.c b/src/field_special_scene.c
new file mode 100644
index 000000000..4f9446942
--- /dev/null
+++ b/src/field_special_scene.c
@@ -0,0 +1,26 @@
+#include "global.h"
+
+static u32 sub_80A0E78(void)
+{
+ return 0;
+}
+
+static void nullsub_57(void)
+{
+}
+
+static void nullsub_58(void)
+{
+}
+
+static void nullsub_59(void)
+{
+}
+
+void nullsub_60(void)
+{
+}
+
+void nullsub_61(void)
+{
+}
diff --git a/src/item_pc.c b/src/item_pc.c
index e2fa33f0a..afc82a73f 100644
--- a/src/item_pc.c
+++ b/src/item_pc.c
@@ -275,7 +275,7 @@ static bool8 ItemPc_DoGfxSetup(void)
switch (gMain.state)
{
case 0:
- VblankHblankHandlerSetZero();
+ SetVBlankHBlankCallbacksToNull();
clear_scheduled_bg_copies_to_vram();
gMain.state++;
break;
@@ -415,7 +415,7 @@ static void Task_ItemPcWaitFadeAndBail(u8 taskId)
static bool8 ItemPc_InitBgs(void)
{
- InitBgReg();
+ ResetAllBgsCoordinatesAndBgCntRegs();
sBg1TilemapBuffer = Alloc(0x800);
if (sBg1TilemapBuffer == NULL)
return FALSE;
@@ -982,7 +982,7 @@ static void Task_ItemPcHandleWithdrawMultiple(u8 taskId)
{
s16 * data = gTasks[taskId].data;
- if (sub_80BF848(&data[8], data[2]) == TRUE)
+ if (AdjustQuantityAccordingToDPadInput(&data[8], data[2]) == TRUE)
sub_810E670(data[8]);
else if (JOY_NEW(A_BUTTON))
{
diff --git a/src/menu_helpers.c b/src/menu_helpers.c
new file mode 100644
index 000000000..12837c099
--- /dev/null
+++ b/src/menu_helpers.c
@@ -0,0 +1,251 @@
+#include "global.h"
+#include "task.h"
+#include "bg.h"
+#include "gpu_regs.h"
+#include "window.h"
+#include "menu.h"
+#include "menu_helpers.h"
+#include "new_menu_helpers.h"
+#include "string_util.h"
+#include "text.h"
+#include "sound.h"
+#include "link.h"
+#include "overworld.h"
+#include "mail_data.h"
+#include "field_specials.h"
+#include "constants/songs.h"
+#include "constants/items.h"
+
+static EWRAM_DATA const struct YesNoFuncTable *gUnknown_20399C8 = NULL;
+static EWRAM_DATA TaskFunc gUnknown_20399CC = NULL;
+static EWRAM_DATA u8 gUnknown_20399D0 = {0};
+
+static void Task_ContinueTaskAfterMessagePrints(u8 taskId);
+
+void DisplayMessageAndContinueTask(u8 taskId, u8 windowId, u16 arg2, u8 arg3, u8 fontId, u8 textSpeed, const u8 *string, void *taskFunc)
+{
+ gUnknown_20399D0 = windowId;
+ DrawDialogFrameWithCustomTileAndPalette(windowId, TRUE, arg2, arg3);
+
+ if (string != gStringVar4)
+ StringExpandPlaceholders(gStringVar4, string);
+
+ gTextFlags.canABSpeedUpPrint = 1;
+ AddTextPrinterParameterized2(windowId, fontId, gStringVar4, textSpeed, NULL, 2, 1, 3);
+ gUnknown_20399CC = taskFunc;
+ gTasks[taskId].func = Task_ContinueTaskAfterMessagePrints;
+}
+
+bool16 RunTextPrinters_CheckActive(u8 textPrinterId)
+{
+ RunTextPrinters();
+ return IsTextPrinterActive(textPrinterId);
+}
+
+static void Task_ContinueTaskAfterMessagePrints(u8 taskId)
+{
+ if (!RunTextPrinters_CheckActive(gUnknown_20399D0))
+ gUnknown_20399CC(taskId);
+}
+
+static void Task_CallYesOrNoCallback(u8 taskId)
+{
+ switch (Menu_ProcessInputNoWrapClearOnChoose())
+ {
+ case 0:
+ PlaySE(SE_SELECT);
+ gTasks[taskId].func = gUnknown_20399C8->yesFunc;
+ break;
+ case 1:
+ case MENU_B_PRESSED:
+ PlaySE(SE_SELECT);
+ gTasks[taskId].func = gUnknown_20399C8->noFunc;
+ break;
+ }
+}
+
+void CreateYesNoMenuWithCallbacks(u8 taskId, const struct WindowTemplate *template, u8 arg2, u8 arg3, u8 arg4, u16 tileStart, u8 palette, const struct YesNoFuncTable *yesNo)
+{
+ CreateYesNoMenu(template, arg2, arg3, arg4, tileStart, palette, 0);
+ gUnknown_20399C8 = yesNo;
+ gTasks[taskId].func = Task_CallYesOrNoCallback;
+}
+
+u8 GetLRKeysState(void)
+{
+ if (gSaveBlock2Ptr->optionsButtonMode == OPTIONS_BUTTON_MODE_LR)
+ {
+ if (JOY_NEW(L_BUTTON))
+ return 1;
+ if (JOY_NEW(R_BUTTON))
+ return 2;
+ }
+ return 0;
+}
+
+u8 sub_80BF66C(void)
+{
+ if (gSaveBlock2Ptr->optionsButtonMode == OPTIONS_BUTTON_MODE_LR)
+ {
+ if (JOY_REPT(L_BUTTON))
+ return 1;
+ if (JOY_REPT(R_BUTTON))
+ return 2;
+ }
+ return 0;
+}
+
+bool8 sub_80BF6A8(u16 itemId)
+{
+ if (itemId != ITEM_ENIGMA_BERRY)
+ return TRUE;
+ else if (!gSaveBlock1Ptr->location.mapGroup && gSaveBlock1Ptr->location.mapNum == 1)
+ return FALSE;
+ else if (InUnionRoom() != TRUE)
+ return TRUE;
+ else
+ return FALSE;
+}
+
+bool8 itemid_80BF6D8_mail_related(u16 itemId)
+{
+ if (IsUpdateLinkStateCBActive() != TRUE && InUnionRoom() != TRUE)
+ return TRUE;
+ else if (ItemIsMail(itemId) != TRUE)
+ return TRUE;
+ else
+ return FALSE;
+}
+
+bool8 MenuHelpers_LinkSomething(void)
+{
+ if (IsUpdateLinkStateCBActive() == TRUE || gReceivedRemoteLinkPlayers == 1)
+ return TRUE;
+ else
+ return FALSE;
+}
+
+bool8 sub_80BF72C(void)
+{
+ if (!MenuHelpers_LinkSomething())
+ return FALSE;
+ else
+ return sub_8058244();
+}
+
+bool8 sub_80BF748(void)
+{
+ if (sub_80BF72C() == TRUE)
+ return TRUE;
+ else if (sub_800B270() != TRUE)
+ return FALSE;
+ else
+ return TRUE;
+}
+
+void SetVBlankHBlankCallbacksToNull(void)
+{
+ SetVBlankCallback(NULL);
+ SetHBlankCallback(NULL);
+}
+
+void ClearVramOamPltt(void)
+{
+ ResetAllBgsCoordinatesAndBgCntRegs();
+ CpuFill16(0, (void*) VRAM, VRAM_SIZE);
+ CpuFill32(0, (void*) OAM, OAM_SIZE);
+ CpuFill16(0, (void*) PLTT, PLTT_SIZE);
+}
+
+void ResetAllBgsCoordinatesAndBgCntRegs(void)
+{
+ SetGpuReg(REG_OFFSET_DISPCNT, 0);
+ SetGpuReg(REG_OFFSET_BG3CNT, 0);
+ SetGpuReg(REG_OFFSET_BG2CNT, 0);
+ SetGpuReg(REG_OFFSET_BG1CNT, 0);
+ SetGpuReg(REG_OFFSET_BG0CNT, 0);
+ ChangeBgX(0, 0, 0);
+ ChangeBgY(0, 0, 0);
+ ChangeBgX(1, 0, 0);
+ ChangeBgY(1, 0, 0);
+ ChangeBgX(2, 0, 0);
+ ChangeBgY(2, 0, 0);
+ ChangeBgX(3, 0, 0);
+ ChangeBgY(3, 0, 0);
+}
+
+bool8 AdjustQuantityAccordingToDPadInput(s16 *arg0, u16 arg1)
+{
+ s16 valBefore = (*arg0);
+
+ if (JOY_REPT(DPAD_ANY) == DPAD_UP)
+ {
+ (*arg0)++;
+ if ((*arg0) > arg1)
+ (*arg0) = 1;
+
+ if ((*arg0) == valBefore)
+ {
+ return FALSE;
+ }
+ else
+ {
+ PlaySE(SE_SELECT);
+ return TRUE;
+ }
+ }
+ else if (JOY_REPT(DPAD_ANY) == DPAD_DOWN)
+ {
+ (*arg0)--;
+ if ((*arg0) <= 0)
+ (*arg0) = arg1;
+ if ((*arg0) == valBefore)
+ {
+ return FALSE;
+ }
+ else
+ {
+ PlaySE(SE_SELECT);
+ return TRUE;
+ }
+ }
+ else if (JOY_REPT(DPAD_ANY) == DPAD_RIGHT)
+ {
+ (*arg0) += 10;
+ if ((*arg0) > arg1)
+ (*arg0) = arg1;
+ if ((*arg0) == valBefore)
+ {
+ return FALSE;
+ }
+ else
+ {
+ PlaySE(SE_SELECT);
+ return TRUE;
+ }
+ }
+ else if (JOY_REPT(DPAD_ANY) == DPAD_LEFT)
+ {
+ (*arg0) -= 10;
+ if ((*arg0) <= 0)
+ (*arg0) = 1;
+ if ((*arg0) == valBefore)
+ {
+ return FALSE;
+ }
+ else
+ {
+ PlaySE(SE_SELECT);
+ return TRUE;
+ }
+ }
+ return FALSE;
+}
+
+u8 sub_80BF8E4(void)
+{
+ if (!ContextNpcGetTextColor())
+ return 4;
+ else
+ return 5;
+}
diff --git a/src/mystery_event_script.c b/src/mystery_event_script.c
index c9dc6ae81..70566ca58 100644
--- a/src/mystery_event_script.c
+++ b/src/mystery_event_script.c
@@ -267,7 +267,7 @@ bool8 MEScrCmd_givepokemon(struct ScriptContext *ctx)
}
heldItem = GetMonData(&gPlayerParty[5], MON_DATA_HELD_ITEM);
- if (itemid_is_mail(heldItem))
+ if (ItemIsMail(heldItem))
GiveMailToMon2(&gPlayerParty[5], &mail);
CompactPartySlots();
CalculatePlayerPartyCount();
diff --git a/src/scrcmd.c b/src/scrcmd.c
index 7c27293a7..12b2892bb 100644
--- a/src/scrcmd.c
+++ b/src/scrcmd.c
@@ -1201,7 +1201,7 @@ bool8 ScrCmd_turnvobject(struct ScriptContext *ctx)
bool8 ScrCmd_lockall(struct ScriptContext *ctx)
{
- if (is_c1_link_related_active())
+ if (IsUpdateLinkStateCBActive())
{
return FALSE;
}
@@ -1215,7 +1215,7 @@ bool8 ScrCmd_lockall(struct ScriptContext *ctx)
bool8 ScrCmd_lock(struct ScriptContext *ctx)
{
- if (is_c1_link_related_active())
+ if (IsUpdateLinkStateCBActive())
{
return FALSE;
}
diff --git a/src/teachy_tv.c b/src/teachy_tv.c
index efffe2840..eb5a7293d 100644
--- a/src/teachy_tv.c
+++ b/src/teachy_tv.c
@@ -475,7 +475,7 @@ static void TeachyTvMainCallback(void)
sResources->savedCallback = NULL;
sResources->grassAnimDisabled = 0;
sResources->scrollIndicatorArrowPairId = 0xFF;
- VblankHblankHandlerSetZero();
+ SetVBlankHBlankCallbacksToNull();
clear_scheduled_bg_copies_to_vram();
ScanlineEffect_Stop();
FreeAllSpritePalettes();
@@ -521,7 +521,7 @@ static void TeachyTvMainCallback(void)
static void TeachyTvSetupBg(void)
{
- InitBgReg();
+ ResetAllBgsCoordinatesAndBgCntRegs();
ResetBgsAndClearDma3BusyFlags(0);
InitBgsFromTemplates(0, sBgTemplates, 4);
SetBgTilemapBuffer(1, sResources->buffer1);
@@ -817,7 +817,7 @@ static void TTVcmd_NpcMoveAndSetupTextPrinter(u8 taskId)
static void TTVcmd_IdleIfTextPrinterIsActive(u8 taskId)
{
s16 *data = gTasks[taskId].data;
- if (!sub_80BF518(0))
+ if (!RunTextPrinters_CheckActive(0))
++data[3];
}
@@ -945,7 +945,7 @@ static const u8 sGrassAnimArray[] =
static void TTVcmd_IdleIfTextPrinterIsActive2(u8 taskId)
{
s16 *data = gTasks[taskId].data;
- if (!sub_80BF518(0))
+ if (!RunTextPrinters_CheckActive(0))
++data[3];
}
diff --git a/src/tm_case.c b/src/tm_case.c
index 28aba57a0..7c26c1c58 100644
--- a/src/tm_case.c
+++ b/src/tm_case.c
@@ -321,7 +321,7 @@ static bool8 DoSetUpTMCaseUI(void)
switch (gMain.state)
{
case 0:
- VblankHblankHandlerSetZero();
+ SetVBlankHBlankCallbacksToNull();
clear_scheduled_bg_copies_to_vram();
gMain.state++;
break;
@@ -426,7 +426,7 @@ static void ResetBufferPointers_NoFree(void)
static void LoadBGTemplates(void)
{
void ** ptr;
- InitBgReg();
+ ResetAllBgsCoordinatesAndBgCntRegs();
ptr = &sTilemapBuffer;
*ptr = AllocZeroed(0x800);
ResetBgsAndClearDma3BusyFlags(0);
@@ -1058,7 +1058,7 @@ static void Task_QuantitySelect_HandleInput(u8 taskId)
{
s16 * data = gTasks[taskId].data;
- if (sub_80BF848(&data[8], data[2]) == 1)
+ if (AdjustQuantityAccordingToDPadInput(&data[8], data[2]) == 1)
{
SellTM_PrintQuantityAndSalePrice(data[8], itemid_get_market_price(BagGetItemIdByPocketPosition(POCKET_TM_CASE, data[1])) / 2 * data[8]);
}
diff --git a/sym_ewram.txt b/sym_ewram.txt
index a8672a553..ca297b540 100644
--- a/sym_ewram.txt
+++ b/sym_ewram.txt
@@ -1010,15 +1010,9 @@ gUnknown_20399C0: @ 20399C0
gUnknown_20399C4: @ 20399C4
.space 0x4
-gUnknown_20399C8: @ 20399C8
- .space 0x4
-
-gUnknown_20399CC: @ 20399CC
- .space 0x4
-
-gUnknown_20399D0: @ 20399D0
- .space 0x4
+ .include "src/menu_helpers.o"
+ .align 2
gUnknown_20399D4: @ 20399D4
.space 0x4