diff options
author | PikalaxALT <PikalaxALT@users.noreply.github.com> | 2019-06-23 22:00:47 -0400 |
---|---|---|
committer | GitHub <noreply@github.com> | 2019-06-23 22:00:47 -0400 |
commit | 5b7c34096cff301c4d74bb2e67a7164b66bcc5dd (patch) | |
tree | 6124fc5f2881ec5d698509101b407a36fdb934cd | |
parent | e0a5896de36da0bb83c3983df8b2f47d019a8896 (diff) | |
parent | 756f2c3a71c8f7e832a9e70a542210f549f4c61b (diff) |
Merge pull request #74 from jiangzhengwenjz/misc
menu_helpers
-rw-r--r-- | asm/battle_message.s | 2 | ||||
-rw-r--r-- | asm/berry_pouch.s | 8 | ||||
-rw-r--r-- | asm/field_specials.s | 6 | ||||
-rw-r--r-- | asm/item_menu.s | 14 | ||||
-rw-r--r-- | asm/link_rfu.s | 2 | ||||
-rw-r--r-- | asm/mail_data.s | 8 | ||||
-rw-r--r-- | asm/menu.s | 6 | ||||
-rw-r--r-- | asm/menu_helpers.s | 628 | ||||
-rw-r--r-- | asm/new_menu_helpers.s | 4 | ||||
-rw-r--r-- | asm/overworld.s | 16 | ||||
-rw-r--r-- | asm/party_menu.s | 34 | ||||
-rw-r--r-- | asm/pokemon_storage_system.s | 16 | ||||
-rw-r--r-- | asm/pokemon_summary_screen.s | 4 | ||||
-rw-r--r-- | asm/shop.s | 6 | ||||
-rw-r--r-- | asm/start_menu.s | 4 | ||||
-rw-r--r-- | asm/trade.s | 2 | ||||
-rw-r--r-- | include/field_specials.h | 3 | ||||
-rw-r--r-- | include/link.h | 1 | ||||
-rw-r--r-- | include/mail_data.h | 2 | ||||
-rw-r--r-- | include/menu.h | 6 | ||||
-rw-r--r-- | include/menu_helpers.h | 10 | ||||
-rw-r--r-- | include/overworld.h | 3 | ||||
-rw-r--r-- | ld_script.txt | 4 | ||||
-rw-r--r-- | src/field_special_scene.c | 26 | ||||
-rw-r--r-- | src/item_pc.c | 6 | ||||
-rw-r--r-- | src/menu_helpers.c | 251 | ||||
-rw-r--r-- | src/mystery_event_script.c | 2 | ||||
-rw-r--r-- | src/scrcmd.c | 4 | ||||
-rw-r--r-- | src/teachy_tv.c | 8 | ||||
-rw-r--r-- | src/tm_case.c | 6 | ||||
-rw-r--r-- | sym_ewram.txt | 10 |
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 |