diff options
94 files changed, 2619 insertions, 4690 deletions
diff --git a/asm/battle_2.s b/asm/battle_2.s index 0826ea927..ee7b80ad4 100644 --- a/asm/battle_2.s +++ b/asm/battle_2.s @@ -13497,7 +13497,7 @@ sub_8016AC0: @ 8016AC0 strh r1, [r0] ldr r0, _08016B08 @ =gBattle_BG0_Y strh r1, [r0] - ldr r1, _08016B0C @ =gUnknown_2039994 + ldr r1, _08016B0C @ =gNumSafariBalls ldrb r0, [r1] subs r0, 0x1 strb r0, [r1] @@ -13518,7 +13518,7 @@ _08016AFC: .4byte gUnknown_2023BDE _08016B00: .4byte gUnknown_2023BE2 _08016B04: .4byte gBattle_BG0_X _08016B08: .4byte gBattle_BG0_Y -_08016B0C: .4byte gUnknown_2039994 +_08016B0C: .4byte gNumSafariBalls _08016B10: .4byte gUnknown_2023D68 _08016B14: .4byte gUnknown_2023D74 _08016B18: .4byte gUnknown_81D99B0 diff --git a/asm/battle_interface.s b/asm/battle_interface.s index fa06f684b..acf228669 100644 --- a/asm/battle_interface.s +++ b/asm/battle_interface.s @@ -4307,7 +4307,7 @@ UpdateLeftNoOfBallsTextOnHealthbox: @ 8049D10 ldr r1, _08049D84 @ =gUnknown_83FE81C mov r0, sp bl StringCopy - ldr r1, _08049D88 @ =gUnknown_2039994 + ldr r1, _08049D88 @ =gNumSafariBalls ldrb r1, [r1] movs r2, 0 movs r3, 0x2 @@ -4351,7 +4351,7 @@ UpdateLeftNoOfBallsTextOnHealthbox: @ 8049D10 bx r0 .align 2, 0 _08049D84: .4byte gUnknown_83FE81C -_08049D88: .4byte gUnknown_2039994 +_08049D88: .4byte gNumSafariBalls _08049D8C: .4byte gSprites _08049D90: .4byte 0x060102c0 _08049D94: .4byte 0x06010a00 diff --git a/asm/battle_records.s b/asm/battle_records.s index e48a0025e..d0a99b4cf 100644 --- a/asm/battle_records.s +++ b/asm/battle_records.s @@ -287,7 +287,7 @@ sub_80CD460: @ 80CD460 ands r0, r1 cmp r0, 0 bne _080CD490 - ldr r0, _080CD49C @ =c2_exit_to_overworld_1_continue_scripts_restart_music + ldr r0, _080CD49C @ =CB2_ReturnToFieldContinueScriptPlayMapMusic bl SetMainCallback2 ldr r0, _080CD4A0 @ =gUnknown_2039A1C ldr r0, [r0] @@ -303,7 +303,7 @@ _080CD490: bx r0 .align 2, 0 _080CD498: .4byte gPaletteFade -_080CD49C: .4byte c2_exit_to_overworld_1_continue_scripts_restart_music +_080CD49C: .4byte CB2_ReturnToFieldContinueScriptPlayMapMusic _080CD4A0: .4byte gUnknown_2039A1C thumb_func_end sub_80CD460 diff --git a/asm/battle_script_commands.s b/asm/battle_script_commands.s index 60b06f8a6..b240c3da2 100644 --- a/asm/battle_script_commands.s +++ b/asm/battle_script_commands.s @@ -17903,7 +17903,7 @@ PutMonIconOnLvlUpBox: @ 8026688 orrs r0, r1 str r0, [sp, 0x4] adds r0, r4, 0 - bl sub_80971CC + bl GetValidMonIconPalettePtr str r0, [sp, 0x8] add r4, sp, 0x8 ldr r0, [r4, 0x4] diff --git a/asm/battle_setup.s b/asm/battle_setup.s index a13c1a418..db8b366b4 100644 --- a/asm/battle_setup.s +++ b/asm/battle_setup.s @@ -46,7 +46,7 @@ _0807F65E: ldr r0, _0807F68C @ =sub_800FD9C bl SetMainCallback2 bl sub_806D7E8 - bl overworld_poison_timer_set + bl ClearPoisonStepCounter adds r0, r5, 0 bl DestroyTask _0807F686: @@ -221,7 +221,7 @@ sub_807F7D8: @ 807F7D8 bl player_bitmagic bl sub_805C780 ldr r1, _0807F804 @ =gMain - ldr r0, _0807F808 @ =sub_80A0F4C + ldr r0, _0807F808 @ =CB2_EndSafariBattle str r0, [r1, 0x8] ldr r1, _0807F80C @ =gBattleTypeFlags movs r0, 0x80 @@ -235,7 +235,7 @@ sub_807F7D8: @ 807F7D8 bx r0 .align 2, 0 _0807F804: .4byte gMain -_0807F808: .4byte sub_80A0F4C +_0807F808: .4byte CB2_EndSafariBattle _0807F80C: .4byte gBattleTypeFlags thumb_func_end sub_807F7D8 @@ -300,7 +300,7 @@ sub_807F888: @ 807F888 bl CreateMaleMon bl ScriptContext2_Enable ldr r1, _0807F8B8 @ =gMain - ldr r0, _0807F8BC @ =c2_exit_to_overworld_1_continue_scripts_restart_music + ldr r0, _0807F8BC @ =CB2_ReturnToFieldContinueScriptPlayMapMusic str r0, [r1, 0x8] ldr r1, _0807F8C0 @ =gBattleTypeFlags movs r0, 0x80 @@ -314,7 +314,7 @@ sub_807F888: @ 807F888 .align 2, 0 _0807F8B4: .4byte gEnemyParty _0807F8B8: .4byte gMain -_0807F8BC: .4byte c2_exit_to_overworld_1_continue_scripts_restart_music +_0807F8BC: .4byte CB2_ReturnToFieldContinueScriptPlayMapMusic _0807F8C0: .4byte gBattleTypeFlags thumb_func_end sub_807F888 @@ -679,14 +679,14 @@ _0807FBD4: .4byte 0x01000100 _0807FBD8: .4byte gBattleOutcome _0807FBDC: .4byte c2_whiteout _0807FBE0: - ldr r0, _0807FBEC @ =c2_exit_to_overworld_1_continue_scripts_restart_music + ldr r0, _0807FBEC @ =CB2_ReturnToFieldContinueScriptPlayMapMusic bl SetMainCallback2 _0807FBE6: add sp, 0x4 pop {r0} bx r0 .align 2, 0 -_0807FBEC: .4byte c2_exit_to_overworld_1_continue_scripts_restart_music +_0807FBEC: .4byte CB2_ReturnToFieldContinueScriptPlayMapMusic thumb_func_end sub_807FBA0 thumb_func_start sub_807FBF0 @@ -731,7 +731,7 @@ _0807FC40: movs r0, 0x1 strh r0, [r1] _0807FC46: - ldr r0, _0807FC58 @ =c2_exit_to_overworld_1_continue_scripts_restart_music + ldr r0, _0807FC58 @ =CB2_ReturnToFieldContinueScriptPlayMapMusic bl SetMainCallback2 _0807FC4C: add sp, 0x4 @@ -740,7 +740,7 @@ _0807FC4C: bx r0 .align 2, 0 _0807FC54: .4byte gSpecialVar_Result -_0807FC58: .4byte c2_exit_to_overworld_1_continue_scripts_restart_music +_0807FC58: .4byte CB2_ReturnToFieldContinueScriptPlayMapMusic thumb_func_end sub_807FBF0 thumb_func_start sub_807FC5C @@ -1878,14 +1878,14 @@ _080804E8: movs r1, 0 strh r1, [r0] _080804EE: - ldr r0, _08080504 @ =c2_exit_to_overworld_1_continue_scripts_restart_music + ldr r0, _08080504 @ =CB2_ReturnToFieldContinueScriptPlayMapMusic bl SetMainCallback2 bl sub_80803FC bl sub_81139BC b _0808054E .align 2, 0 _08080500: .4byte gSpecialVar_Result -_08080504: .4byte c2_exit_to_overworld_1_continue_scripts_restart_music +_08080504: .4byte CB2_ReturnToFieldContinueScriptPlayMapMusic _08080508: ldr r0, _0808051C @ =gTrainerBattleOpponent_A ldrh r1, [r0] @@ -1893,12 +1893,12 @@ _08080508: lsls r0, 3 cmp r1, r0 bne _08080524 - ldr r0, _08080520 @ =c2_exit_to_overworld_1_continue_scripts_restart_music + ldr r0, _08080520 @ =CB2_ReturnToFieldContinueScriptPlayMapMusic bl SetMainCallback2 b _0808054E .align 2, 0 _0808051C: .4byte gTrainerBattleOpponent_A -_08080520: .4byte c2_exit_to_overworld_1_continue_scripts_restart_music +_08080520: .4byte CB2_ReturnToFieldContinueScriptPlayMapMusic _08080524: ldr r0, _08080538 @ =gBattleOutcome ldrb r0, [r0] @@ -1913,7 +1913,7 @@ _08080530: _08080538: .4byte gBattleOutcome _0808053C: .4byte c2_whiteout _08080540: - ldr r0, _08080554 @ =c2_exit_to_overworld_1_continue_scripts_restart_music + ldr r0, _08080554 @ =CB2_ReturnToFieldContinueScriptPlayMapMusic bl SetMainCallback2 bl sub_80803FC bl sub_81139BC @@ -1921,7 +1921,7 @@ _0808054E: pop {r0} bx r0 .align 2, 0 -_08080554: .4byte c2_exit_to_overworld_1_continue_scripts_restart_music +_08080554: .4byte CB2_ReturnToFieldContinueScriptPlayMapMusic thumb_func_end sub_80804AC thumb_func_start sub_8080558 @@ -1933,12 +1933,12 @@ sub_8080558: @ 8080558 lsls r0, 3 cmp r1, r0 bne _08080578 - ldr r0, _08080574 @ =c2_exit_to_overworld_1_continue_scripts_restart_music + ldr r0, _08080574 @ =CB2_ReturnToFieldContinueScriptPlayMapMusic bl SetMainCallback2 b _080805A6 .align 2, 0 _08080570: .4byte gTrainerBattleOpponent_A -_08080574: .4byte c2_exit_to_overworld_1_continue_scripts_restart_music +_08080574: .4byte CB2_ReturnToFieldContinueScriptPlayMapMusic _08080578: ldr r0, _0808058C @ =gBattleOutcome ldrb r0, [r0] @@ -1952,7 +1952,7 @@ _08080578: _0808058C: .4byte gBattleOutcome _08080590: .4byte c2_whiteout _08080594: - ldr r0, _080805AC @ =c2_exit_to_overworld_1_continue_scripts_restart_music + ldr r0, _080805AC @ =CB2_ReturnToFieldContinueScriptPlayMapMusic bl SetMainCallback2 bl sub_80803FC bl sub_810CDE8 @@ -1961,7 +1961,7 @@ _080805A6: pop {r0} bx r0 .align 2, 0 -_080805AC: .4byte c2_exit_to_overworld_1_continue_scripts_restart_music +_080805AC: .4byte CB2_ReturnToFieldContinueScriptPlayMapMusic thumb_func_end sub_8080558 thumb_func_start sub_80805B0 diff --git a/asm/battle_tower.s b/asm/battle_tower.s index 503a6343e..01ac780a2 100644 --- a/asm/battle_tower.s +++ b/asm/battle_tower.s @@ -2010,14 +2010,14 @@ _080E68A8: .4byte gPlayerParty _080E68AC: bl sub_80E7550 _080E68B0: - ldr r0, _080E68C0 @ =c2_exit_to_overworld_1_continue_scripts_restart_music + ldr r0, _080E68C0 @ =CB2_ReturnToFieldContinueScriptPlayMapMusic bl SetMainCallback2 add sp, 0x4 pop {r4-r6} pop {r0} bx r0 .align 2, 0 -_080E68C0: .4byte c2_exit_to_overworld_1_continue_scripts_restart_music +_080E68C0: .4byte CB2_ReturnToFieldContinueScriptPlayMapMusic thumb_func_end sub_80E6854 thumb_func_start sub_80E68C4 diff --git a/asm/berry_crush_3.s b/asm/berry_crush_3.s index 716967e65..581b84793 100644 --- a/asm/berry_crush_3.s +++ b/asm/berry_crush_3.s @@ -1265,7 +1265,7 @@ _0814DFE0: adds r4, r2, r4 str r4, [sp, 0x2C] _0814DFF0: - bl UnkTextUtil_Reset + bl DynamicPlaceholderTextUtil_Reset ldr r0, [sp, 0x10] cmp r0, 0x1 beq _0814E0E4 @@ -1610,10 +1610,10 @@ _0814E2B8: ldr r0, [sp, 0xC] adds r1, r0, r1 movs r0, 0 - bl UnkTextUtil_SetPtrI + bl DynamicPlaceholderTextUtil_SetPlaceholderPtr ldr r0, _0814E324 @ =gStringVar4 adds r1, r4, 0 - bl UnkTextUtil_StringExpandPlaceholders + bl DynamicPlaceholderTextUtil_ExpandPlaceholders ldr r1, [sp, 0x2C] ldrb r0, [r1] mov r2, r9 diff --git a/asm/berry_pouch.s b/asm/berry_pouch.s index 6aaa9ba76..8eb127d52 100644 --- a/asm/berry_pouch.s +++ b/asm/berry_pouch.s @@ -1409,7 +1409,7 @@ sub_813D844: @ 813D844 ldr r4, _0813D884 @ =gUnknown_203F37A subs r2, r4, 0x2 adds r1, r4, 0 - bl DestroyListMenu + bl DestroyListMenuTask ldr r0, _0813D888 @ =gUnknown_203F36C ldr r0, [r0] ldr r0, [r0] @@ -1688,7 +1688,7 @@ _0813DA90: b _0813DB9E _0813DA9E: ldrb r0, [r7] - bl ListMenuHandleInput + bl ListMenu_ProcessInput adds r5, r0, 0 ldrb r0, [r7] ldr r4, _0813DAE0 @ =gUnknown_203F37A @@ -2504,7 +2504,7 @@ _0813E18A: ldr r4, _0813E1F8 @ =gUnknown_203F37A subs r2, r4, 0x2 adds r1, r4, 0 - bl DestroyListMenu + bl DestroyListMenuTask bl sub_813D8AC bl sub_813D6F4 bl sub_813D204 @@ -2646,7 +2646,7 @@ sub_813E2B8: @ 813E2B8 ldr r4, _0813E318 @ =gUnknown_203F37A subs r2, r4, 0x2 adds r1, r4, 0 - bl DestroyListMenu + bl DestroyListMenuTask bl sub_813D8AC bl sub_813D6F4 bl sub_813D204 @@ -3277,7 +3277,7 @@ sub_813E7F0: @ 813E7F0 ldr r4, _0813E8C8 @ =gUnknown_203F37A subs r2, r4, 0x2 adds r1, r4, 0 - bl DestroyListMenu + bl DestroyListMenuTask bl sub_813D8AC bl sub_813D6F4 bl sub_813D204 diff --git a/asm/buy_menu_helpers.s b/asm/buy_menu_helpers.s deleted file mode 100644 index 1eba8e42e..000000000 --- a/asm/buy_menu_helpers.s +++ /dev/null @@ -1,220 +0,0 @@ - .include "asm/macros.inc" - .include "constants/constants.inc" - - .syntax unified - - .text - - thumb_func_start sub_813F66C -sub_813F66C: @ 813F66C - push {r4,lr} - adds r4, r0, 0 - cmp r4, 0x1 - beq _0813F680 - ldr r0, _0813F67C @ =gUnknown_8464804 - bl InitWindows - b _0813F686 - .align 2, 0 -_0813F67C: .4byte gUnknown_8464804 -_0813F680: - ldr r0, _0813F6CC @ =gUnknown_846483C - bl InitWindows -_0813F686: - bl DeactivateAllTextPrinters - movs r0, 0 - movs r1, 0x1 - movs r2, 0xD0 - bl TextWindow_SetUserSelectedFrame - movs r0, 0 - movs r1, 0x13 - movs r2, 0xE0 - bl TextWindow_LoadResourcesStdFrame0 - movs r0, 0 - movs r1, 0xA - movs r2, 0xF0 - bl TextWindow_SetStdFrame0_WithPal - movs r0, 0 - bl PutWindowTilemap - movs r0, 0x4 - bl PutWindowTilemap - movs r0, 0x5 - bl PutWindowTilemap - cmp r4, 0x1 - bne _0813F6C4 - movs r0, 0x6 - bl PutWindowTilemap -_0813F6C4: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0813F6CC: .4byte gUnknown_846483C - thumb_func_end sub_813F66C - - thumb_func_start sub_813F6D0 -sub_813F6D0: @ 813F6D0 - push {lr} - ldr r0, _0813F6F0 @ =gSaveBlock1Ptr - ldr r0, [r0] - movs r1, 0xA4 - lsls r1, 2 - adds r0, r1 - bl GetMoney - adds r3, r0, 0 - movs r0, 0 - movs r1, 0xA - movs r2, 0xF - bl PrintMoneyAmountInMoneyBoxWithBorder - pop {r0} - bx r0 - .align 2, 0 -_0813F6F0: .4byte gSaveBlock1Ptr - thumb_func_end sub_813F6D0 - - thumb_func_start sub_813F6F4 -sub_813F6F4: @ 813F6F4 - push {r4-r7,lr} - mov r7, r9 - mov r6, r8 - push {r6,r7} - sub sp, 0x14 - mov r9, r3 - ldr r3, [sp, 0x30] - ldr r4, [sp, 0x34] - ldr r6, [sp, 0x38] - ldr r5, [sp, 0x3C] - mov r8, r5 - ldr r5, [sp, 0x40] - lsls r0, 24 - lsrs r0, 24 - lsls r1, 24 - lsrs r1, 24 - mov r7, r9 - lsls r7, 24 - lsrs r7, 24 - mov r9, r7 - lsls r3, 24 - lsrs r3, 24 - lsls r4, 24 - lsrs r4, 24 - lsls r6, 24 - lsrs r6, 24 - lsls r5, 24 - lsrs r5, 24 - str r4, [sp] - str r6, [sp, 0x4] - lsls r4, r5, 1 - adds r4, r5 - ldr r5, _0813F758 @ =gUnknown_8464884 - adds r4, r5 - str r4, [sp, 0x8] - mov r4, r8 - lsls r4, 24 - asrs r4, 24 - str r4, [sp, 0xC] - str r2, [sp, 0x10] - mov r2, r9 - bl AddTextPrinterParameterized4 - add sp, 0x14 - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_0813F758: .4byte gUnknown_8464884 - thumb_func_end sub_813F6F4 - - thumb_func_start sub_813F75C -sub_813F75C: @ 813F75C - push {r4-r6,lr} - mov r6, r8 - push {r6} - sub sp, 0x10 - adds r5, r0, 0 - adds r6, r1, 0 - mov r8, r2 - lsls r5, 24 - lsrs r5, 24 - bl sub_809B56C - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - bl GetTextSpeedSetting - lsls r0, 24 - lsrs r0, 24 - str r4, [sp] - str r0, [sp, 0x4] - str r6, [sp, 0x8] - mov r0, r8 - str r0, [sp, 0xC] - adds r0, r5, 0 - movs r1, 0x2 - movs r2, 0x13 - movs r3, 0xE - bl DisplayMessageAndContinueTask - movs r0, 0 - bl ScheduleBgCopyTilemapToVram - add sp, 0x10 - pop {r3} - mov r8, r3 - pop {r4-r6} - pop {r0} - bx r0 - thumb_func_end sub_813F75C - - thumb_func_start sub_813F7A8 -sub_813F7A8: @ 813F7A8 - push {lr} - lsls r0, 24 - lsrs r0, 24 - lsls r1, 24 - lsrs r1, 24 - movs r2, 0x1 - movs r3, 0xD - bl SetWindowBorderStyle - pop {r0} - bx r0 - thumb_func_end sub_813F7A8 - - thumb_func_start sub_813F7C0 -sub_813F7C0: @ 813F7C0 - push {lr} - lsls r0, 24 - lsrs r0, 24 - lsls r1, 24 - lsrs r1, 24 - movs r2, 0xA - movs r3, 0xF - bl SetWindowBorderStyle - pop {r0} - bx r0 - thumb_func_end sub_813F7C0 - - thumb_func_start sub_813F7D8 -sub_813F7D8: @ 813F7D8 - push {lr} - sub sp, 0x10 - adds r3, r1, 0 - lsls r0, 24 - lsrs r0, 24 - ldr r1, _0813F800 @ =gUnknown_846487C - movs r2, 0x2 - str r2, [sp] - movs r2, 0x1 - str r2, [sp, 0x4] - movs r2, 0xD - str r2, [sp, 0x8] - str r3, [sp, 0xC] - movs r2, 0x2 - movs r3, 0 - bl CreateYesNoMenuWithCallbacks - add sp, 0x10 - pop {r0} - bx r0 - .align 2, 0 -_0813F800: .4byte gUnknown_846487C - thumb_func_end sub_813F7D8 - - .align 2, 0 @ Don't pad with nop. diff --git a/asm/cable_club.s b/asm/cable_club.s index ff11c4cef..85f6243b4 100644 --- a/asm/cable_club.s +++ b/asm/cable_club.s @@ -2387,13 +2387,13 @@ sp02A_crash_sound: @ 8081A1C push {lr} ldr r0, _08081A2C @ =gSpecialVar_0x8006 ldrb r0, [r0] - ldr r1, _08081A30 @ =c2_exit_to_overworld_1_continue_scripts_restart_music + ldr r1, _08081A30 @ =CB2_ReturnToFieldContinueScriptPlayMapMusic bl sub_808B700 pop {r0} bx r0 .align 2, 0 _08081A2C: .4byte gSpecialVar_0x8006 -_08081A30: .4byte c2_exit_to_overworld_1_continue_scripts_restart_music +_08081A30: .4byte CB2_ReturnToFieldContinueScriptPlayMapMusic thumb_func_end sp02A_crash_sound thumb_func_start sub_8081A34 diff --git a/asm/diploma.s b/asm/diploma.s index f3fc0871a..9e3d1b3ee 100644 --- a/asm/diploma.s +++ b/asm/diploma.s @@ -513,18 +513,18 @@ _080F5014: .4byte gUnknown_203AB48 sub_80F5018: @ 80F5018 push {r4-r6,lr} sub sp, 0xAC - bl UnkTextUtil_Reset + bl DynamicPlaceholderTextUtil_Reset ldr r0, _080F5040 @ =gSaveBlock2Ptr ldr r1, [r0] movs r0, 0 - bl UnkTextUtil_SetPtrI + bl DynamicPlaceholderTextUtil_SetPlaceholderPtr bl sub_8088F84 lsls r0, 16 cmp r0, 0 beq _080F5048 ldr r1, _080F5044 @ =gUnknown_841B68F movs r0, 0x1 - bl UnkTextUtil_SetPtrI + bl DynamicPlaceholderTextUtil_SetPlaceholderPtr b _080F5050 .align 2, 0 _080F5040: .4byte gSaveBlock2Ptr @@ -532,14 +532,14 @@ _080F5044: .4byte gUnknown_841B68F _080F5048: ldr r1, _080F50E0 @ =gUnknown_841B698 movs r0, 0x1 - bl UnkTextUtil_SetPtrI + bl DynamicPlaceholderTextUtil_SetPlaceholderPtr _080F5050: movs r0, 0 movs r1, 0 bl FillWindowPixelBuffer ldr r1, _080F50E4 @ =gUnknown_841B60E add r0, sp, 0xC - bl UnkTextUtil_StringExpandPlaceholders + bl DynamicPlaceholderTextUtil_ExpandPlaceholders movs r5, 0x1 negs r5, r5 movs r0, 0x2 @@ -562,7 +562,7 @@ _080F5050: bl AddTextPrinterParameterized3 ldr r1, _080F50EC @ =gUnknown_841B619 add r0, sp, 0xC - bl UnkTextUtil_StringExpandPlaceholders + bl DynamicPlaceholderTextUtil_ExpandPlaceholders movs r0, 0x2 add r1, sp, 0xC adds r2, r5, 0 diff --git a/asm/dodrio_berry_picking.s b/asm/dodrio_berry_picking.s index 35fefbe29..13a4d95b5 100644 --- a/asm/dodrio_berry_picking.s +++ b/asm/dodrio_berry_picking.s @@ -9983,7 +9983,7 @@ _08155480: movs r1, 0 adds r2, r5, 0 bl AddTextPrinterParameterized - bl UnkTextUtil_Reset + bl DynamicPlaceholderTextUtil_Reset bl sub_8153390 lsls r0, 16 lsrs r0, 16 @@ -9992,10 +9992,10 @@ _08155480: bl CopyItemName movs r0, 0 adds r1, r5, 0 - bl UnkTextUtil_SetPtrI + bl DynamicPlaceholderTextUtil_SetPlaceholderPtr ldr r1, _0815556C @ =gUnknown_841CD7A add r0, sp, 0xC - bl UnkTextUtil_StringExpandPlaceholders + bl DynamicPlaceholderTextUtil_ExpandPlaceholders ldr r0, [r4] add r0, r10 ldrb r0, [r0] @@ -10016,7 +10016,7 @@ _08155480: beq _0815559E cmp r4, 0x3 beq _0815559E - bl UnkTextUtil_Reset + bl DynamicPlaceholderTextUtil_Reset bl sub_8153390 lsls r0, 16 lsrs r0, 16 @@ -10024,12 +10024,12 @@ _08155480: bl CopyItemName movs r0, 0 adds r1, r5, 0 - bl UnkTextUtil_SetPtrI + bl DynamicPlaceholderTextUtil_SetPlaceholderPtr cmp r4, 0x2 bne _08155574 ldr r1, _08155570 @ =gUnknown_841CD9F add r0, sp, 0xC - bl UnkTextUtil_StringExpandPlaceholders + bl DynamicPlaceholderTextUtil_ExpandPlaceholders b _08155580 .align 2, 0 _08155558: .4byte 0x00000101 @@ -10044,7 +10044,7 @@ _08155574: bne _08155580 ldr r1, _081555C4 @ =gUnknown_841CDBA add r0, sp, 0xC - bl UnkTextUtil_StringExpandPlaceholders + bl DynamicPlaceholderTextUtil_ExpandPlaceholders _08155580: ldr r0, _081555C8 @ =gUnknown_203F440 ldr r0, [r0] diff --git a/asm/field_control_avatar.s b/asm/field_control_avatar.s index c6476053a..2eee6da2f 100644 --- a/asm/field_control_avatar.s +++ b/asm/field_control_avatar.s @@ -1817,7 +1817,7 @@ _0806D6E0: .4byte gUnknown_203ADFA _0806D6E4: .4byte gPlayerAvatar _0806D6E8: .4byte gUnknown_81A8CED _0806D6EC: - bl overworld_poison_step + bl DoPoisonFieldEffect_step lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 @@ -1840,7 +1840,7 @@ _0806D704: .align 2, 0 _0806D71C: .4byte gUnknown_81BF546 _0806D720: - bl sub_80A0F0C + bl SafariZoneTakeStep lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 @@ -1901,8 +1901,8 @@ _0806D780: .4byte 0x00004021 _0806D784: .4byte gPlayerParty thumb_func_end AdjustFriendship_step - thumb_func_start overworld_poison_timer_set -overworld_poison_timer_set: @ 806D788 + thumb_func_start ClearPoisonStepCounter +ClearPoisonStepCounter: @ 806D788 push {lr} ldr r0, _0806D798 @ =0x00004022 movs r1, 0 @@ -1911,10 +1911,10 @@ overworld_poison_timer_set: @ 806D788 bx r0 .align 2, 0 _0806D798: .4byte 0x00004022 - thumb_func_end overworld_poison_timer_set + thumb_func_end ClearPoisonStepCounter - thumb_func_start overworld_poison_step -overworld_poison_step: @ 806D79C + thumb_func_start DoPoisonFieldEffect_step +DoPoisonFieldEffect_step: @ 806D79C push {r4,lr} ldr r0, _0806D7D8 @ =gMapHeader ldrb r0, [r0, 0x17] @@ -1933,7 +1933,7 @@ overworld_poison_step: @ 806D79C lsls r0, 16 cmp r0, 0 bne _0806D7E0 - bl overworld_poison + bl DoPoisonFieldEffect cmp r0, 0x1 beq _0806D7E0 cmp r0, 0x1 @@ -1951,7 +1951,7 @@ _0806D7E2: pop {r4} pop {r1} bx r1 - thumb_func_end overworld_poison_step + thumb_func_end DoPoisonFieldEffect_step thumb_func_start sub_806D7E8 sub_806D7E8: @ 806D7E8 diff --git a/asm/field_effect.s b/asm/field_effect.s index 3655d2830..7bd1abe80 100644 --- a/asm/field_effect.s +++ b/asm/field_effect.s @@ -2039,8 +2039,8 @@ _08084350: cmp r0, 0 bne _08084376 bl sub_8054CA0 - bl warp_in - ldr r0, _08084384 @ =sub_805671C + bl WarpIntoMap + ldr r0, _08084384 @ =CB2_LoadMap bl SetMainCallback2 ldr r1, _08084388 @ =gFieldCallback ldr r0, _0808438C @ =mapldr_08084390 @@ -2054,7 +2054,7 @@ _08084376: .align 2, 0 _0808437C: .4byte gTasks _08084380: .4byte gFieldEffectArguments -_08084384: .4byte sub_805671C +_08084384: .4byte CB2_LoadMap _08084388: .4byte gFieldCallback _0808438C: .4byte mapldr_08084390 thumb_func_end task00_8084310 @@ -2860,11 +2860,11 @@ sub_80849A0: @ 80849A0 cmp r0, 0x1 bne _080849DC bl sub_809C460 - bl warp_in + bl WarpIntoMap ldr r1, _080849E4 @ =gFieldCallback ldr r0, _080849E8 @ =sub_80849F4 str r0, [r1] - ldr r0, _080849EC @ =sub_805671C + ldr r0, _080849EC @ =CB2_LoadMap bl SetMainCallback2 ldr r0, _080849F0 @ =sub_80847C0 bl FindTaskIdByFunc @@ -2878,7 +2878,7 @@ _080849DC: _080849E0: .4byte gPaletteFade _080849E4: .4byte gFieldCallback _080849E8: .4byte sub_80849F4 -_080849EC: .4byte sub_805671C +_080849EC: .4byte CB2_LoadMap _080849F0: .4byte sub_80847C0 thumb_func_end sub_80849A0 @@ -3883,11 +3883,11 @@ sub_8085168: @ 8085168 lsrs r0, 24 cmp r0, 0x1 bne _080851A0 - bl warp_in + bl WarpIntoMap ldr r1, _080851AC @ =gFieldCallback ldr r0, _080851B0 @ =mapldr_080851BC str r0, [r1] - ldr r0, _080851B4 @ =sub_805671C + ldr r0, _080851B4 @ =CB2_LoadMap bl SetMainCallback2 ldr r0, _080851B8 @ =sub_8084F44 bl FindTaskIdByFunc @@ -3902,7 +3902,7 @@ _080851A0: _080851A8: .4byte gPaletteFade _080851AC: .4byte gFieldCallback _080851B0: .4byte mapldr_080851BC -_080851B4: .4byte sub_805671C +_080851B4: .4byte CB2_LoadMap _080851B8: .4byte sub_8084F44 thumb_func_end sub_8085168 @@ -4388,11 +4388,11 @@ sub_808554C: @ 808554C lsrs r0, 24 cmp r0, 0x1 bne _08085584 - bl warp_in + bl WarpIntoMap ldr r1, _08085590 @ =gFieldCallback ldr r0, _08085594 @ =sub_8084454 str r0, [r1] - ldr r0, _08085598 @ =sub_805671C + ldr r0, _08085598 @ =CB2_LoadMap bl SetMainCallback2 ldr r0, _0808559C @ =sub_80853E4 bl FindTaskIdByFunc @@ -4407,7 +4407,7 @@ _08085584: _0808558C: .4byte gPaletteFade _08085590: .4byte gFieldCallback _08085594: .4byte sub_8084454 -_08085598: .4byte sub_805671C +_08085598: .4byte CB2_LoadMap _0808559C: .4byte sub_80853E4 thumb_func_end sub_808554C @@ -4612,11 +4612,11 @@ _08085702: adds r0, r6, 0 bl FieldObjectSetDirection bl sub_80555E0 - bl warp_in + bl WarpIntoMap ldr r1, _0808575C @ =gFieldCallback ldr r0, _08085760 @ =sub_80859D4 str r0, [r1] - ldr r0, _08085764 @ =sub_805671C + ldr r0, _08085764 @ =CB2_LoadMap bl SetMainCallback2 ldr r0, _08085768 @ =sub_808563C bl FindTaskIdByFunc @@ -4631,7 +4631,7 @@ _08085750: _08085758: .4byte gPaletteFade _0808575C: .4byte gFieldCallback _08085760: .4byte sub_80859D4 -_08085764: .4byte sub_805671C +_08085764: .4byte CB2_LoadMap _08085768: .4byte sub_808563C thumb_func_end sub_8085690 @@ -5406,8 +5406,8 @@ sub_8085D34: @ 8085D34 cmp r0, 0x1 bne _08085D70 bl copy_saved_warp3_bank_and_enter_x_to_warp1 - bl warp_in - ldr r0, _08085D78 @ =sub_805671C + bl WarpIntoMap + ldr r0, _08085D78 @ =CB2_LoadMap bl SetMainCallback2 ldr r1, _08085D7C @ =gFieldCallback ldr r0, _08085D80 @ =mapldr_08085D88 @@ -5422,7 +5422,7 @@ _08085D70: bx r0 .align 2, 0 _08085D74: .4byte gPaletteFade -_08085D78: .4byte sub_805671C +_08085D78: .4byte CB2_LoadMap _08085D7C: .4byte gFieldCallback _08085D80: .4byte mapldr_08085D88 _08085D84: .4byte sub_8085B78 diff --git a/asm/field_fadetransition.s b/asm/field_fadetransition.s index 6939ccac0..b2eb846e7 100644 --- a/asm/field_fadetransition.s +++ b/asm/field_fadetransition.s @@ -1411,7 +1411,7 @@ _0807E632: strh r0, [r4, 0x8] b _0807E64A _0807E63A: - bl warp_in + bl WarpIntoMap ldr r0, _0807E650 @ =sub_8056788 bl SetMainCallback2 adds r0, r5, 0 @@ -1494,8 +1494,8 @@ _0807E6DC: ldrb r0, [r0] cmp r0, 0 bne _0807E6F4 - bl warp_in - ldr r0, _0807E700 @ =sub_805671C + bl WarpIntoMap + ldr r0, _0807E700 @ =CB2_LoadMap bl SetMainCallback2 adds r0, r5, 0 bl DestroyTask @@ -1505,7 +1505,7 @@ _0807E6F4: bx r0 .align 2, 0 _0807E6FC: .4byte gReceivedRemoteLinkPlayers -_0807E700: .4byte sub_805671C +_0807E700: .4byte CB2_LoadMap thumb_func_end sub_807E678 thumb_func_start sub_807E704 @@ -1563,8 +1563,8 @@ _0807E762: strh r0, [r4, 0x8] b _0807E77A _0807E76A: - bl warp_in - ldr r0, _0807E780 @ =sub_805671C + bl WarpIntoMap + ldr r0, _0807E780 @ =CB2_LoadMap bl SetMainCallback2 adds r0, r5, 0 bl DestroyTask @@ -1573,7 +1573,7 @@ _0807E77A: pop {r0} bx r0 .align 2, 0 -_0807E780: .4byte sub_805671C +_0807E780: .4byte CB2_LoadMap thumb_func_end sub_807E718 thumb_func_start sub_807E784 @@ -1630,8 +1630,8 @@ _0807E7EA: strh r0, [r4, 0x8] b _0807E802 _0807E7F2: - bl warp_in - ldr r0, _0807E808 @ =sub_805671C + bl WarpIntoMap + ldr r0, _0807E808 @ =CB2_LoadMap bl SetMainCallback2 adds r0, r5, 0 bl DestroyTask @@ -1640,7 +1640,7 @@ _0807E802: pop {r0} bx r0 .align 2, 0 -_0807E808: .4byte sub_805671C +_0807E808: .4byte CB2_LoadMap thumb_func_end sub_807E784 thumb_func_start sub_807E80C @@ -1957,8 +1957,8 @@ _0807EA9A: ldr r0, _0807EAB8 @ =gFieldCallback ldr r1, _0807EABC @ =sub_807DF64 str r1, [r0] - bl warp_in - ldr r0, _0807EAC0 @ =sub_805671C + bl WarpIntoMap + ldr r0, _0807EAC0 @ =CB2_LoadMap bl SetMainCallback2 adds r0, r4, 0 bl DestroyTask @@ -1970,7 +1970,7 @@ _0807EAB0: .align 2, 0 _0807EAB8: .4byte gFieldCallback _0807EABC: .4byte sub_807DF64 -_0807EAC0: .4byte sub_805671C +_0807EAC0: .4byte CB2_LoadMap thumb_func_end sub_807E980 thumb_func_start sub_807EAC4 diff --git a/asm/field_poison.s b/asm/field_poison.s deleted file mode 100644 index 811f375c6..000000000 --- a/asm/field_poison.s +++ /dev/null @@ -1,316 +0,0 @@ - .include "asm/macros.inc" - .include "constants/constants.inc" - - .syntax unified - - .text - - thumb_func_start CheckMonIsValid -CheckMonIsValid: @ 80A0460 - push {lr} - movs r1, 0x41 - bl GetMonData - lsls r0, 16 - lsrs r1, r0, 16 - cmp r1, 0 - beq _080A0478 - movs r0, 0xCE - lsls r0, 1 - cmp r1, r0 - bne _080A047C -_080A0478: - movs r0, 0 - b _080A047E -_080A047C: - movs r0, 0x1 -_080A047E: - pop {r1} - bx r1 - thumb_func_end CheckMonIsValid - - thumb_func_start AllMonsFainted -AllMonsFainted: @ 80A0484 - push {r4,r5,lr} - ldr r4, _080A04A4 @ =gPlayerParty - movs r5, 0 -_080A048A: - adds r0, r4, 0 - bl CheckMonIsValid - cmp r0, 0 - beq _080A04A8 - adds r0, r4, 0 - movs r1, 0x39 - bl GetMonData - cmp r0, 0 - beq _080A04A8 - movs r0, 0 - b _080A04B2 - .align 2, 0 -_080A04A4: .4byte gPlayerParty -_080A04A8: - adds r5, 0x1 - adds r4, 0x64 - cmp r5, 0x5 - ble _080A048A - movs r0, 0x1 -_080A04B2: - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end AllMonsFainted - - thumb_func_start MonFaintFromPoisonOnField -MonFaintFromPoisonOnField: @ 80A04B8 - push {r4,r5,lr} - sub sp, 0x4 - lsls r0, 24 - lsrs r0, 24 - movs r1, 0x64 - adds r4, r0, 0 - muls r4, r1 - ldr r0, _080A04FC @ =gPlayerParty - adds r4, r0 - movs r0, 0 - str r0, [sp] - adds r0, r4, 0 - movs r1, 0x8 - bl AdjustFriendship - adds r0, r4, 0 - movs r1, 0x37 - mov r2, sp - bl SetMonData - ldr r5, _080A0500 @ =gStringVar1 - adds r0, r4, 0 - movs r1, 0x2 - adds r2, r5, 0 - bl GetMonData - adds r0, r5, 0 - bl StringGetEnd10 - add sp, 0x4 - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080A04FC: .4byte gPlayerParty -_080A0500: .4byte gStringVar1 - thumb_func_end MonFaintFromPoisonOnField - - thumb_func_start CheckMonFaintedFromPoison -CheckMonFaintedFromPoison: @ 80A0504 - push {r4,lr} - lsls r0, 24 - lsrs r0, 24 - movs r1, 0x64 - muls r1, r0 - ldr r0, _080A0540 @ =gPlayerParty - adds r4, r1, r0 - adds r0, r4, 0 - bl CheckMonIsValid - cmp r0, 0 - beq _080A0544 - adds r0, r4, 0 - movs r1, 0x39 - bl GetMonData - cmp r0, 0 - bne _080A0544 - adds r0, r4, 0 - movs r1, 0x37 - bl GetMonData - bl pokemon_ailments_get_primary - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bne _080A0544 - movs r0, 0x1 - b _080A0546 - .align 2, 0 -_080A0540: .4byte gPlayerParty -_080A0544: - movs r0, 0 -_080A0546: - pop {r4} - pop {r1} - bx r1 - thumb_func_end CheckMonFaintedFromPoison - - thumb_func_start Task_WhiteOut -Task_WhiteOut: @ 80A054C - push {r4,r5,lr} - lsls r0, 24 - lsrs r5, r0, 24 - lsls r0, r5, 2 - adds r0, r5 - lsls r0, 3 - ldr r1, _080A0570 @ =gTasks+0x8 - adds r4, r0, r1 - movs r1, 0 - ldrsh r0, [r4, r1] - cmp r0, 0x1 - beq _080A05A6 - cmp r0, 0x1 - bgt _080A0574 - cmp r0, 0 - beq _080A057A - b _080A05F6 - .align 2, 0 -_080A0570: .4byte gTasks+0x8 -_080A0574: - cmp r0, 0x2 - beq _080A05B8 - b _080A05F6 -_080A057A: - ldrh r1, [r4, 0x2] - movs r2, 0x2 - ldrsh r0, [r4, r2] - cmp r0, 0x5 - bgt _080A05A0 -_080A0584: - lsls r0, r1, 24 - lsrs r0, 24 - bl CheckMonFaintedFromPoison - cmp r0, 0 - bne _080A05D0 - ldrh r0, [r4, 0x2] - adds r0, 0x1 - strh r0, [r4, 0x2] - adds r1, r0, 0 - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x5 - ble _080A0584 -_080A05A0: - movs r0, 0x2 - strh r0, [r4] - b _080A05F6 -_080A05A6: - bl IsFieldMessageBoxHidden - lsls r0, 24 - cmp r0, 0 - beq _080A05F6 - ldrh r0, [r4] - subs r0, 0x1 - strh r0, [r4] - b _080A05F6 -_080A05B8: - bl AllMonsFainted - adds r1, r0, 0 - cmp r1, 0 - beq _080A05E8 - ldr r1, _080A05CC @ =gSpecialVar_Result - movs r0, 0x1 - strh r0, [r1] - b _080A05EC - .align 2, 0 -_080A05CC: .4byte gSpecialVar_Result -_080A05D0: - ldrb r0, [r4, 0x2] - bl MonFaintFromPoisonOnField - ldr r0, _080A05E4 @ =gUnknown_81A5476 - bl ShowFieldMessage - ldrh r0, [r4] - adds r0, 0x1 - strh r0, [r4] - b _080A05F6 - .align 2, 0 -_080A05E4: .4byte gUnknown_81A5476 -_080A05E8: - ldr r0, _080A05FC @ =gSpecialVar_Result - strh r1, [r0] -_080A05EC: - bl EnableBothScriptContexts - adds r0, r5, 0 - bl DestroyTask -_080A05F6: - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080A05FC: .4byte gSpecialVar_Result - thumb_func_end Task_WhiteOut - - thumb_func_start ExecuteWhiteOut -ExecuteWhiteOut: @ 80A0600 - push {lr} - ldr r0, _080A0614 @ =Task_WhiteOut - movs r1, 0x50 - bl CreateTask - bl ScriptContext1_Stop - pop {r0} - bx r0 - .align 2, 0 -_080A0614: .4byte Task_WhiteOut - thumb_func_end ExecuteWhiteOut - - thumb_func_start overworld_poison -overworld_poison: @ 80A0618 - push {r4-r7,lr} - sub sp, 0x4 - ldr r4, _080A0684 @ =gPlayerParty - movs r7, 0 - movs r6, 0 - movs r5, 0x5 -_080A0624: - adds r0, r4, 0 - movs r1, 0x5 - bl GetMonData - cmp r0, 0 - beq _080A0668 - adds r0, r4, 0 - movs r1, 0x37 - bl GetMonData - bl pokemon_ailments_get_primary - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bne _080A0668 - adds r0, r4, 0 - movs r1, 0x39 - bl GetMonData - str r0, [sp] - cmp r0, 0 - beq _080A065A - subs r0, 0x1 - str r0, [sp] - cmp r0, 0 - bne _080A065C -_080A065A: - adds r6, 0x1 -_080A065C: - adds r0, r4, 0 - movs r1, 0x39 - mov r2, sp - bl SetMonData - adds r7, 0x1 -_080A0668: - adds r4, 0x64 - subs r5, 0x1 - cmp r5, 0 - bge _080A0624 - cmp r6, 0 - bne _080A0678 - cmp r7, 0 - beq _080A067C -_080A0678: - bl FldEffPoison_Start -_080A067C: - cmp r6, 0 - beq _080A0688 - movs r0, 0x2 - b _080A0692 - .align 2, 0 -_080A0684: .4byte gPlayerParty -_080A0688: - cmp r7, 0 - bne _080A0690 - movs r0, 0 - b _080A0692 -_080A0690: - movs r0, 0x1 -_080A0692: - add sp, 0x4 - pop {r4-r7} - pop {r1} - bx r1 - thumb_func_end overworld_poison - - .align 2, 0 @ Don't pad with nop. diff --git a/asm/field_specials.s b/asm/field_specials.s index fe4ac2b2d..c1555f2bb 100644 --- a/asm/field_specials.s +++ b/asm/field_specials.s @@ -268,13 +268,13 @@ _080CA7E6: sub_80CA7EC: @ 80CA7EC push {lr} bl sub_8112364 - ldr r1, _080CA800 @ =c2_exit_to_overworld_1_continue_scripts_restart_music + ldr r1, _080CA800 @ =CB2_ReturnToFieldContinueScriptPlayMapMusic movs r0, 0x1 bl sub_80BFF50 pop {r0} bx r0 .align 2, 0 -_080CA800: .4byte c2_exit_to_overworld_1_continue_scripts_restart_music +_080CA800: .4byte CB2_ReturnToFieldContinueScriptPlayMapMusic thumb_func_end sub_80CA7EC thumb_func_start sub_80CA804 @@ -2781,7 +2781,7 @@ sub_80CBB28: @ 80CBB28 ldrh r0, [r6, 0x24] lsls r0, 24 lsrs r0, 24 - bl ListMenuHandleInput + bl ListMenu_ProcessInput adds r4, r0, 0 movs r0, 0x2 negs r0, r0 @@ -2854,7 +2854,7 @@ sub_80CBBAC: @ 80CBBAC lsrs r0, 24 movs r1, 0 movs r2, 0 - bl DestroyListMenu + bl DestroyListMenuTask ldr r0, _080CBC28 @ =gUnknown_2039A14 ldr r0, [r0] bl Free @@ -3183,7 +3183,7 @@ _080CBE20: lsls r0, 24 lsrs r0, 24 _080CBE40: - bl sub_813CD24 + bl GetColorFromTextColorTable _080CBE44: lsls r0, 24 lsrs r0, 24 @@ -3469,7 +3469,7 @@ ChangeBoxPokemonNickname_CB: @ 80CC064 ldrb r1, [r1] ldr r2, _080CC084 @ =gStringVar2 bl SetBoxMonNickFromAnyBox - bl c2_exit_to_overworld_1_continue_scripts_restart_music + bl CB2_ReturnToFieldContinueScriptPlayMapMusic pop {r0} bx r0 .align 2, 0 @@ -3577,7 +3577,7 @@ ChangePokemonNickname_CB: @ 80CC144 ldr r2, _080CC16C @ =gStringVar2 movs r1, 0x2 bl SetMonData - bl c2_exit_to_overworld_1_continue_scripts_restart_music + bl CB2_ReturnToFieldContinueScriptPlayMapMusic pop {r0} bx r0 .align 2, 0 diff --git a/asm/item_menu.s b/asm/item_menu.s index 001198d95..8d01691a5 100644 --- a/asm/item_menu.s +++ b/asm/item_menu.s @@ -1802,7 +1802,7 @@ sub_8108B8C: @ 8108B8C adds r3, r4, 0 adds r3, 0x8 adds r2, r3 - bl DestroyListMenu + bl DestroyListMenuTask ldr r0, _08108BF0 @ =gUnknown_203AD10 ldr r0, [r0] ldr r0, [r0] @@ -2341,7 +2341,7 @@ _08108FA0: _08108FE0: .4byte gUnknown_203AD10 _08108FE4: ldrb r0, [r7] - bl ListMenuHandleInput + bl ListMenu_ProcessInput adds r4, r0, 0 ldrb r0, [r7] ldr r5, _08109014 @ =gUnknown_203ACFC @@ -2617,7 +2617,7 @@ sub_81091D0: @ 81091D0 adds r1, r2, r1 adds r3, 0x8 adds r2, r3 - bl DestroyListMenu + bl DestroyListMenuTask movs r0, 0 bl ScheduleBgCopyTilemapToVram ldr r0, _08109290 @ =gUnknown_203AD10 @@ -2835,7 +2835,7 @@ sub_81093B8: @ 81093B8 ldrb r0, [r2] movs r1, 0x10 movs r2, 0x1 - bl sub_8107BD0 + bl ListMenuSetUnkIndicatorsStructField mov r0, r8 strh r4, [r0, 0x2] ldr r0, _08109498 @ =gUnknown_203AD10 @@ -2931,7 +2931,7 @@ sub_81094B0: @ 81094B0 cmp r0, 0x1 beq _0810959E ldrb r0, [r4] - bl ListMenuHandleInput + bl ListMenu_ProcessInput adds r5, r0, 0 ldrb r0, [r4] ldr r3, _0810953C @ =gUnknown_203ACFC @@ -3082,7 +3082,7 @@ _081095E8: adds r7, r4, 0 adds r7, 0x8 adds r2, r7 - bl DestroyListMenu + bl DestroyListMenuTask movs r3, 0x2 ldrsh r0, [r6, r3] cmp r0, r5 @@ -3160,7 +3160,7 @@ sub_810967C: @ 810967C adds r7, r5, 0 adds r7, 0x8 adds r2, r7 - bl DestroyListMenu + bl DestroyListMenuTask movs r3, 0x2 ldrsh r0, [r6, r3] cmp r0, r4 @@ -4213,7 +4213,7 @@ _08109F6E: adds r6, r4, 0 adds r6, 0x8 adds r2, r6 - bl DestroyListMenu + bl DestroyListMenuTask ldrb r0, [r4, 0x6] bl sub_8108DC8 ldrb r0, [r4, 0x6] @@ -4304,7 +4304,7 @@ _0810A052: adds r6, r4, 0 adds r6, 0x8 adds r2, r6 - bl DestroyListMenu + bl DestroyListMenuTask ldrb r0, [r4, 0x6] bl sub_810842C ldr r0, _0810A0A4 @ =gMultiuseListMenuTemplate @@ -4519,7 +4519,7 @@ sub_810A1F8: @ 810A1F8 adds r3, r4 mov r9, r3 add r2, r9 - bl DestroyListMenu + bl DestroyListMenuTask ldrb r0, [r4, 0x6] bl sub_8108DC8 ldrb r0, [r4, 0x6] @@ -5497,7 +5497,7 @@ sub_810A9D4: @ 810A9D4 adds r3, r4 mov r9, r3 add r2, r9 - bl DestroyListMenu + bl DestroyListMenuTask ldrb r0, [r4, 0x6] bl sub_8108DC8 ldrb r0, [r4, 0x6] @@ -6212,7 +6212,7 @@ _0810B01C: ldrb r0, [r5] movs r1, 0 movs r2, 0 - bl DestroyListMenu + bl DestroyListMenuTask bl sub_810AECC bl sub_8108CB4 adds r0, r7, 0 @@ -6537,7 +6537,7 @@ _0810B29E: adds r6, r4, 0 adds r6, 0x8 adds r2, r6 - bl DestroyListMenu + bl DestroyListMenuTask ldrb r0, [r4, 0x6] bl sub_810842C ldr r0, _0810B328 @ =gMultiuseListMenuTemplate @@ -6573,7 +6573,7 @@ _0810B32C: movs r0, 0x80 strh r0, [r1, 0x30] ldrb r0, [r7] - bl ListMenuHandleInput + bl ListMenu_ProcessInput b _0810B36C .align 2, 0 _0810B340: .4byte gMain @@ -6583,7 +6583,7 @@ _0810B344: ldrb r0, [r7] movs r1, 0 movs r2, 0 - bl DestroyListMenu + bl DestroyListMenuTask bl sub_810AECC bl sub_8108CB4 adds r0, r6, 0 @@ -6701,7 +6701,7 @@ _0810B428: _0810B430: strh r0, [r1, 0x30] ldrb r0, [r4] - bl ListMenuHandleInput + bl ListMenu_ProcessInput b _0810B4B0 .align 2, 0 _0810B43C: .4byte gMain @@ -6738,7 +6738,7 @@ _0810B468: ldrb r0, [r4] movs r1, 0 movs r2, 0 - bl DestroyListMenu + bl DestroyListMenuTask bl sub_810AECC bl sub_8108CB4 adds r0, r7, 0 @@ -6817,7 +6817,7 @@ _0810B528: strh r6, [r0, 0x2E] strh r7, [r0, 0x30] ldrb r0, [r5] - bl ListMenuHandleInput + bl ListMenu_ProcessInput b _0810B5C0 .align 2, 0 _0810B538: .4byte gMain @@ -6854,7 +6854,7 @@ _0810B564: ldrb r0, [r5] movs r1, 0 movs r2, 0 - bl DestroyListMenu + bl DestroyListMenuTask bl sub_810AECC ldr r1, _0810B5B0 @ =gUnknown_3005E98 ldr r0, _0810B5B4 @ =ItemUseCB_Medicine @@ -6950,7 +6950,7 @@ _0810B64E: strh r5, [r0, 0x2E] strh r7, [r0, 0x30] ldrb r0, [r6] - bl ListMenuHandleInput + bl ListMenu_ProcessInput b _0810B6E0 .align 2, 0 _0810B65C: .4byte gMain @@ -6989,7 +6989,7 @@ _0810B68C: ldrb r0, [r6] movs r1, 0 movs r2, 0 - bl DestroyListMenu + bl DestroyListMenuTask bl sub_810AECC ldr r0, _0810B6D4 @ =gUnknown_203AD10 ldr r1, [r0] diff --git a/asm/learn_move.s b/asm/learn_move.s index f00135fda..6684874bb 100644 --- a/asm/learn_move.s +++ b/asm/learn_move.s @@ -1409,7 +1409,7 @@ sub_80E5204: @ 80E5204 ldr r1, _080E525C @ =0x00000263 adds r0, r1 ldrb r0, [r0] - bl ListMenuHandleInput + bl ListMenu_ProcessInput ldr r0, _080E5260 @ =gMain ldrh r1, [r0, 0x2E] movs r0, 0x1 @@ -1568,7 +1568,7 @@ sub_80E5340: @ 80E5340 movs r0, 0x2 movs r2, 0x1 movs r3, 0x4 - bl blit_move_info_icon + bl BlitMoveInfoIcon ldrb r0, [r4, 0x1] cmp r0, 0x1 bhi _080E5388 @@ -1680,27 +1680,27 @@ sub_80E5444: @ 80E5444 movs r1, 0x13 movs r2, 0x1 movs r3, 0x4 - bl blit_move_info_icon + bl BlitMoveInfoIcon movs r0, 0x1 movs r1, 0x14 movs r2, 0 movs r3, 0x4 - bl blit_move_info_icon + bl BlitMoveInfoIcon movs r0, 0x1 movs r1, 0x15 movs r2, 0 movs r3, 0x13 - bl blit_move_info_icon + bl BlitMoveInfoIcon movs r0, 0 movs r1, 0x16 movs r2, 0x1 movs r3, 0x13 - bl blit_move_info_icon + bl BlitMoveInfoIcon movs r0, 0 movs r1, 0x17 movs r2, 0x1 movs r3, 0x22 - bl blit_move_info_icon + bl BlitMoveInfoIcon movs r0, 0 bl PutWindowTilemap movs r0, 0x1 diff --git a/asm/link_rfu_3.s b/asm/link_rfu_3.s index 111161c06..78c09b0ff 100644 --- a/asm/link_rfu_3.s +++ b/asm/link_rfu_3.s @@ -620,7 +620,7 @@ _08115DD4: bl sub_81165E8 strb r0, [r5, 0x13] ldrb r0, [r5, 0x12] - bl sub_8107180 + bl RedrawListMenu b _0811610C .align 2, 0 _08115DE4: .4byte gUnknown_203B058 @@ -783,7 +783,7 @@ _08115EF4: movs r0, 0 strb r0, [r1, 0x1B] ldrb r0, [r5, 0x12] - bl sub_8107180 + bl RedrawListMenu ldrb r0, [r5, 0x13] adds r0, 0x1 strb r0, [r5, 0x13] @@ -870,7 +870,7 @@ _08115FB4: ldr r0, [r5] bl sub_81165E8 ldrb r0, [r5, 0x12] - bl sub_8107180 + bl RedrawListMenu _08115FF0: movs r0, 0x4 strb r0, [r5, 0xC] @@ -1139,7 +1139,7 @@ sub_81161E4: @ 81161E4 ldrb r0, [r4, 0x12] movs r1, 0 movs r2, 0 - bl DestroyListMenu + bl DestroyListMenuTask ldrb r0, [r4, 0x10] bl ClearWindowTilemap ldrb r0, [r4, 0xF] @@ -1400,7 +1400,7 @@ _08116460: movs r0, 0x2 bl PlaySE ldrb r0, [r5, 0x12] - bl sub_8107180 + bl RedrawListMenu ldr r4, _081164A0 @ =gStringVar2 ldrb r0, [r5, 0x13] lsls r0, 5 @@ -1433,7 +1433,7 @@ _081164AC: movs r1, 0 bl sub_80FB9E4 ldrb r0, [r5, 0x12] - bl sub_8107180 + bl RedrawListMenu strb r4, [r5, 0xC] movs r0, 0x1 b _081164C2 @@ -1972,7 +1972,7 @@ _08116916: b _08116BF6 _0811691E: ldrb r0, [r6, 0xE] - bl ListMenuHandleInput + bl ListMenu_ProcessInput adds r4, r0, 0 ldr r0, _0811696C @ =gMain ldrh r1, [r0, 0x2E] @@ -2301,7 +2301,7 @@ _08116BF4: strb r0, [r6, 0x8] _08116BF6: ldrb r0, [r6, 0xE] - bl sub_8107180 + bl RedrawListMenu b _08116D06 _08116BFE: bl sub_80FB9F4 @@ -2322,7 +2322,7 @@ _08116C10: ldrb r0, [r6, 0xE] movs r1, 0 movs r2, 0 - bl DestroyListMenu + bl DestroyListMenuTask ldrb r0, [r6, 0xC] bl ClearWindowTilemap ldrb r0, [r6, 0xB] @@ -2480,7 +2480,7 @@ sub_8116D60: @ 8116D60 movs r1, 0 bl sub_80FCD74 ldrb r0, [r4, 0xE] - bl sub_8107180 + bl RedrawListMenu ldr r5, _08116DD4 @ =gStringVar1 ldrb r0, [r4, 0xF] lsls r0, 5 @@ -3367,7 +3367,7 @@ sub_8117440: @ 8117440 movs r0, 0 mov r3, r8 bl SetDynamicWarpWithCoords - bl warp_in + bl WarpIntoMap add sp, 0x8 pop {r3} mov r8, r3 @@ -3424,7 +3424,7 @@ sub_81174B4: @ 81174B4 adds r1, r5, 0 mov r3, r8 bl Overworld_SetWarpDestination - bl warp_in + bl WarpIntoMap add sp, 0x4 pop {r3} mov r8, r3 @@ -3763,21 +3763,21 @@ _08117890: bl GetCursorSelectionMonId lsls r0, 24 lsrs r0, 24 - ldr r1, _081178AC @ =sub_805671C + ldr r1, _081178AC @ =CB2_LoadMap bl sub_8147AA8 b _081178E0 .align 2, 0 -_081178AC: .4byte sub_805671C +_081178AC: .4byte CB2_LoadMap _081178B0: movs r0, 0x7 movs r1, 0x9 movs r2, 0x1 bl sub_8117440 - ldr r0, _081178C4 @ =sub_805671C + ldr r0, _081178C4 @ =CB2_LoadMap bl sub_814B754 b _081178E0 .align 2, 0 -_081178C4: .4byte sub_805671C +_081178C4: .4byte CB2_LoadMap _081178C8: movs r0, 0x8 movs r1, 0x5 @@ -3786,7 +3786,7 @@ _081178C8: bl GetCursorSelectionMonId lsls r0, 24 lsrs r0, 24 - ldr r1, _081178F8 @ =sub_805671C + ldr r1, _081178F8 @ =CB2_LoadMap bl sub_81507FC _081178E0: adds r0, r4, 0 @@ -3800,7 +3800,7 @@ _081178E0: pop {r0} bx r0 .align 2, 0 -_081178F8: .4byte sub_805671C +_081178F8: .4byte CB2_LoadMap _081178FC: .4byte gSpecialVar_Result thumb_func_end sub_81175BC @@ -4151,7 +4151,7 @@ _08117BF4: bl sub_81165E8 strb r0, [r5, 0x13] ldrb r0, [r5, 0x12] - bl sub_8107180 + bl RedrawListMenu _08117C02: movs r0, 0x2 strb r0, [r5, 0xC] @@ -4198,7 +4198,7 @@ _08117C42: adds r1, r0 strb r4, [r1, 0x1B] ldrb r0, [r5, 0x12] - bl sub_8107180 + bl RedrawListMenu movs r0, 0x5 strb r0, [r5, 0x19] ldrb r1, [r5, 0x13] @@ -4268,7 +4268,7 @@ _08117CB2: movs r0, 0 strb r0, [r1, 0x1B] ldrb r0, [r5, 0x12] - bl sub_8107180 + bl RedrawListMenu ldrb r0, [r5, 0x13] adds r0, 0x1 strb r0, [r5, 0x13] @@ -4327,7 +4327,7 @@ _08117D3C: ldr r0, [r5] bl sub_81165E8 ldrb r0, [r5, 0x12] - bl sub_8107180 + bl RedrawListMenu movs r0, 0x2 strb r0, [r5, 0xC] _08117D7C: @@ -4398,7 +4398,7 @@ _08117DEE: ldrb r0, [r5, 0x12] movs r1, 0 movs r2, 0 - bl DestroyListMenu + bl DestroyListMenuTask movs r0, 0 bl CopyBgTilemapBufferToVram ldrb r0, [r5, 0xF] @@ -4457,7 +4457,7 @@ _08117E80: ldrb r0, [r5, 0x12] movs r1, 0 movs r2, 0 - bl DestroyListMenu + bl DestroyListMenuTask movs r0, 0 bl CopyBgTilemapBufferToVram ldrb r0, [r5, 0xF] @@ -4673,11 +4673,11 @@ _08118070: bl PlaySE _08118086: ldrb r0, [r5, 0xE] - bl sub_8107180 + bl RedrawListMenu b _08118288 _0811808E: ldrb r0, [r5, 0xE] - bl ListMenuHandleInput + bl ListMenu_ProcessInput adds r2, r0, 0 ldr r0, _08118128 @ =gMain ldrh r1, [r0, 0x2E] @@ -4707,7 +4707,7 @@ _0811808E: movs r1, 0 bl sub_80FCD74 ldrb r0, [r5, 0xE] - bl sub_8107180 + bl RedrawListMenu ldr r4, _0811812C @ =gStringVar1 ldrb r0, [r5, 0xF] lsls r0, 5 @@ -4842,7 +4842,7 @@ _081181EC: ldrb r0, [r5, 0xE] movs r1, 0 movs r2, 0 - bl DestroyListMenu + bl DestroyListMenuTask movs r0, 0 bl CopyBgTilemapBufferToVram ldrb r0, [r5, 0xD] @@ -5085,14 +5085,14 @@ _0811841E: b _08118604 _08118426: ldrb r0, [r5, 0xE] - bl sub_8107180 + bl RedrawListMenu b _08118604 _0811842E: ldrb r0, [r5, 0x13] cmp r0, 0 beq _0811843A ldrb r0, [r5, 0xE] - bl ListMenuHandleInput + bl ListMenu_ProcessInput _0811843A: ldrb r0, [r5, 0x14] cmp r0, 0x78 @@ -5242,7 +5242,7 @@ _08118564: ldrb r0, [r5, 0xE] movs r1, 0 movs r2, 0 - bl DestroyListMenu + bl DestroyListMenuTask movs r0, 0 bl CopyBgTilemapBufferToVram ldrb r0, [r5, 0xB] @@ -8715,7 +8715,7 @@ _0811A270: .4byte gMultiuseListMenuTemplate _0811A274: mov r3, r9 ldrb r0, [r3] - bl ListMenuHandleInput + bl ListMenu_ProcessInput mov r8, r0 ldr r0, _0811A2AC @ =gMain ldrh r1, [r0, 0x2E] @@ -8726,7 +8726,7 @@ _0811A274: ldrb r0, [r4] movs r1, 0 movs r2, 0 - bl DestroyListMenu + bl DestroyListMenuTask ldrb r0, [r5] movs r1, 0x1 bl ClearStdWindowAndFrame @@ -8747,7 +8747,7 @@ _0811A2B0: ldrb r0, [r6] movs r1, 0 movs r2, 0 - bl DestroyListMenu + bl DestroyListMenuTask ldrb r0, [r5] movs r1, 0x1 bl ClearStdWindowAndFrame @@ -8821,7 +8821,7 @@ _0811A350: .4byte gUnknown_8456F1C _0811A354: .4byte gMultiuseListMenuTemplate _0811A358: ldrb r0, [r5] - bl ListMenuHandleInput + bl ListMenu_ProcessInput adds r1, r0, 0 ldr r0, _0811A3A8 @ =gMain ldrh r2, [r0, 0x2E] @@ -8842,7 +8842,7 @@ _0811A37E: ldrb r0, [r5] movs r1, 0 movs r2, 0 - bl DestroyListMenu + bl DestroyListMenuTask ldrb r0, [r4] movs r1, 0x1 bl ClearStdWindowAndFrame @@ -8867,7 +8867,7 @@ _0811A3AC: ldrb r0, [r5] movs r1, 0 movs r2, 0 - bl DestroyListMenu + bl DestroyListMenuTask ldrb r0, [r4] movs r1, 0x1 bl ClearStdWindowAndFrame @@ -9999,7 +9999,7 @@ _0811AC3C: adds r0, r6, 0 movs r2, 0x44 adds r3, r5, 0 - bl blit_move_info_icon + bl BlitMoveInfoIcon movs r0, 0xB mov r2, r8 muls r2, r0 @@ -10537,14 +10537,14 @@ _0811B056: lsls r0, r4, 24 lsrs r0, 24 adds r1, r5, 0 - bl UnkTextUtil_SetPtrI + bl DynamicPlaceholderTextUtil_SetPlaceholderPtr adds r5, 0xB adds r4, 0x1 cmp r4, 0x3 ble _0811B056 ldr r1, _0811B074 @ =gUnknown_8457D44 adds r0, r7, 0 - bl UnkTextUtil_StringExpandPlaceholders + bl DynamicPlaceholderTextUtil_ExpandPlaceholders b _0811B080 .align 2, 0 _0811B074: .4byte gUnknown_8457D44 @@ -10952,7 +10952,7 @@ sub_811B31C: @ 811B31C ldr r0, _0811B4B0 @ =gUnknown_2039624 adds r1, r0 mov r8, r1 - bl UnkTextUtil_Reset + bl DynamicPlaceholderTextUtil_Reset mov r6, r9 adds r6, 0xAC bl sub_80447F0 @@ -10966,11 +10966,11 @@ sub_811B31C: @ 811B31C bl StringCopy movs r0, 0 adds r1, r6, 0 - bl UnkTextUtil_SetPtrI + bl DynamicPlaceholderTextUtil_SetPlaceholderPtr mov r1, r8 adds r1, 0x30 movs r0, 0x1 - bl UnkTextUtil_SetPtrI + bl DynamicPlaceholderTextUtil_SetPlaceholderPtr movs r4, 0xB0 lsls r4, 1 add r4, r9 @@ -10984,7 +10984,7 @@ sub_811B31C: @ 811B31C bl StringCopy movs r0, 0x2 adds r1, r4, 0 - bl UnkTextUtil_SetPtrI + bl DynamicPlaceholderTextUtil_SetPlaceholderPtr mov r5, r9 adds r5, 0xCA mov r0, r8 @@ -10995,7 +10995,7 @@ sub_811B31C: @ 811B31C bl ConvertIntToDecimalStringN movs r0, 0x3 adds r1, r5, 0 - bl UnkTextUtil_SetPtrI + bl DynamicPlaceholderTextUtil_SetPlaceholderPtr movs r2, 0xD9 add r2, r9 mov r10, r2 @@ -11015,16 +11015,16 @@ sub_811B31C: @ 811B31C bl ConvertIntToDecimalStringN movs r0, 0x4 mov r1, r10 - bl UnkTextUtil_SetPtrI + bl DynamicPlaceholderTextUtil_SetPlaceholderPtr movs r0, 0x5 adds r1, r4, 0 - bl UnkTextUtil_SetPtrI + bl DynamicPlaceholderTextUtil_SetPlaceholderPtr movs r4, 0xC8 lsls r4, 1 add r4, r9 ldr r1, _0811B4BC @ =gUnknown_84594C4 adds r0, r4, 0 - bl UnkTextUtil_StringExpandPlaceholders + bl DynamicPlaceholderTextUtil_ExpandPlaceholders ldr r0, _0811B4C0 @ =gStringVar4 adds r1, r4, 0 bl StringCopy @@ -11041,7 +11041,7 @@ _0811B40A: bl ConvertIntToDecimalStringN movs r0, 0 adds r1, r6, 0 - bl UnkTextUtil_SetPtrI + bl DynamicPlaceholderTextUtil_SetPlaceholderPtr mov r2, r8 ldrh r1, [r2, 0x16] cmp r1, r4 @@ -11056,7 +11056,7 @@ _0811B426: bl ConvertIntToDecimalStringN movs r0, 0x2 adds r1, r4, 0 - bl UnkTextUtil_SetPtrI + bl DynamicPlaceholderTextUtil_SetPlaceholderPtr mov r0, r8 ldrh r1, [r0, 0x20] adds r0, r5, 0 @@ -11065,7 +11065,7 @@ _0811B426: bl ConvertIntToDecimalStringN movs r0, 0x3 adds r1, r5, 0 - bl UnkTextUtil_SetPtrI + bl DynamicPlaceholderTextUtil_SetPlaceholderPtr movs r7, 0 movs r6, 0x80 lsls r6, 19 @@ -11078,7 +11078,7 @@ _0811B45E: bl CopyEasyChatWord lsrs r0, r6, 24 adds r1, r4, 0 - bl UnkTextUtil_SetPtrI + bl DynamicPlaceholderTextUtil_SetPlaceholderPtr movs r2, 0x80 lsls r2, 17 adds r6, r2 @@ -11092,7 +11092,7 @@ _0811B45E: add r4, r9 ldr r1, _0811B4C8 @ =gUnknown_8459504 adds r0, r4, 0 - bl UnkTextUtil_StringExpandPlaceholders + bl DynamicPlaceholderTextUtil_ExpandPlaceholders ldr r5, _0811B4C0 @ =gStringVar4 adds r0, r5, 0 adds r1, r4, 0 @@ -11102,7 +11102,7 @@ _0811B45E: bne _0811B4D0 ldr r1, _0811B4CC @ =gUnknown_8459588 adds r0, r4, 0 - bl UnkTextUtil_StringExpandPlaceholders + bl DynamicPlaceholderTextUtil_ExpandPlaceholders adds r0, r5, 0 adds r1, r4, 0 bl StringAppend @@ -11127,7 +11127,7 @@ _0811B4D0: adds r1, r0 ldr r1, [r1] adds r0, r4, 0 - bl UnkTextUtil_StringExpandPlaceholders + bl DynamicPlaceholderTextUtil_ExpandPlaceholders adds r0, r5, 0 adds r1, r4, 0 bl StringAppend diff --git a/asm/list_menu.s b/asm/list_menu.s deleted file mode 100644 index e6e316fb7..000000000 --- a/asm/list_menu.s +++ /dev/null @@ -1,2019 +0,0 @@ - .include "asm/macros.inc" - .include "constants/constants.inc" - - .syntax unified - - .text - - thumb_func_start nullsub_90 -nullsub_90: @ 8106ECC - bx lr - thumb_func_end nullsub_90 - - thumb_func_start DoMysteryGiftListMenu -DoMysteryGiftListMenu: @ 8106ED0 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x8 - mov r12, r0 - str r1, [sp] - ldr r0, [sp, 0x28] - lsls r2, 24 - lsrs r6, r2, 24 - mov r10, r6 - lsls r3, 16 - lsrs r7, r3, 16 - str r7, [sp, 0x4] - lsls r0, 16 - mov r8, r0 - lsrs r0, 16 - mov r9, r0 - ldr r5, _08106F60 @ =gUnknown_203ACF4 - ldrb r4, [r5, 0x4] - cmp r4, 0x1 - beq _08106F68 - cmp r4, 0x1 - ble _08106F06 - cmp r4, 0x2 - beq _08106FCC -_08106F06: - mov r0, r12 - bl AddWindow - strb r0, [r5, 0x5] - cmp r6, 0x1 - beq _08106F24 - cmp r6, 0x2 - bne _08106F34 - ldrb r0, [r5, 0x5] - mov r1, r9 - lsls r2, r1, 24 - lsrs r2, 24 - adds r1, r7, 0 - bl TextWindow_SetUserSelectedFrame -_08106F24: - ldrb r0, [r5, 0x5] - mov r3, r8 - lsrs r2, r3, 20 - lsls r2, 24 - lsrs r2, 24 - ldr r1, [sp, 0x4] - bl DrawTextBorderOuter -_08106F34: - ldr r0, _08106F64 @ =gMultiuseListMenuTemplate - adds r2, r0, 0 - ldr r1, [sp] - ldm r1!, {r3-r5} - stm r2!, {r3-r5} - ldm r1!, {r3-r5} - stm r2!, {r3-r5} - ldr r4, _08106F60 @ =gUnknown_203ACF4 - ldrb r1, [r4, 0x5] - strb r1, [r0, 0x10] - movs r1, 0 - movs r2, 0 - bl ListMenuInit - strb r0, [r4, 0x6] - ldrb r0, [r4, 0x5] - movs r1, 0x1 - bl CopyWindowToVram - movs r0, 0x1 - strb r0, [r4, 0x4] - b _08106FE4 - .align 2, 0 -_08106F60: .4byte gUnknown_203ACF4 -_08106F64: .4byte gMultiuseListMenuTemplate -_08106F68: - ldrb r0, [r5, 0x6] - bl ListMenuHandleInput - str r0, [r5] - ldr r1, _08106FA4 @ =gMain - ldrh r0, [r1, 0x2E] - ands r4, r0 - cmp r4, 0 - beq _08106F7E - movs r0, 0x2 - strb r0, [r5, 0x4] -_08106F7E: - ldrh r1, [r1, 0x2E] - movs r0, 0x2 - ands r0, r1 - cmp r0, 0 - beq _08106F92 - movs r0, 0x2 - negs r0, r0 - str r0, [r5] - movs r0, 0x2 - strb r0, [r5, 0x4] -_08106F92: - ldrb r0, [r5, 0x4] - cmp r0, 0x2 - bne _08106FE4 - cmp r6, 0 - bne _08106FA8 - ldrb r0, [r5, 0x5] - bl ClearWindowTilemap - b _08106FBA - .align 2, 0 -_08106FA4: .4byte gMain -_08106FA8: - mov r4, r10 - cmp r4, 0 - blt _08106FBA - cmp r4, 0x2 - bgt _08106FBA - ldrb r0, [r5, 0x5] - movs r1, 0 - bl ClearStdWindowAndFrame -_08106FBA: - ldr r0, _08106FC8 @ =gUnknown_203ACF4 - ldrb r0, [r0, 0x5] - movs r1, 0x1 - bl CopyWindowToVram - b _08106FE4 - .align 2, 0 -_08106FC8: .4byte gUnknown_203ACF4 -_08106FCC: - ldrb r0, [r5, 0x6] - movs r1, 0 - movs r2, 0 - bl DestroyListMenu - ldrb r0, [r5, 0x5] - bl RemoveWindow - movs r0, 0 - strb r0, [r5, 0x4] - ldr r0, [r5] - b _08106FE8 -_08106FE4: - movs r0, 0x1 - negs r0, r0 -_08106FE8: - add sp, 0x8 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r1} - bx r1 - thumb_func_end DoMysteryGiftListMenu - - thumb_func_start ListMenuInit -ListMenuInit: @ 8106FF8 - push {r4,r5,lr} - adds r5, r0, 0 - lsls r1, 16 - lsrs r1, 16 - lsls r2, 16 - lsrs r2, 16 - bl ListMenuInitInternal - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - ldrb r0, [r5, 0x10] - bl PutWindowTilemap - ldrb r0, [r5, 0x10] - movs r1, 0x2 - bl CopyWindowToVram - adds r0, r4, 0 - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end ListMenuInit - - thumb_func_start Unused_ListMenuInit2 -Unused_ListMenuInit2: @ 8107024 - push {r4-r7,lr} - sub sp, 0x8 - adds r6, r0, 0 - adds r4, r1, 0 - adds r1, r2, 0 - adds r2, r3, 0 - lsls r1, 16 - lsrs r1, 16 - lsls r2, 16 - lsrs r2, 16 - bl ListMenuInitInternal - lsls r0, 24 - lsrs r7, r0, 24 - ldrb r0, [r4, 0x4] - cmp r0, 0xFF - beq _08107064 - adds r5, r4, 0 -_08107048: - ldrb r0, [r6, 0x10] - ldrb r1, [r5] - ldrb r2, [r5, 0x1] - ldrb r3, [r5, 0x2] - ldrb r4, [r5, 0x3] - str r4, [sp] - ldrb r4, [r5, 0x4] - str r4, [sp, 0x4] - bl PutWindowRectTilemapOverridePalette - adds r5, 0x8 - ldrb r0, [r5, 0x4] - cmp r0, 0xFF - bne _08107048 -_08107064: - ldrb r0, [r6, 0x10] - movs r1, 0x2 - bl CopyWindowToVram - adds r0, r7, 0 - add sp, 0x8 - pop {r4-r7} - pop {r1} - bx r1 - thumb_func_end Unused_ListMenuInit2 - - thumb_func_start ListMenuHandleInput -ListMenuHandleInput: @ 8107078 - push {lr} - lsls r0, 24 - lsrs r0, 24 - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 3 - ldr r0, _081070A4 @ =gTasks+0x8 - adds r3, r1, r0 - ldr r2, _081070A8 @ =gMain - ldrh r1, [r2, 0x2E] - movs r0, 0x1 - ands r0, r1 - cmp r0, 0 - beq _081070AC - ldrh r0, [r3, 0x18] - ldrh r1, [r3, 0x1A] - adds r0, r1 - ldr r1, [r3] - lsls r0, 3 - adds r0, r1 - ldr r0, [r0, 0x4] - b _08107136 - .align 2, 0 -_081070A4: .4byte gTasks+0x8 -_081070A8: .4byte gMain -_081070AC: - movs r0, 0x2 - ands r0, r1 - cmp r0, 0 - beq _081070BA - movs r0, 0x2 - negs r0, r0 - b _08107136 -_081070BA: - ldrh r1, [r2, 0x30] - movs r0, 0x40 - ands r0, r1 - cmp r0, 0 - beq _081070CE - adds r0, r3, 0 - movs r1, 0x1 - movs r2, 0x1 - movs r3, 0 - b _0810712E -_081070CE: - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - beq _081070DE - adds r0, r3, 0 - movs r1, 0x1 - movs r2, 0x1 - b _0810712C -_081070DE: - ldrb r0, [r3, 0x16] - lsrs r0, 6 - cmp r0, 0x1 - beq _081070F4 - cmp r0, 0x1 - ble _081070EE - cmp r0, 0x2 - beq _08107100 -_081070EE: - movs r2, 0 - movs r0, 0 - b _08107114 -_081070F4: - movs r0, 0x20 - ands r0, r1 - lsls r0, 16 - lsrs r2, r0, 16 - movs r0, 0x10 - b _0810710E -_08107100: - movs r0, 0x80 - lsls r0, 2 - ands r0, r1 - lsls r0, 16 - lsrs r2, r0, 16 - movs r0, 0x80 - lsls r0, 1 -_0810710E: - ands r0, r1 - lsls r0, 16 - lsrs r0, 16 -_08107114: - cmp r2, 0 - beq _08107122 - ldrb r2, [r3, 0xE] - adds r0, r3, 0 - movs r1, 0x1 - movs r3, 0 - b _0810712E -_08107122: - cmp r0, 0 - beq _08107132 - ldrb r2, [r3, 0xE] - adds r0, r3, 0 - movs r1, 0x1 -_0810712C: - movs r3, 0x1 -_0810712E: - bl ListMenuChangeSelection -_08107132: - movs r0, 0x1 - negs r0, r0 -_08107136: - pop {r1} - bx r1 - thumb_func_end ListMenuHandleInput - - thumb_func_start DestroyListMenu -DestroyListMenu: @ 810713C - push {r4,lr} - adds r3, r1, 0 - lsls r0, 24 - lsrs r0, 24 - adds r4, r0, 0 - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 3 - ldr r1, _0810717C @ =gTasks+0x8 - adds r1, r0, r1 - cmp r3, 0 - beq _08107158 - ldrh r0, [r1, 0x18] - strh r0, [r3] -_08107158: - cmp r2, 0 - beq _08107160 - ldrh r0, [r1, 0x1A] - strh r0, [r2] -_08107160: - ldrb r0, [r1, 0x1E] - cmp r0, 0xFF - beq _08107170 - ldrb r1, [r1, 0x17] - lsrs r1, 6 - subs r1, 0x2 - bl ListMenuRemoveCursorObject -_08107170: - adds r0, r4, 0 - bl DestroyTask - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0810717C: .4byte gTasks+0x8 - thumb_func_end DestroyListMenu - - thumb_func_start sub_8107180 -sub_8107180: @ 8107180 - push {r4,lr} - lsls r0, 24 - lsrs r0, 24 - lsls r4, r0, 2 - adds r4, r0 - lsls r4, 3 - ldr r0, _081071C0 @ =gTasks+0x8 - adds r4, r0 - ldrb r0, [r4, 0x10] - ldrb r2, [r4, 0x15] - lsls r2, 28 - lsrs r1, r2, 4 - orrs r1, r2 - lsrs r1, 24 - bl FillWindowPixelBuffer - ldrh r1, [r4, 0x18] - ldrh r3, [r4, 0xE] - adds r0, r4, 0 - movs r2, 0 - bl ListMenuPrintEntries - adds r0, r4, 0 - bl ListMenuDrawCursor - ldrb r0, [r4, 0x10] - movs r1, 0x2 - bl CopyWindowToVram - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_081071C0: .4byte gTasks+0x8 - thumb_func_end sub_8107180 - - thumb_func_start sub_81071C4 -sub_81071C4: @ 81071C4 - push {r4-r6,lr} - lsls r0, 24 - lsrs r0, 24 - lsls r1, 24 - lsls r2, 24 - lsrs r2, 24 - lsls r3, 24 - lsls r4, r0, 2 - adds r4, r0 - lsls r4, 3 - ldr r0, _08107204 @ =gTasks+0x8 - adds r4, r0 - lsrs r1, 20 - ldrb r6, [r4, 0x14] - movs r5, 0xF - adds r0, r5, 0 - ands r0, r6 - orrs r0, r1 - strb r0, [r4, 0x14] - ands r2, r5 - ldrb r1, [r4, 0x15] - movs r0, 0x10 - negs r0, r0 - ands r0, r1 - orrs r0, r2 - lsrs r3, 20 - ands r0, r5 - orrs r0, r3 - strb r0, [r4, 0x15] - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_08107204: .4byte gTasks+0x8 - thumb_func_end sub_81071C4 - - thumb_func_start sub_8107208 -sub_8107208: @ 8107208 - push {r4,r5,lr} - adds r3, r1, 0 - adds r5, r2, 0 - lsls r0, 24 - lsrs r0, 24 - lsls r3, 24 - lsrs r3, 24 - lsls r5, 24 - lsrs r5, 24 - lsls r4, r0, 2 - adds r4, r0 - lsls r4, 3 - ldr r0, _08107240 @ =gTasks+0x8 - adds r4, r0 - ldrb r0, [r4, 0x10] - movs r1, 0x1 - adds r2, r3, 0 - bl SetWindowAttribute - ldrb r0, [r4, 0x10] - movs r1, 0x2 - adds r2, r5, 0 - bl SetWindowAttribute - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_08107240: .4byte gTasks+0x8 - thumb_func_end sub_8107208 - - thumb_func_start sub_8107244 -sub_8107244: @ 8107244 - push {r4-r7,lr} - sub sp, 0x20 - mov r12, r2 - ldr r5, [sp, 0x34] - lsls r3, 16 - lsrs r3, 16 - adds r4, r3, 0 - mov r3, sp - ldm r0!, {r2,r6,r7} - stm r3!, {r2,r6,r7} - ldm r0!, {r2,r6,r7} - stm r3!, {r2,r6,r7} - mov r0, sp - movs r3, 0 - strh r1, [r0, 0x18] - mov r1, r12 - strh r1, [r0, 0x1A] - strb r3, [r0, 0x1C] - strb r3, [r0, 0x1D] - cmp r4, 0x40 - bne _08107278 - movs r1, 0 - movs r2, 0x1 - movs r3, 0 - bl ListMenuChangeSelection -_08107278: - cmp r4, 0x80 - bne _08107288 - mov r0, sp - movs r1, 0 - movs r2, 0x1 - movs r3, 0x1 - bl ListMenuChangeSelection -_08107288: - cmp r5, 0 - beq _08107292 - mov r0, sp - ldrh r0, [r0, 0x18] - strh r0, [r5] -_08107292: - ldr r2, [sp, 0x38] - cmp r2, 0 - beq _0810729E - mov r0, sp - ldrh r0, [r0, 0x1A] - strh r0, [r2] -_0810729E: - movs r0, 0x1 - negs r0, r0 - add sp, 0x20 - pop {r4-r7} - pop {r1} - bx r1 - thumb_func_end sub_8107244 - - thumb_func_start sub_81072AC -sub_81072AC: @ 81072AC - push {lr} - adds r2, r1, 0 - lsls r0, 24 - lsrs r0, 24 - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 3 - ldr r0, _081072D0 @ =gTasks+0x8 - adds r1, r0 - cmp r2, 0 - beq _081072CA - ldrh r0, [r1, 0x1A] - ldrh r1, [r1, 0x18] - adds r0, r1 - strh r0, [r2] -_081072CA: - pop {r0} - bx r0 - .align 2, 0 -_081072D0: .4byte gTasks+0x8 - thumb_func_end sub_81072AC - - thumb_func_start ListMenuGetScrollAndRow -ListMenuGetScrollAndRow: @ 81072D4 - push {lr} - adds r3, r1, 0 - lsls r0, 24 - lsrs r0, 24 - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 3 - ldr r0, _081072FC @ =gTasks+0x8 - adds r1, r0 - cmp r3, 0 - beq _081072EE - ldrh r0, [r1, 0x18] - strh r0, [r3] -_081072EE: - cmp r2, 0 - beq _081072F6 - ldrh r0, [r1, 0x1A] - strh r0, [r2] -_081072F6: - pop {r0} - bx r0 - .align 2, 0 -_081072FC: .4byte gTasks+0x8 - thumb_func_end ListMenuGetScrollAndRow - - thumb_func_start ListMenuGetYCoordForPrintingArrowCursor -ListMenuGetYCoordForPrintingArrowCursor: @ 8107300 - push {r4,lr} - lsls r0, 24 - lsrs r0, 24 - lsls r4, r0, 2 - adds r4, r0 - lsls r4, 3 - ldr r0, _08107344 @ =gTasks+0x8 - adds r4, r0 - ldrb r0, [r4, 0x17] - lsls r0, 26 - lsrs r0, 26 - movs r1, 0x1 - bl GetFontAttribute - ldrb r1, [r4, 0x16] - lsls r1, 26 - lsrs r1, 29 - adds r0, r1 - lsls r0, 24 - lsrs r0, 24 - ldrh r1, [r4, 0x1A] - adds r2, r1, 0 - muls r2, r0 - adds r1, r2, 0 - ldrb r0, [r4, 0x14] - lsls r0, 28 - lsrs r0, 28 - adds r0, r1 - lsls r0, 16 - lsrs r0, 16 - pop {r4} - pop {r1} - bx r1 - .align 2, 0 -_08107344: .4byte gTasks+0x8 - thumb_func_end ListMenuGetYCoordForPrintingArrowCursor - - thumb_func_start ListMenuInitInternal -ListMenuInitInternal: @ 8107348 - push {r4-r7,lr} - mov r7, r8 - push {r7} - adds r4, r0, 0 - adds r5, r1, 0 - adds r6, r2, 0 - lsls r5, 16 - lsrs r5, 16 - lsls r6, 16 - lsrs r6, 16 - ldr r0, _08107418 @ =nullsub_90 - movs r1, 0 - bl CreateTask - lsls r0, 24 - lsrs r0, 24 - mov r8, r0 - lsls r0, 2 - add r0, r8 - lsls r0, 3 - ldr r1, _0810741C @ =gTasks+0x8 - adds r7, r0, r1 - adds r0, r7, 0 - ldm r4!, {r1-r3} - stm r0!, {r1-r3} - ldm r4!, {r1-r3} - stm r0!, {r1-r3} - movs r1, 0 - strh r5, [r7, 0x18] - strh r6, [r7, 0x1A] - strb r1, [r7, 0x1C] - strb r1, [r7, 0x1D] - movs r0, 0xFF - strb r0, [r7, 0x1E] - strb r1, [r7, 0x1F] - ldr r3, _08107420 @ =gUnknown_3005E60 - ldrb r1, [r7, 0x14] - movs r5, 0xF - lsrs r1, 4 - ldrb r4, [r3] - movs r2, 0x10 - negs r2, r2 - adds r0, r2, 0 - ands r0, r4 - orrs r0, r1 - strb r0, [r3] - ldrb r1, [r7, 0x15] - lsls r1, 28 - lsrs r1, 24 - ands r0, r5 - orrs r0, r1 - strb r0, [r3] - ldrb r0, [r7, 0x15] - lsrs r0, 4 - ands r5, r0 - ldrb r0, [r3, 0x1] - ands r2, r0 - orrs r2, r5 - strb r2, [r3, 0x1] - ldrb r1, [r7, 0x16] - lsls r1, 29 - lsrs r1, 17 - ldr r0, [r3] - ldr r2, _08107424 @ =0xfffc0fff - ands r0, r2 - orrs r0, r1 - str r0, [r3] - ldrb r0, [r7, 0x17] - lsls r0, 26 - lsrs r0, 26 - strb r0, [r3, 0x3] - ldrh r0, [r7, 0xC] - ldrh r1, [r7, 0xE] - cmp r0, r1 - bcs _081073E0 - strh r0, [r7, 0xE] -_081073E0: - ldrb r0, [r7, 0x10] - ldrb r2, [r7, 0x15] - lsls r2, 28 - lsrs r1, r2, 4 - orrs r1, r2 - lsrs r1, 24 - bl FillWindowPixelBuffer - ldrh r1, [r7, 0x18] - ldrh r3, [r7, 0xE] - adds r0, r7, 0 - movs r2, 0 - bl ListMenuPrintEntries - adds r0, r7, 0 - bl ListMenuDrawCursor - adds r0, r7, 0 - movs r1, 0x1 - bl ListMenuCallSelectionChangedCallback - mov r0, r8 - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r1} - bx r1 - .align 2, 0 -_08107418: .4byte nullsub_90 -_0810741C: .4byte gTasks+0x8 -_08107420: .4byte gUnknown_3005E60 -_08107424: .4byte 0xfffc0fff - thumb_func_end ListMenuInitInternal - - thumb_func_start ListMenuPrint -ListMenuPrint: @ 8107428 - push {r4-r7,lr} - sub sp, 0x18 - adds r4, r0, 0 - adds r6, r1, 0 - lsls r2, 24 - lsrs r7, r2, 24 - lsls r3, 24 - lsrs r3, 24 - mov r12, r3 - ldr r5, _08107490 @ =gUnknown_3005E60 - ldrb r1, [r5, 0x3] - movs r0, 0x80 - ands r0, r1 - lsls r0, 24 - lsrs r3, r0, 24 - cmp r3, 0 - beq _08107494 - add r1, sp, 0x14 - ldr r2, [r5] - lsls r0, r2, 24 - lsrs r0, 28 - movs r3, 0 - strb r0, [r1] - lsls r0, r2, 28 - lsrs r0, 28 - strb r0, [r1, 0x1] - lsls r0, r2, 20 - lsrs r0, 28 - strb r0, [r1, 0x2] - ldrb r0, [r4, 0x10] - lsls r1, r2, 1 - lsrs r1, 25 - lsls r2, 14 - lsrs r2, 26 - str r2, [sp] - str r3, [sp, 0x4] - add r2, sp, 0x14 - str r2, [sp, 0x8] - movs r2, 0x1 - negs r2, r2 - str r2, [sp, 0xC] - str r6, [sp, 0x10] - adds r2, r7, 0 - mov r3, r12 - bl AddTextPrinterParameterized4 - ldrb r1, [r5, 0x3] - movs r0, 0x7F - ands r0, r1 - strb r0, [r5, 0x3] - b _081074D2 - .align 2, 0 -_08107490: .4byte gUnknown_3005E60 -_08107494: - add r2, sp, 0x14 - ldrb r1, [r4, 0x15] - lsls r0, r1, 28 - lsrs r0, 28 - strb r0, [r2] - ldrb r0, [r4, 0x14] - lsrs r0, 4 - strb r0, [r2, 0x1] - adds r0, r2, 0 - lsls r1, 24 - lsrs r1, 28 - strb r1, [r0, 0x2] - ldrb r0, [r4, 0x10] - ldrb r1, [r4, 0x17] - lsls r1, 26 - lsrs r1, 26 - ldrb r2, [r4, 0x16] - lsls r2, 29 - lsrs r2, 29 - str r2, [sp] - str r3, [sp, 0x4] - add r2, sp, 0x14 - str r2, [sp, 0x8] - movs r2, 0x1 - negs r2, r2 - str r2, [sp, 0xC] - str r6, [sp, 0x10] - adds r2, r7, 0 - mov r3, r12 - bl AddTextPrinterParameterized4 -_081074D2: - add sp, 0x18 - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end ListMenuPrint - - thumb_func_start ListMenuPrintEntries -ListMenuPrintEntries: @ 81074DC - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x8 - adds r4, r0, 0 - lsls r1, 16 - lsrs r1, 16 - mov r9, r1 - lsls r2, 16 - lsrs r2, 16 - str r2, [sp] - lsls r3, 16 - lsrs r3, 16 - mov r10, r3 - ldrb r0, [r4, 0x17] - lsls r0, 26 - lsrs r0, 26 - movs r1, 0x1 - bl GetFontAttribute - ldrb r1, [r4, 0x16] - lsls r1, 26 - lsrs r1, 29 - adds r0, r1 - lsls r0, 24 - lsrs r0, 24 - str r0, [sp, 0x4] - movs r0, 0 - mov r8, r0 - cmp r8, r10 - bge _08107584 -_0810751E: - ldr r0, [r4] - mov r2, r9 - lsls r1, r2, 3 - adds r0, r1, r0 - ldr r2, [r0, 0x4] - movs r0, 0x3 - negs r0, r0 - adds r5, r1, 0 - cmp r2, r0 - beq _08107536 - ldrb r6, [r4, 0x12] - b _08107538 -_08107536: - ldrb r6, [r4, 0x11] -_08107538: - ldr r0, [sp] - add r0, r8 - ldr r2, [sp, 0x4] - adds r1, r0, 0 - muls r1, r2 - ldrb r0, [r4, 0x14] - lsls r0, 28 - lsrs r0, 28 - adds r0, r1 - lsls r0, 24 - lsrs r2, r0, 24 - adds r7, r2, 0 - ldr r3, [r4, 0x8] - cmp r3, 0 - beq _08107562 - ldrb r0, [r4, 0x10] - ldr r1, [r4] - adds r1, r5, r1 - ldr r1, [r1, 0x4] - bl _call_via_r3 -_08107562: - ldr r0, [r4] - adds r0, r5, r0 - ldr r1, [r0] - adds r0, r4, 0 - adds r2, r6, 0 - adds r3, r7, 0 - bl ListMenuPrint - mov r0, r9 - adds r0, 0x1 - lsls r0, 16 - lsrs r0, 16 - mov r9, r0 - movs r0, 0x1 - add r8, r0 - cmp r8, r10 - blt _0810751E -_08107584: - add sp, 0x8 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end ListMenuPrintEntries - - thumb_func_start ListMenuDrawCursor -ListMenuDrawCursor: @ 8107594 - push {r4-r7,lr} - mov r7, r8 - push {r7} - adds r6, r0, 0 - ldrb r0, [r6, 0x17] - lsls r0, 26 - lsrs r0, 26 - movs r1, 0x1 - bl GetFontAttribute - ldrb r1, [r6, 0x16] - lsls r1, 26 - lsrs r1, 29 - adds r0, r1 - lsls r0, 24 - lsrs r0, 24 - ldrb r1, [r6, 0x13] - mov r8, r1 - ldrh r1, [r6, 0x1A] - muls r1, r0 - ldrb r0, [r6, 0x14] - lsls r0, 28 - lsrs r0, 28 - adds r0, r1 - lsls r0, 24 - lsrs r7, r0, 24 - ldrb r0, [r6, 0x17] - lsrs r0, 6 - cmp r0, 0x1 - beq _08107680 - cmp r0, 0x1 - bgt _081075DA - cmp r0, 0 - beq _081075E4 - b _08107680 -_081075DA: - cmp r0, 0x2 - beq _081075F8 - cmp r0, 0x3 - beq _08107640 - b _08107680 -_081075E4: - ldr r1, _081075F4 @ =gFameCheckerText_ListMenuCursor - adds r0, r6, 0 - mov r2, r8 - adds r3, r7, 0 - bl ListMenuPrint - b _08107680 - .align 2, 0 -_081075F4: .4byte gFameCheckerText_ListMenuCursor -_081075F8: - ldrb r0, [r6, 0x1E] - cmp r0, 0xFF - bne _08107608 - adds r0, r6, 0 - movs r1, 0 - bl ListMenuAddCursorObject - strb r0, [r6, 0x1E] -_08107608: - ldrb r5, [r6, 0x1E] - ldrb r0, [r6, 0x10] - movs r1, 0x1 - bl GetWindowAttribute - adds r4, r0, 0 - lsls r4, 19 - ldr r0, _0810763C @ =0xffff0000 - adds r4, r0 - lsrs r4, 16 - ldrb r0, [r6, 0x10] - movs r1, 0x2 - bl GetWindowAttribute - adds r2, r0, 0 - lsls r2, 3 - adds r2, r7 - subs r2, 0x1 - lsls r2, 16 - lsrs r2, 16 - adds r0, r5, 0 - adds r1, r4, 0 - movs r3, 0 - bl ListMenuUpdateCursorObject - b _08107680 - .align 2, 0 -_0810763C: .4byte 0xffff0000 -_08107640: - ldrb r0, [r6, 0x1E] - cmp r0, 0xFF - bne _08107650 - adds r0, r6, 0 - movs r1, 0x1 - bl ListMenuAddCursorObject - strb r0, [r6, 0x1E] -_08107650: - ldrb r5, [r6, 0x1E] - ldrb r0, [r6, 0x10] - movs r1, 0x1 - bl GetWindowAttribute - adds r4, r0, 0 - lsls r4, 3 - add r4, r8 - lsls r4, 16 - lsrs r4, 16 - ldrb r0, [r6, 0x10] - movs r1, 0x2 - bl GetWindowAttribute - adds r2, r0, 0 - lsls r2, 3 - adds r2, r7 - lsls r2, 16 - lsrs r2, 16 - adds r0, r5, 0 - adds r1, r4, 0 - movs r3, 0x1 - bl ListMenuUpdateCursorObject -_08107680: - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end ListMenuDrawCursor - - thumb_func_start ListMenuAddCursorObject -ListMenuAddCursorObject: @ 810768C - push {r4,r5,lr} - sub sp, 0xC - adds r4, r0, 0 - adds r5, r1, 0 - mov r1, sp - movs r0, 0 - strb r0, [r1] - movs r0, 0xA0 - strb r0, [r1, 0x1] - ldrb r0, [r4, 0x10] - movs r1, 0x3 - bl GetWindowAttribute - mov r1, sp - lsls r0, 3 - adds r0, 0x2 - strh r0, [r1, 0x2] - ldrb r0, [r4, 0x17] - lsls r0, 26 - lsrs r0, 26 - movs r1, 0x1 - bl GetFontAttribute - mov r1, sp - lsls r0, 24 - lsrs r0, 24 - adds r0, 0x2 - strh r0, [r1, 0x4] - movs r0, 0x80 - lsls r0, 7 - strh r0, [r1, 0x6] - ldr r0, _081076E8 @ =0x0000ffff - strh r0, [r1, 0x8] - movs r0, 0xF - strb r0, [r1, 0xA] - mov r0, sp - adds r1, r5, 0 - bl ListMenuAddCursorObjectInternal - lsls r0, 24 - lsrs r0, 24 - add sp, 0xC - pop {r4,r5} - pop {r1} - bx r1 - .align 2, 0 -_081076E8: .4byte 0x0000ffff - thumb_func_end ListMenuAddCursorObject - - thumb_func_start ListMenuErasePrintedCursor -ListMenuErasePrintedCursor: @ 81076EC - push {r4-r7,lr} - mov r7, r8 - push {r7} - sub sp, 0x8 - adds r7, r0, 0 - lsls r1, 16 - lsrs r1, 16 - mov r8, r1 - ldrb r1, [r7, 0x17] - lsrs r0, r1, 6 - cmp r0, 0 - bne _08107768 - lsls r0, r1, 26 - lsrs r0, 26 - movs r1, 0x1 - bl GetFontAttribute - adds r4, r0, 0 - ldrb r0, [r7, 0x16] - lsls r0, 26 - lsrs r0, 29 - adds r4, r0 - lsls r4, 24 - lsrs r4, 24 - ldrb r0, [r7, 0x17] - lsls r0, 26 - lsrs r0, 26 - movs r1, 0 - bl GetMenuCursorDimensionByFont - adds r5, r0, 0 - lsls r5, 24 - lsrs r5, 24 - ldrb r0, [r7, 0x17] - lsls r0, 26 - lsrs r0, 26 - movs r1, 0x1 - bl GetMenuCursorDimensionByFont - lsls r0, 24 - lsrs r0, 24 - ldrb r6, [r7, 0x10] - ldrb r2, [r7, 0x15] - lsls r2, 28 - lsrs r1, r2, 4 - orrs r1, r2 - lsrs r1, 24 - ldrb r2, [r7, 0x13] - mov r3, r8 - muls r3, r4 - adds r4, r3, 0 - ldrb r3, [r7, 0x14] - lsls r3, 28 - lsrs r3, 28 - adds r3, r4 - lsls r3, 16 - lsrs r3, 16 - str r5, [sp] - str r0, [sp, 0x4] - adds r0, r6, 0 - bl FillWindowPixelRect -_08107768: - add sp, 0x8 - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end ListMenuErasePrintedCursor - - thumb_func_start ListMenuUpdateSelectedRowIndexAndScrollOffset -ListMenuUpdateSelectedRowIndexAndScrollOffset: @ 8107774 - push {r4-r6,lr} - adds r4, r0, 0 - lsls r1, 24 - ldrh r3, [r4, 0x1A] - ldrh r5, [r4, 0x18] - cmp r1, 0 - bne _081077E8 - ldrh r0, [r4, 0xE] - cmp r0, 0x1 - bne _0810778C - movs r2, 0 - b _0810779E -_0810778C: - ldrh r0, [r4, 0xE] - lsrs r2, r0, 1 - movs r1, 0x1 - ands r1, r0 - adds r2, r1 - subs r0, r2 - subs r0, 0x1 - lsls r0, 16 - lsrs r2, r0, 16 -_0810779E: - cmp r5, 0 - bne _081077C4 - cmp r3, 0 - beq _0810782A - ldr r1, [r4] - movs r2, 0x3 - negs r2, r2 -_081077AC: - subs r0, r3, 0x1 - lsls r0, 16 - lsrs r3, r0, 16 - adds r0, r5, r3 - lsls r0, 3 - adds r0, r1 - ldr r0, [r0, 0x4] - cmp r0, r2 - bne _0810782E - cmp r3, 0 - bne _081077AC - b _0810782A -_081077C4: - cmp r3, r2 - bls _081077E4 - ldr r1, [r4] - movs r6, 0x3 - negs r6, r6 -_081077CE: - subs r0, r3, 0x1 - lsls r0, 16 - lsrs r3, r0, 16 - adds r0, r5, r3 - lsls r0, 3 - adds r0, r1 - ldr r0, [r0, 0x4] - cmp r0, r6 - bne _0810782E - cmp r3, r2 - bhi _081077CE -_081077E4: - subs r0, r5, 0x1 - b _08107856 -_081077E8: - ldrh r0, [r4, 0xE] - cmp r0, 0x1 - bne _081077F2 - movs r2, 0 - b _081077FC -_081077F2: - ldrh r0, [r4, 0xE] - lsrs r2, r0, 1 - movs r1, 0x1 - ands r1, r0 - adds r2, r1 -_081077FC: - adds r1, r0, 0 - ldrh r0, [r4, 0xC] - subs r0, r1 - cmp r5, r0 - bne _08107834 - subs r0, r1, 0x1 - cmp r3, r0 - bge _0810782A - ldr r2, [r4] - movs r6, 0x3 - negs r6, r6 - adds r1, r0, 0 -_08107814: - adds r0, r3, 0x1 - lsls r0, 16 - lsrs r3, r0, 16 - adds r0, r5, r3 - lsls r0, 3 - adds r0, r2 - ldr r0, [r0, 0x4] - cmp r0, r6 - bne _0810782E - cmp r3, r1 - blt _08107814 -_0810782A: - movs r0, 0 - b _0810785C -_0810782E: - strh r3, [r4, 0x1A] - movs r0, 0x1 - b _0810785C -_08107834: - cmp r3, r2 - bcs _08107854 - ldr r1, [r4] - movs r6, 0x3 - negs r6, r6 -_0810783E: - adds r0, r3, 0x1 - lsls r0, 16 - lsrs r3, r0, 16 - adds r0, r5, r3 - lsls r0, 3 - adds r0, r1 - ldr r0, [r0, 0x4] - cmp r0, r6 - bne _0810782E - cmp r3, r2 - bcc _0810783E -_08107854: - adds r0, r5, 0x1 -_08107856: - strh r2, [r4, 0x1A] - strh r0, [r4, 0x18] - movs r0, 0x2 -_0810785C: - pop {r4-r6} - pop {r1} - bx r1 - thumb_func_end ListMenuUpdateSelectedRowIndexAndScrollOffset - - thumb_func_start ListMenuScroll -ListMenuScroll: @ 8107864 - push {r4-r7,lr} - mov r7, r8 - push {r7} - sub sp, 0x8 - adds r6, r0, 0 - lsls r1, 24 - lsrs r5, r1, 24 - adds r7, r5, 0 - lsls r2, 24 - lsrs r2, 24 - mov r8, r2 - ldrh r0, [r6, 0xE] - cmp r5, r0 - bcc _0810789E - ldrb r0, [r6, 0x10] - ldrb r2, [r6, 0x15] - lsls r2, 28 - lsrs r1, r2, 4 - orrs r1, r2 - lsrs r1, 24 - bl FillWindowPixelBuffer - ldrh r1, [r6, 0x18] - ldrh r3, [r6, 0xE] - adds r0, r6, 0 - movs r2, 0 - bl ListMenuPrintEntries - b _0810798E -_0810789E: - ldrb r0, [r6, 0x17] - lsls r0, 26 - lsrs r0, 26 - movs r1, 0x1 - bl GetFontAttribute - ldrb r1, [r6, 0x16] - lsls r1, 26 - lsrs r1, 29 - adds r0, r1 - lsls r0, 24 - lsrs r4, r0, 24 - mov r1, r8 - cmp r1, 0 - bne _08107930 - ldrb r0, [r6, 0x10] - adds r2, r5, 0 - muls r2, r4 - lsls r2, 24 - lsrs r2, 24 - ldrb r1, [r6, 0x15] - lsls r1, 28 - lsrs r3, r1, 4 - orrs r3, r1 - lsrs r3, 24 - movs r1, 0x1 - bl ScrollWindow - ldrh r1, [r6, 0x18] - adds r0, r6, 0 - movs r2, 0 - adds r3, r5, 0 - bl ListMenuPrintEntries - ldrh r0, [r6, 0xE] - adds r1, r0, 0 - muls r1, r4 - adds r0, r1, 0 - ldrb r4, [r6, 0x14] - lsls r4, 28 - lsrs r4, 28 - adds r4, r0 - lsls r4, 16 - lsrs r4, 16 - ldrb r0, [r6, 0x10] - movs r1, 0x3 - bl GetWindowAttribute - adds r5, r0, 0 - lsls r5, 19 - lsrs r5, 16 - ldrb r0, [r6, 0x10] - movs r1, 0x4 - bl GetWindowAttribute - lsls r0, 3 - subs r0, r4 - lsls r0, 16 - lsrs r0, 16 - ldrb r3, [r6, 0x10] - ldrb r2, [r6, 0x15] - lsls r2, 28 - lsrs r1, r2, 4 - orrs r1, r2 - lsrs r1, 24 - str r5, [sp] - str r0, [sp, 0x4] - adds r0, r3, 0 - movs r2, 0 - adds r3, r4, 0 - bl FillWindowPixelRect - b _0810798E -_08107930: - ldrb r0, [r6, 0x10] - adds r2, r7, 0 - muls r2, r4 - lsls r2, 24 - lsrs r2, 24 - ldrb r1, [r6, 0x15] - lsls r1, 28 - lsrs r3, r1, 4 - orrs r3, r1 - lsrs r3, 24 - movs r1, 0 - bl ScrollWindow - ldrh r2, [r6, 0xE] - subs r2, r7 - ldrh r1, [r6, 0x18] - adds r1, r2 - lsls r1, 16 - lsrs r1, 16 - lsls r2, 16 - lsrs r2, 16 - adds r0, r6, 0 - adds r3, r7, 0 - bl ListMenuPrintEntries - ldrb r0, [r6, 0x10] - movs r1, 0x3 - bl GetWindowAttribute - lsls r0, 19 - lsrs r0, 16 - ldrb r3, [r6, 0x10] - ldrb r2, [r6, 0x15] - lsls r2, 28 - lsrs r1, r2, 4 - orrs r1, r2 - lsrs r1, 24 - str r0, [sp] - ldrb r0, [r6, 0x14] - lsls r0, 28 - lsrs r0, 28 - str r0, [sp, 0x4] - adds r0, r3, 0 - movs r2, 0 - movs r3, 0 - bl FillWindowPixelRect -_0810798E: - add sp, 0x8 - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end ListMenuScroll - - thumb_func_start ListMenuChangeSelection -ListMenuChangeSelection: @ 810799C - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x4 - adds r4, r0, 0 - lsls r1, 24 - lsrs r1, 24 - str r1, [sp] - lsls r2, 24 - lsrs r2, 24 - mov r8, r2 - lsls r3, 24 - lsrs r3, 24 - mov r9, r3 - ldrh r0, [r4, 0x1A] - mov r10, r0 - movs r7, 0 - movs r5, 0 - movs r0, 0 - cmp r7, r8 - bcs _08107A04 -_081079CA: - adds r6, r0, 0x1 - b _081079EA -_081079CE: - adds r0, r7, 0x1 - lsls r0, 24 - lsrs r7, r0, 24 - ldrh r0, [r4, 0x18] - ldrh r1, [r4, 0x1A] - adds r0, r1 - ldr r1, [r4] - lsls r0, 3 - adds r0, r1 - ldr r1, [r0, 0x4] - movs r0, 0x3 - negs r0, r0 - cmp r1, r0 - bne _081079FC -_081079EA: - adds r0, r4, 0 - mov r1, r9 - bl ListMenuUpdateSelectedRowIndexAndScrollOffset - lsls r0, 24 - lsrs r0, 24 - orrs r5, r0 - cmp r0, 0x2 - beq _081079CE -_081079FC: - lsls r0, r6, 24 - lsrs r0, 24 - cmp r0, r8 - bcc _081079CA -_08107A04: - ldr r0, [sp] - cmp r0, 0 - beq _08107A62 - cmp r5, 0x1 - beq _08107A1A - cmp r5, 0x1 - ble _08107A16 - cmp r5, 0x3 - ble _08107A3A -_08107A16: - movs r0, 0x1 - b _08107A64 -_08107A1A: - adds r0, r4, 0 - mov r1, r10 - bl ListMenuErasePrintedCursor - adds r0, r4, 0 - bl ListMenuDrawCursor - adds r0, r4, 0 - movs r1, 0 - bl ListMenuCallSelectionChangedCallback - ldrb r0, [r4, 0x10] - movs r1, 0x2 - bl CopyWindowToVram - b _08107A62 -_08107A3A: - adds r0, r4, 0 - mov r1, r10 - bl ListMenuErasePrintedCursor - adds r0, r4, 0 - adds r1, r7, 0 - mov r2, r9 - bl ListMenuScroll - adds r0, r4, 0 - bl ListMenuDrawCursor - adds r0, r4, 0 - movs r1, 0 - bl ListMenuCallSelectionChangedCallback - ldrb r0, [r4, 0x10] - movs r1, 0x2 - bl CopyWindowToVram -_08107A62: - movs r0, 0 -_08107A64: - add sp, 0x4 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r1} - bx r1 - thumb_func_end ListMenuChangeSelection - - thumb_func_start ListMenuCallSelectionChangedCallback -ListMenuCallSelectionChangedCallback: @ 8107A74 - push {r4,lr} - adds r2, r0, 0 - lsls r1, 24 - lsrs r4, r1, 24 - ldr r3, [r2, 0x4] - cmp r3, 0 - beq _08107A96 - ldrh r0, [r2, 0x18] - ldrh r1, [r2, 0x1A] - adds r0, r1 - ldr r1, [r2] - lsls r0, 3 - adds r0, r1 - ldr r0, [r0, 0x4] - adds r1, r4, 0 - bl _call_via_r3 -_08107A96: - pop {r4} - pop {r0} - bx r0 - thumb_func_end ListMenuCallSelectionChangedCallback - - thumb_func_start sub_8107A9C -sub_8107A9C: @ 8107A9C - push {r4-r7,lr} - mov r7, r8 - push {r7} - lsls r0, 24 - lsrs r0, 24 - lsls r1, 24 - lsls r2, 24 - lsrs r2, 24 - ldr r6, _08107AE8 @ =gUnknown_3005E60 - movs r5, 0xF - ands r0, r5 - ldrb r3, [r6] - mov r8, r3 - movs r4, 0x10 - negs r4, r4 - adds r3, r4, 0 - mov r7, r8 - ands r3, r7 - orrs r3, r0 - lsrs r1, 20 - ands r3, r5 - orrs r3, r1 - strb r3, [r6] - ands r2, r5 - ldrb r0, [r6, 0x1] - ands r4, r0 - orrs r4, r2 - strb r4, [r6, 0x1] - ldrb r0, [r6, 0x3] - movs r1, 0x80 - orrs r0, r1 - strb r0, [r6, 0x3] - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_08107AE8: .4byte gUnknown_3005E60 - thumb_func_end sub_8107A9C - - thumb_func_start ListMenuDefaultCursorMoveFunc -ListMenuDefaultCursorMoveFunc: @ 8107AEC - push {lr} - lsls r1, 24 - cmp r1, 0 - bne _08107AFA - movs r0, 0x5 - bl PlaySE -_08107AFA: - pop {r0} - bx r0 - thumb_func_end ListMenuDefaultCursorMoveFunc - - thumb_func_start sub_8107B00 -sub_8107B00: @ 8107B00 - push {lr} - lsls r0, 24 - lsrs r0, 24 - lsls r1, 24 - lsrs r3, r1, 24 - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 3 - ldr r0, _08107B24 @ =gTasks+0x8 - adds r2, r1, r0 - cmp r3, 0x10 - bhi _08107BC8 - lsls r0, r3, 2 - ldr r1, _08107B28 @ =_08107B2C - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_08107B24: .4byte gTasks+0x8 -_08107B28: .4byte _08107B2C - .align 2, 0 -_08107B2C: - .4byte _08107B70 - .4byte _08107B70 - .4byte _08107B74 - .4byte _08107B78 - .4byte _08107B7C - .4byte _08107B80 - .4byte _08107B84 - .4byte _08107B88 - .4byte _08107B8C - .4byte _08107B90 - .4byte _08107B96 - .4byte _08107B9E - .4byte _08107BA4 - .4byte _08107BAC - .4byte _08107BB4 - .4byte _08107BBA - .4byte _08107BC2 -_08107B70: - ldr r0, [r2, 0x4] - b _08107BCC -_08107B74: - ldrh r0, [r2, 0xC] - b _08107BCC -_08107B78: - ldrh r0, [r2, 0xE] - b _08107BCC -_08107B7C: - ldrb r0, [r2, 0x10] - b _08107BCC -_08107B80: - ldrb r0, [r2, 0x11] - b _08107BCC -_08107B84: - ldrb r0, [r2, 0x12] - b _08107BCC -_08107B88: - ldrb r0, [r2, 0x13] - b _08107BCC -_08107B8C: - ldrb r0, [r2, 0x14] - b _08107B98 -_08107B90: - ldrb r0, [r2, 0x14] - lsrs r0, 4 - b _08107BCC -_08107B96: - ldrb r0, [r2, 0x15] -_08107B98: - lsls r0, 28 - lsrs r0, 28 - b _08107BCC -_08107B9E: - ldrb r0, [r2, 0x15] - lsrs r0, 4 - b _08107BCC -_08107BA4: - ldrb r0, [r2, 0x16] - lsls r0, 29 - lsrs r0, 29 - b _08107BCC -_08107BAC: - ldrb r0, [r2, 0x16] - lsls r0, 26 - lsrs r0, 29 - b _08107BCC -_08107BB4: - ldrb r0, [r2, 0x16] - lsrs r0, 6 - b _08107BCC -_08107BBA: - ldrb r0, [r2, 0x17] - lsls r0, 26 - lsrs r0, 26 - b _08107BCC -_08107BC2: - ldrb r0, [r2, 0x17] - lsrs r0, 6 - b _08107BCC -_08107BC8: - movs r0, 0x1 - negs r0, r0 -_08107BCC: - pop {r1} - bx r1 - thumb_func_end sub_8107B00 - - thumb_func_start sub_8107BD0 -sub_8107BD0: @ 8107BD0 - push {r4,lr} - lsls r0, 24 - lsrs r0, 24 - lsls r1, 24 - lsrs r4, r1, 24 - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 3 - ldr r0, _08107BF4 @ =gTasks+0x8 - adds r3, r1, r0 - cmp r4, 0x10 - bhi _08107CD0 - lsls r0, r4, 2 - ldr r1, _08107BF8 @ =_08107BFC - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_08107BF4: .4byte gTasks+0x8 -_08107BF8: .4byte _08107BFC - .align 2, 0 -_08107BFC: - .4byte _08107C40 - .4byte _08107C40 - .4byte _08107C44 - .4byte _08107C48 - .4byte _08107C4C - .4byte _08107C50 - .4byte _08107C54 - .4byte _08107C58 - .4byte _08107C5C - .4byte _08107C68 - .4byte _08107C76 - .4byte _08107C82 - .4byte _08107C90 - .4byte _08107C9C - .4byte _08107CAA - .4byte _08107CB8 - .4byte _08107CC4 -_08107C40: - str r2, [r3, 0x4] - b _08107CD0 -_08107C44: - strh r2, [r3, 0xC] - b _08107CD0 -_08107C48: - strh r2, [r3, 0xE] - b _08107CD0 -_08107C4C: - strb r2, [r3, 0x10] - b _08107CD0 -_08107C50: - strb r2, [r3, 0x11] - b _08107CD0 -_08107C54: - strb r2, [r3, 0x12] - b _08107CD0 -_08107C58: - strb r2, [r3, 0x13] - b _08107CD0 -_08107C5C: - movs r0, 0xF - ands r2, r0 - ldrb r1, [r3, 0x14] - movs r0, 0x10 - negs r0, r0 - b _08107C6E -_08107C68: - lsls r2, 4 - ldrb r1, [r3, 0x14] - movs r0, 0xF -_08107C6E: - ands r0, r1 - orrs r0, r2 - strb r0, [r3, 0x14] - b _08107CD0 -_08107C76: - movs r0, 0xF - ands r2, r0 - ldrb r1, [r3, 0x15] - movs r0, 0x10 - negs r0, r0 - b _08107C88 -_08107C82: - lsls r2, 4 - ldrb r1, [r3, 0x15] - movs r0, 0xF -_08107C88: - ands r0, r1 - orrs r0, r2 - strb r0, [r3, 0x15] - b _08107CD0 -_08107C90: - movs r0, 0x7 - ands r2, r0 - ldrb r1, [r3, 0x16] - movs r0, 0x8 - negs r0, r0 - b _08107CB0 -_08107C9C: - movs r0, 0x7 - ands r2, r0 - lsls r2, 3 - ldrb r1, [r3, 0x16] - movs r0, 0x39 - negs r0, r0 - b _08107CB0 -_08107CAA: - lsls r2, 6 - ldrb r1, [r3, 0x16] - movs r0, 0x3F -_08107CB0: - ands r0, r1 - orrs r0, r2 - strb r0, [r3, 0x16] - b _08107CD0 -_08107CB8: - movs r0, 0x3F - ands r2, r0 - ldrb r1, [r3, 0x17] - movs r0, 0x40 - negs r0, r0 - b _08107CCA -_08107CC4: - lsls r2, 6 - ldrb r1, [r3, 0x17] - movs r0, 0x3F -_08107CCA: - ands r0, r1 - orrs r0, r2 - strb r0, [r3, 0x17] -_08107CD0: - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_8107BD0 - - thumb_func_start sub_8107CD8 -sub_8107CD8: @ 8107CD8 - push {r4,lr} - adds r4, r0, 0 - adds r0, r1, 0 - lsls r4, 24 - lsrs r4, 24 - lsls r0, 16 - lsrs r0, 16 - bl sub_80971CC - adds r1, r4, 0 - movs r2, 0x20 - bl LoadPalette - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_8107CD8 - - thumb_func_start sub_8107CF8 -sub_8107CF8: @ 8107CF8 - push {r4-r6,lr} - sub sp, 0x8 - adds r6, r0, 0 - adds r0, r1, 0 - adds r1, r2, 0 - adds r4, r3, 0 - ldr r5, [sp, 0x18] - lsls r6, 24 - lsrs r6, 24 - lsls r0, 16 - lsrs r0, 16 - lsls r4, 16 - lsrs r4, 16 - lsls r5, 16 - lsrs r5, 16 - movs r2, 0x1 - bl GetMonIconPtr - adds r1, r0, 0 - movs r0, 0x20 - str r0, [sp] - str r0, [sp, 0x4] - adds r0, r6, 0 - adds r2, r4, 0 - adds r3, r5, 0 - bl BlitBitmapToWindow - add sp, 0x8 - pop {r4-r6} - pop {r0} - bx r0 - thumb_func_end sub_8107CF8 - - thumb_func_start sub_8107D38 -sub_8107D38: @ 8107D38 - push {lr} - lsls r0, 24 - lsrs r2, r0, 24 - lsls r1, 24 - lsrs r1, 24 - cmp r1, 0 - beq _08107D4A - cmp r1, 0x1 - beq _08107D54 -_08107D4A: - ldr r0, _08107D50 @ =gUnknown_8E95D9C - b _08107D56 - .align 2, 0 -_08107D50: .4byte gUnknown_8E95D9C -_08107D54: - ldr r0, _08107D64 @ =gUnknown_8E95DBC -_08107D56: - adds r1, r2, 0 - movs r2, 0x20 - bl LoadPalette - pop {r0} - bx r0 - .align 2, 0 -_08107D64: .4byte gUnknown_8E95DBC - thumb_func_end sub_8107D38 - - thumb_func_start blit_move_info_icon -blit_move_info_icon: @ 8107D68 - push {r4,r5,lr} - sub sp, 0x18 - lsls r0, 24 - lsrs r0, 24 - lsls r1, 24 - lsls r2, 16 - lsrs r2, 16 - lsls r3, 16 - lsrs r3, 16 - ldr r4, _08107DAC @ =gUnknown_8452C94 - lsrs r1, 22 - adds r1, r4 - ldrh r5, [r1, 0x2] - lsls r5, 5 - ldr r4, _08107DB0 @ =gUnknown_8E95DDC - adds r5, r4 - movs r4, 0x80 - str r4, [sp] - str r4, [sp, 0x4] - str r2, [sp, 0x8] - str r3, [sp, 0xC] - ldrb r2, [r1] - str r2, [sp, 0x10] - ldrb r1, [r1, 0x1] - str r1, [sp, 0x14] - adds r1, r5, 0 - movs r2, 0 - movs r3, 0 - bl BlitBitmapRectToWindow - add sp, 0x18 - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_08107DAC: .4byte gUnknown_8452C94 -_08107DB0: .4byte gUnknown_8E95DDC - thumb_func_end blit_move_info_icon - - .align 2, 0 @ Don't pad with nop. diff --git a/asm/menu_indicators.s b/asm/menu_indicators.s deleted file mode 100644 index d7b78b1b2..000000000 --- a/asm/menu_indicators.s +++ /dev/null @@ -1,1185 +0,0 @@ - .include "asm/macros.inc" - .include "constants/constants.inc" - - .syntax unified - - .text - - thumb_func_start sub_8133904 -sub_8133904: @ 8133904 - push {r4,lr} - adds r4, r0, 0 - movs r1, 0x2E - ldrsh r0, [r4, r1] - cmp r0, 0 - beq _08133916 - cmp r0, 0x1 - beq _0813392A - b _08133984 -_08133916: - ldrh r1, [r4, 0x30] - lsls r1, 24 - lsrs r1, 24 - adds r0, r4, 0 - bl StartSpriteAnim - ldrh r0, [r4, 0x2E] - adds r0, 0x1 - strh r0, [r4, 0x2E] - b _08133984 -_0813392A: - movs r1, 0x32 - ldrsh r0, [r4, r1] - cmp r0, 0 - beq _0813393A - cmp r0, 0x1 - beq _08133960 - ldrh r2, [r4, 0x38] - b _0813397E -_0813393A: - movs r0, 0x34 - ldrsh r3, [r4, r0] - ldr r1, _0813395C @ =gSineTable - ldrh r2, [r4, 0x38] - lsls r0, r2, 24 - lsrs r0, 23 - adds r0, r1 - movs r1, 0 - ldrsh r0, [r0, r1] - muls r0, r3 - cmp r0, 0 - bge _08133954 - adds r0, 0xFF -_08133954: - asrs r0, 8 - strh r0, [r4, 0x24] - b _0813397E - .align 2, 0 -_0813395C: .4byte gSineTable -_08133960: - movs r0, 0x34 - ldrsh r3, [r4, r0] - ldr r1, _0813398C @ =gSineTable - ldrh r2, [r4, 0x38] - lsls r0, r2, 24 - lsrs r0, 23 - adds r0, r1 - movs r1, 0 - ldrsh r0, [r0, r1] - muls r0, r3 - cmp r0, 0 - bge _0813397A - adds r0, 0xFF -_0813397A: - asrs r0, 8 - strh r0, [r4, 0x26] -_0813397E: - ldrh r0, [r4, 0x36] - adds r0, r2, r0 - strh r0, [r4, 0x38] -_08133984: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0813398C: .4byte gSineTable - thumb_func_end sub_8133904 - - thumb_func_start AddScrollIndicatorArrowObject -AddScrollIndicatorArrowObject: @ 8133990 - push {r4-r7,lr} - mov r7, r8 - push {r7} - sub sp, 0x18 - adds r6, r0, 0 - ldr r5, [sp, 0x30] - lsls r6, 24 - lsrs r6, 24 - mov r8, r6 - lsls r1, 24 - lsrs r1, 24 - lsls r2, 24 - lsrs r2, 24 - lsls r5, 16 - lsrs r5, 16 - mov r12, r5 - mov r4, sp - ldr r0, _08133A14 @ =gUnknown_84632A4 - ldm r0!, {r5-r7} - stm r4!, {r5-r7} - ldm r0!, {r5-r7} - stm r4!, {r5-r7} - mov r0, sp - movs r4, 0 - strh r3, [r0] - mov r3, r12 - strh r3, [r0, 0x2] - movs r3, 0 - bl CreateSprite - lsls r0, 24 - lsrs r0, 24 - ldr r1, _08133A18 @ =gSprites - lsls r3, r0, 4 - adds r3, r0 - lsls r3, 2 - adds r3, r1 - adds r5, r3, 0 - adds r5, 0x3E - ldrb r1, [r5] - movs r2, 0x4 - orrs r1, r2 - strb r1, [r5] - strh r4, [r3, 0x2E] - ldr r1, _08133A1C @ =gUnknown_846325C - mov r5, r8 - lsls r6, r5, 2 - adds r6, r1 - ldrb r2, [r6] - lsls r1, r2, 28 - lsrs r1, 28 - strh r1, [r3, 0x30] - lsrs r2, 4 - strh r2, [r3, 0x32] - ldrb r1, [r6, 0x1] - strh r1, [r3, 0x34] - ldrh r1, [r6, 0x2] - strh r1, [r3, 0x36] - strh r4, [r3, 0x38] - add sp, 0x18 - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r1} - bx r1 - .align 2, 0 -_08133A14: .4byte gUnknown_84632A4 -_08133A18: .4byte gSprites -_08133A1C: .4byte gUnknown_846325C - thumb_func_end AddScrollIndicatorArrowObject - - thumb_func_start AddScrollIndicatorArrowPair -AddScrollIndicatorArrowPair: @ 8133A20 - push {r4-r7,lr} - mov r7, r9 - mov r6, r8 - push {r6,r7} - sub sp, 0x14 - adds r6, r0, 0 - mov r9, r1 - ldr r0, _08133A6C @ =gUnknown_8463328 - str r0, [sp, 0x4] - ldr r5, _08133A70 @ =0xffff0000 - ldr r0, [sp, 0x8] - ands r0, r5 - movs r1, 0x80 - lsls r1, 1 - orrs r0, r1 - ldrh r1, [r6, 0xA] - lsls r1, 16 - ldr r4, _08133A74 @ =0x0000ffff - ands r0, r4 - orrs r0, r1 - str r0, [sp, 0x8] - add r0, sp, 0x4 - bl LoadCompressedSpriteSheet - ldrh r2, [r6, 0xC] - cmp r2, r4 - bne _08133A7C - ldr r0, _08133A78 @ =gUnknown_8463308 - ldrb r1, [r6, 0xE] - lsls r1, 20 - movs r2, 0x80 - lsls r2, 17 - adds r1, r2 - lsrs r1, 16 - movs r2, 0x20 - bl LoadPalette - b _08133A8E - .align 2, 0 -_08133A6C: .4byte gUnknown_8463328 -_08133A70: .4byte 0xffff0000 -_08133A74: .4byte 0x0000ffff -_08133A78: .4byte gUnknown_8463308 -_08133A7C: - ldr r0, _08133B2C @ =gUnknown_8463308 - str r0, [sp, 0xC] - add r0, sp, 0xC - ldr r1, [r0, 0x4] - ands r1, r5 - orrs r1, r2 - str r1, [r0, 0x4] - bl LoadSpritePalette -_08133A8E: - ldr r0, _08133B30 @ =sub_8133BA4 - movs r1, 0 - bl CreateTask - lsls r0, 24 - lsrs r0, 24 - mov r8, r0 - lsls r0, 2 - add r0, r8 - lsls r0, 3 - ldr r1, _08133B34 @ =gTasks+0x8 - adds r7, r0, r1 - movs r0, 0 - strb r0, [r7] - mov r0, r9 - str r0, [r7, 0x4] - ldrh r0, [r6, 0x6] - strh r0, [r7, 0x8] - ldrh r0, [r6, 0x8] - strh r0, [r7, 0xA] - ldrh r0, [r6, 0xA] - strh r0, [r7, 0xE] - ldrh r0, [r6, 0xC] - strh r0, [r7, 0x10] - ldrb r0, [r6] - ldrb r1, [r6, 0x1] - ldrb r2, [r6, 0x2] - ldrh r3, [r6, 0xA] - ldrh r4, [r6, 0xC] - str r4, [sp] - bl AddScrollIndicatorArrowObject - strb r0, [r7, 0xC] - ldrb r0, [r6, 0x3] - ldrb r1, [r6, 0x4] - ldrb r2, [r6, 0x5] - ldrh r3, [r6, 0xA] - ldrh r4, [r6, 0xC] - str r4, [sp] - bl AddScrollIndicatorArrowObject - strb r0, [r7, 0xD] - ldrh r1, [r6, 0xC] - ldr r0, _08133B38 @ =0x0000ffff - cmp r1, r0 - bne _08133B1C - ldr r5, _08133B3C @ =gSprites - ldrb r0, [r7, 0xC] - lsls r1, r0, 4 - adds r1, r0 - lsls r1, 2 - adds r1, r5 - ldrb r3, [r6, 0xE] - lsls r3, 4 - ldrb r4, [r1, 0x5] - movs r2, 0xF - adds r0, r2, 0 - ands r0, r4 - orrs r0, r3 - strb r0, [r1, 0x5] - ldrb r1, [r7, 0xD] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r5 - ldrb r1, [r6, 0xE] - lsls r1, 4 - ldrb r3, [r0, 0x5] - ands r2, r3 - orrs r2, r1 - strb r2, [r0, 0x5] -_08133B1C: - mov r0, r8 - add sp, 0x14 - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r7} - pop {r1} - bx r1 - .align 2, 0 -_08133B2C: .4byte gUnknown_8463308 -_08133B30: .4byte sub_8133BA4 -_08133B34: .4byte gTasks+0x8 -_08133B38: .4byte 0x0000ffff -_08133B3C: .4byte gSprites - thumb_func_end AddScrollIndicatorArrowPair - - thumb_func_start AddScrollIndicatorArrowPairParameterized -AddScrollIndicatorArrowPairParameterized: @ 8133B40 - push {r4,lr} - adds r4, r1, 0 - subs r0, 0x2 - cmp r0, 0x1 - bhi _08133B64 - ldr r0, _08133B60 @ =gUnknown_203B130 - movs r1, 0x2 - strb r1, [r0] - strb r4, [r0, 0x1] - strb r2, [r0, 0x2] - movs r1, 0x3 - strb r1, [r0, 0x3] - strb r4, [r0, 0x4] - strb r3, [r0, 0x5] - b _08133B76 - .align 2, 0 -_08133B60: .4byte gUnknown_203B130 -_08133B64: - ldr r0, _08133BA0 @ =gUnknown_203B130 - movs r1, 0 - strb r1, [r0] - strb r2, [r0, 0x1] - strb r4, [r0, 0x2] - movs r1, 0x1 - strb r1, [r0, 0x3] - strb r3, [r0, 0x4] - strb r4, [r0, 0x5] -_08133B76: - adds r2, r0, 0 - movs r1, 0 - movs r0, 0 - strh r0, [r2, 0x6] - ldr r0, [sp, 0x8] - strh r0, [r2, 0x8] - ldr r0, [sp, 0xC] - strh r0, [r2, 0xA] - ldr r0, [sp, 0x10] - strh r0, [r2, 0xC] - strb r1, [r2, 0xE] - adds r0, r2, 0 - ldr r1, [sp, 0x14] - bl AddScrollIndicatorArrowPair - lsls r0, 24 - lsrs r0, 24 - pop {r4} - pop {r1} - bx r1 - .align 2, 0 -_08133BA0: .4byte gUnknown_203B130 - thumb_func_end AddScrollIndicatorArrowPairParameterized - - thumb_func_start sub_8133BA4 -sub_8133BA4: @ 8133BA4 - push {r4,r5,lr} - lsls r0, 24 - lsrs r0, 24 - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 3 - ldr r0, _08133BD4 @ =gTasks+0x8 - adds r4, r1, r0 - ldr r0, [r4, 0x4] - ldrh r5, [r0] - ldrh r0, [r4, 0x8] - cmp r5, r0 - bne _08133BDC - ldr r3, _08133BD8 @ =gSprites - ldrb r1, [r4, 0xC] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r3 - adds r0, 0x3E - ldrb r1, [r0] - movs r2, 0x4 - orrs r1, r2 - b _08133BF2 - .align 2, 0 -_08133BD4: .4byte gTasks+0x8 -_08133BD8: .4byte gSprites -_08133BDC: - ldr r3, _08133C10 @ =gSprites - ldrb r1, [r4, 0xC] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r3 - adds r0, 0x3E - ldrb r2, [r0] - movs r1, 0x5 - negs r1, r1 - ands r1, r2 -_08133BF2: - strb r1, [r0] - ldrh r0, [r4, 0xA] - cmp r5, r0 - bne _08133C14 - ldrb r1, [r4, 0xD] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r3 - adds r0, 0x3E - ldrb r1, [r0] - movs r2, 0x4 - orrs r1, r2 - b _08133C28 - .align 2, 0 -_08133C10: .4byte gSprites -_08133C14: - ldrb r1, [r4, 0xD] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r3 - adds r0, 0x3E - ldrb r2, [r0] - movs r1, 0x5 - negs r1, r1 - ands r1, r2 -_08133C28: - strb r1, [r0] - pop {r4,r5} - pop {r0} - bx r0 - thumb_func_end sub_8133BA4 - - thumb_func_start RemoveScrollIndicatorArrowPair -RemoveScrollIndicatorArrowPair: @ 8133C30 - push {r4-r6,lr} - lsls r0, 24 - lsrs r0, 24 - adds r6, r0, 0 - lsls r0, r6, 2 - adds r0, r6 - lsls r0, 3 - ldr r1, _08133C84 @ =gTasks+0x8 - adds r5, r0, r1 - ldrh r0, [r5, 0xE] - ldr r4, _08133C88 @ =0x0000ffff - cmp r0, r4 - beq _08133C4E - bl FreeSpriteTilesByTag -_08133C4E: - ldrh r0, [r5, 0x10] - cmp r0, r4 - beq _08133C58 - bl FreeSpritePaletteByTag -_08133C58: - ldrb r1, [r5, 0xC] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - ldr r4, _08133C8C @ =gSprites - adds r0, r4 - bl DestroySprite - ldrb r1, [r5, 0xD] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r4 - bl DestroySprite - adds r0, r6, 0 - bl DestroyTask - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_08133C84: .4byte gTasks+0x8 -_08133C88: .4byte 0x0000ffff -_08133C8C: .4byte gSprites - thumb_func_end RemoveScrollIndicatorArrowPair - - thumb_func_start ListMenuAddCursorObjectInternal -ListMenuAddCursorObjectInternal: @ 8133C90 - push {lr} - cmp r1, 0 - beq _08133C9A - cmp r1, 0x1 - beq _08133CA0 -_08133C9A: - bl ListMenuAddRedOutlineCursorObject - b _08133CA4 -_08133CA0: - bl ListMenuAddRedArrowCursorObject -_08133CA4: - lsls r0, 24 - lsrs r0, 24 - pop {r1} - bx r1 - thumb_func_end ListMenuAddCursorObjectInternal - - thumb_func_start ListMenuUpdateCursorObject -ListMenuUpdateCursorObject: @ 8133CAC - push {lr} - lsls r0, 24 - lsrs r0, 24 - lsls r1, 16 - lsrs r1, 16 - lsls r2, 16 - lsrs r2, 16 - cmp r3, 0 - beq _08133CC4 - cmp r3, 0x1 - beq _08133CCA - b _08133CCE -_08133CC4: - bl ListMenuUpdateRedOutlineCursorObject - b _08133CCE -_08133CCA: - bl ListMenuUpdateRedArrowCursorObject -_08133CCE: - pop {r0} - bx r0 - thumb_func_end ListMenuUpdateCursorObject - - thumb_func_start ListMenuRemoveCursorObject -ListMenuRemoveCursorObject: @ 8133CD4 - push {lr} - lsls r0, 24 - lsrs r0, 24 - cmp r1, 0 - beq _08133CE4 - cmp r1, 0x1 - beq _08133CEA - b _08133CEE -_08133CE4: - bl ListMenuRemoveRedOutlineCursorObject - b _08133CEE -_08133CEA: - bl ListMenuRemoveRedArrowCursorObject -_08133CEE: - pop {r0} - bx r0 - thumb_func_end ListMenuRemoveCursorObject - - thumb_func_start nullsub_94 -nullsub_94: @ 8133CF4 - bx lr - thumb_func_end nullsub_94 - - thumb_func_start ListMenuGetRedOutlineCursorSpriteCount -ListMenuGetRedOutlineCursorSpriteCount: @ 8133CF8 - push {lr} - lsls r0, 16 - lsrs r0, 16 - lsls r1, 16 - lsrs r1, 16 - movs r3, 0x4 - cmp r0, 0x10 - bls _08133D18 - movs r2, 0x8 - subs r0, 0x8 - cmp r2, r0 - bge _08133D18 -_08133D10: - adds r3, 0x2 - adds r2, 0x8 - cmp r2, r0 - blt _08133D10 -_08133D18: - cmp r1, 0x10 - bls _08133D2C - movs r2, 0x8 - subs r1, 0x8 - cmp r2, r1 - bge _08133D2C -_08133D24: - adds r3, 0x2 - adds r2, 0x8 - cmp r2, r1 - blt _08133D24 -_08133D2C: - lsls r0, r3, 24 - lsrs r0, 24 - pop {r1} - bx r1 - thumb_func_end ListMenuGetRedOutlineCursorSpriteCount - - thumb_func_start ListMenuSetUpRedOutlineCursorSpriteOamTable -ListMenuSetUpRedOutlineCursorSpriteOamTable: @ 8133D34 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x4 - adds r3, r2, 0 - lsls r0, 16 - lsrs r0, 16 - mov r8, r0 - lsls r1, 16 - lsrs r1, 16 - mov r9, r1 - ldr r0, _08133E18 @ =gUnknown_84632BC - ldr r0, [r0] - str r0, [r3] - movs r1, 0x88 - strb r1, [r3] - strb r1, [r3, 0x1] - ldr r0, _08133E1C @ =gUnknown_84632C0 - ldr r0, [r0] - str r0, [r3, 0x4] - mov r2, r8 - adds r2, 0x80 - strb r2, [r3, 0x4] - strb r1, [r3, 0x5] - ldr r0, _08133E20 @ =gUnknown_84632D4 - ldr r0, [r0] - str r0, [r3, 0x8] - strb r1, [r3, 0x8] - mov r4, r9 - adds r4, 0x80 - strb r4, [r3, 0x9] - ldr r0, _08133E24 @ =gUnknown_84632D8 - ldr r0, [r0] - str r0, [r3, 0xC] - strb r2, [r3, 0xC] - strb r4, [r3, 0xD] - movs r0, 0x4 - mov r12, r0 - mov r2, r8 - cmp r2, 0x10 - bls _08133DC8 - movs r2, 0x8 - mov r5, r8 - subs r5, 0x8 - cmp r2, r5 - bge _08133DC8 - ldr r0, _08133E28 @ =gUnknown_84632C4 - ldr r0, [r0] - str r0, [sp] - ldr r0, _08133E2C @ =gUnknown_84632D0 - ldr r6, [r0] - adds r1, r3, 0 - adds r1, 0x10 - movs r7, 0x88 - mov r10, r7 -_08133DA6: - ldr r0, [sp] - str r0, [r1] - adds r0, r2, 0 - subs r0, 0x78 - strb r0, [r1] - mov r7, r10 - strb r7, [r1, 0x1] - adds r1, 0x4 - str r6, [r1] - strb r0, [r1] - strb r4, [r1, 0x1] - adds r1, 0x4 - movs r0, 0x2 - add r12, r0 - adds r2, 0x8 - cmp r2, r5 - blt _08133DA6 -_08133DC8: - mov r2, r9 - cmp r2, 0x10 - bls _08133E06 - movs r1, 0x8 - mov r4, r9 - subs r4, 0x8 - cmp r1, r4 - bge _08133E06 - ldr r0, _08133E30 @ =gUnknown_84632C8 - ldr r6, [r0] - ldr r0, _08133E34 @ =gUnknown_84632CC - ldr r5, [r0] - mov r7, r12 - lsls r0, r7, 2 - adds r2, r0, r3 - movs r7, 0x88 - mov r3, r8 - adds r3, 0x80 -_08133DEC: - str r6, [r2] - strb r7, [r2] - adds r0, r1, 0 - subs r0, 0x78 - strb r0, [r2, 0x1] - adds r2, 0x4 - str r5, [r2] - strb r3, [r2] - strb r0, [r2, 0x1] - adds r2, 0x4 - adds r1, 0x8 - cmp r1, r4 - blt _08133DEC -_08133E06: - add sp, 0x4 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_08133E18: .4byte gUnknown_84632BC -_08133E1C: .4byte gUnknown_84632C0 -_08133E20: .4byte gUnknown_84632D4 -_08133E24: .4byte gUnknown_84632D8 -_08133E28: .4byte gUnknown_84632C4 -_08133E2C: .4byte gUnknown_84632D0 -_08133E30: .4byte gUnknown_84632C8 -_08133E34: .4byte gUnknown_84632CC - thumb_func_end ListMenuSetUpRedOutlineCursorSpriteOamTable - - thumb_func_start ListMenuAddRedOutlineCursorObject -ListMenuAddRedOutlineCursorObject: @ 8133E38 - push {r4-r7,lr} - mov r7, r8 - push {r7} - sub sp, 0x28 - adds r6, r0, 0 - ldr r0, _08133E84 @ =gUnknown_8463398 - str r0, [sp, 0x18] - ldr r5, _08133E88 @ =0xffff0000 - add r0, sp, 0x18 - ldr r1, [r0, 0x4] - ands r1, r5 - movs r2, 0x80 - lsls r2, 1 - orrs r1, r2 - ldrh r2, [r6, 0x6] - lsls r2, 16 - ldr r3, _08133E8C @ =0x0000ffff - ands r1, r3 - orrs r1, r2 - str r1, [r0, 0x4] - bl LoadCompressedSpriteSheet - ldrh r2, [r6, 0x8] - ldr r7, _08133E8C @ =0x0000ffff - cmp r2, r7 - bne _08133E94 - ldr r0, _08133E90 @ =gUnknown_8463308 - ldrb r1, [r6, 0xA] - lsls r1, 20 - movs r2, 0x80 - lsls r2, 17 - adds r1, r2 - lsrs r1, 16 - movs r2, 0x20 - bl LoadPalette - b _08133EA6 - .align 2, 0 -_08133E84: .4byte gUnknown_8463398 -_08133E88: .4byte 0xffff0000 -_08133E8C: .4byte 0x0000ffff -_08133E90: .4byte gUnknown_8463308 -_08133E94: - ldr r0, _08133F8C @ =gUnknown_8463308 - str r0, [sp, 0x20] - add r0, sp, 0x20 - ldr r1, [r0, 0x4] - ands r1, r5 - orrs r1, r2 - str r1, [r0, 0x4] - bl LoadSpritePalette -_08133EA6: - ldr r0, _08133F90 @ =nullsub_94 - movs r1, 0 - bl CreateTask - lsls r0, 24 - lsrs r0, 24 - adds r4, r0, 0 - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 3 - ldr r1, _08133F94 @ =gTasks+0x8 - adds r5, r0, r1 - ldrh r0, [r6, 0x6] - movs r3, 0 - mov r8, r3 - strh r0, [r5, 0xE] - ldrh r0, [r6, 0x8] - strh r0, [r5, 0x10] - ldrh r0, [r6, 0x2] - ldrh r1, [r6, 0x4] - bl ListMenuGetRedOutlineCursorSpriteCount - strb r0, [r5] - ldrb r0, [r5] - lsls r0, 2 - bl Alloc - adds r2, r0, 0 - str r2, [r5, 0x8] - str r2, [r5, 0x4] - ldrh r0, [r6, 0x2] - ldrh r1, [r6, 0x4] - bl ListMenuSetUpRedOutlineCursorSpriteOamTable - mov r1, sp - ldr r0, _08133F98 @ =gDummySpriteTemplate - ldm r0!, {r2,r3,r7} - stm r1!, {r2,r3,r7} - ldm r0!, {r2,r3,r7} - stm r1!, {r2,r3,r7} - mov r1, sp - ldrh r0, [r6, 0x6] - strh r0, [r1] - ldrh r0, [r6, 0x8] - strh r0, [r1, 0x2] - ldrb r1, [r6] - adds r1, 0x78 - ldrb r2, [r6, 0x1] - adds r2, 0x78 - mov r0, sp - movs r3, 0 - bl CreateSprite - strb r0, [r5, 0xC] - ldrb r1, [r5, 0xC] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - ldr r7, _08133F9C @ =gSprites - adds r0, r7 - adds r1, r5, 0 - bl SetSubspriteTables - ldrb r0, [r5, 0xC] - lsls r1, r0, 4 - adds r1, r0 - lsls r1, 2 - adds r1, r7 - ldrb r2, [r1, 0x5] - movs r0, 0xD - negs r0, r0 - ands r0, r2 - strb r0, [r1, 0x5] - ldrb r1, [r5, 0xC] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r7 - adds r0, 0x43 - mov r1, r8 - strb r1, [r0] - ldrb r1, [r5, 0xC] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r7 - adds r0, 0x42 - ldrb r2, [r0] - movs r1, 0x40 - negs r1, r1 - ands r1, r2 - strb r1, [r0] - ldrh r1, [r6, 0x8] - ldr r0, _08133FA0 @ =0x0000ffff - cmp r1, r0 - bne _08133F7E - ldrb r0, [r5, 0xC] - lsls r1, r0, 4 - adds r1, r0 - lsls r1, 2 - adds r1, r7 - ldrb r2, [r6, 0xA] - lsls r2, 4 - ldrb r3, [r1, 0x5] - movs r0, 0xF - ands r0, r3 - orrs r0, r2 - strb r0, [r1, 0x5] -_08133F7E: - adds r0, r4, 0 - add sp, 0x28 - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r1} - bx r1 - .align 2, 0 -_08133F8C: .4byte gUnknown_8463308 -_08133F90: .4byte nullsub_94 -_08133F94: .4byte gTasks+0x8 -_08133F98: .4byte gDummySpriteTemplate -_08133F9C: .4byte gSprites -_08133FA0: .4byte 0x0000ffff - thumb_func_end ListMenuAddRedOutlineCursorObject - - thumb_func_start ListMenuUpdateRedOutlineCursorObject -ListMenuUpdateRedOutlineCursorObject: @ 8133FA4 - push {r4,r5,lr} - lsls r0, 24 - lsrs r0, 24 - lsls r1, 16 - lsrs r1, 16 - lsls r2, 16 - lsrs r2, 16 - lsls r3, r0, 2 - adds r3, r0 - lsls r3, 3 - ldr r0, _08133FE0 @ =gTasks+0x8 - adds r3, r0 - ldr r5, _08133FE4 @ =gSprites - ldrb r4, [r3, 0xC] - lsls r0, r4, 4 - adds r0, r4 - lsls r0, 2 - adds r0, r5 - adds r1, 0x78 - strh r1, [r0, 0x20] - ldrb r1, [r3, 0xC] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r5 - adds r2, 0x78 - strh r2, [r0, 0x22] - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_08133FE0: .4byte gTasks+0x8 -_08133FE4: .4byte gSprites - thumb_func_end ListMenuUpdateRedOutlineCursorObject - - thumb_func_start ListMenuRemoveRedOutlineCursorObject -ListMenuRemoveRedOutlineCursorObject: @ 8133FE8 - push {r4-r6,lr} - lsls r0, 24 - lsrs r0, 24 - adds r5, r0, 0 - lsls r0, r5, 2 - adds r0, r5 - lsls r0, 3 - ldr r1, _08134034 @ =gTasks+0x8 - adds r4, r0, r1 - ldr r0, [r4, 0x8] - bl Free - ldrh r0, [r4, 0xE] - ldr r6, _08134038 @ =0x0000ffff - cmp r0, r6 - beq _0813400C - bl FreeSpriteTilesByTag -_0813400C: - ldrh r0, [r4, 0x10] - cmp r0, r6 - beq _08134016 - bl FreeSpritePaletteByTag -_08134016: - ldrb r1, [r4, 0xC] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - ldr r1, _0813403C @ =gSprites - adds r0, r1 - bl DestroySprite - adds r0, r5, 0 - bl DestroyTask - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_08134034: .4byte gTasks+0x8 -_08134038: .4byte 0x0000ffff -_0813403C: .4byte gSprites - thumb_func_end ListMenuRemoveRedOutlineCursorObject - - thumb_func_start ObjectCB_RedArrowCursor -ObjectCB_RedArrowCursor: @ 8134040 - push {lr} - adds r2, r0, 0 - ldr r1, _08134068 @ =gSineTable - ldrh r3, [r2, 0x2E] - lsls r0, r3, 24 - lsrs r0, 23 - adds r0, r1 - movs r1, 0 - ldrsh r0, [r0, r1] - cmp r0, 0 - bge _08134058 - adds r0, 0x3F -_08134058: - asrs r0, 6 - strh r0, [r2, 0x24] - adds r0, r3, 0 - adds r0, 0x8 - strh r0, [r2, 0x2E] - pop {r0} - bx r0 - .align 2, 0 -_08134068: .4byte gSineTable - thumb_func_end ObjectCB_RedArrowCursor - - thumb_func_start nullsub_95 -nullsub_95: @ 813406C - bx lr - thumb_func_end nullsub_95 - - thumb_func_start ListMenuAddRedArrowCursorObject -ListMenuAddRedArrowCursorObject: @ 8134070 - push {r4-r7,lr} - sub sp, 0x28 - adds r5, r0, 0 - ldr r0, _081340B4 @ =gUnknown_84633D8 - str r0, [sp, 0x18] - ldr r6, _081340B8 @ =0xffff0000 - add r0, sp, 0x18 - ldr r1, [r0, 0x4] - ands r1, r6 - movs r2, 0x80 - orrs r1, r2 - ldrh r2, [r5, 0x6] - lsls r2, 16 - ldr r4, _081340BC @ =0x0000ffff - ands r1, r4 - orrs r1, r2 - str r1, [r0, 0x4] - bl LoadCompressedSpriteSheet - ldrh r2, [r5, 0x8] - cmp r2, r4 - bne _081340C4 - ldr r0, _081340C0 @ =gUnknown_8463308 - ldrb r1, [r5, 0xA] - lsls r1, 20 - movs r2, 0x80 - lsls r2, 17 - adds r1, r2 - lsrs r1, 16 - movs r2, 0x20 - bl LoadPalette - b _081340D6 - .align 2, 0 -_081340B4: .4byte gUnknown_84633D8 -_081340B8: .4byte 0xffff0000 -_081340BC: .4byte 0x0000ffff -_081340C0: .4byte gUnknown_8463308 -_081340C4: - ldr r0, _08134160 @ =gUnknown_8463308 - str r0, [sp, 0x20] - add r0, sp, 0x20 - ldr r1, [r0, 0x4] - ands r1, r6 - orrs r1, r2 - str r1, [r0, 0x4] - bl LoadSpritePalette -_081340D6: - ldr r0, _08134164 @ =nullsub_95 - movs r1, 0 - bl CreateTask - lsls r0, 24 - lsrs r0, 24 - adds r6, r0, 0 - lsls r0, r6, 2 - adds r0, r6 - lsls r0, 3 - ldr r1, _08134168 @ =gTasks+0x8 - adds r4, r0, r1 - ldrh r0, [r5, 0x6] - strh r0, [r4, 0x2] - ldrh r0, [r5, 0x8] - strh r0, [r4, 0x4] - mov r1, sp - ldr r0, _0813416C @ =gUnknown_84632F0 - ldm r0!, {r2,r3,r7} - stm r1!, {r2,r3,r7} - ldm r0!, {r2,r3,r7} - stm r1!, {r2,r3,r7} - mov r1, sp - ldrh r0, [r5, 0x6] - strh r0, [r1] - ldrh r0, [r5, 0x8] - strh r0, [r1, 0x2] - ldrb r1, [r5] - ldrb r2, [r5, 0x1] - mov r0, sp - movs r3, 0 - bl CreateSprite - strb r0, [r4] - ldr r3, _08134170 @ =gSprites - ldrb r1, [r4] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r3 - movs r2, 0x8 - strh r2, [r0, 0x24] - ldrb r1, [r4] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r3 - strh r2, [r0, 0x26] - ldrh r1, [r5, 0x8] - ldr r0, _08134174 @ =0x0000ffff - cmp r1, r0 - bne _08134156 - ldrb r0, [r4] - lsls r1, r0, 4 - adds r1, r0 - lsls r1, 2 - adds r1, r3 - ldrb r2, [r5, 0xA] - lsls r2, 4 - ldrb r3, [r1, 0x5] - movs r0, 0xF - ands r0, r3 - orrs r0, r2 - strb r0, [r1, 0x5] -_08134156: - adds r0, r6, 0 - add sp, 0x28 - pop {r4-r7} - pop {r1} - bx r1 - .align 2, 0 -_08134160: .4byte gUnknown_8463308 -_08134164: .4byte nullsub_95 -_08134168: .4byte gTasks+0x8 -_0813416C: .4byte gUnknown_84632F0 -_08134170: .4byte gSprites -_08134174: .4byte 0x0000ffff - thumb_func_end ListMenuAddRedArrowCursorObject - - thumb_func_start ListMenuUpdateRedArrowCursorObject -ListMenuUpdateRedArrowCursorObject: @ 8134178 - push {r4,r5,lr} - lsls r0, 24 - lsrs r0, 24 - lsls r3, r0, 2 - adds r3, r0 - lsls r3, 3 - ldr r0, _081341A8 @ =gTasks+0x8 - adds r3, r0 - ldr r5, _081341AC @ =gSprites - ldrb r4, [r3] - lsls r0, r4, 4 - adds r0, r4 - lsls r0, 2 - adds r0, r5 - strh r1, [r0, 0x20] - ldrb r1, [r3] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r5 - strh r2, [r0, 0x22] - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_081341A8: .4byte gTasks+0x8 -_081341AC: .4byte gSprites - thumb_func_end ListMenuUpdateRedArrowCursorObject - - thumb_func_start ListMenuRemoveRedArrowCursorObject -ListMenuRemoveRedArrowCursorObject: @ 81341B0 - push {r4-r6,lr} - lsls r0, 24 - lsrs r0, 24 - adds r5, r0, 0 - lsls r0, r5, 2 - adds r0, r5 - lsls r0, 3 - ldr r1, _081341F4 @ =gTasks+0x8 - adds r4, r0, r1 - ldrh r0, [r4, 0x2] - ldr r6, _081341F8 @ =0x0000ffff - cmp r0, r6 - beq _081341CE - bl FreeSpriteTilesByTag -_081341CE: - ldrh r0, [r4, 0x4] - cmp r0, r6 - beq _081341D8 - bl FreeSpritePaletteByTag -_081341D8: - ldrb r1, [r4] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - ldr r1, _081341FC @ =gSprites - adds r0, r1 - bl DestroySprite - adds r0, r5, 0 - bl DestroyTask - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_081341F4: .4byte gTasks+0x8 -_081341F8: .4byte 0x0000ffff -_081341FC: .4byte gSprites - thumb_func_end ListMenuRemoveRedArrowCursorObject - - .align 2, 0 @ Don't pad with nop. diff --git a/asm/new_game.s b/asm/new_game.s index ad4983770..e2b9c876f 100644 --- a/asm/new_game.s +++ b/asm/new_game.s @@ -159,7 +159,7 @@ sub_80549F8: @ 80549F8 movs r1, 0x1 movs r3, 0x6 bl Overworld_SetWarpDestination - bl warp_in + bl WarpIntoMap add sp, 0x4 pop {r0} bx r0 diff --git a/asm/overworld.s b/asm/overworld.s index aacb22510..be0fc577f 100644 --- a/asm/overworld.s +++ b/asm/overworld.s @@ -22,7 +22,7 @@ sub_8054BC8: @ 8054BC8 bl sp000_heal_pokemon bl sub_8054DD8 bl sub_80554BC - bl warp_in + bl WarpIntoMap pop {r4} pop {r0} bx r0 @@ -993,15 +993,15 @@ _0805536C: _08055374: .4byte gMapHeader thumb_func_end update_camera_pos_from_warpid - thumb_func_start warp_in -warp_in: @ 8055378 + thumb_func_start WarpIntoMap +WarpIntoMap: @ 8055378 push {lr} bl warp_shift bl set_current_map_header_from_sav1_save_old_name bl update_camera_pos_from_warpid pop {r0} bx r0 - thumb_func_end warp_in + thumb_func_end WarpIntoMap thumb_func_start Overworld_SetWarpDestination Overworld_SetWarpDestination: @ 805538C @@ -3571,8 +3571,8 @@ _08056714: .4byte sub_8056534 _08056718: .4byte sub_80565B4 thumb_func_end c2_whiteout - thumb_func_start sub_805671C -sub_805671C: @ 805671C + thumb_func_start CB2_LoadMap +CB2_LoadMap: @ 805671C push {lr} bl sub_80569BC bl ScriptContext1_Init @@ -3590,7 +3590,7 @@ sub_805671C: @ 805671C _08056740: .4byte sub_80C9BFC _08056744: .4byte gMain _08056748: .4byte sub_805674C - thumb_func_end sub_805671C + thumb_func_end CB2_LoadMap thumb_func_start sub_805674C sub_805674C: @ 805674C @@ -3784,8 +3784,8 @@ _080568D8: .4byte gFieldCallback _080568DC: .4byte sub_807DD44 thumb_func_end sub_80568C4 - thumb_func_start c2_exit_to_overworld_1_continue_scripts_restart_music -c2_exit_to_overworld_1_continue_scripts_restart_music: @ 80568E0 + thumb_func_start CB2_ReturnToFieldContinueScriptPlayMapMusic +CB2_ReturnToFieldContinueScriptPlayMapMusic: @ 80568E0 push {lr} bl sub_80569BC ldr r1, _080568F4 @ =gFieldCallback @@ -3797,7 +3797,7 @@ c2_exit_to_overworld_1_continue_scripts_restart_music: @ 80568E0 .align 2, 0 _080568F4: .4byte gFieldCallback _080568F8: .4byte FieldCallback_ReturnToEventScript2 - thumb_func_end c2_exit_to_overworld_1_continue_scripts_restart_music + thumb_func_end CB2_ReturnToFieldContinueScriptPlayMapMusic thumb_func_start sub_80568FC sub_80568FC: @ 80568FC @@ -3858,14 +3858,14 @@ CB2_ContinueSavedGame: @ 8056938 bne _0805699C bl sav2_x9_clear_bit1 bl warp1_set_to_sav1w - bl warp_in - ldr r0, _08056998 @ =sub_805671C + bl WarpIntoMap + ldr r0, _08056998 @ =CB2_LoadMap bl SetMainCallback2 b _080569AC .align 2, 0 _08056990: .4byte gFieldCallback2 _08056994: .4byte gUnknown_2031DE0 -_08056998: .4byte sub_805671C +_08056998: .4byte CB2_LoadMap _0805699C: ldr r0, _080569B0 @ =gFieldCallback ldr r1, _080569B4 @ =sub_8056918 @@ -5139,14 +5139,14 @@ sub_8057430: @ 8057430 bne _08057490 bl sav2_x9_clear_bit1 bl warp1_set_to_sav1w - bl warp_in - ldr r0, _0805748C @ =sub_805671C + bl WarpIntoMap + ldr r0, _0805748C @ =CB2_LoadMap bl SetMainCallback2 b _0805749A .align 2, 0 _08057484: .4byte gUnknown_2036E28 _08057488: .4byte gUnknown_2031DE0 -_0805748C: .4byte sub_805671C +_0805748C: .4byte CB2_LoadMap _08057490: ldr r0, _080574A0 @ =sub_8056534 bl sub_80565E0 @@ -5304,7 +5304,7 @@ _08057560: adds r0, r4 ldrh r0, [r0, 0x4] strh r0, [r1] - bl warp_in + bl WarpIntoMap ldr r2, _08057610 @ =gPaletteFade ldrb r0, [r2, 0x8] movs r1, 0x80 @@ -5620,7 +5620,7 @@ sub_8057854: @ 8057854 cmp r0, 0 bne _08057876 bl CleanupOverworldWindowsAndTilemaps - ldr r0, _08057880 @ =sub_805671C + ldr r0, _08057880 @ =CB2_LoadMap bl SetMainCallback2 adds r0, r4, 0 bl DestroyTask @@ -5630,7 +5630,7 @@ _08057876: bx r0 .align 2, 0 _0805787C: .4byte gPaletteFade -_08057880: .4byte sub_805671C +_08057880: .4byte CB2_LoadMap thumb_func_end sub_8057854 thumb_func_start c1_link_related diff --git a/asm/party_menu.s b/asm/party_menu.s index 58f7529e2..07db16817 100644 --- a/asm/party_menu.s +++ b/asm/party_menu.s @@ -17844,7 +17844,7 @@ sub_812781C: @ 812781C str r0, [sp] ldr r0, _08127848 @ =sub_811FB28 str r0, [sp, 0x4] - ldr r0, _0812784C @ =c2_exit_to_overworld_1_continue_scripts_restart_music + ldr r0, _0812784C @ =CB2_ReturnToFieldContinueScriptPlayMapMusic str r0, [sp, 0x8] movs r0, 0 movs r1, 0 @@ -17855,13 +17855,13 @@ sub_812781C: @ 812781C .align 2, 0 _08127844: .4byte gSpecialVar_0x8005 _08127848: .4byte sub_811FB28 -_0812784C: .4byte c2_exit_to_overworld_1_continue_scripts_restart_music +_0812784C: .4byte CB2_ReturnToFieldContinueScriptPlayMapMusic _08127850: movs r0, 0x7F str r0, [sp] ldr r0, _08127878 @ =sub_8126DC8 str r0, [sp, 0x4] - ldr r0, _0812787C @ =c2_exit_to_overworld_1_continue_scripts_restart_music + ldr r0, _0812787C @ =CB2_ReturnToFieldContinueScriptPlayMapMusic str r0, [sp, 0x8] movs r0, 0 movs r1, 0 @@ -17878,7 +17878,7 @@ _08127870: bx r0 .align 2, 0 _08127878: .4byte sub_8126DC8 -_0812787C: .4byte c2_exit_to_overworld_1_continue_scripts_restart_music +_0812787C: .4byte CB2_ReturnToFieldContinueScriptPlayMapMusic _08127880: .4byte gUnknown_203B0A0 _08127884: .4byte gSpecialVar_0x8007 thumb_func_end sub_812781C @@ -17891,7 +17891,7 @@ sub_8127888: @ 8127888 str r0, [sp] ldr r0, _081278AC @ =sub_811FB28 str r0, [sp, 0x4] - ldr r0, _081278B0 @ =c2_exit_to_overworld_1_continue_scripts_restart_music + ldr r0, _081278B0 @ =CB2_ReturnToFieldContinueScriptPlayMapMusic str r0, [sp, 0x8] movs r0, 0xB movs r1, 0 @@ -17903,7 +17903,7 @@ sub_8127888: @ 8127888 bx r0 .align 2, 0 _081278AC: .4byte sub_811FB28 -_081278B0: .4byte c2_exit_to_overworld_1_continue_scripts_restart_music +_081278B0: .4byte CB2_ReturnToFieldContinueScriptPlayMapMusic thumb_func_end sub_8127888 thumb_func_start sub_81278B4 diff --git a/asm/player_pc.s b/asm/player_pc.s index 4d917504a..dfcac85f4 100644 --- a/asm/player_pc.s +++ b/asm/player_pc.s @@ -1134,7 +1134,7 @@ sub_80EBF40: @ 80EBF40 cmp r0, 0 bne _080EBFEA ldrb r0, [r4, 0x16] - bl ListMenuHandleInput + bl ListMenu_ProcessInput adds r6, r0, 0 ldrb r0, [r4, 0x16] ldr r7, _080EBF9C @ =gUnknown_203AAC6 @@ -1174,7 +1174,7 @@ _080EBFB6: ldrb r0, [r4, 0x16] adds r1, r7, 0 mov r2, r8 - bl DestroyListMenu + bl DestroyListMenuTask movs r0, 0 bl ScheduleBgCopyTilemapToVram mov r1, r8 @@ -1288,7 +1288,7 @@ sub_80EC094: @ 80EC094 ldrb r0, [r4, 0x16] movs r1, 0 movs r2, 0 - bl DestroyListMenu + bl DestroyListMenuTask movs r0, 0 bl ScheduleBgCopyTilemapToVram bl sub_810EDB0 diff --git a/asm/pokedex_screen.s b/asm/pokedex_screen.s index 80cc1ab5d..268b65fd8 100644 --- a/asm/pokedex_screen.s +++ b/asm/pokedex_screen.s @@ -621,7 +621,7 @@ _08102A10: .4byte gUnknown_203ACF0 _08102A14: ldr r0, [r4] ldrb r0, [r0, 0x17] - bl ListMenuHandleInput + bl ListMenu_ProcessInput ldr r1, [r4] str r0, [r1, 0xC] ldrb r0, [r1, 0x17] @@ -754,7 +754,7 @@ _08102B24: adds r1, r2, 0 adds r1, 0x12 adds r2, 0x10 - bl DestroyListMenu + bl DestroyListMenuTask movs r0, 0x20 str r0, [sp] movs r0, 0x14 @@ -804,7 +804,7 @@ _08102B94: adds r1, r2, 0 adds r1, 0x12 adds r2, 0x10 - bl DestroyListMenu + bl DestroyListMenuTask movs r0, 0x1 bl HideBg ldr r0, [r4] @@ -832,7 +832,7 @@ _08102BD8: adds r1, r2, 0 adds r1, 0x12 adds r2, 0x10 - bl DestroyListMenu + bl DestroyListMenuTask movs r0, 0x1 bl HideBg ldr r0, [r4] @@ -1238,7 +1238,7 @@ _08102F60: movs r0, 0x1 movs r1, 0 movs r2, 0x3 - bl sub_8107A9C + bl ListMenuOverrideSetColors b _08102F7A .align 2, 0 _08102F6C: .4byte gUnknown_203ACF0 @@ -1246,7 +1246,7 @@ _08102F70: movs r0, 0xA movs r1, 0 movs r2, 0xB - bl sub_8107A9C + bl ListMenuOverrideSetColors _08102F7A: pop {r0} bx r0 @@ -1379,7 +1379,7 @@ _08103098: ldr r0, [r4] adds r0, 0x41 ldrb r0, [r0] - bl ListMenuHandleInput + bl ListMenu_ProcessInput ldr r1, [r4] str r0, [r1, 0x30] ldrb r0, [r1, 0x17] @@ -1700,7 +1700,7 @@ _08103362: ldr r0, [r4] adds r0, 0x41 ldrb r0, [r0] - bl ListMenuHandleInput + bl ListMenu_ProcessInput ldr r1, [r4] str r0, [r1, 0x30] ldrb r0, [r1, 0x17] @@ -2433,7 +2433,7 @@ _08103964: ldrh r3, [r0, 0x3C] _0810396E: adds r0, r5, 0 - bl Unused_ListMenuInit2 + bl ListMenuInitInRect ldr r1, [r4] adds r1, 0x41 strb r0, [r1] @@ -2467,7 +2467,7 @@ _0810399C: adds r1, r2, 0 adds r1, 0x36 adds r2, 0x34 - bl DestroyListMenu + bl DestroyListMenuTask b _081039E8 .align 2, 0 _081039B4: .4byte gUnknown_203ACF0 @@ -2480,7 +2480,7 @@ _081039B8: adds r1, r2, 0 adds r1, 0x3A adds r2, 0x38 - bl DestroyListMenu + bl DestroyListMenuTask b _081039E8 .align 2, 0 _081039D0: .4byte gUnknown_203ACF0 @@ -2493,7 +2493,7 @@ _081039D4: adds r1, r2, 0 adds r1, 0x3E adds r2, 0x3C - bl DestroyListMenu + bl DestroyListMenuTask _081039E8: pop {r0} bx r0 @@ -2572,7 +2572,7 @@ sub_8103A40: @ 8103A40 movs r1, 0 movs r2, 0x28 adds r3, r6, 0 - bl blit_move_info_icon + bl BlitMoveInfoIcon ldr r0, _08103AC4 @ =gBaseStats lsls r4, r5, 3 subs r4, r5 @@ -2587,7 +2587,7 @@ sub_8103A40: @ 8103A40 lsrs r1, 24 movs r2, 0x78 adds r3, r6, 0 - bl blit_move_info_icon + bl BlitMoveInfoIcon ldrb r1, [r4, 0x7] cmp r5, r1 beq _08103AB6 @@ -2599,7 +2599,7 @@ sub_8103A40: @ 8103A40 lsrs r1, 24 movs r2, 0x98 adds r3, r6, 0 - bl blit_move_info_icon + bl BlitMoveInfoIcon _08103AB6: add sp, 0x4 pop {r4-r7} @@ -7753,7 +7753,7 @@ _08106478: lsrs r1, 24 movs r2, 0 movs r3, 0x1 - bl blit_move_info_icon + bl BlitMoveInfoIcon ldrb r1, [r4, 0x7] cmp r5, r1 beq _08106504 @@ -7765,7 +7765,7 @@ _08106478: lsrs r1, 24 movs r2, 0x20 movs r3, 0x1 - bl blit_move_info_icon + bl BlitMoveInfoIcon _08106504: ldr r7, _081066B8 @ =gUnknown_203ACF0 ldr r0, [r7] diff --git a/asm/pokemon_icon.s b/asm/pokemon_icon.s index a6a83033a..4eb654a50 100644 --- a/asm/pokemon_icon.s +++ b/asm/pokemon_icon.s @@ -519,8 +519,8 @@ _080971C0: _080971C8: .4byte gUnknown_83D4038 thumb_func_end sub_8097198 - thumb_func_start sub_80971CC -sub_80971CC: @ 80971CC + thumb_func_start GetValidMonIconPalettePtr +GetValidMonIconPalettePtr: @ 80971CC push {lr} lsls r0, 16 lsrs r2, r0, 16 @@ -542,7 +542,7 @@ _080971DC: .align 2, 0 _080971F0: .4byte gUnknown_83D4038 _080971F4: .4byte gUnknown_83D3E80 - thumb_func_end sub_80971CC + thumb_func_end GetValidMonIconPalettePtr thumb_func_start sub_80971F8 sub_80971F8: @ 80971F8 diff --git a/asm/pokemon_jump_2.s b/asm/pokemon_jump_2.s index af4b28a27..7ef149fec 100644 --- a/asm/pokemon_jump_2.s +++ b/asm/pokemon_jump_2.s @@ -5644,20 +5644,20 @@ sub_814A468: @ 814A468 ldr r1, _0814A530 @ =gUnknown_846D94C bl StringAppend _0814A4C2: - bl UnkTextUtil_Reset + bl DynamicPlaceholderTextUtil_Reset ldr r4, _0814A52C @ =gUnknown_203F3D8 ldr r1, [r4] adds r1, 0x26 movs r0, 0 - bl UnkTextUtil_SetPtrI + bl DynamicPlaceholderTextUtil_SetPlaceholderPtr ldr r1, [r4] adds r1, 0x66 movs r0, 0x1 - bl UnkTextUtil_SetPtrI + bl DynamicPlaceholderTextUtil_SetPlaceholderPtr ldr r0, [r4] adds r0, 0xA6 ldr r1, _0814A534 @ =gUnknown_841CBA9 - bl UnkTextUtil_StringExpandPlaceholders + bl DynamicPlaceholderTextUtil_ExpandPlaceholders movs r0, 0x4 movs r1, 0x8 movs r2, 0x16 @@ -5706,15 +5706,15 @@ sub_814A53C: @ 814A53C ldr r1, [r4] adds r1, 0x26 bl CopyItemName - bl UnkTextUtil_Reset + bl DynamicPlaceholderTextUtil_Reset ldr r1, [r4] adds r1, 0x26 movs r0, 0 - bl UnkTextUtil_SetPtrI + bl DynamicPlaceholderTextUtil_SetPlaceholderPtr ldr r0, [r4] adds r0, 0xA6 ldr r1, _0814A5B0 @ =gUnknown_841CBCA - bl UnkTextUtil_StringExpandPlaceholders + bl DynamicPlaceholderTextUtil_ExpandPlaceholders movs r0, 0x4 movs r1, 0x8 movs r2, 0x16 @@ -5761,15 +5761,15 @@ sub_814A5B4: @ 814A5B4 ldr r1, [r4] adds r1, 0x26 bl CopyItemName - bl UnkTextUtil_Reset + bl DynamicPlaceholderTextUtil_Reset ldr r1, [r4] adds r1, 0x26 movs r0, 0 - bl UnkTextUtil_SetPtrI + bl DynamicPlaceholderTextUtil_SetPlaceholderPtr ldr r0, [r4] adds r0, 0xA6 ldr r1, _0814A628 @ =gUnknown_841CBE4 - bl UnkTextUtil_StringExpandPlaceholders + bl DynamicPlaceholderTextUtil_ExpandPlaceholders movs r0, 0x4 movs r1, 0x9 movs r2, 0x16 diff --git a/asm/pokemon_special_anim.s b/asm/pokemon_special_anim.s index 31e3752d3..5c91419df 100644 --- a/asm/pokemon_special_anim.s +++ b/asm/pokemon_special_anim.s @@ -1815,15 +1815,15 @@ _0811D3C0: _0811D3D4: .4byte gUnknown_841B295 _0811D3D8: .4byte gUnknown_841B2A7 _0811D3DC: - bl UnkTextUtil_Reset + bl DynamicPlaceholderTextUtil_Reset bl sub_811D0F4 adds r1, r0, 0 movs r0, 0 - bl UnkTextUtil_SetPtrI + bl DynamicPlaceholderTextUtil_SetPlaceholderPtr bl sub_811D0D0 adds r1, r0, 0 movs r0, 0x1 - bl UnkTextUtil_SetPtrI + bl DynamicPlaceholderTextUtil_SetPlaceholderPtr adds r4, 0x14 ldr r1, _0811D400 @ =gUnknown_841B32E b _0811D470 @@ -1866,20 +1866,20 @@ _0811D444: .4byte gUnknown_841B2F1 _0811D448: .4byte gUnknown_841B2ED _0811D44C: .4byte gUnknown_8459998 _0811D450: - bl UnkTextUtil_Reset + bl DynamicPlaceholderTextUtil_Reset bl sub_811D0F4 adds r1, r0, 0 movs r0, 0 - bl UnkTextUtil_SetPtrI + bl DynamicPlaceholderTextUtil_SetPlaceholderPtr bl sub_811D0C4 adds r1, r0, 0 movs r0, 0x1 - bl UnkTextUtil_SetPtrI + bl DynamicPlaceholderTextUtil_SetPlaceholderPtr adds r4, 0x14 ldr r1, _0811D478 @ =gUnknown_841B306 _0811D470: adds r0, r4, 0 - bl UnkTextUtil_StringExpandPlaceholders + bl DynamicPlaceholderTextUtil_ExpandPlaceholders b _0811D4A2 .align 2, 0 _0811D478: .4byte gUnknown_841B306 diff --git a/asm/pokemon_storage_system.s b/asm/pokemon_storage_system.s index 0c9536a8e..a5e91a4a6 100644 --- a/asm/pokemon_storage_system.s +++ b/asm/pokemon_storage_system.s @@ -8190,7 +8190,7 @@ sub_808FBA4: @ 808FBA4 sub sp, 0xC lsls r0, 24 lsrs r6, r0, 24 - bl UnkTextUtil_Reset + bl DynamicPlaceholderTextUtil_Reset ldr r1, _0808FBC8 @ =gUnknown_83CEA88 lsls r0, r6, 3 adds r0, r1 @@ -8231,7 +8231,7 @@ _0808FC04: adds r1, r2 _0808FC0C: movs r0, 0 - bl UnkTextUtil_SetPtrI + bl DynamicPlaceholderTextUtil_SetPlaceholderPtr b _0808FC7C .align 2, 0 _0808FC14: .4byte gUnknown_20397B0 @@ -8281,7 +8281,7 @@ _0808FC62: ldr r0, _0808FCE0 @ =0x000021db adds r1, r0 movs r0, 0 - bl UnkTextUtil_SetPtrI + bl DynamicPlaceholderTextUtil_SetPlaceholderPtr _0808FC7C: ldr r5, _0808FCDC @ =gUnknown_20397B0 ldr r0, [r5] @@ -8292,7 +8292,7 @@ _0808FC7C: lsls r1, r6, 3 adds r1, r2 ldr r1, [r1] - bl UnkTextUtil_StringExpandPlaceholders + bl DynamicPlaceholderTextUtil_ExpandPlaceholders movs r0, 0x1 movs r1, 0x11 bl FillWindowPixelBuffer diff --git a/asm/pokemon_summary_screen.s b/asm/pokemon_summary_screen.s index f561ad660..2fa836876 100644 --- a/asm/pokemon_summary_screen.s +++ b/asm/pokemon_summary_screen.s @@ -5747,7 +5747,7 @@ _08137574: sub_8137578: @ 8137578 push {r4-r7,lr} sub sp, 0xD4 - bl UnkTextUtil_Reset + bl DynamicPlaceholderTextUtil_Reset ldr r7, _081375E8 @ =gUnknown_203B140 ldr r0, [r7] ldr r4, _081375EC @ =0x00003290 @@ -5760,7 +5760,7 @@ sub_8137578: @ 8137578 adds r0, r1 ldr r1, [r0] movs r0, 0 - bl UnkTextUtil_SetPtrI + bl DynamicPlaceholderTextUtil_SetPlaceholderPtr ldr r0, [r7] adds r0, r4 movs r1, 0x24 @@ -5777,7 +5777,7 @@ _081375B2: bl ConvertIntToDecimalStringN movs r0, 0x1 add r1, sp, 0x14 - bl UnkTextUtil_SetPtrI + bl DynamicPlaceholderTextUtil_SetPlaceholderPtr ldr r0, [r7] adds r0, r4 movs r1, 0x23 @@ -5824,7 +5824,7 @@ _0813761C: _08137626: adds r1, r4, 0 movs r0, 0x2 - bl UnkTextUtil_SetPtrI + bl DynamicPlaceholderTextUtil_SetPlaceholderPtr ldr r4, _08137664 @ =gUnknown_203B140 ldr r0, [r4] ldr r1, _08137668 @ =0x00003290 @@ -5901,7 +5901,7 @@ _081376C0: ldr r1, _081376D8 @ =gUnknown_8419841 _081376CE: adds r0, r4, 0 - bl UnkTextUtil_StringExpandPlaceholders + bl DynamicPlaceholderTextUtil_ExpandPlaceholders b _081376E6 .align 2, 0 _081376D8: .4byte gUnknown_8419841 @@ -5909,7 +5909,7 @@ _081376DC: add r4, sp, 0x3C ldr r1, _08137714 @ =gUnknown_8419822 adds r0, r4, 0 - bl UnkTextUtil_StringExpandPlaceholders + bl DynamicPlaceholderTextUtil_ExpandPlaceholders _081376E6: ldr r0, _08137718 @ =gUnknown_203B140 ldr r0, [r0] @@ -5944,7 +5944,7 @@ _08137720: .4byte gUnknown_8463FA4 sub_8137724: @ 8137724 push {r4-r6,lr} sub sp, 0xD4 - bl UnkTextUtil_Reset + bl DynamicPlaceholderTextUtil_Reset ldr r5, _081377A0 @ =gUnknown_203B140 ldr r0, [r5] ldr r4, _081377A4 @ =0x00003290 @@ -5957,7 +5957,7 @@ sub_8137724: @ 8137724 adds r0, r1 ldr r1, [r0] movs r0, 0 - bl UnkTextUtil_SetPtrI + bl DynamicPlaceholderTextUtil_SetPlaceholderPtr ldr r0, [r5] adds r0, r4 movs r1, 0x24 @@ -5974,7 +5974,7 @@ _0813775E: bl ConvertIntToDecimalStringN movs r0, 0x1 add r1, sp, 0x14 - bl UnkTextUtil_SetPtrI + bl DynamicPlaceholderTextUtil_SetPlaceholderPtr ldr r0, [r5] adds r0, r4 movs r1, 0x23 @@ -6025,7 +6025,7 @@ _081377D0: ldr r1, _081377E8 @ =gUnknown_841979D _081377DE: adds r0, r4, 0 - bl UnkTextUtil_StringExpandPlaceholders + bl DynamicPlaceholderTextUtil_ExpandPlaceholders b _081377F6 .align 2, 0 _081377E8: .4byte gUnknown_841979D @@ -6033,7 +6033,7 @@ _081377EC: add r4, sp, 0x3C ldr r1, _08137820 @ =gUnknown_8419782 adds r0, r4, 0 - bl UnkTextUtil_StringExpandPlaceholders + bl DynamicPlaceholderTextUtil_ExpandPlaceholders _081377F6: ldr r0, _08137824 @ =gUnknown_203B140 ldr r0, [r0] @@ -6077,7 +6077,7 @@ _08137846: _08137850: adds r1, r4, 0 movs r0, 0x2 - bl UnkTextUtil_SetPtrI + bl DynamicPlaceholderTextUtil_SetPlaceholderPtr ldr r4, _08137890 @ =gUnknown_203B140 ldr r0, [r4] ldr r1, _08137894 @ =0x00003290 @@ -6149,7 +6149,7 @@ _081378EA: ldr r1, _081378F8 @ =gUnknown_841988A _081378EE: adds r0, r4, 0 - bl UnkTextUtil_StringExpandPlaceholders + bl DynamicPlaceholderTextUtil_ExpandPlaceholders b _08137906 .align 2, 0 _081378F8: .4byte gUnknown_841988A @@ -6157,7 +6157,7 @@ _081378FC: add r4, sp, 0x3C ldr r1, _08137934 @ =gUnknown_8419860 adds r0, r4, 0 - bl UnkTextUtil_StringExpandPlaceholders + bl DynamicPlaceholderTextUtil_ExpandPlaceholders _08137906: ldr r0, _08137938 @ =gUnknown_203B140 ldr r0, [r0] @@ -6636,7 +6636,7 @@ _08137CA4: adds r3, r2 lsrs r3, 16 movs r2, 0x3 - bl blit_move_info_icon + bl BlitMoveInfoIcon _08137CDE: adds r0, r4, 0x1 lsls r0, 24 @@ -6660,7 +6660,7 @@ _08137CDE: lsrs r1, 24 movs r2, 0x3 movs r3, 0x75 - bl blit_move_info_icon + bl BlitMoveInfoIcon _08137D0E: pop {r4,r5} pop {r0} @@ -8325,7 +8325,7 @@ _08138A62: lsrs r1, 24 movs r2, 0x2F movs r3, 0x23 - bl blit_move_info_icon + bl BlitMoveInfoIcon ldr r1, [r6] adds r4, r1, r4 ldr r3, _08138AB8 @ =0x00003221 @@ -8342,7 +8342,7 @@ _08138A62: lsrs r1, 24 movs r2, 0x53 movs r3, 0x23 - bl blit_move_info_icon + bl BlitMoveInfoIcon b _08138B0E .align 2, 0 _08138AB0: .4byte 0x00003003 @@ -8365,7 +8365,7 @@ _08138ABC: lsrs r1, 24 movs r2, 0 movs r3, 0x3 - bl blit_move_info_icon + bl BlitMoveInfoIcon ldr r2, [r6] adds r4, r2, r4 ldr r1, _08138B1C @ =0x00003221 @@ -8381,7 +8381,7 @@ _08138ABC: lsrs r1, 24 movs r2, 0x24 movs r3, 0x3 - bl blit_move_info_icon + bl BlitMoveInfoIcon _08138B04: ldr r0, [r6] adds r0, r5 diff --git a/asm/safari_zone.s b/asm/safari_zone.s deleted file mode 100644 index 4bc9d6eb7..000000000 --- a/asm/safari_zone.s +++ /dev/null @@ -1,167 +0,0 @@ - .include "asm/macros.inc" - .include "constants/constants.inc" - - .syntax unified - - .text - - thumb_func_start GetSafariZoneFlag -GetSafariZoneFlag: @ 80A0E90 - push {lr} - movs r0, 0x80 - lsls r0, 4 - bl FlagGet - lsls r0, 24 - lsrs r0, 24 - pop {r1} - bx r1 - thumb_func_end GetSafariZoneFlag - - thumb_func_start sub_80A0EA4 -sub_80A0EA4: @ 80A0EA4 - push {lr} - movs r0, 0x80 - lsls r0, 4 - bl FlagSet - pop {r0} - bx r0 - thumb_func_end sub_80A0EA4 - - thumb_func_start ResetSafariZoneFlag -ResetSafariZoneFlag: @ 80A0EB4 - push {lr} - movs r0, 0x80 - lsls r0, 4 - bl FlagClear - pop {r0} - bx r0 - thumb_func_end ResetSafariZoneFlag - - thumb_func_start sub_80A0EC4 -sub_80A0EC4: @ 80A0EC4 - push {lr} - movs r0, 0x11 - bl IncrementGameStat - bl sub_80A0EA4 - ldr r1, _080A0EE4 @ =gUnknown_2039994 - movs r0, 0x1E - strb r0, [r1] - ldr r1, _080A0EE8 @ =gUnknown_2039996 - movs r2, 0x96 - lsls r2, 2 - adds r0, r2, 0 - strh r0, [r1] - pop {r0} - bx r0 - .align 2, 0 -_080A0EE4: .4byte gUnknown_2039994 -_080A0EE8: .4byte gUnknown_2039996 - thumb_func_end sub_80A0EC4 - - thumb_func_start sub_80A0EEC -sub_80A0EEC: @ 80A0EEC - push {lr} - bl ResetSafariZoneFlag - ldr r1, _080A0F04 @ =gUnknown_2039994 - movs r0, 0 - strb r0, [r1] - ldr r1, _080A0F08 @ =gUnknown_2039996 - movs r0, 0 - strh r0, [r1] - pop {r0} - bx r0 - .align 2, 0 -_080A0F04: .4byte gUnknown_2039994 -_080A0F08: .4byte gUnknown_2039996 - thumb_func_end sub_80A0EEC - - thumb_func_start sub_80A0F0C -sub_80A0F0C: @ 80A0F0C - push {lr} - bl GetSafariZoneFlag - cmp r0, 0 - beq _080A0F24 - ldr r1, _080A0F28 @ =gUnknown_2039996 - ldrh r0, [r1] - subs r0, 0x1 - strh r0, [r1] - lsls r0, 16 - cmp r0, 0 - beq _080A0F2C -_080A0F24: - movs r0, 0 - b _080A0F34 - .align 2, 0 -_080A0F28: .4byte gUnknown_2039996 -_080A0F2C: - ldr r0, _080A0F38 @ =gUnknown_81BFBC5 - bl ScriptContext1_SetupScript - movs r0, 0x1 -_080A0F34: - pop {r1} - bx r1 - .align 2, 0 -_080A0F38: .4byte gUnknown_81BFBC5 - thumb_func_end sub_80A0F0C - - thumb_func_start sub_80A0F3C -sub_80A0F3C: @ 80A0F3C - push {lr} - ldr r0, _080A0F48 @ =gUnknown_81BFBAA - bl ScriptContext1_SetupScript - pop {r0} - bx r0 - .align 2, 0 -_080A0F48: .4byte gUnknown_81BFBAA - thumb_func_end sub_80A0F3C - - thumb_func_start sub_80A0F4C -sub_80A0F4C: @ 80A0F4C - push {lr} - ldr r0, _080A0F60 @ =gUnknown_2039994 - ldrb r0, [r0] - cmp r0, 0 - beq _080A0F68 - ldr r0, _080A0F64 @ =CB2_ReturnToField - bl SetMainCallback2 - b _080A0FB0 - .align 2, 0 -_080A0F60: .4byte gUnknown_2039994 -_080A0F64: .4byte CB2_ReturnToField -_080A0F68: - ldr r0, _080A0F88 @ =gBattleOutcome - ldrb r0, [r0] - cmp r0, 0x8 - bne _080A0F9C - ldr r0, _080A0F8C @ =gUnknown_81BFB87 - bl ScriptContext2_RunNewScript - bl warp_in - ldr r1, _080A0F90 @ =gFieldCallback - ldr r0, _080A0F94 @ =sub_807E3EC - str r0, [r1] - ldr r0, _080A0F98 @ =sub_805671C - bl SetMainCallback2 - b _080A0FB0 - .align 2, 0 -_080A0F88: .4byte gBattleOutcome -_080A0F8C: .4byte gUnknown_81BFB87 -_080A0F90: .4byte gFieldCallback -_080A0F94: .4byte sub_807E3EC -_080A0F98: .4byte sub_805671C -_080A0F9C: - cmp r0, 0x7 - bne _080A0FB0 - ldr r0, _080A0FB4 @ =gUnknown_81BFBD7 - bl ScriptContext1_SetupScript - bl ScriptContext1_Stop - ldr r0, _080A0FB8 @ =c2_exit_to_overworld_1_continue_scripts_restart_music - bl SetMainCallback2 -_080A0FB0: - pop {r0} - bx r0 - .align 2, 0 -_080A0FB4: .4byte gUnknown_81BFBD7 -_080A0FB8: .4byte c2_exit_to_overworld_1_continue_scripts_restart_music - thumb_func_end sub_80A0F4C - - .align 2, 0 @ Don't pad with nop. diff --git a/asm/script_pokemon_util_80A0058.s b/asm/script_pokemon_util_80A0058.s index 60f416b48..6b4cdd1a8 100644 --- a/asm/script_pokemon_util_80A0058.s +++ b/asm/script_pokemon_util_80A0058.s @@ -411,13 +411,13 @@ _080A0368: movs r0, 0x1 strh r0, [r1] _080A036E: - ldr r0, _080A037C @ =c2_exit_to_overworld_1_continue_scripts_restart_music + ldr r0, _080A037C @ =CB2_ReturnToFieldContinueScriptPlayMapMusic bl SetMainCallback2 pop {r0} bx r0 .align 2, 0 _080A0378: .4byte gSpecialVar_Result -_080A037C: .4byte c2_exit_to_overworld_1_continue_scripts_restart_music +_080A037C: .4byte CB2_ReturnToFieldContinueScriptPlayMapMusic thumb_func_end sub_80A0350 thumb_func_start sub_80A0380 @@ -455,14 +455,14 @@ _080A03B8: movs r0, 0x1 strh r0, [r1] _080A03C2: - ldr r0, _080A03D4 @ =c2_exit_to_overworld_1_continue_scripts_restart_music + ldr r0, _080A03D4 @ =CB2_ReturnToFieldContinueScriptPlayMapMusic bl SetMainCallback2 pop {r4} pop {r0} bx r0 .align 2, 0 _080A03D0: .4byte gSpecialVar_Result -_080A03D4: .4byte c2_exit_to_overworld_1_continue_scripts_restart_music +_080A03D4: .4byte CB2_ReturnToFieldContinueScriptPlayMapMusic thumb_func_end sub_80A039C thumb_func_start sub_80A03D8 diff --git a/asm/shop.s b/asm/shop.s index 51955f88d..01bca8033 100644 --- a/asm/shop.s +++ b/asm/shop.s @@ -572,7 +572,7 @@ _0809AEAC: ldrb r0, [r0, 0x16] lsls r0, 28 lsrs r0, 28 - bl sub_813F66C + bl BuyMenuInitWindows bl sub_809B080 b _0809AF5E .align 2, 0 @@ -819,7 +819,7 @@ sub_809B15C: @ 809B15C push {lr} bl sub_809B764 bl sub_809BAFC - bl sub_813F6D0 + bl BuyMenuDrawMoneyBox movs r0, 0 bl ScheduleBgCopyTilemapToVram movs r0, 0x1 @@ -1116,7 +1116,7 @@ _0809B398: movs r1, 0x2 adds r2, r7, 0 movs r3, 0 - bl sub_813F6F4 + bl BuyMenuPrint b _0809B400 .align 2, 0 _0809B3D0: .4byte 0x00000177 @@ -1138,7 +1138,7 @@ _0809B3D8: movs r1, 0x2 adds r2, r7, 0 movs r3, 0x2 - bl sub_813F6F4 + bl BuyMenuPrint _0809B400: add sp, 0x14 pop {r4-r7} @@ -1204,7 +1204,7 @@ _0809B45C: adds r0, r6, 0 movs r1, 0 movs r3, 0x69 - bl sub_813F6F4 + bl BuyMenuPrint _0809B480: add sp, 0x14 pop {r4-r6} @@ -1251,7 +1251,7 @@ sub_809B494: @ 809B494 movs r1, 0 adds r2, r5, 0 movs r3, 0 - bl sub_813F6F4 + bl BuyMenuPrint lsls r0, r7, 16 lsrs r0, 16 bl ItemIdToBattleMoveId @@ -1273,7 +1273,7 @@ sub_809B494: @ 809B494 movs r1, 0x2 adds r2, r5, 0 movs r3, 0 - bl sub_813F6F4 + bl BuyMenuPrint b _0809B55C .align 2, 0 _0809B514: .4byte gStringVar1 @@ -1294,7 +1294,7 @@ _0809B528: movs r0, 0x6 movs r1, 0 movs r3, 0 - bl sub_813F6F4 + bl BuyMenuPrint ldr r2, _0809B568 @ =gUnknown_8416217 movs r0, 0x10 str r0, [sp] @@ -1305,7 +1305,7 @@ _0809B528: movs r0, 0x6 movs r1, 0x2 movs r3, 0 - bl sub_813F6F4 + bl BuyMenuPrint _0809B55C: add sp, 0x14 pop {r4-r7} @@ -1388,7 +1388,7 @@ _0809B5E0: movs r0, 0x4 movs r1, 0x2 movs r3, 0x1 - bl sub_813F6F4 + bl BuyMenuPrint _0809B5F8: add sp, 0x14 pop {r4,r5} @@ -2134,7 +2134,7 @@ sub_809BB44: @ 809BB44 movs r1, 0 adds r2, r4, 0 movs r3, 0x2 - bl sub_813F6F4 + bl BuyMenuPrint add sp, 0x14 pop {r4} pop {r0} @@ -2164,7 +2164,7 @@ sub_809BBC0: @ 809BBC0 cmp r0, 0 bne _0809BC8E ldrb r0, [r5, 0xE] - bl ListMenuHandleInput + bl ListMenu_ProcessInput adds r4, r0, 0 ldrb r0, [r5, 0xE] ldr r7, _0809BC08 @ =gUnknown_2039942 @@ -2223,7 +2223,7 @@ _0809BC1A: ldr r1, _0809BC74 @ =gUnknown_8416842 ldr r2, _0809BC78 @ =sub_809BF98 adds r0, r6, 0 - bl sub_813F75C + bl BuyMenuDisplayMessage b _0809BC8E .align 2, 0 _0809BC70: .4byte gSaveBlock1Ptr @@ -2236,7 +2236,7 @@ _0809BC7C: ldr r1, _0809BC98 @ =gUnknown_8416766 ldr r2, _0809BC9C @ =sub_809BCA0 adds r0, r6, 0 - bl sub_813F75C + bl BuyMenuDisplayMessage _0809BC8E: pop {r4-r7} pop {r0} @@ -2265,7 +2265,7 @@ sub_809BCA0: @ 809BCA0 lsrs r4, 16 movs r0, 0x1 movs r1, 0 - bl sub_813F7C0 + bl BuyMenuQuantityBoxThinBorder ldr r0, _0809BD44 @ =gStringVar1 adds r1, r4, 0 movs r2, 0x1 @@ -2287,11 +2287,11 @@ sub_809BCA0: @ 809BCA0 movs r1, 0x2 adds r2, r6, 0 movs r3, 0 - bl sub_813F6F4 + bl BuyMenuPrint strh r4, [r5, 0x2] movs r0, 0x3 movs r1, 0 - bl sub_813F7A8 + bl BuyMenuQuantityBoxNormalBorder adds r0, r7, 0 bl sub_809BB44 movs r0, 0 @@ -2423,7 +2423,7 @@ _0809BDD4: ldr r1, _0809BE4C @ =gUnknown_841678E ldr r2, _0809BE50 @ =sub_809BE90 adds r0, r5, 0 - bl sub_813F75C + bl BuyMenuDisplayMessage b _0809BE88 .align 2, 0 _0809BE3C: .4byte gMain @@ -2464,7 +2464,7 @@ sub_809BE90: @ 809BE90 lsls r0, 24 lsrs r0, 24 ldr r1, _0809BEA0 @ =gUnknown_83DF0B4 - bl sub_813F7D8 + bl BuyMenuConfirmPurchase pop {r0} bx r0 .align 2, 0 @@ -2493,7 +2493,7 @@ sub_809BEA4: @ 809BEA4 ldr r1, _0809BEEC @ =gUnknown_84167E7 ldr r2, _0809BEF0 @ =sub_809BF0C adds r0, r5, 0 - bl sub_813F75C + bl BuyMenuDisplayMessage adds r0, r5, 0 bl nullsub_52 ldrh r0, [r4, 0xA] @@ -2509,7 +2509,7 @@ _0809BEF4: ldr r1, _0809BF04 @ =gUnknown_8416861 ldr r2, _0809BF08 @ =sub_809BF98 adds r0, r5, 0 - bl sub_813F75C + bl BuyMenuDisplayMessage _0809BEFE: pop {r4,r5} pop {r0} @@ -2691,7 +2691,7 @@ sub_809C04C: @ 809C04C ldrb r0, [r2, 0xE] movs r1, 0 movs r2, 0 - bl DestroyListMenu + bl DestroyListMenuTask bl sub_809B604 ldr r0, _0809C090 @ =CB2_ReturnToField bl SetMainCallback2 diff --git a/asm/start_menu.s b/asm/start_menu.s index 9f6ef8662..4f898b88c 100644 --- a/asm/start_menu.s +++ b/asm/start_menu.s @@ -160,7 +160,7 @@ sub_806EE7C: @ 806EE7C movs r1, 0 bl DrawStdWindowFrame ldr r0, _0806EEFC @ =gStringVar1 - ldr r1, _0806EF00 @ =gUnknown_2039996 + ldr r1, _0806EF00 @ =gSafariZoneStepCounter ldrh r1, [r1] movs r2, 0x1 movs r3, 0x3 @@ -172,7 +172,7 @@ sub_806EE7C: @ 806EE7C movs r3, 0x3 bl ConvertIntToDecimalStringN ldr r0, _0806EF08 @ =gStringVar3 - ldr r1, _0806EF0C @ =gUnknown_2039994 + ldr r1, _0806EF0C @ =gNumSafariBalls ldrb r1, [r1] movs r2, 0x1 movs r3, 0x2 @@ -203,10 +203,10 @@ sub_806EE7C: @ 806EE7C _0806EEF4: .4byte gUnknown_2037101 _0806EEF8: .4byte gUnknown_83A738C _0806EEFC: .4byte gStringVar1 -_0806EF00: .4byte gUnknown_2039996 +_0806EF00: .4byte gSafariZoneStepCounter _0806EF04: .4byte gStringVar2 _0806EF08: .4byte gStringVar3 -_0806EF0C: .4byte gUnknown_2039994 +_0806EF0C: .4byte gNumSafariBalls _0806EF10: .4byte gStringVar4 _0806EF14: .4byte gUnknown_84162A9 thumb_func_end sub_806EE7C @@ -1009,7 +1009,7 @@ sub_806F554: @ 806F554 bl sub_806EF18 bl sub_80F7998 bl sub_806FEA0 - bl sub_80A0F3C + bl SafariZoneRetirePrompt movs r0, 0x1 pop {r1} bx r1 diff --git a/asm/union_room_chat.s b/asm/union_room_chat.s index 137ee69c1..609cf8366 100644 --- a/asm/union_room_chat.s +++ b/asm/union_room_chat.s @@ -2362,10 +2362,10 @@ _08129664: ldrb r1, [r4, 0x8] cmp r0, r1 beq _081296EC - bl UnkTextUtil_Reset + bl DynamicPlaceholderTextUtil_Reset movs r0, 0 adds r1, r4, 0 - bl UnkTextUtil_SetPtrI + bl DynamicPlaceholderTextUtil_SetPlaceholderPtr ldr r1, _08129684 @ =gUnknown_841B3AA b _081296D8 .align 2, 0 @@ -2404,14 +2404,14 @@ _081296BE: ldrb r5, [r5] cmp r0, r5 beq _081296EC - bl UnkTextUtil_Reset + bl DynamicPlaceholderTextUtil_Reset movs r0, 0 adds r1, r4, 0 - bl UnkTextUtil_SetPtrI + bl DynamicPlaceholderTextUtil_SetPlaceholderPtr ldr r1, _081296E8 @ =gUnknown_841B3BE _081296D8: adds r0, r6, 0 - bl UnkTextUtil_StringExpandPlaceholders + bl DynamicPlaceholderTextUtil_ExpandPlaceholders movs r0, 0x1 b _081296EE .align 2, 0 @@ -3957,11 +3957,11 @@ sub_812A240: @ 812A240 beq _0812A280 b _0812A28A _0812A250: - bl UnkTextUtil_Reset + bl DynamicPlaceholderTextUtil_Reset bl sub_8129814 adds r1, r0, 0 movs r0, 0 - bl UnkTextUtil_SetPtrI + bl DynamicPlaceholderTextUtil_SetPlaceholderPtr movs r0, 0x5 movs r1, 0 bl sub_812A578 @@ -4122,11 +4122,11 @@ sub_812A378: @ 812A378 beq _0812A3BC b _0812A3C6 _0812A388: - bl UnkTextUtil_Reset + bl DynamicPlaceholderTextUtil_Reset ldr r0, _0812A3B4 @ =gSaveBlock2Ptr ldr r1, [r0] movs r0, 0 - bl UnkTextUtil_SetPtrI + bl DynamicPlaceholderTextUtil_SetPlaceholderPtr movs r0, 0x9 movs r1, 0 bl sub_812A578 @@ -4455,7 +4455,7 @@ _0812A5F8: adds r0, r1, 0 adds r0, 0x22 ldr r1, [r4] - bl UnkTextUtil_StringExpandPlaceholders + bl DynamicPlaceholderTextUtil_ExpandPlaceholders ldr r0, [r5] adds r6, r0, 0 adds r6, 0x22 diff --git a/asm/unk_text_util.s b/asm/unk_text_util.s deleted file mode 100644 index 15d21c95a..000000000 --- a/asm/unk_text_util.s +++ /dev/null @@ -1,130 +0,0 @@ - .include "asm/macros.inc" - .include "constants/constants.inc" - - .syntax unified - - .text - - thumb_func_start UnkTextUtil_Reset -UnkTextUtil_Reset: @ 813CC90 - push {lr} - ldr r1, _0813CCA8 @ =gUnknown_203F34C - movs r2, 0 - adds r0, r1, 0 - adds r0, 0x1C -_0813CC9A: - str r2, [r0] - subs r0, 0x4 - cmp r0, r1 - bge _0813CC9A - pop {r0} - bx r0 - .align 2, 0 -_0813CCA8: .4byte gUnknown_203F34C - thumb_func_end UnkTextUtil_Reset - - thumb_func_start UnkTextUtil_SetPtrI -UnkTextUtil_SetPtrI: @ 813CCAC - push {lr} - adds r2, r1, 0 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x7 - bhi _0813CCC0 - ldr r1, _0813CCC4 @ =gUnknown_203F34C - lsls r0, 2 - adds r0, r1 - str r2, [r0] -_0813CCC0: - pop {r0} - bx r0 - .align 2, 0 -_0813CCC4: .4byte gUnknown_203F34C - thumb_func_end UnkTextUtil_SetPtrI - - thumb_func_start UnkTextUtil_StringExpandPlaceholders -UnkTextUtil_StringExpandPlaceholders: @ 813CCC8 - push {r4,r5,lr} - adds r2, r0, 0 - adds r4, r1, 0 - ldrb r1, [r4] - adds r0, r1, 0 - cmp r0, 0xFF - beq _0813CD08 - ldr r5, _0813CCE4 @ =gUnknown_203F34C -_0813CCD8: - cmp r1, 0xF7 - beq _0813CCE8 - strb r1, [r2] - adds r4, 0x1 - adds r2, 0x1 - b _0813CD00 - .align 2, 0 -_0813CCE4: .4byte gUnknown_203F34C -_0813CCE8: - adds r4, 0x1 - ldrb r0, [r4] - lsls r0, 2 - adds r0, r5 - ldr r1, [r0] - cmp r1, 0 - beq _0813CCFE - adds r0, r2, 0 - bl StringCopy - adds r2, r0, 0 -_0813CCFE: - adds r4, 0x1 -_0813CD00: - ldrb r1, [r4] - adds r0, r1, 0 - cmp r0, 0xFF - bne _0813CCD8 -_0813CD08: - movs r0, 0xFF - strb r0, [r2] - adds r0, r2, 0 - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end UnkTextUtil_StringExpandPlaceholders - - thumb_func_start UnkTextUtil_GetPtrI -UnkTextUtil_GetPtrI: @ 813CD14 - lsls r0, 24 - ldr r1, _0813CD20 @ =gUnknown_203F34C - lsrs r0, 22 - adds r0, r1 - ldr r0, [r0] - bx lr - .align 2, 0 -_0813CD20: .4byte gUnknown_203F34C - thumb_func_end UnkTextUtil_GetPtrI - - thumb_func_start sub_813CD24 -sub_813CD24: @ 813CD24 - push {lr} - lsls r0, 16 - lsrs r1, r0, 16 - lsrs r2, r0, 17 - movs r0, 0x1 - ands r1, r0 - lsls r1, 2 - cmp r2, 0x4B - bhi _0813CD48 - ldr r0, _0813CD44 @ =gUnknown_8464300 - adds r0, r2, r0 - ldrb r0, [r0] - asrs r0, r1 - movs r1, 0xF - ands r0, r1 - b _0813CD4A - .align 2, 0 -_0813CD44: .4byte gUnknown_8464300 -_0813CD48: - movs r0, 0x3 -_0813CD4A: - pop {r1} - bx r1 - thumb_func_end sub_813CD24 - - .align 2, 0 @ Don't pad with nop. diff --git a/common_syms/list_menu.txt b/common_syms/list_menu.txt new file mode 100644 index 000000000..ed5343618 --- /dev/null +++ b/common_syms/list_menu.txt @@ -0,0 +1,2 @@ +gListMenuOverride +gMultiuseListMenuTemplate diff --git a/data/buy_menu_helpers.s b/data/buy_menu_helpers.s deleted file mode 100644 index a59b8e069..000000000 --- a/data/buy_menu_helpers.s +++ /dev/null @@ -1,14 +0,0 @@ - .section .rodata - .align 2 - -gUnknown_8464804:: @ 8464804 - .incbin "baserom.gba", 0x464804, 0x38 - -gUnknown_846483C:: @ 846483C - .incbin "baserom.gba", 0x46483C, 0x40 - -gUnknown_846487C:: @ 846487C - .incbin "baserom.gba", 0x46487C, 0x8 - -gUnknown_8464884:: @ 8464884 - .incbin "baserom.gba", 0x464884, 0xC diff --git a/data/data_83FECCC.s b/data/data_83FECCC.s index bbd53eca8..d16de696f 100644 --- a/data/data_83FECCC.s +++ b/data/data_83FECCC.s @@ -759,8 +759,7 @@ gUnknown_84524C4:: @ 84524C4 gUnknown_8452C4C:: @ 8452C4C .incbin "baserom.gba", 0x452C4C, 0x48 -gUnknown_8452C94:: @ 8452C94 - .incbin "baserom.gba", 0x452C94, 0x60 + .section .rodata.8452CF4 gUnknown_8452CF4:: @ 8452CF4 .incbin "baserom.gba", 0x452CF4, 0x8 diff --git a/data/graphics.s b/data/graphics.s index b655cadc7..83d14001d 100644 --- a/data/graphics.s +++ b/data/graphics.s @@ -16029,14 +16029,14 @@ gFile_graphics_mail_retro_map_tilemap:: @ 8E95C88 .incbin "graphics/mail/retro/map.bin.lz" .align 2 -gUnknown_8E95D9C:: @ 8E95D9C - .incbin "baserom.gba", 0xE95D9C, 0x20 @UNKNOWN +gFireRedMenuElements1_Pal:: @ 8E95D9C + .incbin "graphics/interface/dex_caught_pokeball.gbapal" -gUnknown_8E95DBC:: @ 8E95DBC - .incbin "baserom.gba", 0xE95DBC, 0x20 @UNKNOWN +gFireRedMenuElements2_Pal:: @ 8E95DBC + .incbin "graphics/interface/pokemon_types.gbapal" -gUnknown_8E95DDC:: @ 8E95DDC - .incbin "baserom.gba", 0xE95DDC, 0x2000 @UNKNOWN +gFireRedMenuElements_Gfx:: @ 8E95DDC + .incbin "graphics/interface/dex_caught_pokeball_and_pokemon_types.4bpp" gUnknown_8E97DDC:: @ 8E97DDC .incbin "baserom.gba", 0xE97DDC, 0x20 @UNKNOWN diff --git a/data/map_event_scripts.inc b/data/map_event_scripts.inc index f3205689d..899ed20e6 100644 --- a/data/map_event_scripts.inc +++ b/data/map_event_scripts.inc @@ -1065,7 +1065,7 @@ Text_1A5446:: @ 81A5446 .string "Want to give a nickname to the\n" .string "{STR_VAR_2} you received?$" -gUnknown_81A5476:: @ 81A5476 +gText_PkmnFainted3:: @ 81A5476 .string "{STR_VAR_1} fainted…\p" .string "$" @@ -4178,16 +4178,16 @@ gUnknown_81BFB5F:: @ 81BFB5F gUnknown_81BFB65:: @ 81BFB65 .incbin "baserom.gba", 0x1BFB65, 0x22 -gUnknown_81BFB87:: @ 81BFB87 +EventScript_SafariWarpOut:: @ 81BFB87 .incbin "baserom.gba", 0x1BFB87, 0x23 -gUnknown_81BFBAA:: @ 81BFBAA +EventScript_SafariRetire:: @ 81BFBAA .incbin "baserom.gba", 0x1BFBAA, 0x1B -gUnknown_81BFBC5:: @ 81BFBC5 +EventScript_SafariTimesUp:: @ 81BFBC5 .incbin "baserom.gba", 0x1BFBC5, 0x12 -gUnknown_81BFBD7:: @ 81BFBD7 +EventScript_SafariOutOfBalls:: @ 81BFBD7 .incbin "baserom.gba", 0x1BFBD7, 0x2D5 gUnknown_81BFEAC:: @ 81BFEAC diff --git a/data/maps/FuchsiaCity_SafariZone_Entrance/scripts.inc b/data/maps/FuchsiaCity_SafariZone_Entrance/scripts.inc index a2ee86113..d9bcea13d 100644 --- a/data/maps/FuchsiaCity_SafariZone_Entrance/scripts.inc +++ b/data/maps/FuchsiaCity_SafariZone_Entrance/scripts.inc @@ -17,7 +17,7 @@ EventScript_16D2C8:: @ 816D2C8 closemessage applymovement 255, Movement_16D367 waitmovement 0 - special sub_80A0EEC + special ExitSafariMode setvar VAR_MAP_SCENE_FUCHSIA_CITY_SAFARI_ZONE_ENTRANCE, 0 releaseall end @@ -29,7 +29,7 @@ EventScript_16D2F2:: @ 816D2F2 closemessage applymovement 255, Movement_16D362 waitmovement 0 - special sub_80A0EEC + special ExitSafariMode setvar VAR_MAP_SCENE_FUCHSIA_CITY_SAFARI_ZONE_ENTRANCE, 0 releaseall end @@ -44,7 +44,7 @@ EventScript_16D312:: @ 816D312 closemessage applymovement 255, Movement_16D362 waitmovement 0 - special sub_80A0EEC + special ExitSafariMode setvar VAR_MAP_SCENE_FUCHSIA_CITY_SAFARI_ZONE_ENTRANCE, 0 releaseall end @@ -132,7 +132,7 @@ EventScript_16D3CA:: @ 816D3CA call_if 1, EventScript_16D441 compare_var_to_value VAR_0x4002, 2 call_if 1, EventScript_16D457 - special sub_80A0EC4 + special EnterSafariMode setvar VAR_MAP_SCENE_FUCHSIA_CITY_SAFARI_ZONE_ENTRANCE, 2 warp MAP_SAFARI_ZONE_CENTER, 255, 26, 30 waitstate diff --git a/data/menu_indicators.s b/data/menu_indicators.s deleted file mode 100644 index dd8911c7d..000000000 --- a/data/menu_indicators.s +++ /dev/null @@ -1,46 +0,0 @@ - .section .rodata - .align 2 -gUnknown_846325C:: @ 846325C - .incbin "baserom.gba", 0x46325C, 0x48 - -gUnknown_84632A4:: @ 84632A4 - .incbin "baserom.gba", 0x4632A4, 0x18 - -gUnknown_84632BC:: @ 84632BC - .incbin "baserom.gba", 0x4632BC, 0x4 - -gUnknown_84632C0:: @ 84632C0 - .incbin "baserom.gba", 0x4632C0, 0x4 - -gUnknown_84632C4:: @ 84632C4 - .incbin "baserom.gba", 0x4632C4, 0x4 - -gUnknown_84632C8:: @ 84632C8 - .incbin "baserom.gba", 0x4632C8, 0x4 - -gUnknown_84632CC:: @ 84632CC - .incbin "baserom.gba", 0x4632CC, 0x4 - -gUnknown_84632D0:: @ 84632D0 - .incbin "baserom.gba", 0x4632D0, 0x4 - -gUnknown_84632D4:: @ 84632D4 - .incbin "baserom.gba", 0x4632D4, 0x4 - -gUnknown_84632D8:: @ 84632D8 - .incbin "baserom.gba", 0x4632D8, 0x18 - -gUnknown_84632F0:: @ 84632F0 - .incbin "baserom.gba", 0x4632F0, 0x18 - -gUnknown_8463308:: @ 8463308 - .incbin "baserom.gba", 0x463308, 0x20 - -gUnknown_8463328:: @ 8463328 - .incbin "baserom.gba", 0x463328, 0x70 - -gUnknown_8463398:: @ 8463398 - .incbin "baserom.gba", 0x463398, 0x40 - -gUnknown_84633D8:: @ 84633D8 - .incbin "baserom.gba", 0x4633D8, 0x44 diff --git a/data/specials.inc b/data/specials.inc index e6cec1766..24d793093 100644 --- a/data/specials.inc +++ b/data/specials.inc @@ -214,8 +214,8 @@ gSpecials:: @ 815FD60 def_special nullsub_75 def_special nullsub_75 def_special nullsub_75 - def_special sub_80A0EC4 - def_special sub_80A0EEC + def_special EnterSafariMode + def_special ExitSafariMode def_special nullsub_75 def_special nullsub_75 def_special nullsub_75 diff --git a/data/unk_text_util.s b/data/unk_text_util.s deleted file mode 100644 index 5e5ce1a5d..000000000 --- a/data/unk_text_util.s +++ /dev/null @@ -1,5 +0,0 @@ - .section .rodata - .align 2 - -gUnknown_8464300:: @ 8464300 - .incbin "baserom.gba", 0x464300, 0x4C diff --git a/graphics/interface/dex_caught_pokeball.pal b/graphics/interface/dex_caught_pokeball.pal new file mode 100644 index 000000000..ab57da621 --- /dev/null +++ b/graphics/interface/dex_caught_pokeball.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +123 156 131 +238 238 238 +0 0 0 +213 213 189 +172 164 123 +255 131 123 +238 49 0 +222 49 16 +197 49 41 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/graphics/interface/dex_caught_pokeball_and_pokemon_types.png b/graphics/interface/dex_caught_pokeball_and_pokemon_types.png Binary files differnew file mode 100644 index 000000000..4a9e67954 --- /dev/null +++ b/graphics/interface/dex_caught_pokeball_and_pokemon_types.png diff --git a/graphics/interface/pokemon_types.pal b/graphics/interface/pokemon_types.pal new file mode 100644 index 000000000..16a03be2c --- /dev/null +++ b/graphics/interface/pokemon_types.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +123 156 131 +238 49 0 +246 131 49 +255 180 16 +222 230 49 +123 205 82 +156 222 222 +106 148 246 +164 65 164 +172 172 123 +222 222 197 +189 164 57 +255 90 139 +82 123 139 +65 65 65 +255 255 255 diff --git a/graphics/interface/red_arrow.pal b/graphics/interface/red_arrow.pal new file mode 100644 index 000000000..f820b52bb --- /dev/null +++ b/graphics/interface/red_arrow.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +115 164 197 +255 82 0 +131 32 0 +255 0 255 +255 0 255 +255 0 255 +255 0 255 +255 0 255 +255 0 255 +255 0 255 +255 0 255 +255 0 255 +255 0 255 +255 0 255 +255 0 255 +255 0 255 diff --git a/graphics/interface/red_arrow.png b/graphics/interface/red_arrow.png Binary files differnew file mode 100644 index 000000000..91c8268b7 --- /dev/null +++ b/graphics/interface/red_arrow.png diff --git a/graphics/interface/red_arrow_other.png b/graphics/interface/red_arrow_other.png Binary files differnew file mode 100644 index 000000000..33fcf44b9 --- /dev/null +++ b/graphics/interface/red_arrow_other.png diff --git a/graphics/interface/selector_outline.png b/graphics/interface/selector_outline.png Binary files differnew file mode 100644 index 000000000..d9f3e1b8d --- /dev/null +++ b/graphics/interface/selector_outline.png diff --git a/include/constants/flags.h b/include/constants/flags.h index 209e68aee..de9a98b43 100644 --- a/include/constants/flags.h +++ b/include/constants/flags.h @@ -2,6 +2,7 @@ #define GUARD_CONSTANTS_FLAGS_H // Sys Flags Maybe +#define FLAG_SYS_SAFARI_MODE 0x800 #define FLAG_WHITE_FLUTE_ACTIVE 0x803 #define FLAG_BLACK_FLUTE_ACTIVE 0x804 @@ -1436,7 +1437,7 @@ #define FLAG_SYS_USE_STRENGTH (CODE_FLAGS + 0x29) #define FLAG_SYS_WEATHER_CTRL (CODE_FLAGS + 0x2A) #define FLAG_SYS_CYCLING_ROAD (CODE_FLAGS + 0x2B) -#define FLAG_SYS_SAFARI_MODE (CODE_FLAGS + 0x2C) +#define FLAG_0x88C (CODE_FLAGS + 0x2C) #define FLAG_SYS_CRUISE_MODE (CODE_FLAGS + 0x2D) #define FLAG_0x88E (CODE_FLAGS + 0x2E) diff --git a/include/dynamic_placeholder_text_util.h b/include/dynamic_placeholder_text_util.h new file mode 100644 index 000000000..31cfe8d30 --- /dev/null +++ b/include/dynamic_placeholder_text_util.h @@ -0,0 +1,12 @@ +#ifndef GUARD_UNK_TEXT_UTIL_H +#define GUARD_UNK_TEXT_UTIL_H + +#include "global.h" + +void DynamicPlaceholderTextUtil_Reset(void); +void DynamicPlaceholderTextUtil_SetPlaceholderPtr(u8 idx, const u8 *ptr); +u8 *DynamicPlaceholderTextUtil_ExpandPlaceholders(u8 *dest, const u8 *src); +const u8 *DynamicPlaceholderTextUtil_GetPlaceholderPtr(u8 idx); +u8 GetColorFromTextColorTable(u16 graphicId); + +#endif //GUARD_UNK_TEXT_UTIL_H diff --git a/include/event_scripts.h b/include/event_scripts.h index 917269de4..91612c06b 100644 --- a/include/event_scripts.h +++ b/include/event_scripts.h @@ -1148,4 +1148,9 @@ extern const u8 EventScript_FldEffStrength[]; extern const u8 EventScript_FailSweetScent[]; extern const u8 EventScript_FldEffRockSmash[]; +extern const u8 EventScript_SafariTimesUp[]; +extern const u8 EventScript_SafariRetire[]; +extern const u8 EventScript_SafariWarpOut[]; +extern const u8 EventScript_SafariOutOfBalls[]; + #endif //GUARD_EVENT_SCRIPTS_H diff --git a/include/field_poison.h b/include/field_poison.h index fcfb71cf5..4887fa27a 100644 --- a/include/field_poison.h +++ b/include/field_poison.h @@ -3,19 +3,13 @@ #include "global.h" -// Exported type declarations - -// Exported RAM declarations - -// Exported ROM declarations - enum { FLDPSN_NONE, FLDPSN_PSN, FLDPSN_FNT }; -void sub_80F972C(void); -unsigned int overworld_poison(void); +void ExecuteWhiteOut(void); +s32 DoPoisonFieldEffect(void); #endif //GUARD_FIELD_POISON_H diff --git a/include/field_screen_effect.h b/include/field_screen_effect.h index 14d7e5d81..d1fde7eac 100644 --- a/include/field_screen_effect.h +++ b/include/field_screen_effect.h @@ -6,5 +6,6 @@ void sub_80AF79C(void); void sub_807F028(u8); void sub_80B0244(void); +void sub_807E3EC(void); #endif // GUARD_FIELD_SCREEN_EFFECT_H diff --git a/include/graphics.h b/include/graphics.h index 1b2913164..e8503609e 100644 --- a/include/graphics.h +++ b/include/graphics.h @@ -32,6 +32,9 @@ extern const u8 gInterfacePal_LuxuryBall[]; extern const u8 gInterfaceGfx_PremierBall[]; extern const u8 gInterfacePal_PremierBall[]; extern const u8 gOpenPokeballGfx[]; +extern const u8 gFireRedMenuElements_Gfx[]; +extern const u16 gFireRedMenuElements1_Pal[]; +extern const u16 gFireRedMenuElements2_Pal[]; extern const u8 gItemIcon_QuestionMark[]; extern const u8 gItemIconPalette_QuestionMark[]; @@ -202,11 +205,11 @@ extern const u8 gItemPcBgPals[]; extern const u8 gItemPcTilemap[]; // item_menu_icons -extern const u8 gUnknown_8E8362C[]; -extern const u8 gUnknown_8E83DBC[]; -extern const u8 gUnknown_8E84560[]; -extern const u8 gFile_graphics_interface_bag_swap_sheet[]; -extern const u8 gFile_graphics_interface_bag_swap_palette[]; +extern const u32 gUnknown_8E8362C[]; +extern const u32 gUnknown_8E83DBC[]; +extern const u32 gUnknown_8E84560[]; +extern const u32 gFile_graphics_interface_bag_swap_sheet[]; +extern const u32 gFile_graphics_interface_bag_swap_palette[]; extern const u8 gFile_graphics_items_icons_question_mark_sheet[]; extern const u8 gFile_graphics_items_icon_palettes_question_mark_palette[]; extern const u8 gFile_graphics_items_icons_master_ball_sheet[]; @@ -266,12 +269,10 @@ extern const u8 gFile_graphics_items_icon_palettes_soda_pop_palette[]; extern const u8 gFile_graphics_items_icons_lemonade_sheet[]; extern const u8 gFile_graphics_items_icon_palettes_lemonade_palette[]; extern const u8 gFile_graphics_items_icons_moomoo_milk_sheet[]; -extern const u8 gFile_graphics_items_icon_palettes_moomoo_milk_palette[]; -extern const u8 gFile_graphics_items_icons_powder_sheet[]; +extern const u8 gFile_graphics_items_icon_palettes_moomoo_milk_palette[];; extern const u8 gFile_graphics_items_icon_palettes_energy_powder_palette[]; extern const u8 gFile_graphics_items_icons_energy_root_sheet[]; extern const u8 gFile_graphics_items_icon_palettes_energy_root_palette[]; -extern const u8 gFile_graphics_items_icons_powder_sheet[]; extern const u8 gFile_graphics_items_icon_palettes_heal_powder_palette[]; extern const u8 gFile_graphics_items_icons_revival_herb_sheet[]; extern const u8 gFile_graphics_items_icon_palettes_revival_herb_palette[]; @@ -299,7 +300,7 @@ extern const u8 gFile_graphics_items_icons_berry_juice_sheet[]; extern const u8 gFile_graphics_items_icon_palettes_berry_juice_palette[]; extern const u8 gFile_graphics_items_icons_sacred_ash_sheet[]; extern const u8 gFile_graphics_items_icon_palettes_sacred_ash_palette[]; -extern const u8 gFile_graphics_items_icons_powder_sheet[]; +extern const u32 gFile_graphics_items_icons_powder_sheet[]; extern const u8 gFile_graphics_items_icon_palettes_shoal_salt_palette[]; extern const u8 gFile_graphics_items_icons_shoal_shell_sheet[]; extern const u8 gFile_graphics_items_icon_palettes_shell_palette[]; diff --git a/include/list_menu.h b/include/list_menu.h index 290b1d925..df53bb529 100644 --- a/include/list_menu.h +++ b/include/list_menu.h @@ -4,9 +4,21 @@ #include "global.h" #include "window.h" -// Exported type declarations +#define LIST_NOTHING_CHOSEN -1 +#define LIST_CANCEL -2 +#define LIST_HEADER -3 -// Exported RAM declarations +#define LIST_NO_MULTIPLE_SCROLL 0 +#define LIST_MULTIPLE_SCROLL_DPAD 1 +#define LIST_MULTIPLE_SCROLL_L_R 2 + +enum +{ + SCROLL_ARROW_LEFT, + SCROLL_ARROW_RIGHT, + SCROLL_ARROW_UP, + SCROLL_ARROW_DOWN, +}; struct ListMenuItem { @@ -38,8 +50,9 @@ struct ListMenuTemplate u8 cursorKind:2; // x40, x80 }; -struct ListMenu { - struct ListMenuTemplate _template; +struct ListMenu +{ + struct ListMenuTemplate template; u16 scrollOffset; u16 selectedRow; u8 unk_1C; @@ -48,20 +61,27 @@ struct ListMenu { u8 unk_1F; }; -extern struct ListMenuTemplate gUnknown_03006310; -extern struct ListMenuTemplate gMultiuseListMenuTemplate; +struct ListMenuWindowRect +{ + u8 x; + u8 y; + u8 width; + u8 height; + u8 palNum; +}; -// Exported ROM declarations +extern struct ListMenuTemplate gMultiuseListMenuTemplate; -u8 ListMenuInit(struct ListMenuTemplate *template, u16 a1, u16 a2); -s32 ListMenuHandleInput(u8 id); -void ListMenuGetScrollAndRow(u8 a0, u16 *a1, u16 *a2); -void sub_81AE6C8(u8 a0, u16 *a1, u16 *a2); -void DestroyListMenu(u8, u16 *, u16 *); -u16 ListMenuGetYCoordForPrintingArrowCursor(u8); -void sub_8107D38(u8, u8); s32 DoMysteryGiftListMenu(const struct WindowTemplate *windowTemplate, const struct ListMenuTemplate *listMenuTemplate, u8 arg2, u16 tileNum, u16 palNum); -void ListMenuDefaultCursorMoveFunc(s32, u8, struct ListMenu *); -void sub_8107BD0(u8 taskId, u8 attr, s32 value); +u8 ListMenuInit(struct ListMenuTemplate *listMenuTemplate, u16 scrollOffset, u16 selectedRow); +u8 ListMenuInitInRect(struct ListMenuTemplate *listMenuTemplate, struct ListMenuWindowRect *rect, u16 scrollOffset, u16 selectedRow); +s32 ListMenu_ProcessInput(u8 listTaskId); +void DestroyListMenuTask(u8 listTaskId, u16 *scrollOffset, u16 *selectedRow); +void RedrawListMenu(u8 listTaskId); +void ListMenuGetScrollAndRow(u8 listTaskId, u16 *scrollOffset, u16 *selectedRow); +u16 ListMenuGetYCoordForPrintingArrowCursor(u8 listTaskId); +void ListMenuOverrideSetColors(u8 cursorPal, u8 fillValue, u8 cursorShadowPal); +void ListMenuDefaultCursorMoveFunc(s32 itemIndex, bool8 onInit, struct ListMenu *list); +void ListMenuSetUnkIndicatorsStructField(u8 taskId, u8 field, s32 value); #endif //GUARD_LIST_MENU_H diff --git a/include/menu.h b/include/menu.h index 3231587de..19efc3ad9 100644 --- a/include/menu.h +++ b/include/menu.h @@ -27,12 +27,10 @@ void InitMenuInUpperLeftCornerPlaySoundWhenAPressed(u8 idx, u8 nstrs,u8); u8 GetMenuCursorPos(void); s8 ProcessMenuInput(void); s8 ProcessMenuInputNoWrapAround(void); -void blit_move_info_icon(u8 winId, u8 a2, u16 x, u16 y); void ResetTempTileDataBuffers(void); void *DecompressAndCopyTileDataToVram(u8 bg_id, const void *src, u32 size, u16 offset, u8 mode); bool8 FreeTempTileDataBuffersIfPossible(void); u64 sub_8198A50(struct WindowTemplate*, u8, u8, u8, u8, u8, u8, u16); // returns something but it isn't used, fix when menu.s is decomp'd -//void CreateYesNoMenu(const struct WindowTemplate *windowTemplate, u16 borderFirstTileNum, u8 borderPalette, u8 initialCursorPos); s8 Menu_ProcessInputNoWrapClearOnChoose(void); void DoScheduledBgTilemapCopiesToVram(void); void ClearScheduledBgCopiesToVram(void); @@ -54,4 +52,9 @@ void AddItemMenuActionTextPrinters(u8 windowId, u8 fontId, u8 left, u8 top, u8 l void ClearMenuWindow_BorderThickness2(u8 windowId, u8 a1); void PrintTextArray(u8, u8, u8, u8, u8, u8, const struct MenuAction *); +void sub_8107CD8(u8 palOffset, u16 speciesId); +void sub_8107CF8(u8 windowId, u16 speciesId, u32 personality, u16 x, u16 y); +void sub_8107D38(u8, u8); +void BlitMoveInfoIcon(u8 windowId, u8 iconId, u16 x, u16 y); + #endif // GUARD_MENU_H diff --git a/include/menu_indicators.h b/include/menu_indicators.h index 76f25224c..fbcee2590 100644 --- a/include/menu_indicators.h +++ b/include/menu_indicators.h @@ -3,10 +3,6 @@ #include "global.h" -// Exported type declarations - -// Exported RAM declarations - struct ScrollArrowsTemplate { u8 firstArrowType; @@ -22,9 +18,25 @@ struct ScrollArrowsTemplate u8 palNum; }; -// Exported ROM declarations -u8 AddScrollIndicatorArrowPairParameterized(u8, u8, u8, u8, s32, u16, u16, u16 *); +struct CursorStruct +{ + u8 left; + u8 top; + u16 rowWidth; + u16 rowHeight; + u16 tileTag; + u16 palTag; + u8 palNum; +}; + +u8 AddScrollIndicatorArrowPairParameterized(u32 arrowType, s32 commonPos, s32 firstPos, s32 secondPos, s32 fullyDownThreshold, s32 tileTag, s32 palTag, u16 *scrollOffset); u8 AddScrollIndicatorArrowPair(const struct ScrollArrowsTemplate * template, u16 * a1); void RemoveScrollIndicatorArrowPair(u8); +u8 ListMenuAddCursorObjectInternal(struct CursorStruct *cursor, u32 cursorKind); +u8 ListMenuAddRedOutlineCursorObject(struct CursorStruct *cursor); +void ListMenuUpdateRedOutlineCursorObject(u8 taskId, u16 x, u16 y); +void ListMenuRemoveRedOutlineCursorObject(u8 taskId); +void ListMenuRemoveCursorObject(u8 taskId, u32 cursorKind); +void ListMenuUpdateCursorObject(u8 taskId, u16 x, u16 y, u32 cursorKind); #endif //GUARD_MENU_INDICATORS_H diff --git a/include/overworld.h b/include/overworld.h index bab4797ff..60fa566f7 100644 --- a/include/overworld.h +++ b/include/overworld.h @@ -2,7 +2,6 @@ #define GUARD_ROM4_H #include "global.h" - #include "main.h" struct UnkPlayerStruct @@ -69,8 +68,8 @@ void FieldObjectMoveDestCoords(struct MapObject *, u32, s16 *, s16 *); void sub_8086230(void); void CB2_ReturnToField(void); bool32 sub_8087598(void); -void c2_exit_to_overworld_1_continue_scripts_restart_music(void); -void warp_in(void); +void CB2_ReturnToFieldContinueScriptPlayMapMusic(void); +void WarpIntoMap(void); u8 get_map_light_level_by_bank_and_number(s8 mapGroup, s8 mapNum); void sub_8086194(void); void sub_8084CCC(u8 spawn); @@ -110,7 +109,7 @@ bool8 Overworld_MapTypeAllowsTeleportAndFly(u8 mapType); void Overworld_ResetStateAfterTeleport(void); void Overworld_FadeOutMapMusic(void); -void sub_805671C(void); +void CB2_LoadMap(void); bool8 sub_8055FC4(void); bool8 is_light_level_8_or_9(u8 mapType); bool32 sub_8055C9C(void); diff --git a/include/pokemon.h b/include/pokemon.h index ed0108159..558eedc67 100644 --- a/include/pokemon.h +++ b/include/pokemon.h @@ -625,8 +625,8 @@ u32 CanMonLearnTMHM(struct Pokemon *, u8); u32 CanSpeciesLearnTMHM(u16 species, u8 tm); u8 GetMoveRelearnerMoves(struct Pokemon *mon, u16 *moves); void ClearBattleMonForms(void); -const u8 *GetMonFrontSpritePal(struct Pokemon *mon); -const u8 *GetFrontSpritePalFromSpeciesAndPersonality(u16, u32, u32); +const u32 *GetMonFrontSpritePal(struct Pokemon *mon); +const u32 *GetFrontSpritePalFromSpeciesAndPersonality(u16, u32, u32); const struct CompressedSpritePalette *sub_80409C8(u16, u32, u32); bool8 IsOtherTrainer(u32, u8 *); void SetWildMonHeldItem(void); diff --git a/include/safari_zone.h b/include/safari_zone.h index b20555a8c..feaa93ed0 100644 --- a/include/safari_zone.h +++ b/include/safari_zone.h @@ -4,6 +4,7 @@ #include "global.h" extern u8 gNumSafariBalls; +extern u16 gSafariZoneStepCounter; bool32 GetSafariZoneFlag(void); void SetSafariZoneFlag(void); @@ -15,7 +16,4 @@ void ExitSafariMode(void); bool8 SafariZoneTakeStep(void); void SafariZoneRetirePrompt(void); -struct Pokeblock *SafariZoneGetActivePokeblock(void); -void SafariZoneActivatePokeblockFeeder(u8 pokeblock_index); - #endif // GUARD_SAFARI_ZONE_H diff --git a/include/shop.h b/include/shop.h index 05f5160e6..481fd6c76 100644 --- a/include/shop.h +++ b/include/shop.h @@ -2,6 +2,7 @@ #define GUARD_SHOP_H #include "global.h" +#include "menu_helpers.h" extern EWRAM_DATA struct ItemSlot gUnknown_02039F80[3]; @@ -9,5 +10,15 @@ void CreatePokemartMenu(const u16 *); void CreateDecorationShop1Menu(const u16 *); void CreateDecorationShop2Menu(const u16 *); void sub_809C09C(u16, u16, u8); +u8 sub_809B56C(void); + +// buy_menu_helper +void BuyMenuInitWindows(bool32 isSellingTM); +void BuyMenuDrawMoneyBox(void); +void BuyMenuPrint(u8 windowId, u8 font, const u8 *text, u8 x, u8 y, u8 letterSpacing, u8 lineSpacing, s8 speed, u8 color); +void BuyMenuDisplayMessage(u8 taskId, const u8 *text, TaskFunc callback); +void BuyMenuQuantityBoxNormalBorder(u8 windowId, bool8 copyToVram); +void BuyMenuQuantityBoxThinBorder(u8 windowId, bool8 copyToVram); +void BuyMenuConfirmPurchase(u8 taskId, const struct YesNoFuncTable *yesNo); #endif // GUARD_SHOP_H diff --git a/include/sprite.h b/include/sprite.h index 5fa85ee21..27e5dc852 100644 --- a/include/sprite.h +++ b/include/sprite.h @@ -4,28 +4,30 @@ #include "global.h" #define MAX_SPRITES 64 +#define SPRITE_INVALID_TAG 0xFFFF struct SpriteSheet { - const u8 *data; // Raw uncompressed pixel data + const void *data; // Raw uncompressed pixel data u16 size; u16 tag; }; struct CompressedSpriteSheet { - const u8 *data; // LZ77 compressed pixel data + const u32 *data; // LZ77 compressed pixel data u16 size; // Uncompressed size of pixel data u16 tag; }; struct SpriteFrameImage { - const u8 *data; + const void *data; u16 size; }; #define obj_frame_tiles(ptr) {.data = (u8 *)ptr, .size = sizeof ptr} +#define overworld_frame(ptr, width, height, frame) {.data = (u8 *)ptr + (width * height * frame * 64)/2, .size = (width * height * 64)/2} struct SpritePalette { @@ -35,7 +37,7 @@ struct SpritePalette struct CompressedSpritePalette { - const u8 *data; // LZ77 compressed palette data + const u32 *data; // LZ77 compressed palette data u16 tag; }; @@ -102,6 +104,12 @@ struct AffineAnimJumpCmd u16 target; }; +struct AffineAnimEndCmdAlt +{ + s16 type; + u16 val; +}; + union AffineAnimCmd { s16 type; @@ -126,6 +134,8 @@ union AffineAnimCmd {.loop = {.type = AFFINEANIMCMDTYPE_LOOP, .count = _count}} #define AFFINEANIMCMD_JUMP(_target) \ {.jump = {.type = AFFINEANIMCMDTYPE_JUMP, .target = _target}} +#define AFFINEANIMCMD_END_ALT(_val) \ + {.end = {.type = AFFINEANIMCMDTYPE_END, .val = _val}} struct AffineAnimState { @@ -163,6 +173,8 @@ struct SubspriteTable struct Sprite; +typedef void (*SpriteCallback)(struct Sprite *); + struct SpriteTemplate { u16 tileTag; @@ -171,7 +183,7 @@ struct SpriteTemplate const union AnimCmd *const *anims; const struct SpriteFrameImage *images; const union AffineAnimCmd *const *affineAnims; - void (*callback)(struct Sprite *); + SpriteCallback callback; }; struct Sprite @@ -182,7 +194,7 @@ struct Sprite /*0x10*/ const union AffineAnimCmd *const *affineAnims; /*0x14*/ const struct SpriteTemplate *template; /*0x18*/ const struct SubspriteTable *subspriteTables; - /*0x1C*/ void (*callback)(struct Sprite *); + /*0x1C*/ SpriteCallback callback; /*0x20*/ struct Coords16 pos1; /*0x24*/ struct Coords16 pos2; @@ -232,14 +244,12 @@ struct OamMatrix s16 d; }; -typedef void (*SpriteCallback)(struct Sprite *); - extern const struct OamData gDummyOamData; extern const union AnimCmd *const gDummySpriteAnimTable[]; extern const union AffineAnimCmd *const gDummySpriteAffineAnimTable[]; extern s16 gSpriteCoordOffsetX; extern s16 gSpriteCoordOffsetY; - +extern const struct SpriteTemplate gDummySpriteTemplate; extern struct Sprite gSprites[]; void ResetSpriteData(void); diff --git a/include/strings.h b/include/strings.h index 1aa858e82..55c178b0d 100644 --- a/include/strings.h +++ b/include/strings.h @@ -91,6 +91,7 @@ extern const u8 gText_PkmnFainted3[]; extern const u8 gText_Coins[]; extern const u8 gText_EggNickname[]; extern const u8 gText_Pokemon[]; +extern const u8 gText_PkmnFainted3[]; extern const u8 gOtherText_Use[]; extern const u8 gOtherText_Give[]; diff --git a/include/task.h b/include/task.h index cd3deb544..834bb5655 100644 --- a/include/task.h +++ b/include/task.h @@ -4,6 +4,7 @@ #include "global.h" #define NUM_TASKS 16 +#define TASK_NONE 0xFF typedef void (*TaskFunc)(u8 taskId); diff --git a/include/unk_text_util.h b/include/unk_text_util.h deleted file mode 100644 index 750c0541e..000000000 --- a/include/unk_text_util.h +++ /dev/null @@ -1,11 +0,0 @@ -#ifndef GUARD_UNK_TEXT_UTIL_H -#define GUARD_UNK_TEXT_UTIL_H - -#include "global.h" - -void UnkTextUtil_Reset(void); -void UnkTextUtil_SetPtrI(u8 idx, const u8 *ptr); -u8 *UnkTextUtil_StringExpandPlaceholders(u8 *dest, const u8 *src); -const u8 *UnkTextUtil_GetPtrI(u8 idx); - -#endif //GUARD_UNK_TEXT_UTIL_H diff --git a/ld_script.txt b/ld_script.txt index 494c35e86..2867cd998 100644 --- a/ld_script.txt +++ b/ld_script.txt @@ -146,13 +146,13 @@ SECTIONS { asm/naming_screen.o(.text); src/money.o(.text); asm/script_pokemon_util_80A0058.o(.text); - asm/field_poison.o(.text); + src/field_poison.o(.text); asm/pokemon_size_record.o(.text); asm/pc_screen_effect.o(.text); src/fldeff_poison.o(.text); src/fldeff_berrytree.o(.text); src/field_special_scene.o(.text); - asm/safari_zone.o(.text); + src/safari_zone.o(.text); src/item_use.o(.text); asm/battle_anim_effects_1.o(.text); asm/battle_anim_effects_2.o(.text); @@ -226,7 +226,7 @@ SECTIONS { asm/link_rfu_2.o(.text); asm/link_rfu.o(.text); asm/pokedex_screen.o(.text); - asm/list_menu.o(.text); + src/list_menu.o(.text); asm/item_menu.o(.text); src/save_location.o(.text); src/bag.o(.text); @@ -246,15 +246,15 @@ SECTIONS { src/menu2.o(.text); src/oak_speech.o(.text); src/tm_case.o(.text); - asm/menu_indicators.o(.text); + src/menu_indicators.o(.text); asm/pokedex_area_markers.o(.text); asm/pokemon_summary_screen.o(.text); src/help_system.o(.text); asm/wild_pokemon_area.o(.text); - asm/unk_text_util.o(.text); + src/dynamic_placeholder_text_util.o(.text); asm/berry_pouch.o(.text); asm/itemfinder.o(.text); - asm/buy_menu_helpers.o(.text); + src/buy_menu_helpers.o(.text); asm/slot_machine.o(.text); src/roamer.o(.text); src/mystery_gift_menu.o(.text); @@ -424,6 +424,8 @@ SECTIONS { data/data_83FECCC.o(.rodata.841EE44); src/new_menu_helpers.o(.rodata); data/data_83FECCC.o(.rodata.841F4B4); + src/list_menu.o(.rodata); + data/data_83FECCC.o(.rodata.8452CF4); src/save_location.o(.rodata); src/bag.o(.rodata); src/trainer_pokemon_sprites.o(.rodata); @@ -437,15 +439,15 @@ SECTIONS { src/menu2.o(.rodata); src/oak_speech.o(.rodata); src/tm_case.o(.rodata); - data/menu_indicators.o(.rodata); + src/menu_indicators.o(.rodata); data/pokedex_area_markers.o(.rodata); data/pokemon_summary_screen.o(.rodata); src/help_system.o(.rodata); data/wild_pokemon_area.o(.rodata); - data/unk_text_util.o(.rodata); + src/dynamic_placeholder_text_util.o(.rodata); data/berry_pouch.o(.rodata); data/itemfinder.o(.rodata); - data/buy_menu_helpers.o(.rodata); + src/buy_menu_helpers.o(.rodata); data/slot_machine.o(.rodata); src/roamer.o(.rodata); src/mystery_gift_menu.o(.rodata); diff --git a/src/buy_menu_helpers.c b/src/buy_menu_helpers.c new file mode 100644 index 000000000..4febb8209 --- /dev/null +++ b/src/buy_menu_helpers.c @@ -0,0 +1,216 @@ +#include "global.h" +#include "task.h" +#include "text.h" +#include "window.h" +#include "text_window.h" +#include "money.h" +#include "menu_helpers.h" +#include "new_menu_helpers.h" +#include "menu.h" +#include "shop.h" + +static const struct WindowTemplate sShopBuyMenuWindowTemplatesNormal[] = +{ + { + .bg = 0x0, + .tilemapLeft = 0x1, + .tilemapTop = 0x1, + .width = 0x8, + .height = 0x3, + .paletteNum = 0xF, + .baseBlock = 0x27, + }, + { + .bg = 0x0, + .tilemapLeft = 0x1, + .tilemapTop = 0xB, + .width = 0xD, + .height = 0x2, + .paletteNum = 0xF, + .baseBlock = 0x3F, + }, + { + .bg = 0x0, + .tilemapLeft = 0x2, + .tilemapTop = 0xF, + .width = 0x1A, + .height = 0x4, + .paletteNum = 0xE, + .baseBlock = 0x59, + }, + { + .bg = 0x0, + .tilemapLeft = 0x11, + .tilemapTop = 0x9, + .width = 0xC, + .height = 0x4, + .paletteNum = 0xE, + .baseBlock = 0xC1, + }, + { + .bg = 0x0, + .tilemapLeft = 0xB, + .tilemapTop = 0x1, + .width = 0x11, + .height = 0xC, + .paletteNum = 0xE, + .baseBlock = 0xF1, + }, + { + .bg = 0x0, + .tilemapLeft = 0x5, + .tilemapTop = 0xE, + .width = 0x19, + .height = 0x6, + .paletteNum = 0xF, + .baseBlock = 0x1BD, + }, + DUMMY_WIN_TEMPLATE, +}; + +// firered uses different layout when selling TMs +static const struct WindowTemplate sShopBuyMenuWindowTemplatesTM[] = +{ + { + .bg = 0x0, + .tilemapLeft = 0x1, + .tilemapTop = 0x1, + .width = 0x8, + .height = 0x3, + .paletteNum = 0xF, + .baseBlock = 0x27, + }, + { + .bg = 0x0, + .tilemapLeft = 0x1, + .tilemapTop = 0xB, + .width = 0xD, + .height = 0x2, + .paletteNum = 0xF, + .baseBlock = 0x3F, + }, + { + .bg = 0x0, + .tilemapLeft = 0x2, + .tilemapTop = 0xF, + .width = 0x1A, + .height = 0x4, + .paletteNum = 0xE, + .baseBlock = 0x59, + }, + { + .bg = 0x0, + .tilemapLeft = 0x11, + .tilemapTop = 0x9, + .width = 0xC, + .height = 0x4, + .paletteNum = 0xE, + .baseBlock = 0xC1, + }, + { + .bg = 0x0, + .tilemapLeft = 0xB, + .tilemapTop = 0x1, + .width = 0x11, + .height = 0xA, + .paletteNum = 0xE, + .baseBlock = 0xF1, + }, + { + .bg = 0x0, + .tilemapLeft = 0xC, + .tilemapTop = 0xC, + .width = 0x12, + .height = 0x8, + .paletteNum = 0xE, + .baseBlock = 0x19B, + }, + { + .bg = 0x0, + .tilemapLeft = 0x1, + .tilemapTop = 0xE, + .width = 0xA, + .height = 0x4, + .paletteNum = 0xE, + .baseBlock = 0x22B, + }, + DUMMY_WIN_TEMPLATE, +}; + +static const struct WindowTemplate sShopBuyMenuYesNoWindowTemplate = +{ + .bg = 0x0, + .tilemapLeft = 0x15, + .tilemapTop = 0x9, + .width = 0x6, + .height = 0x4, + .paletteNum = 0xE, + .baseBlock = 0xC1, +}; + +static const struct TextColor sShopBuyMenuTextColors[] = +{ + { + .fgColor = 0, + .bgColor = 1, + .shadowColor = 2, + }, + { + .fgColor = 0, + .bgColor = 2, + .shadowColor = 3, + }, + { + .fgColor = 0, + .bgColor = 3, + .shadowColor = 2, + }, +}; + +void BuyMenuInitWindows(bool32 isSellingTM) +{ + if (isSellingTM != TRUE) + InitWindows(sShopBuyMenuWindowTemplatesNormal); + else + InitWindows(sShopBuyMenuWindowTemplatesTM); + DeactivateAllTextPrinters(); + TextWindow_SetUserSelectedFrame(0, 0x1, 0xD0); + TextWindow_LoadResourcesStdFrame0(0, 0x13, 0xE0); + TextWindow_SetStdFrame0_WithPal(0, 0xA, 0xF0); + PutWindowTilemap(0); + PutWindowTilemap(4); + PutWindowTilemap(5); + if (isSellingTM == TRUE) + PutWindowTilemap(6); +} + +void BuyMenuDrawMoneyBox(void) +{ + PrintMoneyAmountInMoneyBoxWithBorder(0, 0xA, 0xF, GetMoney(&gSaveBlock1Ptr->money)); +} + +void BuyMenuPrint(u8 windowId, u8 font, const u8 *text, u8 x, u8 y, u8 letterSpacing, u8 lineSpacing, s8 speed, u8 color) +{ + AddTextPrinterParameterized4(windowId, font, x, y, letterSpacing, lineSpacing, &sShopBuyMenuTextColors[color], speed, text); +} + +void BuyMenuDisplayMessage(u8 taskId, const u8 *text, TaskFunc callback) +{ + DisplayMessageAndContinueTask(taskId, 2, 0x13, 0xE, sub_809B56C(), GetTextSpeedSetting(), text, callback); + ScheduleBgCopyTilemapToVram(0); +} + +void BuyMenuQuantityBoxNormalBorder(u8 windowId, bool8 copyToVram) +{ + SetWindowBorderStyle(windowId, copyToVram, 0x1, 0xD); +} + +void BuyMenuQuantityBoxThinBorder(u8 windowId, bool8 copyToVram) +{ + SetWindowBorderStyle(windowId, copyToVram, 0xA, 0xF); +} + +void BuyMenuConfirmPurchase(u8 taskId, const struct YesNoFuncTable *yesNo) +{ + CreateYesNoMenuWithCallbacks(taskId, &sShopBuyMenuYesNoWindowTemplate, 2, 0, 2, 1, 0xD, yesNo); +} diff --git a/src/daycare.c b/src/daycare.c index 7a2cb0698..abc3b23ca 100644 --- a/src/daycare.c +++ b/src/daycare.c @@ -1533,7 +1533,7 @@ static void DaycarePrintMonInfo(u8 windowId, s32 daycareSlotId, u8 y) static void Task_HandleDaycareLevelMenuInput(u8 taskId) { - u32 input = ListMenuHandleInput(gTasks[taskId].tMenuListTaskId); + u32 input = ListMenu_ProcessInput(gTasks[taskId].tMenuListTaskId); if (gMain.newKeys & A_BUTTON) { @@ -1547,7 +1547,7 @@ static void Task_HandleDaycareLevelMenuInput(u8 taskId) gSpecialVar_Result = 2; break; } - DestroyListMenu(gTasks[taskId].tMenuListTaskId, NULL, NULL); + DestroyListMenuTask(gTasks[taskId].tMenuListTaskId, NULL, NULL); ClearStdWindowAndFrame(gTasks[taskId].tWindowId, TRUE); RemoveWindow(gTasks[taskId].tWindowId); DestroyTask(taskId); @@ -1556,7 +1556,7 @@ static void Task_HandleDaycareLevelMenuInput(u8 taskId) else if (gMain.newKeys & B_BUTTON) { gSpecialVar_Result = 2; - DestroyListMenu(gTasks[taskId].tMenuListTaskId, NULL, NULL); + DestroyListMenuTask(gTasks[taskId].tMenuListTaskId, NULL, NULL); ClearStdWindowAndFrame(gTasks[taskId].tWindowId, TRUE); RemoveWindow(gTasks[taskId].tWindowId); DestroyTask(taskId); diff --git a/src/dynamic_placeholder_text_util.c b/src/dynamic_placeholder_text_util.c new file mode 100644 index 000000000..6909fea30 --- /dev/null +++ b/src/dynamic_placeholder_text_util.c @@ -0,0 +1,70 @@ +#include "global.h" +#include "text.h" +#include "dynamic_placeholder_text_util.h" +#include "string_util.h" + +static EWRAM_DATA const u8 *sStringPointers[8] = {0}; + +static const u8 sTextColorTable[] = +{ + 0, 0, 0, 16, 17, 17, 17, 16, 16, 0, 0, 17, 1, 0, 17, 16, + 0, 16, 16, 0, 1, 1, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, + 17, 1, 0, 0, 0, 16, 17, 0, 16, 16, 16, 0, 1, 0, 51, 51, + 51, 51, 51, 51, 51, 51, 35, 34, 34, 34, 34, 34, 34, 34, 34, 34, + 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 50, +}; + +void DynamicPlaceholderTextUtil_Reset(void) +{ + const u8 **ptr = sStringPointers; + u8 *fillval = NULL; + const u8 **ptr2 = ptr + (NELEMS(sStringPointers) - 1); + + do + { + *ptr2-- = fillval; + } + while ((intptr_t)ptr2 >= (intptr_t)ptr); +} + +void DynamicPlaceholderTextUtil_SetPlaceholderPtr(u8 idx, const u8 *ptr) +{ + if (idx < NELEMS(sStringPointers)) + sStringPointers[idx] = ptr; +} + +u8 *DynamicPlaceholderTextUtil_ExpandPlaceholders(u8 *dest, const u8 *src) +{ + while (*src != EOS) + { + if (*src != CHAR_SPECIAL_F7) + { + *dest++ = *src++; + } + else + { + src++; + if (sStringPointers[*src] != NULL) + dest = StringCopy(dest, sStringPointers[*src]); + src++; + } + } + *dest = EOS; + return dest; +} + +const u8 *DynamicPlaceholderTextUtil_GetPlaceholderPtr(u8 idx) +{ + return sStringPointers[idx]; +} + +u8 GetColorFromTextColorTable(u16 graphicId) +{ + u32 test = graphicId >> 1; + u32 shift = (graphicId & 1) << 2; + + if (test > 0x4B) + return 3; + else + return (sTextColorTable[graphicId >> 1] >> shift) & 0xF; +} diff --git a/src/fame_checker.c b/src/fame_checker.c index bf99bdf56..aa1684981 100644 --- a/src/fame_checker.c +++ b/src/fame_checker.c @@ -580,7 +580,7 @@ static void Task_TopMenuHandleInput(u8 taskId) } else if (JOY_NEW(A_BUTTON)) { - cursorPos = ListMenuHandleInput(0); + cursorPos = ListMenu_ProcessInput(0); if (cursorPos == sFameCheckerData->numUnlockedPersons - 1) // CANCEL task->func = Task_StartToCloseFameChecker; else if (sFameCheckerData->inPickMode) @@ -615,7 +615,7 @@ static void Task_TopMenuHandleInput(u8 taskId) task->func = Task_StartToCloseFameChecker; } else - ListMenuHandleInput(0); + ListMenu_ProcessInput(0); } } @@ -853,7 +853,7 @@ static void Task_DestroyAssetsAndCloseFameChecker(u8 taskId) FreeQuestionMarkSpriteResources(); FreeListMenuSelectorArrowPairResources(); SetMainCallback2(sFameCheckerData->savedCallback); - DestroyListMenu(sFameCheckerData->listMenuTaskId, NULL, NULL); + DestroyListMenuTask(sFameCheckerData->listMenuTaskId, NULL, NULL); Free(sBg3TilemapBuffer); Free(sBg1TilemapBuffer); Free(sBg2TilemapBuffer); diff --git a/src/field_poison.c b/src/field_poison.c new file mode 100644 index 000000000..474fbcd69 --- /dev/null +++ b/src/field_poison.c @@ -0,0 +1,117 @@ +#include "global.h" +#include "strings.h" +#include "task.h" +#include "field_message_box.h" +#include "script.h" +#include "string_util.h" +#include "event_data.h" +#include "fldeff.h" +#include "party_menu.h" +#include "field_poison.h" +#include "constants/species.h" +#include "constants/battle.h" + +static bool32 IsMonValidSpecies(struct Pokemon *pokemon) +{ + u16 species = GetMonData(pokemon, MON_DATA_SPECIES2); + if (species == SPECIES_NONE || species == SPECIES_EGG) + return FALSE; + return TRUE; +} + +static bool32 AllMonsFainted(void) +{ + int i; + + struct Pokemon *pokemon = gPlayerParty; + for (i = 0; i < PARTY_SIZE; i++, pokemon++) + if (IsMonValidSpecies(pokemon) && GetMonData(pokemon, MON_DATA_HP)) + return FALSE; + return TRUE; +} + +static void FaintFromFieldPoison(u8 partyIdx) +{ + struct Pokemon *pokemon = gPlayerParty + partyIdx; + u32 status = STATUS1_NONE; + AdjustFriendship(pokemon, 8); + SetMonData(pokemon, MON_DATA_STATUS, &status); + GetMonData(pokemon, MON_DATA_NICKNAME, gStringVar1); + StringGetEnd10(gStringVar1); +} + +static bool32 MonFaintedFromPoison(u8 partyIdx) +{ + struct Pokemon *pokemon = gPlayerParty + partyIdx; + if (IsMonValidSpecies(pokemon) && !GetMonData(pokemon, MON_DATA_HP) && pokemon_ailments_get_primary(GetMonData(pokemon, MON_DATA_STATUS)) == AILMENT_PSN) + return TRUE; + return FALSE; +} + +static void Task_WhiteOut(u8 taskId) +{ + s16 *data = gTasks[taskId].data; + switch (data[0]) + { + case 0: + for (; data[1] < PARTY_SIZE; data[1]++) + { + if (MonFaintedFromPoison(data[1])) + { + FaintFromFieldPoison(data[1]); + ShowFieldMessage(gText_PkmnFainted3); + data[0]++; + return; + } + } + data[0] = 2; + break; + case 1: + if (IsFieldMessageBoxHidden()) + data[0]--; + break; + case 2: + if (AllMonsFainted()) + gSpecialVar_Result = 1; + else + gSpecialVar_Result = 0; + EnableBothScriptContexts(); + DestroyTask(taskId); + break; + } +} + +void ExecuteWhiteOut(void) +{ + CreateTask(Task_WhiteOut, 80); + ScriptContext1_Stop(); +} + +s32 DoPoisonFieldEffect(void) +{ + int i; + u32 hp; + + struct Pokemon *pokemon = gPlayerParty; + u32 numPoisoned = 0; + u32 numFainted = 0; + for (i = 0; i < PARTY_SIZE; i++) + { + if (GetMonData(pokemon, MON_DATA_SANITY_HAS_SPECIES) && pokemon_ailments_get_primary(GetMonData(pokemon, MON_DATA_STATUS)) == AILMENT_PSN) + { + hp = GetMonData(pokemon, MON_DATA_HP); + if (hp == 0 || --hp == 0) + numFainted++; + SetMonData(pokemon, MON_DATA_HP, &hp); + numPoisoned++; + } + pokemon++; + } + if (numFainted || numPoisoned) + FldEffPoison_Start(); + if (numFainted) + return FLDPSN_FNT; + if (numPoisoned) + return FLDPSN_PSN; + return FLDPSN_NONE; +} diff --git a/src/intro.c b/src/intro.c index 0ebf71a8d..bb7242f2f 100644 --- a/src/intro.c +++ b/src/intro.c @@ -142,13 +142,13 @@ static const u8 gUnknown_8402650[] = INCBIN_U8("graphics/intro/unk_8402650.4bpp. static const u8 gUnknown_8402668[] = INCBIN_U8("graphics/intro/unk_8402668.bin.lz"); static const u16 gUnknown_840270C[] = INCBIN_U16("graphics/intro/unk_840270C.gbapal"); static const u8 gUnknown_840272C[] = INCBIN_U8("graphics/intro/unk_840272C.4bpp.lz"); -static const u8 gUnknown_84028F8[] = INCBIN_U8("graphics/intro/unk_84028F8.bin.lz"); +static const u32 gUnknown_84028F8[] = INCBIN_U32("graphics/intro/unk_84028F8.bin.lz"); static const u16 gUnknown_8402A44[] = INCBIN_U16("graphics/intro/unk_8402A64.gbapal"); -static const u8 gUnknown_8402A64[] = INCBIN_U8("graphics/intro/unk_8402A64.4bpp.lz"); +static const u32 gUnknown_8402A64[] = INCBIN_U32("graphics/intro/unk_8402A64.4bpp.lz"); static const u16 gUnknown_8402ABC[] = INCBIN_U16("graphics/intro/unk_8402ADC.gbapal"); -static const u8 gUnknown_8402ADC[] = INCBIN_U8("graphics/intro/unk_8402ADC.4bpp.lz"); -static const u8 gUnknown_8402B2C[] = INCBIN_U8("graphics/intro/unk_8402B2C.4bpp.lz"); -static const u8 gUnknown_8402CD4[] = INCBIN_U8("graphics/intro/unk_8402CD4.4bpp.lz"); +static const u32 gUnknown_8402ADC[] = INCBIN_U32("graphics/intro/unk_8402ADC.4bpp.lz"); +static const u32 gUnknown_8402B2C[] = INCBIN_U32("graphics/intro/unk_8402B2C.4bpp.lz"); +static const u32 gUnknown_8402CD4[] = INCBIN_U32("graphics/intro/unk_8402CD4.4bpp.lz"); static const u16 gUnknown_8402D34[] = INCBIN_U16("graphics/intro/unk_8402D34.gbapal"); static const u8 gUnknown_8402D54[] = INCBIN_U8("graphics/intro/unk_8402D54.4bpp.lz"); static const u8 gUnknown_8403FE8[] = INCBIN_U8("graphics/intro/unk_8403FE8.bin.lz"); @@ -172,17 +172,17 @@ static const u8 gUnknown_8407470[] = INCBIN_U8("graphics/intro/unk_8407470.4bpp. static const u8 gUnknown_8407A50[] = INCBIN_U8("graphics/intro/unk_8407A50.bin.lz"); static const u8 gUnknown_8407B9C[] = INCBIN_U8("graphics/intro/unk_8407B9C.4bpp.lz"); static const u8 gUnknown_8408D98[] = INCBIN_U8("graphics/intro/unk_8408D98.bin.lz"); -static const u8 gUnknown_840926C[] = INCBIN_U8("graphics/intro/unk_840926C.4bpp.lz"); +static const u32 gUnknown_840926C[] = INCBIN_U32("graphics/intro/unk_840926C.4bpp.lz"); static const u16 gUnknown_84096AC[] = INCBIN_U16("graphics/intro/unk_84096AC.gbapal"); -static const u8 gUnknown_84096CC[] = INCBIN_U8("graphics/intro/unk_84096CC.4bpp.lz"); +static const u32 gUnknown_84096CC[] = INCBIN_U32("graphics/intro/unk_84096CC.4bpp.lz"); static const u16 gUnknown_8409A1C[] = INCBIN_U16("graphics/intro/unk_8409A1C.gbapal"); -static const u8 gUnknown_8409A3C[] = INCBIN_U8("graphics/intro/unk_8409A3C.4bpp.lz"); -static const u8 gUnknown_8409D20[] = INCBIN_U8("graphics/intro/unk_8409D20.4bpp.lz"); -static const u8 gUnknown_840A3E4[] = INCBIN_U8("graphics/intro/unk_840A3E4.4bpp.lz"); +static const u32 gUnknown_8409A3C[] = INCBIN_U32("graphics/intro/unk_8409A3C.4bpp.lz"); +static const u32 gUnknown_8409D20[] = INCBIN_U32("graphics/intro/unk_8409D20.4bpp.lz"); +static const u32 gUnknown_840A3E4[] = INCBIN_U32("graphics/intro/unk_840A3E4.4bpp.lz"); static const u16 gUnknown_840B834[] = INCBIN_U16("graphics/intro/unk_840B834.gbapal"); static const u16 gUnknown_840B854[] = INCBIN_U16("graphics/intro/unk_840B854.gbapal"); -static const u8 gUnknown_840B874[] = INCBIN_U8("graphics/intro/unk_840B874.4bpp.lz"); -static const u8 gUnknown_840BAE0[] = INCBIN_U8("graphics/intro/unk_840BAE0.4bpp.lz"); +static const u32 gUnknown_840B874[] = INCBIN_U32("graphics/intro/unk_840B874.4bpp.lz"); +static const u32 gUnknown_840BAE0[] = INCBIN_U32("graphics/intro/unk_840BAE0.4bpp.lz"); static const struct BgTemplate gUnknown_840BB80[] = { { 3, 3, 31, 0, 0, 3, 0x000 }, diff --git a/src/item_pc.c b/src/item_pc.c index 2d30416c9..abafaa8d9 100644 --- a/src/item_pc.c +++ b/src/item_pc.c @@ -653,7 +653,7 @@ static void Task_ItemPcTurnOff2(u8 taskId) if (!gPaletteFade.active && !sub_80A0AAC()) { - DestroyListMenu(data[0], &sListMenuState.scroll, &sListMenuState.row); + DestroyListMenuTask(data[0], &sListMenuState.scroll, &sListMenuState.row); if (sStateDataPtr->savedCallback != NULL) SetMainCallback2(sStateDataPtr->savedCallback); else @@ -737,7 +737,7 @@ static void Task_ItemPcMain(u8 taskId) return; } } - input = ListMenuHandleInput(data[0]); + input = ListMenu_ProcessInput(data[0]); ListMenuGetScrollAndRow(data[0], &sListMenuState.scroll, &sListMenuState.row); switch (input) { @@ -772,7 +772,7 @@ static void ItemPc_MoveItemModeInit(u8 taskId, s16 pos) { s16 * data = gTasks[taskId].data; - sub_8107BD0(data[0], 16, 1); + ListMenuSetUnkIndicatorsStructField(data[0], 16, 1); data[1] = pos; sStateDataPtr->moveModeOrigPos = pos; StringCopy(gStringVar1, ItemId_GetName(ItemPc_GetItemIdBySlotId(data[1]))); @@ -789,7 +789,7 @@ static void Task_ItemPcMoveItemModeRun(u8 taskId) { s16 * data = gTasks[taskId].data; - ListMenuHandleInput(data[0]); + ListMenu_ProcessInput(data[0]); ListMenuGetScrollAndRow(data[0], &sListMenuState.scroll, &sListMenuState.row); sub_80986A8(-32, ListMenuGetYCoordForPrintingArrowCursor(data[0])); if (JOY_NEW(A_BUTTON | SELECT_BUTTON)) @@ -814,7 +814,7 @@ static void ItemPc_InsertItemIntoNewSlot(u8 taskId, u32 pos) else { ItemMenu_MoveItemSlotToNewPositionInArray(gSaveBlock1Ptr->pcItems, data[1], pos); - DestroyListMenu(data[0], &sListMenuState.scroll, &sListMenuState.row); + DestroyListMenuTask(data[0], &sListMenuState.scroll, &sListMenuState.row); if (data[1] < pos) sListMenuState.row--; ItemPc_BuildListMenuTemplate(); @@ -828,7 +828,7 @@ static void ItemPc_MoveItemModeCancel(u8 taskId, u32 pos) { s16 * data = gTasks[taskId].data; - DestroyListMenu(data[0], &sListMenuState.scroll, &sListMenuState.row); + DestroyListMenuTask(data[0], &sListMenuState.scroll, &sListMenuState.row); if (data[1] < pos) sListMenuState.row--; ItemPc_BuildListMenuTemplate(); @@ -947,7 +947,7 @@ static void Task_ItemPcCleanUpWithdraw(u8 taskId) ItemPc_DestroySubwindow(2); PutWindowTilemap(1); - DestroyListMenu(data[0], &sListMenuState.scroll, &sListMenuState.row); + DestroyListMenuTask(data[0], &sListMenuState.scroll, &sListMenuState.row); ItemPc_CountPcItems(); ItemPc_SetCursorPosition(); ItemPc_BuildListMenuTemplate(); diff --git a/src/list_menu.c b/src/list_menu.c new file mode 100644 index 000000000..5f2bd02b3 --- /dev/null +++ b/src/list_menu.c @@ -0,0 +1,786 @@ +#include "global.h" +#include "menu.h" +#include "list_menu.h" +#include "menu_indicators.h" +#include "new_menu_helpers.h" +#include "window.h" +#include "text_window.h" +#include "main.h" +#include "task.h" +#include "graphics.h" +#include "decompress.h" +#include "palette.h" +#include "malloc.h" +#include "strings.h" +#include "sound.h" +#include "pokemon_icon.h" +#include "constants/songs.h" + +struct UnkIndicatorsStruct +{ + u8 field_0; + u16 *field_4; + u16 field_8; + u16 field_A; + u16 field_C; + u16 field_E; + u8 field_10; + u8 field_11; + u8 field_12; + u8 field_13; + u8 field_14_0:4; + u8 field_14_1:4; + u8 field_15_0:4; + u8 field_15_1:4; + u8 field_16_0:3; + u8 field_16_1:3; + u8 field_16_2:2; + u8 field_17_0:6; + u8 field_17_1:2; +}; + +struct MysteryGiftLinkMenuStruct +{ + s32 currItemId; + u8 state; + u8 windowId; + u8 listTaskId; +}; + +struct ListMenuOverride +{ + u8 cursorPal:4; + u8 fillValue:4; + u8 cursorShadowPal:4; + u8 lettersSpacing:6; + u8 field_2_2:6; // unused + u8 fontId:7; + bool8 enabled:1; +}; + +struct MoveMenuInfoIcon +{ + u8 width; + u8 height; + u16 offset; +}; + +static EWRAM_DATA struct MysteryGiftLinkMenuStruct sMysteryGiftLinkMenu = {0}; + +struct ListMenuOverride gListMenuOverride; +struct ListMenuTemplate gMultiuseListMenuTemplate; + +static u8 ListMenuInitInternal(struct ListMenuTemplate *listMenuTemplate, u16 scrollOffset, u16 selectedRow); +static bool8 ListMenuChangeSelection(struct ListMenu *list, bool8 updateCursorAndCallCallback, u8 count, bool8 movingDown); +static void ListMenuPrintEntries(struct ListMenu *list, u16 startIndex, u16 yOffset, u16 count); +static void ListMenuDrawCursor(struct ListMenu *list); +static void ListMenuCallSelectionChangedCallback(struct ListMenu *list, u8 onInit); +static u8 ListMenuAddCursorObject(struct ListMenu *list, u32 cursorKind); + +const struct MoveMenuInfoIcon gMoveMenuInfoIcons[] = +{ + { 12, 12, 0x00 }, // Unused + { 32, 12, 0x20 }, // Normal icon + { 32, 12, 0x64 }, // Fight icon + { 32, 12, 0x60 }, // Flying icon + { 32, 12, 0x80 }, // Poison icon + { 32, 12, 0x48 }, // Ground icon + { 32, 12, 0x44 }, // Rock icon + { 32, 12, 0x6C }, // Bug icon + { 32, 12, 0x68 }, // Ghost icon + { 32, 12, 0x88 }, // Steel icon + { 32, 12, 0xA4 }, // ??? (Mystery) icon + { 32, 12, 0x24 }, // Fire icon + { 32, 12, 0x28 }, // Water icon + { 32, 12, 0x2C }, // Grass icon + { 32, 12, 0x40 }, // Electric icon + { 32, 12, 0x84 }, // Psychic icon + { 32, 12, 0x4C }, // Ice icon + { 32, 12, 0xA0 }, // Dragon icon + { 32, 12, 0x8C }, // Dark icon + { 40, 12, 0xA8 }, // -Type- icon + { 40, 12, 0xC0 }, // -Power- icon + { 40, 12, 0xC8 }, // -Accuracy- icon + { 40, 12, 0xE0 }, // -PP- icon + { 40, 12, 0xE8 }, // -Effect- icon +}; + +static void ListMenuDummyTask(u8 taskId) +{ +} + +s32 DoMysteryGiftListMenu(const struct WindowTemplate *windowTemplate, const struct ListMenuTemplate *listMenuTemplate, u8 arg2, u16 tileNum, u16 palNum) +{ + switch (sMysteryGiftLinkMenu.state) + { + case 0: + default: + sMysteryGiftLinkMenu.windowId = AddWindow(windowTemplate); + switch (arg2) + { + case 2: + TextWindow_SetUserSelectedFrame(sMysteryGiftLinkMenu.windowId, tileNum, palNum); + case 1: + DrawTextBorderOuter(sMysteryGiftLinkMenu.windowId, tileNum, palNum / 16); + break; + } + gMultiuseListMenuTemplate = *listMenuTemplate; + gMultiuseListMenuTemplate.windowId = sMysteryGiftLinkMenu.windowId; + sMysteryGiftLinkMenu.listTaskId = ListMenuInit(&gMultiuseListMenuTemplate, 0, 0); + CopyWindowToVram(sMysteryGiftLinkMenu.windowId, 1); + sMysteryGiftLinkMenu.state = 1; + break; + case 1: + sMysteryGiftLinkMenu.currItemId = ListMenu_ProcessInput(sMysteryGiftLinkMenu.listTaskId); + if (JOY_NEW(A_BUTTON)) + { + sMysteryGiftLinkMenu.state = 2; + } + if (JOY_NEW(B_BUTTON)) + { + sMysteryGiftLinkMenu.currItemId = LIST_CANCEL; + sMysteryGiftLinkMenu.state = 2; + } + if (sMysteryGiftLinkMenu.state == 2) + { + if (!arg2) + { + ClearWindowTilemap(sMysteryGiftLinkMenu.windowId); + } + else + { + switch (arg2) + { + case 0: // can never be reached, because of the if statement above + ClearStdWindowAndFrame(sMysteryGiftLinkMenu.windowId, FALSE); + break; + case 2: + case 1: + ClearStdWindowAndFrame(sMysteryGiftLinkMenu.windowId, FALSE); + break; + } + } + CopyWindowToVram(sMysteryGiftLinkMenu.windowId, 1); + } + break; + case 2: + DestroyListMenuTask(sMysteryGiftLinkMenu.listTaskId, NULL, NULL); + RemoveWindow(sMysteryGiftLinkMenu.windowId); + sMysteryGiftLinkMenu.state = 0; + return sMysteryGiftLinkMenu.currItemId; + } + return LIST_NOTHING_CHOSEN; +} + +u8 ListMenuInit(struct ListMenuTemplate *listMenuTemplate, u16 scrollOffset, u16 selectedRow) +{ + u8 taskId = ListMenuInitInternal(listMenuTemplate, scrollOffset, selectedRow); + PutWindowTilemap(listMenuTemplate->windowId); + CopyWindowToVram(listMenuTemplate->windowId, 2); + return taskId; +} + +u8 ListMenuInitInRect(struct ListMenuTemplate *listMenuTemplate, struct ListMenuWindowRect *rect, u16 scrollOffset, u16 selectedRow) +{ + s32 i; + u8 taskId = ListMenuInitInternal(listMenuTemplate, scrollOffset, selectedRow); + + for (i = 0; rect[i].palNum != 0xFF; i++) + PutWindowRectTilemapOverridePalette(listMenuTemplate->windowId, rect[i].x, rect[i].y, rect[i].width, rect[i].height, rect[i].palNum); + CopyWindowToVram(listMenuTemplate->windowId, 2); + return taskId; +} + +s32 ListMenu_ProcessInput(u8 listTaskId) +{ + struct ListMenu *list = (struct ListMenu *)gTasks[listTaskId].data; + + if (JOY_NEW(A_BUTTON)) + { + return list->template.items[list->scrollOffset + list->selectedRow].index; + } + else if (JOY_NEW(B_BUTTON)) + { + return LIST_CANCEL; + } + else if (gMain.newAndRepeatedKeys & DPAD_UP) + { + ListMenuChangeSelection(list, TRUE, 1, FALSE); + return LIST_NOTHING_CHOSEN; + } + else if (gMain.newAndRepeatedKeys & DPAD_DOWN) + { + ListMenuChangeSelection(list, TRUE, 1, TRUE); + return LIST_NOTHING_CHOSEN; + } + else // try to move by one window scroll + { + bool16 rightButton, leftButton; + switch (list->template.scrollMultiple) + { + case LIST_NO_MULTIPLE_SCROLL: + default: + leftButton = FALSE; + rightButton = FALSE; + break; + case LIST_MULTIPLE_SCROLL_DPAD: + leftButton = gMain.newAndRepeatedKeys & DPAD_LEFT; + rightButton = gMain.newAndRepeatedKeys & DPAD_RIGHT; + break; + case LIST_MULTIPLE_SCROLL_L_R: + leftButton = gMain.newAndRepeatedKeys & L_BUTTON; + rightButton = gMain.newAndRepeatedKeys & R_BUTTON; + break; + } + if (leftButton) + { + ListMenuChangeSelection(list, TRUE, list->template.maxShowed, FALSE); + return LIST_NOTHING_CHOSEN; + } + else if (rightButton) + { + ListMenuChangeSelection(list, TRUE, list->template.maxShowed, TRUE); + return LIST_NOTHING_CHOSEN; + } + else + { + return LIST_NOTHING_CHOSEN; + } + } +} + +void DestroyListMenuTask(u8 listTaskId, u16 *scrollOffset, u16 *selectedRow) +{ + struct ListMenu *list = (struct ListMenu *)gTasks[listTaskId].data; + + if (scrollOffset != NULL) + *scrollOffset = list->scrollOffset; + if (selectedRow != NULL) + *selectedRow = list->selectedRow; + + if (list->taskId != TASK_NONE) + ListMenuRemoveCursorObject(list->taskId, list->template.cursorKind - 2); + + DestroyTask(listTaskId); +} + +void RedrawListMenu(u8 listTaskId) +{ + struct ListMenu *list = (struct ListMenu *)gTasks[listTaskId].data; + + FillWindowPixelBuffer(list->template.windowId, PIXEL_FILL(list->template.fillValue)); + ListMenuPrintEntries(list, list->scrollOffset, 0, list->template.maxShowed); + ListMenuDrawCursor(list); + CopyWindowToVram(list->template.windowId, 2); +} + +static void ChangeListMenuPals(u8 listTaskId, u8 cursorPal, u8 fillValue, u8 cursorShadowPal) +{ + struct ListMenu *list = (struct ListMenu *)gTasks[listTaskId].data; + + list->template.cursorPal = cursorPal; + list->template.fillValue = fillValue; + list->template.cursorShadowPal = cursorShadowPal; +} + +static void ChangeListMenuCoords(u8 listTaskId, u8 x, u8 y) +{ + struct ListMenu *list = (struct ListMenu *)gTasks[listTaskId].data; + + SetWindowAttribute(list->template.windowId, WINDOW_TILEMAP_LEFT, x); + SetWindowAttribute(list->template.windowId, WINDOW_TILEMAP_TOP, y); +} + +static s32 ListMenuTestInput(struct ListMenuTemplate *template, u32 scrollOffset, u32 selectedRow, u16 keys, u16 *newScrollOffset, u16 *newSelectedRow) +{ + struct ListMenu list; + + list.template = *template; + list.scrollOffset = scrollOffset; + list.selectedRow = selectedRow; + list.unk_1C = 0; + list.unk_1D = 0; + if (keys == DPAD_UP) + ListMenuChangeSelection(&list, FALSE, 1, FALSE); + if (keys == DPAD_DOWN) + ListMenuChangeSelection(&list, FALSE, 1, TRUE); + + if (newScrollOffset != NULL) + *newScrollOffset = list.scrollOffset; + if (newSelectedRow != NULL) + *newSelectedRow = list.selectedRow; + return LIST_NOTHING_CHOSEN; +} + +static void ListMenuGetCurrentItemArrayId(u8 listTaskId, u16 *arrayId) +{ + struct ListMenu *list = (struct ListMenu *)gTasks[listTaskId].data; + + if (arrayId != NULL) + *arrayId = list->scrollOffset + list->selectedRow; +} + +void ListMenuGetScrollAndRow(u8 listTaskId, u16 *scrollOffset, u16 *selectedRow) +{ + struct ListMenu *list = (struct ListMenu *)gTasks[listTaskId].data; + + if (scrollOffset != NULL) + *scrollOffset = list->scrollOffset; + if (selectedRow != NULL) + *selectedRow = list->selectedRow; +} + +u16 ListMenuGetYCoordForPrintingArrowCursor(u8 listTaskId) +{ + struct ListMenu *list = (struct ListMenu *)gTasks[listTaskId].data; + u8 yMultiplier = GetFontAttribute(list->template.fontId, FONTATTR_MAX_LETTER_HEIGHT) + list->template.itemVerticalPadding; + + return list->selectedRow * yMultiplier + list->template.upText_Y; +} + +static u8 ListMenuInitInternal(struct ListMenuTemplate *listMenuTemplate, u16 scrollOffset, u16 selectedRow) +{ + u8 listTaskId = CreateTask(ListMenuDummyTask, 0); + struct ListMenu *list = (struct ListMenu *)gTasks[listTaskId].data; + + list->template = *listMenuTemplate; + list->scrollOffset = scrollOffset; + list->selectedRow = selectedRow; + list->unk_1C = 0; + list->unk_1D = 0; + list->taskId = TASK_NONE; + list->unk_1F = 0; + gListMenuOverride.cursorPal = list->template.cursorPal; + gListMenuOverride.fillValue = list->template.fillValue; + gListMenuOverride.cursorShadowPal = list->template.cursorShadowPal; + gListMenuOverride.lettersSpacing = list->template.lettersSpacing; + gListMenuOverride.fontId = list->template.fontId; + gListMenuOverride.enabled = FALSE; + if (list->template.totalItems < list->template.maxShowed) + list->template.maxShowed = list->template.totalItems; + FillWindowPixelBuffer(list->template.windowId, PIXEL_FILL(list->template.fillValue)); + ListMenuPrintEntries(list, list->scrollOffset, 0, list->template.maxShowed); + ListMenuDrawCursor(list); + ListMenuCallSelectionChangedCallback(list, TRUE); + + return listTaskId; +} + +static void ListMenuPrint(struct ListMenu *list, const u8 *str, u8 x, u8 y) +{ + struct TextColor colors; + if (gListMenuOverride.enabled) + { + colors.fgColor = gListMenuOverride.fillValue; + colors.bgColor = gListMenuOverride.cursorPal; + colors.shadowColor = gListMenuOverride.cursorShadowPal; + AddTextPrinterParameterized4(list->template.windowId, gListMenuOverride.fontId, x, y, gListMenuOverride.lettersSpacing, 0, &colors, TEXT_SPEED_FF, str); + gListMenuOverride.enabled = FALSE; + } + else + { + colors.fgColor = list->template.fillValue; + colors.bgColor = list->template.cursorPal; + colors.shadowColor = list->template.cursorShadowPal; + AddTextPrinterParameterized4(list->template.windowId, list->template.fontId, x, y, list->template.lettersSpacing, 0, &colors, TEXT_SPEED_FF, str); + } +} + +static void ListMenuPrintEntries(struct ListMenu *list, u16 startIndex, u16 yOffset, u16 count) +{ + s32 i; + u8 x, y; + u8 yMultiplier = GetFontAttribute(list->template.fontId, FONTATTR_MAX_LETTER_HEIGHT) + list->template.itemVerticalPadding; + + for (i = 0; i < count; i++) + { + if (list->template.items[startIndex].index != LIST_HEADER) + x = list->template.item_X; + else + x = list->template.header_X; + y = (yOffset + i) * yMultiplier + list->template.upText_Y; + if (list->template.itemPrintFunc != NULL) + list->template.itemPrintFunc(list->template.windowId, list->template.items[startIndex].index, y); + ListMenuPrint(list, list->template.items[startIndex].label, x, y); + startIndex++; + } +} + +static void ListMenuDrawCursor(struct ListMenu *list) +{ + u8 yMultiplier = GetFontAttribute(list->template.fontId, FONTATTR_MAX_LETTER_HEIGHT) + list->template.itemVerticalPadding; + u8 x = list->template.cursor_X; + u8 y = list->selectedRow * yMultiplier + list->template.upText_Y; + + switch (list->template.cursorKind) + { + case 0: + ListMenuPrint(list, gFameCheckerText_ListMenuCursor, x, y); + break; + case 1: + break; + case 2: + if (list->taskId == TASK_NONE) + list->taskId = ListMenuAddCursorObject(list, 0); + ListMenuUpdateCursorObject(list->taskId, GetWindowAttribute(list->template.windowId, WINDOW_TILEMAP_LEFT) * 8 - 1, GetWindowAttribute(list->template.windowId, WINDOW_TILEMAP_TOP) * 8 + y - 1, 0); + break; + case 3: + if (list->taskId == TASK_NONE) + list->taskId = ListMenuAddCursorObject(list, 1); + ListMenuUpdateCursorObject(list->taskId, GetWindowAttribute(list->template.windowId, WINDOW_TILEMAP_LEFT) * 8 + x, GetWindowAttribute(list->template.windowId, WINDOW_TILEMAP_TOP) * 8 + y, 1); + break; + } +} + +static u8 ListMenuAddCursorObject(struct ListMenu *list, u32 cursorKind) +{ + struct CursorStruct cursor; + + cursor.left = 0; + cursor.top = 160; + cursor.rowWidth = GetWindowAttribute(list->template.windowId, WINDOW_WIDTH) * 8 + 2; + cursor.rowHeight = GetFontAttribute(list->template.fontId, FONTATTR_MAX_LETTER_HEIGHT) + 2; + cursor.tileTag = 0x4000; + cursor.palTag = SPRITE_INVALID_TAG; + cursor.palNum = 15; + return ListMenuAddCursorObjectInternal(&cursor, cursorKind); +} + +static void ListMenuErasePrintedCursor(struct ListMenu *list, u16 selectedRow) +{ + u8 cursorKind = list->template.cursorKind; + if (cursorKind == 0) + { + u8 yMultiplier = GetFontAttribute(list->template.fontId, FONTATTR_MAX_LETTER_HEIGHT) + list->template.itemVerticalPadding; + u8 width = GetMenuCursorDimensionByFont(list->template.fontId, 0); + u8 height = GetMenuCursorDimensionByFont(list->template.fontId, 1); + FillWindowPixelRect(list->template.windowId, + PIXEL_FILL(list->template.fillValue), + list->template.cursor_X, + selectedRow * yMultiplier + list->template.upText_Y, + width, + height); + } +} + +static u8 ListMenuUpdateSelectedRowIndexAndScrollOffset(struct ListMenu *list, bool8 movingDown) +{ + u16 selectedRow = list->selectedRow; + u16 scrollOffset = list->scrollOffset; + u16 newRow; + u32 newScroll; + + if (!movingDown) + { + if (list->template.maxShowed == 1) + newRow = 0; + else + newRow = list->template.maxShowed - ((list->template.maxShowed / 2) + (list->template.maxShowed % 2)) - 1; + + if (scrollOffset == 0) + { + while (selectedRow != 0) + { + selectedRow--; + if (list->template.items[scrollOffset + selectedRow].index != LIST_HEADER) + { + list->selectedRow = selectedRow; + return 1; + } + } + return 0; + } + else + { + while (selectedRow > newRow) + { + selectedRow--; + if (list->template.items[scrollOffset + selectedRow].index != LIST_HEADER) + { + list->selectedRow = selectedRow; + return 1; + } + } + newScroll = scrollOffset - 1; + } + } + else + { + if (list->template.maxShowed == 1) + newRow = 0; + else + newRow = ((list->template.maxShowed / 2) + (list->template.maxShowed % 2)); + + if (scrollOffset == list->template.totalItems - list->template.maxShowed) + { + while (selectedRow < list->template.maxShowed - 1) + { + selectedRow++; + if (list->template.items[scrollOffset + selectedRow].index != LIST_HEADER) + { + list->selectedRow = selectedRow; + return 1; + } + } + return 0; + } + else + { + while (selectedRow < newRow) + { + selectedRow++; + if (list->template.items[scrollOffset + selectedRow].index != LIST_HEADER) + { + list->selectedRow = selectedRow; + return 1; + } + } + newScroll = scrollOffset + 1; + } + } + list->selectedRow = newRow; + list->scrollOffset = newScroll; + return 2; +} + +static void ListMenuScroll(struct ListMenu *list, u8 count, bool8 movingDown) +{ + if (count >= list->template.maxShowed) + { + FillWindowPixelBuffer(list->template.windowId, PIXEL_FILL(list->template.fillValue)); + ListMenuPrintEntries(list, list->scrollOffset, 0, list->template.maxShowed); + } + else + { + u8 yMultiplier = GetFontAttribute(list->template.fontId, FONTATTR_MAX_LETTER_HEIGHT) + list->template.itemVerticalPadding; + + if (!movingDown) + { + u16 y, width, height; + + ScrollWindow(list->template.windowId, 1, count * yMultiplier, PIXEL_FILL(list->template.fillValue)); + ListMenuPrintEntries(list, list->scrollOffset, 0, count); + + y = (list->template.maxShowed * yMultiplier) + list->template.upText_Y; + width = GetWindowAttribute(list->template.windowId, WINDOW_WIDTH) * 8; + height = (GetWindowAttribute(list->template.windowId, WINDOW_HEIGHT) * 8) - y; + FillWindowPixelRect(list->template.windowId, + PIXEL_FILL(list->template.fillValue), + 0, y, width, height); + } + else + { + u16 width; + + ScrollWindow(list->template.windowId, 0, count * yMultiplier, PIXEL_FILL(list->template.fillValue)); + ListMenuPrintEntries(list, list->scrollOffset + (list->template.maxShowed - count), list->template.maxShowed - count, count); + + width = GetWindowAttribute(list->template.windowId, WINDOW_WIDTH) * 8; + FillWindowPixelRect(list->template.windowId, + PIXEL_FILL(list->template.fillValue), + 0, 0, width, list->template.upText_Y); + } + } +} + +static bool8 ListMenuChangeSelection(struct ListMenu *list, bool8 updateCursorAndCallCallback, u8 count, bool8 movingDown) +{ + u16 oldSelectedRow; + u8 selectionChange, i, cursorCount; + + oldSelectedRow = list->selectedRow; + cursorCount = 0; + selectionChange = 0; + for (i = 0; i < count; i++) + { + do + { + u8 ret = ListMenuUpdateSelectedRowIndexAndScrollOffset(list, movingDown); + + selectionChange |= ret; + if (ret != 2) + break; + cursorCount++; + } + while (list->template.items[list->scrollOffset + list->selectedRow].index == LIST_HEADER); + } + + if (updateCursorAndCallCallback) + { + switch (selectionChange) + { + case 0: + default: + return TRUE; + case 1: + ListMenuErasePrintedCursor(list, oldSelectedRow); + ListMenuDrawCursor(list); + ListMenuCallSelectionChangedCallback(list, FALSE); + CopyWindowToVram(list->template.windowId, 2); + break; + case 2: + case 3: + ListMenuErasePrintedCursor(list, oldSelectedRow); + ListMenuScroll(list, cursorCount, movingDown); + ListMenuDrawCursor(list); + ListMenuCallSelectionChangedCallback(list, FALSE); + CopyWindowToVram(list->template.windowId, 2); + break; + } + } + return FALSE; +} + +static void ListMenuCallSelectionChangedCallback(struct ListMenu *list, u8 onInit) +{ + if (list->template.moveCursorFunc != NULL) + list->template.moveCursorFunc(list->template.items[list->scrollOffset + list->selectedRow].index, onInit, list); +} + +void ListMenuOverrideSetColors(u8 cursorPal, u8 fillValue, u8 cursorShadowPal) +{ + gListMenuOverride.cursorPal = cursorPal; + gListMenuOverride.fillValue = fillValue; + gListMenuOverride.cursorShadowPal = cursorShadowPal; + gListMenuOverride.enabled = TRUE; +} + +void ListMenuDefaultCursorMoveFunc(s32 itemIndex, bool8 onInit, struct ListMenu *list) +{ + if (!onInit) + PlaySE(SE_SELECT); +} + +static s32 ListMenuGetUnkIndicatorsStructFields(u8 taskId, u8 field) +{ + struct UnkIndicatorsStruct *data = (struct UnkIndicatorsStruct *)gTasks[taskId].data; + + switch (field) + { + case 0: + case 1: + return (s32)(data->field_4); + case 2: + return data->field_C; + case 3: + return data->field_E; + case 4: + return data->field_10; + case 5: + return data->field_11; + case 6: + return data->field_12; + case 7: + return data->field_13; + case 8: + return data->field_14_0; + case 9: + return data->field_14_1; + case 10: + return data->field_15_0; + case 11: + return data->field_15_1; + case 12: + return data->field_16_0; + case 13: + return data->field_16_1; + case 14: + return data->field_16_2; + case 15: + return data->field_17_0; + case 16: + return data->field_17_1; + default: + return -1; + } +} + +void ListMenuSetUnkIndicatorsStructField(u8 taskId, u8 field, s32 value) +{ + struct UnkIndicatorsStruct *data = (struct UnkIndicatorsStruct *)gTasks[taskId].data; + + switch (field) + { + case 0: + case 1: + data->field_4 = (void *)value; + break; + case 2: + data->field_C = value; + break; + case 3: + data->field_E = value; + break; + case 4: + data->field_10 = value; + break; + case 5: + data->field_11 = value; + break; + case 6: + data->field_12 = value; + break; + case 7: + data->field_13 = value; + break; + case 8: + data->field_14_0 = value; + break; + case 9: + data->field_14_1 = value; + break; + case 10: + data->field_15_0 = value; + break; + case 11: + data->field_15_1 = value; + break; + case 12: + data->field_16_0 = value; + break; + case 13: + data->field_16_1 = value; + break; + case 14: + data->field_16_2 = value; + break; + case 15: + data->field_17_0 = value; + break; + case 16: + data->field_17_1 = value; + break; + } +} + +void sub_8107CD8(u8 palOffset, u16 speciesId) +{ + LoadPalette(GetValidMonIconPalettePtr(speciesId), palOffset, 0x20); +} + +void sub_8107CF8(u8 windowId, u16 speciesId, u32 personality, u16 x, u16 y) +{ + BlitBitmapToWindow(windowId, GetMonIconPtr(speciesId, personality, 1), x, y, 32, 32); +} + +void sub_8107D38(u8 palOffset, u8 palId) +{ + const u16 *palette; + + switch (palId) + { + case 0: + default: + palette = gFireRedMenuElements1_Pal; + break; + case 1: + palette = gFireRedMenuElements2_Pal; + break; + } + LoadPalette(palette, palOffset, 0x20); +} + +void BlitMoveInfoIcon(u8 windowId, u8 iconId, u16 x, u16 y) +{ + BlitBitmapRectToWindow(windowId, gFireRedMenuElements_Gfx + gMoveMenuInfoIcons[iconId].offset * 32, 0, 0, 128, 128, x, y, gMoveMenuInfoIcons[iconId].width, gMoveMenuInfoIcons[iconId].height); +} diff --git a/src/menu_indicators.c b/src/menu_indicators.c new file mode 100644 index 000000000..1d6589fb0 --- /dev/null +++ b/src/menu_indicators.c @@ -0,0 +1,659 @@ +#include "global.h" +#include "malloc.h" +#include "task.h" +#include "decompress.h" +#include "palette.h" +#include "strings.h" +#include "sprite.h" +#include "trig.h" +#include "list_menu.h" +#include "menu_indicators.h" + +struct ScrollIndicatorPair +{ + u8 field_0; + u16 *scrollOffset; + u16 fullyUpThreshold; + u16 fullyDownThreshold; + u8 topSpriteId; + u8 bottomSpriteId; + u16 tileTag; + u16 palTag; +}; + +struct RedOutlineCursor +{ + struct SubspriteTable subspriteTable; + struct Subsprite *subspritesPtr; + u8 spriteId; + u16 tileTag; + u16 palTag; +}; + +struct RedArrowCursor +{ + u8 spriteId; + u16 tileTag; + u16 palTag; +}; + +struct ScrollIndicatorTemplate +{ + u8 animNum:4; + u8 bounceDir:4; + u8 multiplier; + s16 frequency; +}; + +static EWRAM_DATA struct ScrollArrowsTemplate sTempScrollArrowTemplate = {0}; + +static void SpriteCallback_ScrollIndicatorArrow(struct Sprite *sprite); +static void SpriteCallback_RedArrowCursor(struct Sprite *sprite); +static void Task_ScrollIndicatorArrowPair(u8 taskId); +static u8 ListMenuAddRedArrowCursorObject(struct CursorStruct *cursor); +static void ListMenuUpdateRedArrowCursorObject(u8 taskId, u16 x, u16 y); +static void ListMenuRemoveRedArrowCursorObject(u8 taskId); + +static const struct ScrollIndicatorTemplate sScrollIndicatorTemplates[] = +{ + { + .animNum = 0, + .bounceDir = 0, + .multiplier = 2, + .frequency = 8, + }, + { + .animNum = 1, + .bounceDir = 0, + .multiplier = 2, + .frequency = -8, + }, + { + .animNum = 2, + .bounceDir = 1, + .multiplier = 2, + .frequency = 8, + }, + { + .animNum = 3, + .bounceDir = 1, + .multiplier = 2, + .frequency = -8, + }, +}; + +static const struct OamData sOamData_ScrollArrowIndicator = +{ + .y = 0, + .affineMode = 0, + .objMode = 0, + .mosaic = 0, + .bpp = 0, + .shape = SPRITE_SHAPE(16x16), + .x = 0, + .matrixNum = 0, + .size = SPRITE_SIZE(16x16), + .tileNum = 0, + .priority = 0, + .paletteNum = 0, + .affineParam = 0, +}; + +static const union AnimCmd sSpriteAnim_ScrollArrowIndicator0[] = +{ + ANIMCMD_FRAME(0, 30), + ANIMCMD_END, +}; + +static const union AnimCmd sSpriteAnim_ScrollArrowIndicator1[] = +{ + ANIMCMD_FRAME(0, 30, 1, 0), + ANIMCMD_END, +}; + +static const union AnimCmd sSpriteAnim_ScrollArrowIndicator2[] = +{ + ANIMCMD_FRAME(4, 30), + ANIMCMD_END, +}; + +static const union AnimCmd sSpriteAnim_ScrollArrowIndicator3[] = +{ + ANIMCMD_FRAME(4, 30, 0, 1), + ANIMCMD_END, +}; + +static const union AnimCmd *const sSpriteAnimTable_ScrollArrowIndicator[] = +{ + sSpriteAnim_ScrollArrowIndicator0, + sSpriteAnim_ScrollArrowIndicator1, + sSpriteAnim_ScrollArrowIndicator2, + sSpriteAnim_ScrollArrowIndicator3, +}; + +static const struct SpriteTemplate sSpriteTemplate_ScrollArrowIndicator = +{ + .tileTag = 0, + .paletteTag = 0, + .oam = &sOamData_ScrollArrowIndicator, + .anims = sSpriteAnimTable_ScrollArrowIndicator, + .images = NULL, + .affineAnims = gDummySpriteAffineAnimTable, + .callback = SpriteCallback_ScrollIndicatorArrow, +}; + +static const struct Subsprite sSubsprite_RedOutline1 = +{ + .x = 0, + .y = 0, + .shape = SPRITE_SHAPE(8x8), + .size = SPRITE_SIZE(8x8), + .tileOffset = 0, + .priority = 0, +}; + +static const struct Subsprite sSubsprite_RedOutline2 = +{ + .x = 0, + .y = 0, + .shape = SPRITE_SHAPE(8x8), + .size = SPRITE_SIZE(8x8), + .tileOffset = 1, + .priority = 0, +}; + +static const struct Subsprite sSubsprite_RedOutline3 = +{ + .x = 0, + .y = 0, + .shape = SPRITE_SHAPE(8x8), + .size = SPRITE_SIZE(8x8), + .tileOffset = 2, + .priority = 0, +}; + +static const struct Subsprite sSubsprite_RedOutline4 = +{ + .x = 0, + .y = 0, + .shape = SPRITE_SHAPE(8x8), + .size = SPRITE_SIZE(8x8), + .tileOffset = 3, + .priority = 0, +}; + +static const struct Subsprite sSubsprite_RedOutline5 = +{ + .x = 0, + .y = 0, + .shape = SPRITE_SHAPE(8x8), + .size = SPRITE_SIZE(8x8), + .tileOffset = 4, + .priority = 0, +}; + +static const struct Subsprite sSubsprite_RedOutline6 = +{ + .x = 0, + .y = 0, + .shape = SPRITE_SHAPE(8x8), + .size = SPRITE_SIZE(8x8), + .tileOffset = 5, + .priority = 0, +}; + +static const struct Subsprite sSubsprite_RedOutline7 = +{ + .x = 0, + .y = 0, + .shape = SPRITE_SHAPE(8x8), + .size = SPRITE_SIZE(8x8), + .tileOffset = 6, + .priority = 0, +}; + +static const struct Subsprite sSubsprite_RedOutline8 = +{ + .x = 0, + .y = 0, + .shape = SPRITE_SHAPE(8x8), + .size = SPRITE_SIZE(8x8), + .tileOffset = 7, + .priority = 0, +}; + +static const struct OamData sOamData_RedArrowCursor = +{ + .y = 0, + .affineMode = 0, + .objMode = 0, + .mosaic = 0, + .bpp = 0, + .shape = SPRITE_SHAPE(16x16), + .x = 0, + .matrixNum = 0, + .size = SPRITE_SIZE(16x16), + .tileNum = 0, + .priority = 0, + .paletteNum = 0, + .affineParam = 0, +}; + +static const union AnimCmd sSpriteAnim_RedArrowCursor[] = +{ + ANIMCMD_FRAME(0, 30), + ANIMCMD_END, +}; + +static const union AnimCmd *const sSpriteAnimTable_RedArrowCursor[] = { sSpriteAnim_RedArrowCursor }; + +static const struct SpriteTemplate sSpriteTemplate_RedArrowCursor = +{ + .tileTag = 0, + .paletteTag = 0, + .oam = &sOamData_RedArrowCursor, + .anims = sSpriteAnimTable_RedArrowCursor, + .images = NULL, + .affineAnims = gDummySpriteAffineAnimTable, + .callback = SpriteCallback_RedArrowCursor, +}; + +static const u16 sRedArrowPal[] = INCBIN_U16("graphics/interface/red_arrow.gbapal"); +static const u32 sRedArrowOtherGfx[] = INCBIN_U32("graphics/interface/red_arrow_other.4bpp.lz"); +static const u32 sSelectorOutlineGfx[] = INCBIN_U32("graphics/interface/selector_outline.4bpp.lz"); +static const u32 sRedArrowGfx[] = INCBIN_U32("graphics/interface/red_arrow.4bpp.lz"); + +#define tState data[0] +#define tAnimNum data[1] +#define tBounceDir data[2] +#define tMultiplier data[3] +#define tFrequency data[4] +#define tSinePos data[5] + +static void SpriteCallback_ScrollIndicatorArrow(struct Sprite *sprite) +{ + s32 multiplier; + + switch (sprite->tState) + { + case 0: + StartSpriteAnim(sprite, sprite->tAnimNum); + sprite->tState++; + break; + case 1: + switch (sprite->tBounceDir) + { + case 0: + multiplier = sprite->tMultiplier; + sprite->pos2.x = (gSineTable[(u8)(sprite->tSinePos)] * multiplier) / 256; + break; + case 1: + multiplier = sprite->tMultiplier; + sprite->pos2.y = (gSineTable[(u8)(sprite->tSinePos)] * multiplier) / 256; + break; + } + sprite->tSinePos += sprite->tFrequency; + break; + } +} + +static u8 AddScrollIndicatorArrowObject(u8 arrowDir, u8 x, u8 y, u16 tileTag, u16 palTag) +{ + u8 spriteId; + struct SpriteTemplate spriteTemplate; + + spriteTemplate = sSpriteTemplate_ScrollArrowIndicator; + spriteTemplate.tileTag = tileTag; + spriteTemplate.paletteTag = palTag; + spriteId = CreateSprite(&spriteTemplate, x, y, 0); + gSprites[spriteId].invisible = TRUE; + gSprites[spriteId].tState = 0; + gSprites[spriteId].tAnimNum = sScrollIndicatorTemplates[arrowDir].animNum; + gSprites[spriteId].tBounceDir = sScrollIndicatorTemplates[arrowDir].bounceDir; + gSprites[spriteId].tMultiplier = sScrollIndicatorTemplates[arrowDir].multiplier; + gSprites[spriteId].tFrequency = sScrollIndicatorTemplates[arrowDir].frequency; + gSprites[spriteId].tSinePos = 0; + return spriteId; +} + +#undef tState +#undef tAnimNum +#undef tBounceDir +#undef tMultiplier +#undef tFrequency +#undef tSinePos + +u8 AddScrollIndicatorArrowPair(const struct ScrollArrowsTemplate *arrowInfo, u16 *scrollOffset) +{ + struct CompressedSpriteSheet spriteSheet; + struct SpritePalette spritePal; + struct ScrollIndicatorPair *data; + u8 taskId; + + spriteSheet.data = sRedArrowOtherGfx; + spriteSheet.size = 0x100; + spriteSheet.tag = arrowInfo->tileTag; + LoadCompressedSpriteSheet(&spriteSheet); + if (arrowInfo->palTag == SPRITE_INVALID_TAG) + { + LoadPalette(sRedArrowPal, (16 * arrowInfo->palNum) + 0x100, 0x20); + } + else + { + spritePal.data = sRedArrowPal; + spritePal.tag = arrowInfo->palTag; + LoadSpritePalette(&spritePal); + } + taskId = CreateTask(Task_ScrollIndicatorArrowPair, 0); + data = (struct ScrollIndicatorPair *)gTasks[taskId].data; + + data->field_0 = 0; + data->scrollOffset = scrollOffset; + data->fullyUpThreshold = arrowInfo->fullyUpThreshold; + data->fullyDownThreshold = arrowInfo->fullyDownThreshold; + data->tileTag = arrowInfo->tileTag; + data->palTag = arrowInfo->palTag; + data->topSpriteId = AddScrollIndicatorArrowObject(arrowInfo->firstArrowType, arrowInfo->firstX, arrowInfo->firstY, arrowInfo->tileTag, arrowInfo->palTag); + data->bottomSpriteId = AddScrollIndicatorArrowObject(arrowInfo->secondArrowType, arrowInfo->secondX, arrowInfo->secondY, arrowInfo->tileTag, arrowInfo->palTag); + + if (arrowInfo->palTag == SPRITE_INVALID_TAG) + { + gSprites[data->topSpriteId].oam.paletteNum = arrowInfo->palNum; + gSprites[data->bottomSpriteId].oam.paletteNum = arrowInfo->palNum; + } + return taskId; +} + +u8 AddScrollIndicatorArrowPairParameterized(u32 arrowType, s32 commonPos, s32 firstPos, s32 secondPos, s32 fullyDownThreshold, s32 tileTag, s32 palTag, u16 *scrollOffset) +{ + if (arrowType == SCROLL_ARROW_UP || arrowType == SCROLL_ARROW_DOWN) + { + sTempScrollArrowTemplate.firstArrowType = SCROLL_ARROW_UP; + sTempScrollArrowTemplate.firstX = commonPos; + sTempScrollArrowTemplate.firstY = firstPos; + sTempScrollArrowTemplate.secondArrowType = SCROLL_ARROW_DOWN; + sTempScrollArrowTemplate.secondX = commonPos; + sTempScrollArrowTemplate.secondY = secondPos; + } + else + { + sTempScrollArrowTemplate.firstArrowType = SCROLL_ARROW_LEFT; + sTempScrollArrowTemplate.firstX = firstPos; + sTempScrollArrowTemplate.firstY = commonPos; + sTempScrollArrowTemplate.secondArrowType = SCROLL_ARROW_RIGHT; + sTempScrollArrowTemplate.secondX = secondPos; + sTempScrollArrowTemplate.secondY = commonPos; + } + sTempScrollArrowTemplate.fullyUpThreshold = 0; + sTempScrollArrowTemplate.fullyDownThreshold = fullyDownThreshold; + sTempScrollArrowTemplate.tileTag = tileTag; + sTempScrollArrowTemplate.palTag = palTag; + sTempScrollArrowTemplate.palNum = 0; + + return AddScrollIndicatorArrowPair(&sTempScrollArrowTemplate, scrollOffset); +} + +static void Task_ScrollIndicatorArrowPair(u8 taskId) +{ + struct ScrollIndicatorPair *data = (struct ScrollIndicatorPair *)gTasks[taskId].data; + u16 currItem = (*data->scrollOffset); + + if (currItem == data->fullyUpThreshold) + gSprites[data->topSpriteId].invisible = TRUE; + else + gSprites[data->topSpriteId].invisible = FALSE; + + if (currItem == data->fullyDownThreshold) + gSprites[data->bottomSpriteId].invisible = TRUE; + else + gSprites[data->bottomSpriteId].invisible = FALSE; +} + +void RemoveScrollIndicatorArrowPair(u8 taskId) +{ + struct ScrollIndicatorPair *data = (struct ScrollIndicatorPair *)gTasks[taskId].data; + + if (data->tileTag != SPRITE_INVALID_TAG) + FreeSpriteTilesByTag(data->tileTag); + if (data->palTag != SPRITE_INVALID_TAG) + FreeSpritePaletteByTag(data->palTag); + DestroySprite(&gSprites[data->topSpriteId]); + DestroySprite(&gSprites[data->bottomSpriteId]); + DestroyTask(taskId); +} + +u8 ListMenuAddCursorObjectInternal(struct CursorStruct *cursor, u32 cursorKind) +{ + switch (cursorKind) + { + case 0: + default: + return ListMenuAddRedOutlineCursorObject(cursor); + case 1: + return ListMenuAddRedArrowCursorObject(cursor); + } +} + +void ListMenuUpdateCursorObject(u8 taskId, u16 x, u16 y, u32 cursorKind) +{ + switch (cursorKind) + { + case 0: + ListMenuUpdateRedOutlineCursorObject(taskId, x, y); + break; + case 1: + ListMenuUpdateRedArrowCursorObject(taskId, x, y); + break; + } +} + +void ListMenuRemoveCursorObject(u8 taskId, u32 cursorKind) +{ + switch (cursorKind) + { + case 0: + ListMenuRemoveRedOutlineCursorObject(taskId); + break; + case 1: + ListMenuRemoveRedArrowCursorObject(taskId); + break; + } +} + +void Task_RedOutlineCursor(u8 taskId) +{ +} + +u8 ListMenuGetRedOutlineCursorSpriteCount(u16 rowWidth, u16 rowHeight) +{ + s32 i, count = 4; + + if (rowWidth > 16) + for (i = 8; i < (rowWidth - 8); i += 8) + count += 2; + if (rowHeight > 16) + for (i = 8; i < (rowHeight - 8); i += 8) + count += 2; + return count; +} + +void ListMenuSetUpRedOutlineCursorSpriteOamTable(u16 rowWidth, u16 rowHeight, struct Subsprite *subsprites) +{ + s32 i, j, id = 0; + + subsprites[id] = sSubsprite_RedOutline1; + subsprites[id].x = 136; + subsprites[id].y = 136; + id++; + subsprites[id] = sSubsprite_RedOutline2; + subsprites[id].x = rowWidth + 128; + subsprites[id].y = 136; + id++; + subsprites[id] = sSubsprite_RedOutline7; + subsprites[id].x = 136; + subsprites[id].y = rowHeight + 128; + id++; + subsprites[id] = sSubsprite_RedOutline8; + subsprites[id].x = rowWidth + 128; + subsprites[id].y = rowHeight + 128; + id++; + if (rowWidth > 16) + { + for (i = 8; i < rowWidth - 8; i += 8) + { + subsprites[id] = sSubsprite_RedOutline3; + subsprites[id].x = i - 120; + subsprites[id].y = 136; + id++; + + subsprites[id] = sSubsprite_RedOutline6; + subsprites[id].x = i - 120; + subsprites[id].y = rowHeight + 128; + id++; + } + } + if (rowHeight > 16) + { + for (j = 8; j < rowHeight - 8; j += 8) + { + subsprites[id] = sSubsprite_RedOutline4; + subsprites[id].x = 136; + subsprites[id].y = j - 120; + id++; + subsprites[id] = sSubsprite_RedOutline5; + subsprites[id].x = rowWidth + 128; + subsprites[id].y = j - 120; + id++; + } + } +} + +u8 ListMenuAddRedOutlineCursorObject(struct CursorStruct *cursor) +{ + struct CompressedSpriteSheet spriteSheet; + struct SpritePalette spritePal; + struct RedOutlineCursor *data; + struct SpriteTemplate spriteTemplate; + u8 taskId; + + spriteSheet.data = sSelectorOutlineGfx; + spriteSheet.size = 0x100; + spriteSheet.tag = cursor->tileTag; + LoadCompressedSpriteSheet(&spriteSheet); + if (cursor->palTag == SPRITE_INVALID_TAG) + { + LoadPalette(sRedArrowPal, (16 * cursor->palNum) + 0x100, 0x20); + } + else + { + spritePal.data = sRedArrowPal; + spritePal.tag = cursor->palTag; + LoadSpritePalette(&spritePal); + } + taskId = CreateTask(Task_RedOutlineCursor, 0); + data = (struct RedOutlineCursor *)gTasks[taskId].data; + data->tileTag = cursor->tileTag; + data->palTag = cursor->palTag; + data->subspriteTable.subspriteCount = ListMenuGetRedOutlineCursorSpriteCount(cursor->rowWidth, cursor->rowHeight); + data->subspriteTable.subsprites = data->subspritesPtr = Alloc(data->subspriteTable.subspriteCount * 4); + ListMenuSetUpRedOutlineCursorSpriteOamTable(cursor->rowWidth, cursor->rowHeight, data->subspritesPtr); + spriteTemplate = gDummySpriteTemplate; + spriteTemplate.tileTag = cursor->tileTag; + spriteTemplate.paletteTag = cursor->palTag; + data->spriteId = CreateSprite(&spriteTemplate, cursor->left + 120, cursor->top + 120, 0); + SetSubspriteTables(&gSprites[data->spriteId], &data->subspriteTable); + gSprites[data->spriteId].oam.priority = 0; + gSprites[data->spriteId].subpriority = 0; + gSprites[data->spriteId].subspriteTableNum = 0; + if (cursor->palTag == SPRITE_INVALID_TAG) + gSprites[data->spriteId].oam.paletteNum = cursor->palNum; + return taskId; +} + +void ListMenuUpdateRedOutlineCursorObject(u8 taskId, u16 x, u16 y) +{ + struct RedOutlineCursor *data = (struct RedOutlineCursor *)gTasks[taskId].data; + + gSprites[data->spriteId].pos1.x = x + 120; + gSprites[data->spriteId].pos1.y = y + 120; +} + +void ListMenuRemoveRedOutlineCursorObject(u8 taskId) +{ + struct RedOutlineCursor *data = (struct RedOutlineCursor *)gTasks[taskId].data; + + Free(data->subspritesPtr); + if (data->tileTag != SPRITE_INVALID_TAG) + FreeSpriteTilesByTag(data->tileTag); + if (data->palTag != SPRITE_INVALID_TAG) + FreeSpritePaletteByTag(data->palTag); + DestroySprite(&gSprites[data->spriteId]); + DestroyTask(taskId); +} + +static void SpriteCallback_RedArrowCursor(struct Sprite *sprite) +{ + sprite->pos2.x = gSineTable[(u8)(sprite->data[0])] / 64; + sprite->data[0] += 8; +} + +static void Task_RedArrowCursor(u8 taskId) +{ +} + +static u8 ListMenuAddRedArrowCursorObject(struct CursorStruct *cursor) +{ + struct CompressedSpriteSheet spriteSheet; + struct SpritePalette spritePal; + struct RedArrowCursor *data; + struct SpriteTemplate spriteTemplate; + u8 taskId; + + spriteSheet.data = sRedArrowGfx; + spriteSheet.size = 0x80; + spriteSheet.tag = cursor->tileTag; + LoadCompressedSpriteSheet(&spriteSheet); + if (cursor->palTag == SPRITE_INVALID_TAG) + { + LoadPalette(sRedArrowPal, (16 * cursor->palNum) + 0x100, 0x20); + } + else + { + spritePal.data = sRedArrowPal; + spritePal.tag = cursor->palTag; + LoadSpritePalette(&spritePal); + } + taskId = CreateTask(Task_RedArrowCursor, 0); + data = (struct RedArrowCursor *)gTasks[taskId].data; + data->tileTag = cursor->tileTag; + data->palTag = cursor->palTag; + spriteTemplate = sSpriteTemplate_RedArrowCursor; + spriteTemplate.tileTag = cursor->tileTag; + spriteTemplate.paletteTag = cursor->palTag; + data->spriteId = CreateSprite(&spriteTemplate, cursor->left, cursor->top, 0); + gSprites[data->spriteId].pos2.x = 8; + gSprites[data->spriteId].pos2.y = 8; + if (cursor->palTag == SPRITE_INVALID_TAG) + gSprites[data->spriteId].oam.paletteNum = cursor->palNum; + return taskId; +} + +static void ListMenuUpdateRedArrowCursorObject(u8 taskId, u16 x, u16 y) +{ + struct RedArrowCursor *data = (struct RedArrowCursor *)gTasks[taskId].data; + + gSprites[data->spriteId].pos1.x = x; + gSprites[data->spriteId].pos1.y = y; +} + +static void ListMenuRemoveRedArrowCursorObject(u8 taskId) +{ + struct RedArrowCursor *data = (struct RedArrowCursor *)gTasks[taskId].data; + + if (data->tileTag != SPRITE_INVALID_TAG) + FreeSpriteTilesByTag(data->tileTag); + if (data->palTag != SPRITE_INVALID_TAG) + FreeSpritePaletteByTag(data->palTag); + DestroySprite(&gSprites[data->spriteId]); + DestroyTask(taskId); +} diff --git a/src/mevent_8145654.c b/src/mevent_8145654.c index abd29ca11..de6e1caa5 100644 --- a/src/mevent_8145654.c +++ b/src/mevent_8145654.c @@ -97,7 +97,7 @@ const u16 gUnknown_8467E74[] = INCBIN_U16("data/graphics/mevent/pal_467E74.gbapa const u16 gUnknown_8467E94[] = INCBIN_U16("data/graphics/mevent/pal_467E94.gbapal"); const u16 gUnknown_8467EB4[] = INCBIN_U16("data/graphics/mevent/pal_467EB4.gbapal"); const u16 gUnknown_8467ED4[] = INCBIN_U16("data/graphics/mevent/pal_467ED4.gbapal"); -const u8 gUnknown_8467EF4[] = INCBIN_U8("data/graphics/mevent/gfx_467EF4.4bpp.lz"); +const u32 gUnknown_8467EF4[] = INCBIN_U32("data/graphics/mevent/gfx_467EF4.4bpp.lz"); const struct CompressedSpriteSheet gUnknown_8467F58 = { gUnknown_8467EF4, 0x100, 0x8000 diff --git a/src/pokemon.c b/src/pokemon.c index 906b97cae..b9b5e6d76 100644 --- a/src/pokemon.c +++ b/src/pokemon.c @@ -5423,7 +5423,7 @@ void PlayMapChosenOrBattleBGM(u16 songId) PlayNewMapMusic(GetMUS_ForBattle()); } -const u8 *GetMonFrontSpritePal(struct Pokemon *mon) +const u32 *GetMonFrontSpritePal(struct Pokemon *mon) { u16 species = GetMonData(mon, MON_DATA_SPECIES2, 0); u32 otId = GetMonData(mon, MON_DATA_OT_ID, 0); @@ -5431,7 +5431,7 @@ const u8 *GetMonFrontSpritePal(struct Pokemon *mon) return GetFrontSpritePalFromSpeciesAndPersonality(species, otId, personality); } -const u8 *GetFrontSpritePalFromSpeciesAndPersonality(u16 species, u32 otId, u32 personality) +const u32 *GetFrontSpritePalFromSpeciesAndPersonality(u16 species, u32 otId, u32 personality) { u32 shinyValue; diff --git a/src/quest_log.c b/src/quest_log.c index fe83f67e9..d08724a56 100644 --- a/src/quest_log.c +++ b/src/quest_log.c @@ -11,7 +11,7 @@ #include "menu_helpers.h" #include "window.h" #include "text_window.h" -#include "unk_text_util.h" +#include "dynamic_placeholder_text_util.h" #include "event_data.h" #include "event_scripts.h" #include "string_util.h" @@ -996,7 +996,7 @@ void sub_8111368(void) else { sub_8111274(gUnknown_203ADF8, 1); - warp_in(); + WarpIntoMap(); gFieldCallback2 = sub_8111000; SetMainCallback2(sub_805726C); } @@ -3656,9 +3656,9 @@ void QuestLog_AutoGetSpeciesName(u16 a0, u8 * a1, u8 a2) else { if (a0 != SPECIES_EGG) - UnkTextUtil_SetPtrI(a2, gSpeciesNames[a0]); + DynamicPlaceholderTextUtil_SetPlaceholderPtr(a2, gSpeciesNames[a0]); else - UnkTextUtil_SetPtrI(a2, gText_EggNickname); + DynamicPlaceholderTextUtil_SetPlaceholderPtr(a2, gText_EggNickname); } } @@ -3949,14 +3949,14 @@ u16 * sub_81144EC(u16 * a0, const u16 * a1) const u16 * sub_8114518(const u16 * a0) { - UnkTextUtil_Reset(); + DynamicPlaceholderTextUtil_Reset(); memset(gStringVar1, EOS, 8); memcpy(gStringVar1, (const u8 *)a0 + 5, 7); sub_8115834(gStringVar1); - UnkTextUtil_SetPtrI(0, gStringVar1); - UnkTextUtil_SetPtrI(1, gUnknown_8456AE4[((const u8 *)a0)[4]]); - UnkTextUtil_StringExpandPlaceholders(gStringVar4, gUnknown_841A422); + DynamicPlaceholderTextUtil_SetPlaceholderPtr(0, gStringVar1); + DynamicPlaceholderTextUtil_SetPlaceholderPtr(1, gUnknown_8456AE4[((const u8 *)a0)[4]]); + DynamicPlaceholderTextUtil_ExpandPlaceholders(gStringVar4, gUnknown_841A422); a0 += 6; return a0; } @@ -3973,14 +3973,14 @@ u16 * sub_8114578(u16 * a0, const u16 * a1) const u16 * sub_81145A4(const u16 * a0) { - UnkTextUtil_Reset(); + DynamicPlaceholderTextUtil_Reset(); memset(gStringVar1, EOS, 8); memcpy(gStringVar1, (const u8 *)a0 + 5, 7); sub_8115834(gStringVar1); - UnkTextUtil_SetPtrI(0, gStringVar1); - UnkTextUtil_SetPtrI(1, gUnknown_8456AE4[((const u8 *)a0)[4]]); - UnkTextUtil_StringExpandPlaceholders(gStringVar4, gUnknown_841A477); + DynamicPlaceholderTextUtil_SetPlaceholderPtr(0, gStringVar1); + DynamicPlaceholderTextUtil_SetPlaceholderPtr(1, gUnknown_8456AE4[((const u8 *)a0)[4]]); + DynamicPlaceholderTextUtil_ExpandPlaceholders(gStringVar4, gUnknown_841A477); a0 += 6; return a0; } @@ -3999,7 +3999,7 @@ u16 * sub_8114604(u16 * a0, const u16 * a1) const u16 * sub_811464C(const u16 * a0) { - UnkTextUtil_Reset(); + DynamicPlaceholderTextUtil_Reset(); memset(gStringVar1, EOS, 8); memset(gStringVar2, EOS, 8); @@ -4010,12 +4010,12 @@ const u16 * sub_811464C(const u16 * a0) sub_8115834(gStringVar1); sub_8115834(gStringVar2); sub_8115834(gStringVar3); - UnkTextUtil_SetPtrI(0, gSaveBlock2Ptr->playerName); - UnkTextUtil_SetPtrI(1, gStringVar1); - UnkTextUtil_SetPtrI(2, gStringVar2); - UnkTextUtil_SetPtrI(3, gStringVar3); - UnkTextUtil_SetPtrI(4, gUnknown_8456AE4[((const u8 *)a0)[4]]); - UnkTextUtil_StringExpandPlaceholders(gStringVar4, gUnknown_841A4C6); + DynamicPlaceholderTextUtil_SetPlaceholderPtr(0, gSaveBlock2Ptr->playerName); + DynamicPlaceholderTextUtil_SetPlaceholderPtr(1, gStringVar1); + DynamicPlaceholderTextUtil_SetPlaceholderPtr(2, gStringVar2); + DynamicPlaceholderTextUtil_SetPlaceholderPtr(3, gStringVar3); + DynamicPlaceholderTextUtil_SetPlaceholderPtr(4, gUnknown_8456AE4[((const u8 *)a0)[4]]); + DynamicPlaceholderTextUtil_ExpandPlaceholders(gStringVar4, gUnknown_841A4C6); a0 += 13; return a0; } @@ -4111,12 +4111,12 @@ const u16 * sub_81148BC(const u16 * a0) const u8 * boxIdxs; a0 = sub_8113E88(20, a0); boxIdxs = (const u8 *)a0 + 4; - UnkTextUtil_Reset(); - UnkTextUtil_SetPtrI(0, GetBoxNamePtr(boxIdxs[0])); + DynamicPlaceholderTextUtil_Reset(); + DynamicPlaceholderTextUtil_SetPlaceholderPtr(0, GetBoxNamePtr(boxIdxs[0])); QuestLog_AutoGetSpeciesName(a0[0], NULL, 1); - UnkTextUtil_SetPtrI(2, GetBoxNamePtr(boxIdxs[1])); + DynamicPlaceholderTextUtil_SetPlaceholderPtr(2, GetBoxNamePtr(boxIdxs[1])); QuestLog_AutoGetSpeciesName(a0[1], NULL, 3); - UnkTextUtil_StringExpandPlaceholders(gStringVar4, gUnknown_841A566); + DynamicPlaceholderTextUtil_ExpandPlaceholders(gStringVar4, gUnknown_841A566); return a0 + 3; } @@ -4136,11 +4136,11 @@ const u16 * sub_8114944(const u16 * a0) const u8 * boxIdxs; a0 = sub_8113E88(21, a0); boxIdxs = (const u8 *)a0 + 4; - UnkTextUtil_Reset(); - UnkTextUtil_SetPtrI(0, GetBoxNamePtr(boxIdxs[0])); + DynamicPlaceholderTextUtil_Reset(); + DynamicPlaceholderTextUtil_SetPlaceholderPtr(0, GetBoxNamePtr(boxIdxs[0])); QuestLog_AutoGetSpeciesName(a0[0], NULL, 1); QuestLog_AutoGetSpeciesName(a0[1], NULL, 2); - UnkTextUtil_StringExpandPlaceholders(gStringVar4, gUnknown_841A5D9); + DynamicPlaceholderTextUtil_ExpandPlaceholders(gStringVar4, gUnknown_841A5D9); return a0 + 3; } @@ -4172,11 +4172,11 @@ const u16 * sub_81149D0(const u16 * a0) const u8 * boxIdxs; a0 = sub_8113E88(22, a0); boxIdxs = (const u8 *)a0 + 4; - UnkTextUtil_Reset(); - UnkTextUtil_SetPtrI(0, GetBoxNamePtr(boxIdxs[0])); + DynamicPlaceholderTextUtil_Reset(); + DynamicPlaceholderTextUtil_SetPlaceholderPtr(0, GetBoxNamePtr(boxIdxs[0])); QuestLog_AutoGetSpeciesName(a0[0], NULL, 1); QuestLog_AutoGetSpeciesName(a0[1], NULL, 2); - UnkTextUtil_StringExpandPlaceholders(gStringVar4, gUnknown_841A60A); + DynamicPlaceholderTextUtil_ExpandPlaceholders(gStringVar4, gUnknown_841A60A); return a0 + 3; } @@ -4199,11 +4199,11 @@ const u16 * sub_8114A4C(const u16 * a0) const u8 * boxIdxs; a0 = sub_8113E88(23, a0); boxIdxs = (const u8 *)a0 + 2; - UnkTextUtil_Reset(); - UnkTextUtil_SetPtrI(0, GetBoxNamePtr(boxIdxs[0])); + DynamicPlaceholderTextUtil_Reset(); + DynamicPlaceholderTextUtil_SetPlaceholderPtr(0, GetBoxNamePtr(boxIdxs[0])); QuestLog_AutoGetSpeciesName(a0[0], NULL, 1); - UnkTextUtil_SetPtrI(2, GetBoxNamePtr(boxIdxs[1])); - UnkTextUtil_StringExpandPlaceholders(gStringVar4, gUnknown_841A59C); + DynamicPlaceholderTextUtil_SetPlaceholderPtr(2, GetBoxNamePtr(boxIdxs[1])); + DynamicPlaceholderTextUtil_ExpandPlaceholders(gStringVar4, gUnknown_841A59C); return (const u16 *)boxIdxs + 1; } @@ -4223,10 +4223,10 @@ const u16 * sub_8114AC8(const u16 * a0) const u8 * boxIdxs; a0 = sub_8113E88(24, a0); boxIdxs = (const u8 *)a0 + 2; - UnkTextUtil_Reset(); - UnkTextUtil_SetPtrI(0, GetBoxNamePtr(boxIdxs[0])); + DynamicPlaceholderTextUtil_Reset(); + DynamicPlaceholderTextUtil_SetPlaceholderPtr(0, GetBoxNamePtr(boxIdxs[0])); QuestLog_AutoGetSpeciesName(a0[0], NULL, 1); - UnkTextUtil_StringExpandPlaceholders(gStringVar4, gUnknown_841A5FA); + DynamicPlaceholderTextUtil_ExpandPlaceholders(gStringVar4, gUnknown_841A5FA); return (const u16 *)boxIdxs + 1; } @@ -4246,10 +4246,10 @@ const u16 * sub_8114B34(const u16 * a0) const u8 * boxIdxs; a0 = sub_8113E88(25, a0); boxIdxs = (const u8 *)a0 + 2; - UnkTextUtil_Reset(); - UnkTextUtil_SetPtrI(0, GetBoxNamePtr(boxIdxs[0])); + DynamicPlaceholderTextUtil_Reset(); + DynamicPlaceholderTextUtil_SetPlaceholderPtr(0, GetBoxNamePtr(boxIdxs[0])); QuestLog_AutoGetSpeciesName(a0[0], NULL, 1); - UnkTextUtil_StringExpandPlaceholders(gStringVar4, gUnknown_841A632); + DynamicPlaceholderTextUtil_ExpandPlaceholders(gStringVar4, gUnknown_841A632); return (const u16 *)boxIdxs + 1; } @@ -4269,10 +4269,10 @@ const u16 * sub_8114BA0(const u16 * a0) const u8 * boxIdxs; a0 = sub_8113E88(26, a0); boxIdxs = (const u8 *)a0 + 2; - UnkTextUtil_Reset(); + DynamicPlaceholderTextUtil_Reset(); QuestLog_AutoGetSpeciesName(a0[0], NULL, 0); - UnkTextUtil_SetPtrI(1, GetBoxNamePtr(boxIdxs[0])); - UnkTextUtil_StringExpandPlaceholders(gStringVar4, gUnknown_841A64F); + DynamicPlaceholderTextUtil_SetPlaceholderPtr(1, GetBoxNamePtr(boxIdxs[0])); + DynamicPlaceholderTextUtil_ExpandPlaceholders(gStringVar4, gUnknown_841A64F); return (const u16 *)boxIdxs + 1; } @@ -4290,13 +4290,13 @@ u16 * sub_8114BE4(u16 * a0, const u16 * a1) const u16 * sub_8114C0C(const u16 * a0) { const u16 *r4 = sub_8113E88(27, a0); - UnkTextUtil_Reset(); - UnkTextUtil_SetPtrI(0, GetBoxNamePtr(*((const u8 *)r4 + 0))); + DynamicPlaceholderTextUtil_Reset(); + DynamicPlaceholderTextUtil_SetPlaceholderPtr(0, GetBoxNamePtr(*((const u8 *)r4 + 0))); if (*((const u8 *)r4 + 0) == *((const u8 *)r4 + 1)) - UnkTextUtil_SetPtrI(1, gUnknown_841A694); + DynamicPlaceholderTextUtil_SetPlaceholderPtr(1, gUnknown_841A694); else - UnkTextUtil_SetPtrI(1, GetBoxNamePtr(*((const u8 *)r4 + 1))); - UnkTextUtil_StringExpandPlaceholders(gStringVar4, gUnknown_841A66E); + DynamicPlaceholderTextUtil_SetPlaceholderPtr(1, GetBoxNamePtr(*((const u8 *)r4 + 1))); + DynamicPlaceholderTextUtil_ExpandPlaceholders(gStringVar4, gUnknown_841A66E); return r4 + 1; } @@ -4358,14 +4358,14 @@ const u16 * sub_8114D68(const u16 * a0) const u8 * r6; a0 = sub_8113E88(30, a0); r6 = (const u8 *)a0 + 6; - UnkTextUtil_Reset(); + DynamicPlaceholderTextUtil_Reset(); sub_80C4DF8(gStringVar1, r6[0]); - UnkTextUtil_SetPtrI(0, gStringVar1); - UnkTextUtil_SetPtrI(1, gTrainers[a0[2]].trainerName); + DynamicPlaceholderTextUtil_SetPlaceholderPtr(0, gStringVar1); + DynamicPlaceholderTextUtil_SetPlaceholderPtr(1, gTrainers[a0[2]].trainerName); QuestLog_AutoGetSpeciesName(a0[0], 0, 2); QuestLog_AutoGetSpeciesName(a0[1], 0, 3); - UnkTextUtil_SetPtrI(4, gUnknown_8456ACC[r6[1]]); - UnkTextUtil_StringExpandPlaceholders(gStringVar4, gUnknown_841AF0C); + DynamicPlaceholderTextUtil_SetPlaceholderPtr(4, gUnknown_8456ACC[r6[1]]); + DynamicPlaceholderTextUtil_ExpandPlaceholders(gStringVar4, gUnknown_841AF0C); return a0 + 4; } @@ -4399,43 +4399,43 @@ const u16 * sub_8114E68(const u16 * a0) return NULL; r6 = (const u8 *)a0 + 8; - UnkTextUtil_Reset(); + DynamicPlaceholderTextUtil_Reset(); sub_80C4DF8(gStringVar1, r6[2]); - UnkTextUtil_SetPtrI(0, gStringVar1); + DynamicPlaceholderTextUtil_SetPlaceholderPtr(0, gStringVar1); QuestLog_AutoGetSpeciesName(a0[2], NULL, 1); ConvertIntToDecimalStringN(gStringVar2, r6[0], STR_CONV_MODE_LEFT_ALIGN, 3); - UnkTextUtil_SetPtrI(2, gStringVar2); + DynamicPlaceholderTextUtil_SetPlaceholderPtr(2, gStringVar2); QuestLog_AutoGetSpeciesName(a0[3], NULL, 3); ConvertIntToDecimalStringN(gStringVar3, r6[1], STR_CONV_MODE_LEFT_ALIGN, 3); - UnkTextUtil_SetPtrI(4, gStringVar3); - UnkTextUtil_SetPtrI(5, gSaveBlock2Ptr->playerName); + DynamicPlaceholderTextUtil_SetPlaceholderPtr(4, gStringVar3); + DynamicPlaceholderTextUtil_SetPlaceholderPtr(5, gSaveBlock2Ptr->playerName); if (r6[0] == 0) { if (r6[1] == 1) - UnkTextUtil_StringExpandPlaceholders(gStringVar4, gUnknown_841AA01); + DynamicPlaceholderTextUtil_ExpandPlaceholders(gStringVar4, gUnknown_841AA01); else - UnkTextUtil_StringExpandPlaceholders(gStringVar4, gUnknown_841AA2B); + DynamicPlaceholderTextUtil_ExpandPlaceholders(gStringVar4, gUnknown_841AA2B); } else if (r6[1] == 0) { if (r6[0] == 1) - UnkTextUtil_StringExpandPlaceholders(gStringVar4, gUnknown_841A9A9); + DynamicPlaceholderTextUtil_ExpandPlaceholders(gStringVar4, gUnknown_841A9A9); else - UnkTextUtil_StringExpandPlaceholders(gStringVar4, gUnknown_841A9D4); + DynamicPlaceholderTextUtil_ExpandPlaceholders(gStringVar4, gUnknown_841A9D4); } else if (r6[0] == 1) { if (r6[1] == 1) - UnkTextUtil_StringExpandPlaceholders(gStringVar4, gUnknown_841AA76); + DynamicPlaceholderTextUtil_ExpandPlaceholders(gStringVar4, gUnknown_841AA76); else - UnkTextUtil_StringExpandPlaceholders(gStringVar4, gUnknown_841AAAA); + DynamicPlaceholderTextUtil_ExpandPlaceholders(gStringVar4, gUnknown_841AAAA); } else { if (r6[1] == 1) - UnkTextUtil_StringExpandPlaceholders(gStringVar4, gUnknown_841AAEC); + DynamicPlaceholderTextUtil_ExpandPlaceholders(gStringVar4, gUnknown_841AAEC); else - UnkTextUtil_StringExpandPlaceholders(gStringVar4, gUnknown_841AB29); + DynamicPlaceholderTextUtil_ExpandPlaceholders(gStringVar4, gUnknown_841AB29); } return (const u16 *)(r6 + 4); } @@ -4464,12 +4464,12 @@ const u16 * sub_811500C(const u16 * a0) const u8 * r5; a0 = sub_8113E88(32, a0); r5 = (const u8 *)a0 + 6; - UnkTextUtil_Reset(); - UnkTextUtil_SetPtrI(0, gTrainers[a0[2]].trainerName); + DynamicPlaceholderTextUtil_Reset(); + DynamicPlaceholderTextUtil_SetPlaceholderPtr(0, gTrainers[a0[2]].trainerName); QuestLog_AutoGetSpeciesName(a0[0], NULL, 1); QuestLog_AutoGetSpeciesName(a0[1], NULL, 2); - UnkTextUtil_SetPtrI(3, gUnknown_8456ACC[r5[1]]); - UnkTextUtil_StringExpandPlaceholders(gStringVar4, gUnknown_841AF3E); + DynamicPlaceholderTextUtil_SetPlaceholderPtr(3, gUnknown_8456ACC[r5[1]]); + DynamicPlaceholderTextUtil_ExpandPlaceholders(gStringVar4, gUnknown_841AF3E); return a0 + 4; } @@ -4493,25 +4493,25 @@ const u16 * sub_81150CC(const u16 * a0) return NULL; r5 = (const u8 *)a0 + 8; - UnkTextUtil_Reset(); + DynamicPlaceholderTextUtil_Reset(); switch (gUnknown_203B044.unk_2) { case 0: - UnkTextUtil_SetPtrI(0, gSaveBlock2Ptr->playerName); - UnkTextUtil_SetPtrI(1, gSaveBlock1Ptr->rivalName); - UnkTextUtil_StringExpandPlaceholders(gStringVar4, gUnknown_841A2E1); + DynamicPlaceholderTextUtil_SetPlaceholderPtr(0, gSaveBlock2Ptr->playerName); + DynamicPlaceholderTextUtil_SetPlaceholderPtr(1, gSaveBlock1Ptr->rivalName); + DynamicPlaceholderTextUtil_ExpandPlaceholders(gStringVar4, gUnknown_841A2E1); break; case 1: - UnkTextUtil_SetPtrI(0, gSaveBlock1Ptr->rivalName); + DynamicPlaceholderTextUtil_SetPlaceholderPtr(0, gSaveBlock1Ptr->rivalName); QuestLog_AutoGetSpeciesName(a0[2], NULL, 1); - UnkTextUtil_SetPtrI(2, gSaveBlock2Ptr->playerName); + DynamicPlaceholderTextUtil_SetPlaceholderPtr(2, gSaveBlock2Ptr->playerName); QuestLog_AutoGetSpeciesName(a0[3], NULL, 3); - UnkTextUtil_StringExpandPlaceholders(gStringVar4, gUnknown_841A312); + DynamicPlaceholderTextUtil_ExpandPlaceholders(gStringVar4, gUnknown_841A312); break; case 2: - UnkTextUtil_SetPtrI(0, gUnknown_8456AD8[r5[0]]); - UnkTextUtil_StringExpandPlaceholders(gStringVar4, gUnknown_841A349); + DynamicPlaceholderTextUtil_SetPlaceholderPtr(0, gUnknown_8456AD8[r5[0]]); + DynamicPlaceholderTextUtil_ExpandPlaceholders(gStringVar4, gUnknown_841A349); break; } return (const u16 *)(r5 + 2); @@ -4527,21 +4527,21 @@ const u16 * sub_81151DC(const u16 * a0) { const u16 * r5 = sub_8113E88(34, a0); const u8 * r6 = (const u8 *)r5 + 6; - UnkTextUtil_Reset(); + DynamicPlaceholderTextUtil_Reset(); sub_80C4DF8(gStringVar1, r6[0]); - UnkTextUtil_SetPtrI(0, gStringVar1); + DynamicPlaceholderTextUtil_SetPlaceholderPtr(0, gStringVar1); if ( gTrainers[r5[2]].trainerClass == 0x51 || gTrainers[r5[2]].trainerClass == 0x59 || gTrainers[r5[2]].trainerClass == 0x5A ) - UnkTextUtil_SetPtrI(1, GetExpandedPlaceholder(6)); + DynamicPlaceholderTextUtil_SetPlaceholderPtr(1, GetExpandedPlaceholder(6)); else - UnkTextUtil_SetPtrI(1, gTrainers[r5[2]].trainerName); + DynamicPlaceholderTextUtil_SetPlaceholderPtr(1, gTrainers[r5[2]].trainerName); QuestLog_AutoGetSpeciesName(r5[0], NULL, 2); QuestLog_AutoGetSpeciesName(r5[1], NULL, 3); - UnkTextUtil_SetPtrI(4, gUnknown_8456ACC[r6[1]]); - UnkTextUtil_StringExpandPlaceholders(gStringVar4, gUnknown_841AF6D); + DynamicPlaceholderTextUtil_SetPlaceholderPtr(4, gUnknown_8456ACC[r6[1]]); + DynamicPlaceholderTextUtil_ExpandPlaceholders(gStringVar4, gUnknown_841AF6D); return (const u16 *)(r6 + 2); } @@ -4814,17 +4814,17 @@ const u16 * sub_8115518(const u16 * a0) const u16 * r4 = sub_8113E88(37, a0); const u8 * r7 = (const u8 *)r4 + 8; u32 r6 = (r4[2] << 16) + r4[3]; - UnkTextUtil_Reset(); + DynamicPlaceholderTextUtil_Reset(); sub_80C4DF8(gStringVar1, r7[0]); - UnkTextUtil_SetPtrI(0, gStringVar1); - UnkTextUtil_SetPtrI(1, ItemId_GetName(r4[0])); + DynamicPlaceholderTextUtil_SetPlaceholderPtr(0, gStringVar1); + DynamicPlaceholderTextUtil_SetPlaceholderPtr(1, ItemId_GetName(r4[0])); if (r4[1] < 2) - UnkTextUtil_StringExpandPlaceholders(gStringVar4, gUnknown_841A7DD); + DynamicPlaceholderTextUtil_ExpandPlaceholders(gStringVar4, gUnknown_841A7DD); else { ConvertIntToDecimalStringN(gStringVar2, r6, STR_CONV_MODE_LEFT_ALIGN, 6); - UnkTextUtil_SetPtrI(2, gStringVar2); - UnkTextUtil_StringExpandPlaceholders(gStringVar4, gUnknown_841A810); + DynamicPlaceholderTextUtil_SetPlaceholderPtr(2, gStringVar2); + DynamicPlaceholderTextUtil_ExpandPlaceholders(gStringVar4, gUnknown_841A810); } return (const u16 *)(r7 + 2); } @@ -4847,30 +4847,30 @@ const u16 * sub_81155E0(const u16 * a0) { const u16 *r5 = sub_8113E88(38, a0); const u8 *r7 = (const u8 *) r5 + 8; u32 r6 = (r5[2] << 16) + r5[3]; - UnkTextUtil_Reset(); + DynamicPlaceholderTextUtil_Reset(); sub_80C4DF8(gStringVar1, r7[0]); if (r7[1] == 0) { - UnkTextUtil_SetPtrI(0, gSaveBlock2Ptr->playerName); - UnkTextUtil_SetPtrI(1, gStringVar1); - UnkTextUtil_SetPtrI(2, ItemId_GetName(r5[0])); + DynamicPlaceholderTextUtil_SetPlaceholderPtr(0, gSaveBlock2Ptr->playerName); + DynamicPlaceholderTextUtil_SetPlaceholderPtr(1, gStringVar1); + DynamicPlaceholderTextUtil_SetPlaceholderPtr(2, ItemId_GetName(r5[0])); if (r5[1] == 1) - UnkTextUtil_SetPtrI(3, gUnknown_841A8D4); + DynamicPlaceholderTextUtil_SetPlaceholderPtr(3, gUnknown_841A8D4); else { ConvertIntToDecimalStringN(gStringVar2, r5[1], STR_CONV_MODE_LEFT_ALIGN, 3); - UnkTextUtil_SetPtrI(4, gStringVar2); - UnkTextUtil_StringExpandPlaceholders(gStringVar3, gUnknown_841A8DD); - UnkTextUtil_SetPtrI(3, gStringVar3); + DynamicPlaceholderTextUtil_SetPlaceholderPtr(4, gStringVar2); + DynamicPlaceholderTextUtil_ExpandPlaceholders(gStringVar3, gUnknown_841A8DD); + DynamicPlaceholderTextUtil_SetPlaceholderPtr(3, gStringVar3); } - UnkTextUtil_StringExpandPlaceholders(gStringVar4, gUnknown_841A858); + DynamicPlaceholderTextUtil_ExpandPlaceholders(gStringVar4, gUnknown_841A858); } else { - UnkTextUtil_SetPtrI(0, gStringVar1); - UnkTextUtil_SetPtrI(1, ItemId_GetName(r5[0])); + DynamicPlaceholderTextUtil_SetPlaceholderPtr(0, gStringVar1); + DynamicPlaceholderTextUtil_SetPlaceholderPtr(1, ItemId_GetName(r5[0])); ConvertIntToDecimalStringN(gStringVar2, r6, STR_CONV_MODE_LEFT_ALIGN, 6); - UnkTextUtil_SetPtrI(2, gStringVar2); - UnkTextUtil_StringExpandPlaceholders(gStringVar4, gUnknown_841A896); + DynamicPlaceholderTextUtil_SetPlaceholderPtr(2, gStringVar2); + DynamicPlaceholderTextUtil_ExpandPlaceholders(gStringVar4, gUnknown_841A896); } return (const u16 *)(r7 + 2); } diff --git a/src/safari_zone.c b/src/safari_zone.c new file mode 100644 index 000000000..cb0a58586 --- /dev/null +++ b/src/safari_zone.c @@ -0,0 +1,80 @@ +#include "global.h" +#include "battle.h" +#include "event_scripts.h" +#include "overworld.h" +#include "battle.h" +#include "script.h" +#include "event_data.h" +#include "field_screen_effect.h" + +EWRAM_DATA u8 gNumSafariBalls = 0; +EWRAM_DATA u16 gSafariZoneStepCounter = 0; + +bool32 GetSafariZoneFlag(void) +{ + return FlagGet(FLAG_SYS_SAFARI_MODE); +} + +void SetSafariZoneFlag(void) +{ + FlagSet(FLAG_SYS_SAFARI_MODE); +} + +void ResetSafariZoneFlag(void) +{ + FlagClear(FLAG_SYS_SAFARI_MODE); +} + +void EnterSafariMode(void) +{ + IncrementGameStat(GAME_STAT_ENTERED_SAFARI_ZONE); + SetSafariZoneFlag(); + gNumSafariBalls = 30; + gSafariZoneStepCounter = 600; +} + +void ExitSafariMode(void) +{ + ResetSafariZoneFlag(); + gNumSafariBalls = 0; + gSafariZoneStepCounter = 0; +} + +bool8 SafariZoneTakeStep(void) +{ + if (GetSafariZoneFlag() == FALSE) + return FALSE; + gSafariZoneStepCounter--; + if (gSafariZoneStepCounter == 0) + { + ScriptContext1_SetupScript(EventScript_SafariTimesUp); + return TRUE; + } + return FALSE; +} + +void SafariZoneRetirePrompt(void) +{ + ScriptContext1_SetupScript(EventScript_SafariRetire); +} + +void CB2_EndSafariBattle(void) +{ + if (gNumSafariBalls != 0) + { + SetMainCallback2(CB2_ReturnToField); + } + else if (gBattleOutcome == B_OUTCOME_NO_SAFARI_BALLS) + { + ScriptContext2_RunNewScript(EventScript_SafariWarpOut); + WarpIntoMap(); + gFieldCallback = sub_807E3EC; + SetMainCallback2(CB2_LoadMap); + } + else if (gBattleOutcome == B_OUTCOME_CAUGHT) + { + ScriptContext1_SetupScript(EventScript_SafariOutOfBalls); + ScriptContext1_Stop(); + SetMainCallback2(CB2_ReturnToFieldContinueScriptPlayMapMusic); + } +} diff --git a/src/scrcmd.c b/src/scrcmd.c index d317a78b5..cef1a1eb7 100644 --- a/src/scrcmd.c +++ b/src/scrcmd.c @@ -1984,7 +1984,7 @@ bool8 ScrCmd_playslotmachine(struct ScriptContext *ctx) { u8 slotMachineIndex = VarGet(ScriptReadHalfword(ctx)); - PlaySlotMachine(slotMachineIndex, c2_exit_to_overworld_1_continue_scripts_restart_music); + PlaySlotMachine(slotMachineIndex, CB2_ReturnToFieldContinueScriptPlayMapMusic); ScriptContext1_Stop(); return TRUE; } diff --git a/src/seagallop.c b/src/seagallop.c index ae880b2a3..e3333ef32 100644 --- a/src/seagallop.c +++ b/src/seagallop.c @@ -323,8 +323,8 @@ static void Task_SeaGallop_3(void) PlayRainStoppingSoundEffect(); PlaySE(SE_KAIDAN); gFieldCallback = sub_807DF64; - warp_in(); - SetMainCallback2(sub_805671C); + WarpIntoMap(); + SetMainCallback2(CB2_LoadMap); ResetInitialPlayerAvatarState(); FreeFerrySpriteResources(); Free(sBg3TilemapBuffer); diff --git a/src/teachy_tv.c b/src/teachy_tv.c index 1e3f42027..0b0e7b932 100644 --- a/src/teachy_tv.c +++ b/src/teachy_tv.c @@ -734,7 +734,7 @@ static void TeachyTvOptionListController(u8 taskId) TeachyTvBg2AnimController(); if (!gPaletteFade.active) { - input = ListMenuHandleInput(data[0]); + input = ListMenu_ProcessInput(data[0]); ListMenuGetScrollAndRow(data[0], &sStaticResources.scrollOffset, &sStaticResources.selectedRow); if ((JOY_NEW(SELECT_BUTTON) && sStaticResources.callback != ReturnToBagFromKeyItem)) { @@ -754,7 +754,7 @@ static void TeachyTvOptionListController(u8 taskId) default: PlaySE(SE_SELECT); sStaticResources.whichScript = input; - DestroyListMenu(data[0], &sStaticResources.scrollOffset, &sStaticResources.selectedRow); + DestroyListMenuTask(data[0], &sStaticResources.scrollOffset, &sStaticResources.selectedRow); TeachyTvClearWindowRegs(); ClearWindowTilemap(1); ScheduleBgCopyTilemapToVram(0); diff --git a/src/text.c b/src/text.c index c0fe6a444..d36a448ad 100644 --- a/src/text.c +++ b/src/text.c @@ -18,7 +18,7 @@ extern u8 GetKeypadIconWidth(u8 keypadIconId); extern void CopyWindowToVram(u8 windowId, u8 mode); extern s32 GetGlyphWidthFont6(u16 glyphId, bool32 isJapanese); extern void PlaySE(u16 songNum); -extern u8* UnkTextUtil_GetPtrI(u8 a1); +extern u8* DynamicPlaceholderTextUtil_GetPlaceholderPtr(u8 a1); TextFlags gTextFlags; @@ -1544,7 +1544,7 @@ s32 GetStringWidth(u8 fontId, const u8 *str, s16 letterSpacing) } case 0xF7: if (bufferPointer == NULL) - bufferPointer = UnkTextUtil_GetPtrI(*++str); + bufferPointer = DynamicPlaceholderTextUtil_GetPlaceholderPtr(*++str); while (*bufferPointer != 0xFF) { glyphWidth = func(*bufferPointer++, isJapanese); diff --git a/src/tm_case.c b/src/tm_case.c index 54c50cc71..0266f9c90 100644 --- a/src/tm_case.c +++ b/src/tm_case.c @@ -716,7 +716,7 @@ static void Task_FadeOutAndCloseTMCase(u8 taskId) if (!gPaletteFade.active) { - DestroyListMenu(data[0], &sTMCaseStaticResources.scrollOffset, &sTMCaseStaticResources.selectedRow); + DestroyListMenuTask(data[0], &sTMCaseStaticResources.scrollOffset, &sTMCaseStaticResources.selectedRow); if (sTMCaseDynamicResources->savedCallback != NULL) SetMainCallback2(sTMCaseDynamicResources->savedCallback); else @@ -736,7 +736,7 @@ static void Task_TMCaseMain(u8 taskId) { if (sub_80BF72C() != TRUE) { - input = ListMenuHandleInput(data[0]); + input = ListMenu_ProcessInput(data[0]); ListMenuGetScrollAndRow(data[0], &sTMCaseStaticResources.scrollOffset, &sTMCaseStaticResources.selectedRow); if (JOY_NEW(SELECT_BUTTON) && sTMCaseStaticResources.unk_05 == 1) { @@ -909,7 +909,7 @@ static void Subtask_CloseContextMenuAndReturnToMain(u8 taskId) { s16 * data = gTasks[taskId].data; - DestroyListMenu(data[0], &sTMCaseStaticResources.scrollOffset, &sTMCaseStaticResources.selectedRow); + DestroyListMenuTask(data[0], &sTMCaseStaticResources.scrollOffset, &sTMCaseStaticResources.selectedRow); data[0] = ListMenuInit(&gMultiuseListMenuTemplate, sTMCaseStaticResources.scrollOffset, sTMCaseStaticResources.selectedRow); PrintListMenuCursorByID_WithColorIdx(data[0], 1); ClearMenuWindow_BorderThickness2(6, 0); @@ -1108,7 +1108,7 @@ static void Task_DoSaleOfTMs(u8 taskId) RemoveBagItem(gSpecialVar_ItemId, data[8]); AddMoney(&gSaveBlock1Ptr->money, itemid_get_market_price(gSpecialVar_ItemId) / 2 * data[8]); sub_809C09C(gSpecialVar_ItemId, data[8], 2); - DestroyListMenu(data[0], &sTMCaseStaticResources.scrollOffset, &sTMCaseStaticResources.selectedRow); + DestroyListMenuTask(data[0], &sTMCaseStaticResources.scrollOffset, &sTMCaseStaticResources.selectedRow); TMCaseSetup_GetTMCount(); TMCaseSetup_InitListMenuPositions(); InitTMCaseListMenuItems(); @@ -1204,7 +1204,7 @@ static void Task_TMCaseDude_Playback(u8 taskId) { gMain.newKeys = 0; gMain.newAndRepeatedKeys = DPAD_DOWN; - ListMenuHandleInput(data[0]); + ListMenu_ProcessInput(data[0]); } data[9]++; if (data[9] > 0x65) @@ -1223,7 +1223,7 @@ static void Task_TMCaseDude_Playback(u8 taskId) { gMain.newKeys = 0; gMain.newAndRepeatedKeys = DPAD_UP; - ListMenuHandleInput(data[0]); + ListMenu_ProcessInput(data[0]); } data[9]++; if (data[9] > 0x65) @@ -1269,7 +1269,7 @@ static void Task_TMCaseDude_Playback(u8 taskId) { memcpy(gSaveBlock1Ptr->bagPocket_TMHM, sPokeDudePackBackup->bagPocket_TMHM, sizeof(gSaveBlock1Ptr->bagPocket_TMHM)); memcpy(gSaveBlock1Ptr->bagPocket_KeyItems, sPokeDudePackBackup->bagPocket_KeyItems, sizeof(gSaveBlock1Ptr->bagPocket_KeyItems)); - DestroyListMenu(data[0], NULL, NULL); + DestroyListMenuTask(data[0], NULL, NULL); sTMCaseStaticResources.selectedRow = sPokeDudePackBackup->unk_160; sTMCaseStaticResources.scrollOffset = sPokeDudePackBackup->unk_162; Free(sPokeDudePackBackup); @@ -1344,10 +1344,10 @@ static void PrintStringTMCaseOnWindow3(void) static void DrawMoveInfoUIMarkers(void) { - blit_move_info_icon(4, 19, 0, 0); - blit_move_info_icon(4, 20, 0, 12); - blit_move_info_icon(4, 21, 0, 24); - blit_move_info_icon(4, 22, 0, 36); + BlitMoveInfoIcon(4, 19, 0, 0); + BlitMoveInfoIcon(4, 20, 0, 12); + BlitMoveInfoIcon(4, 21, 0, 24); + BlitMoveInfoIcon(4, 22, 0, 36); CopyWindowToVram(4, 2); } @@ -1369,7 +1369,7 @@ static void TMCase_MoveCursor_UpdatePrintedTMInfo(u16 itemId) else { move = ItemIdToBattleMoveId(itemId); - blit_move_info_icon(5, gBattleMoves[move].type + 1, 0, 0); + BlitMoveInfoIcon(5, gBattleMoves[move].type + 1, 0, 0); if (gBattleMoves[move].power < 2) str = gText_ThreeHyphens; else diff --git a/src/trainer_tower.c b/src/trainer_tower.c index ef2a12ce0..65d825dfe 100644 --- a/src/trainer_tower.c +++ b/src/trainer_tower.c @@ -1106,7 +1106,7 @@ void sub_815E068(u8 battleType, u8 facilityClass) void sub_815E114(void) { - SetMainCallback2(c2_exit_to_overworld_1_continue_scripts_restart_music); + SetMainCallback2(CB2_ReturnToFieldContinueScriptPlayMapMusic); } void sub_815E124(u8 taskId) diff --git a/src/wireless_communication_status_screen.c b/src/wireless_communication_status_screen.c index 1eb29be1b..cc80d37b6 100644 --- a/src/wireless_communication_status_screen.c +++ b/src/wireless_communication_status_screen.c @@ -10,7 +10,7 @@ #include "scanline_effect.h" #include "m4a.h" #include "string_util.h" -#include "unk_text_util.h" +#include "dynamic_placeholder_text_util.h" #include "overworld.h" #include "sound.h" #include "menu.h" @@ -208,7 +208,7 @@ void sub_814F1E4(void) ChangeBgY(1, 0, 0); LoadPalette(gUnknown_846F4D0, 0, 0x20); Menu_LoadStdPalAt(0xf0); - UnkTextUtil_Reset(); + DynamicPlaceholderTextUtil_Reset(); FillBgTilemapBufferRect(0, 0x000, 0, 0, 32, 32, 0xF); CopyBgTilemapBufferToVram(1); SetMainCallback2(sub_814F19C); @@ -229,7 +229,7 @@ void sub_814F32C(void) Free(GetBgTilemapBuffer(i)); } Free(gUnknown_3002040); - SetMainCallback2(c2_exit_to_overworld_1_continue_scripts_restart_music); + SetMainCallback2(CB2_ReturnToFieldContinueScriptPlayMapMusic); } void sub_814F364(s16 * unk0, s16 * unk1) diff --git a/sym_common.txt b/sym_common.txt index 56eed9a16..e875d439b 100644 --- a/sym_common.txt +++ b/sym_common.txt @@ -298,12 +298,9 @@ gUnknown_3005E10: @ 3005E10 gUnknown_3005E20: @ 3005E20 .space 0x40 -gUnknown_3005E60: @ 3005E60 - .space 0x10 - -gMultiuseListMenuTemplate: @ 3005E70 - .space 0x18 - + .align 4 + .include "list_menu.o" + .align 2 .include "quest_log.o" gUnknown_3005E8C: @ 3005E8C diff --git a/sym_ewram.txt b/sym_ewram.txt index 63b75ae19..bec821a2f 100644 --- a/sym_ewram.txt +++ b/sym_ewram.txt @@ -979,13 +979,7 @@ gUnknown_203998C: @ 203998C .include "src/money.o" .align 2 -gUnknown_2039994: @ 2039994 - .space 0x2 - -gUnknown_2039996: @ 2039996 - .space 0x2 - - .align 2 + .include "src/safari_zone.o" .include "src/item_use.o" .align 2 @@ -1174,9 +1168,8 @@ gUnknown_203ACEC: @ 203ACEC gUnknown_203ACF0: @ 203ACF0 .space 0x4 -gUnknown_203ACF4: @ 203ACF4 - .space 0x8 - + .include "src/list_menu.o" + .align 2 gUnknown_203ACFC: @ 203ACFC .space 0x6 @@ -1359,9 +1352,7 @@ gUnknown_203B0E8: @ 203B0E8 .include "src/oak_speech.o" .align 2 .include "src/tm_case.o" - -gUnknown_203B130: @ 203B130 - .space 0x10 + .include "src/menu_indicators.o" gUnknown_203B140: @ 203B140 .space 0x4 @@ -1401,10 +1392,7 @@ gUnknown_203B170: @ 203B170 .align 2 .include "src/help_system.o" - - @ src/unk_text_util.o -gUnknown_203F34C: @ 203F34C - .space 0x20 + .include "src/dynamic_placeholder_text_util.o" gUnknown_203F36C: @ 203F36C .space 0x4 |