summaryrefslogtreecommitdiff
path: root/asm/script_menu.s
diff options
context:
space:
mode:
Diffstat (limited to 'asm/script_menu.s')
-rw-r--r--asm/script_menu.s1883
1 files changed, 0 insertions, 1883 deletions
diff --git a/asm/script_menu.s b/asm/script_menu.s
deleted file mode 100644
index 703c052f3..000000000
--- a/asm/script_menu.s
+++ /dev/null
@@ -1,1883 +0,0 @@
- .include "asm/macros.inc"
- .include "constants/constants.inc"
-
- .syntax unified
-
- .text
-
- thumb_func_start ScriptMenu_Multichoice
-@ bool8 ScriptMenu_Multichoice(u8 x, u8 y, u8 menuId, bool8 noCancelling)
-ScriptMenu_Multichoice: @ 80E1E08
- push {r4-r7,lr}
- sub sp, 0x4
- lsls r0, 24
- lsrs r7, r0, 24
- lsls r1, 24
- lsrs r6, r1, 24
- lsls r2, 24
- lsrs r5, r2, 24
- lsls r3, 24
- lsrs r4, r3, 24
- ldr r0, =sub_80E2058
- bl FuncIsActiveTask
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- beq _080E1E4C
- ldr r0, =gSpecialVar_Result
- movs r1, 0xFF
- strh r1, [r0]
- movs r0, 0
- str r0, [sp]
- adds r0, r7, 0
- adds r1, r6, 0
- adds r2, r5, 0
- adds r3, r4, 0
- bl DoMultichoice
- movs r0, 0x1
- b _080E1E4E
- .pool
-_080E1E4C:
- movs r0, 0
-_080E1E4E:
- add sp, 0x4
- pop {r4-r7}
- pop {r1}
- bx r1
- thumb_func_end ScriptMenu_Multichoice
-
- thumb_func_start ScriptMenu_MultichoiceWithDefault
-ScriptMenu_MultichoiceWithDefault: @ 80E1E58
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- sub sp, 0x4
- ldr r4, [sp, 0x1C]
- lsls r0, 24
- lsrs r0, 24
- mov r8, r0
- lsls r1, 24
- lsrs r7, r1, 24
- lsls r2, 24
- lsrs r6, r2, 24
- lsls r3, 24
- lsrs r5, r3, 24
- lsls r4, 24
- lsrs r4, 24
- ldr r0, =sub_80E2058
- bl FuncIsActiveTask
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- beq _080E1EA8
- ldr r1, =gSpecialVar_Result
- movs r0, 0xFF
- strh r0, [r1]
- str r4, [sp]
- mov r0, r8
- adds r1, r7, 0
- adds r2, r6, 0
- adds r3, r5, 0
- bl DoMultichoice
- movs r0, 0x1
- b _080E1EAA
- .pool
-_080E1EA8:
- movs r0, 0
-_080E1EAA:
- add sp, 0x4
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r1}
- bx r1
- thumb_func_end ScriptMenu_MultichoiceWithDefault
-
- thumb_func_start sub_80E1EB8
-sub_80E1EB8: @ 80E1EB8
- push {r4,r5,lr}
- adds r4, r0, 0
- movs r5, 0
- b _080E1EEC
-_080E1EC0:
- cmp r1, 0xFD
- bne _080E1EE4
- adds r4, 0x1
- ldrb r0, [r4]
- cmp r0, 0x1
- bne _080E1EEC
- ldr r0, =gSaveBlock2Ptr
- ldr r0, [r0]
- bl StringLength
- adds r0, r5, r0
- lsls r0, 16
- lsrs r5, r0, 16
- adds r4, 0x1
- b _080E1EEC
- .pool
-_080E1EE4:
- adds r4, 0x1
- adds r0, r5, 0x1
- lsls r0, 16
- lsrs r5, r0, 16
-_080E1EEC:
- ldrb r1, [r4]
- adds r0, r1, 0
- cmp r0, 0xFF
- bne _080E1EC0
- adds r0, r5, 0
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_80E1EB8
-
- thumb_func_start DoMultichoice
-@ void DoMultichoice(u8 x, u8 y, u8 menuId, bool8 noCancelling)
-DoMultichoice: @ 80E1EFC
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x8
- ldr r4, [sp, 0x28]
- lsls r0, 24
- lsrs r7, r0, 24
- lsls r1, 24
- lsrs r1, 24
- mov r9, r1
- lsls r2, 24
- lsrs r2, 24
- mov r10, r2
- lsls r3, 24
- lsrs r3, 24
- str r3, [sp]
- lsls r4, 24
- lsrs r4, 24
- str r4, [sp, 0x4]
- ldr r1, =gUnknown_0858B760
- lsls r0, r2, 3
- adds r0, r1
- ldrb r6, [r0, 0x4]
- ldr r0, [r0]
- mov r8, r0
- movs r1, 0
- cmp r1, r6
- bge _080E1F4C
- mov r5, r8
- adds r4, r6, 0
-_080E1F3C:
- ldr r0, [r5]
- bl display_text_and_get_width
- adds r1, r0, 0
- adds r5, 0x8
- subs r4, 0x1
- cmp r4, 0
- bne _080E1F3C
-_080E1F4C:
- adds r0, r1, 0
- bl convert_pixel_width_to_tile_width
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- adds r0, r7, 0
- adds r1, r4, 0
- bl sub_80E2D5C
- lsls r0, 24
- lsrs r7, r0, 24
- lsls r3, r6, 25
- lsrs r3, 24
- adds r0, r7, 0
- mov r1, r9
- adds r2, r4, 0
- bl CreateWindowFromRect
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- adds r0, r4, 0
- movs r1, 0
- bl SetStandardWindowBorderStyle
- adds r0, r4, 0
- adds r1, r6, 0
- mov r2, r8
- bl PrintMenuTable
- adds r0, r4, 0
- adds r1, r6, 0
- ldr r2, [sp, 0x4]
- bl InitMenuInUpperLeftCornerPlaySoundWhenAPressed
- movs r0, 0
- bl schedule_bg_copy_tilemap_to_vram
- ldr r0, [sp]
- adds r1, r6, 0
- adds r2, r4, 0
- mov r3, r10
- bl sub_80E1FBC
- add sp, 0x8
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .pool
- thumb_func_end DoMultichoice
-
- thumb_func_start sub_80E1FBC
-sub_80E1FBC: @ 80E1FBC
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- lsls r0, 24
- lsrs r0, 24
- mov r8, r0
- lsls r1, 24
- lsrs r7, r1, 24
- lsls r2, 24
- lsrs r2, 24
- mov r9, r2
- lsls r3, 24
- lsrs r4, r3, 24
- ldr r1, =gUnknown_02039F90
- movs r0, 0x2
- strb r0, [r1]
- movs r2, 0
- ldr r6, =sub_80E2058
- ldr r5, =gUnknown_0858BB68
- movs r3, 0xC
-_080E1FE6:
- adds r0, r2, r5
- ldrb r0, [r0]
- cmp r0, r4
- bne _080E1FF0
- strb r3, [r1]
-_080E1FF0:
- adds r0, r2, 0x1
- lsls r0, 24
- lsrs r2, r0, 24
- cmp r2, 0x5
- bls _080E1FE6
- adds r0, r6, 0
- movs r1, 0x50
- bl CreateTask
- lsls r0, 24
- lsrs r2, r0, 24
- ldr r1, =gTasks
- lsls r0, r2, 2
- adds r0, r2
- lsls r0, 3
- adds r1, r0, r1
- mov r0, r8
- strh r0, [r1, 0x10]
- cmp r7, 0x3
- bls _080E202C
- movs r0, 0x1
- b _080E202E
- .pool
-_080E202C:
- movs r0, 0
-_080E202E:
- strh r0, [r1, 0x12]
- ldr r1, =gTasks
- lsls r0, r2, 2
- adds r0, r2
- lsls r0, 3
- adds r0, r1
- mov r1, r9
- strh r1, [r0, 0x14]
- strh r4, [r0, 0x16]
- adds r0, r4, 0
- bl sub_80E2A94
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_80E1FBC
-
- thumb_func_start sub_80E2058
-sub_80E2058: @ 80E2058
- push {r4-r6,lr}
- lsls r0, 24
- lsrs r6, r0, 24
- lsls r0, r6, 2
- adds r0, r6
- lsls r0, 3
- ldr r1, =gTasks + 0x8
- adds r5, r0, r1
- ldr r0, =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- bne _080E20FC
- ldr r1, =gUnknown_02039F90
- ldrb r0, [r1]
- cmp r0, 0
- beq _080E2090
- subs r0, 0x1
- strb r0, [r1]
- b _080E20FC
- .pool
-_080E2090:
- movs r1, 0xA
- ldrsh r0, [r5, r1]
- cmp r0, 0
- bne _080E209E
- bl Menu_ProcessInputNoWrapAround
- b _080E20A2
-_080E209E:
- bl ProcessMenuInput
-_080E20A2:
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r0, =gMain
- ldrh r1, [r0, 0x2E]
- movs r0, 0xC0
- ands r0, r1
- cmp r0, 0
- beq _080E20B8
- ldrb r0, [r5, 0xE]
- bl sub_80E2A94
-_080E20B8:
- lsls r0, r4, 24
- asrs r1, r0, 24
- movs r0, 0x2
- negs r0, r0
- cmp r1, r0
- beq _080E20FC
- adds r0, 0x1
- cmp r1, r0
- bne _080E20E8
- movs r1, 0x8
- ldrsh r0, [r5, r1]
- cmp r0, 0
- bne _080E20FC
- movs r0, 0x5
- bl PlaySE
- ldr r1, =gSpecialVar_Result
- movs r0, 0x7F
- strh r0, [r1]
- b _080E20EC
- .pool
-_080E20E8:
- ldr r0, =gSpecialVar_Result
- strh r1, [r0]
-_080E20EC:
- ldrb r0, [r5, 0xC]
- bl sub_80E2A78
- adds r0, r6, 0
- bl DestroyTask
- bl EnableBothScriptContexts
-_080E20FC:
- pop {r4-r6}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_80E2058
-
- thumb_func_start ScriptMenu_YesNo
-ScriptMenu_YesNo: @ 80E2108
- push {r4,lr}
- ldr r4, =task_yes_no_maybe
- adds r0, r4, 0
- bl FuncIsActiveTask
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- beq _080E2138
- ldr r1, =gSpecialVar_Result
- movs r0, 0xFF
- strh r0, [r1]
- bl sub_8197930
- adds r0, r4, 0
- movs r1, 0x50
- bl CreateTask
- movs r0, 0x1
- b _080E213A
- .pool
-_080E2138:
- movs r0, 0
-_080E213A:
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end ScriptMenu_YesNo
-
- thumb_func_start sub_80E2140
-sub_80E2140: @ 80E2140
- push {lr}
- ldr r0, =gSpecialVar_Result
- ldrh r0, [r0]
- cmp r0, 0xFF
- beq _080E2154
- movs r0, 0x1
- b _080E2156
- .pool
-_080E2154:
- movs r0, 0
-_080E2156:
- pop {r1}
- bx r1
- thumb_func_end sub_80E2140
-
- thumb_func_start task_yes_no_maybe
-task_yes_no_maybe: @ 80E215C
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r1, =gTasks
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r1, r0, r1
- ldrh r2, [r1, 0xC]
- movs r3, 0xC
- ldrsh r0, [r1, r3]
- cmp r0, 0x4
- bgt _080E2180
- adds r0, r2, 0x1
- strh r0, [r1, 0xC]
- b _080E21C4
- .pool
-_080E2180:
- bl Menu_ProcessInputNoWrap_
- lsls r0, 24
- asrs r1, r0, 24
- movs r0, 0x1
- negs r0, r0
- cmp r1, r0
- beq _080E21A4
- cmp r1, r0
- bgt _080E219C
- subs r0, 0x1
- cmp r1, r0
- beq _080E21C4
- b _080E21BA
-_080E219C:
- cmp r1, 0
- beq _080E21B4
- cmp r1, 0x1
- bne _080E21BA
-_080E21A4:
- movs r0, 0x5
- bl PlaySE
- ldr r1, =gSpecialVar_Result
- movs r0, 0
- b _080E21B8
- .pool
-_080E21B4:
- ldr r1, =gSpecialVar_Result
- movs r0, 0x1
-_080E21B8:
- strh r0, [r1]
-_080E21BA:
- adds r0, r4, 0
- bl DestroyTask
- bl EnableBothScriptContexts
-_080E21C4:
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end task_yes_no_maybe
-
- thumb_func_start ScriptMenu_MultichoiceGrid
-ScriptMenu_MultichoiceGrid: @ 80E21D0
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x10
- ldr r4, [sp, 0x30]
- lsls r0, 24
- lsrs r7, r0, 24
- lsls r1, 24
- lsrs r1, 24
- str r1, [sp, 0x4]
- lsls r2, 24
- lsrs r5, r2, 24
- lsls r3, 24
- lsrs r3, 24
- str r3, [sp, 0x8]
- lsls r4, 24
- lsrs r4, 24
- mov r10, r4
- ldr r0, =sub_80E2308
- bl FuncIsActiveTask
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _080E2210
- movs r0, 0
- b _080E22E8
- .pool
-_080E2210:
- ldr r0, =gSpecialVar_Result
- movs r1, 0xFF
- strh r1, [r0]
- movs r2, 0
- movs r6, 0
- ldr r1, =gUnknown_0858B760
- lsls r5, 3
- adds r0, r5, r1
- str r5, [sp, 0xC]
- ldrb r0, [r0, 0x4]
- cmp r2, r0
- bge _080E2246
- mov r8, r1
-_080E222A:
- mov r0, r8
- adds r4, r5, r0
- ldr r1, [r4]
- lsls r0, r6, 3
- adds r0, r1
- ldr r0, [r0]
- adds r1, r2, 0
- bl display_text_and_get_width
- adds r2, r0, 0
- adds r6, 0x1
- ldrb r4, [r4, 0x4]
- cmp r6, r4
- blt _080E222A
-_080E2246:
- adds r0, r2, 0
- bl convert_pixel_width_to_tile_width
- adds r5, r0, 0
- lsls r5, 24
- lsrs r5, 24
- mov r1, r10
- muls r1, r5
- mov r8, r1
- adds r0, r7, 0
- bl sub_80E2D5C
- lsls r0, 24
- lsrs r7, r0, 24
- ldr r2, =gUnknown_0858B760
- mov r9, r2
- ldr r0, [sp, 0xC]
- add r9, r0
- mov r1, r9
- ldrb r0, [r1, 0x4]
- mov r1, r10
- bl __udivsi3
- adds r6, r0, 0
- lsls r6, 24
- lsrs r6, 24
- ldr r0, =sub_80E2308
- movs r1, 0x50
- bl CreateTask
- lsls r0, 24
- lsrs r0, 24
- ldr r1, =gTasks
- lsls r4, r0, 2
- adds r4, r0
- lsls r4, 3
- adds r4, r1
- mov r2, sp
- ldrh r2, [r2, 0x8]
- strh r2, [r4, 0x10]
- mov r0, r8
- lsls r0, 24
- lsrs r0, 24
- mov r8, r0
- lsls r3, r6, 25
- lsrs r3, 24
- adds r0, r7, 0
- ldr r1, [sp, 0x4]
- mov r2, r8
- bl CreateWindowFromRect
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r4, 0x14]
- movs r1, 0
- bl SetStandardWindowBorderStyle
- ldrb r0, [r4, 0x14]
- lsls r5, 27
- lsrs r5, 24
- mov r2, r9
- ldr r1, [r2]
- str r1, [sp]
- adds r1, r5, 0
- mov r2, r10
- adds r3, r6, 0
- bl sub_81997AC
- ldrb r0, [r4, 0x14]
- movs r1, 0
- str r1, [sp]
- adds r1, r5, 0
- mov r2, r10
- adds r3, r6, 0
- bl sub_8199944
- ldrb r0, [r4, 0x14]
- movs r1, 0x3
- bl CopyWindowToVram
- movs r0, 0x1
-_080E22E8:
- add sp, 0x10
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r1}
- bx r1
- .pool
- thumb_func_end ScriptMenu_MultichoiceGrid
-
- thumb_func_start sub_80E2308
-sub_80E2308: @ 80E2308
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- ldr r1, =gTasks + 0x8
- adds r5, r0, r1
- bl sub_8199334
- lsls r0, 24
- asrs r1, r0, 24
- movs r0, 0x2
- negs r0, r0
- cmp r1, r0
- beq _080E2360
- adds r0, 0x1
- cmp r1, r0
- bne _080E234C
- movs r1, 0x8
- ldrsh r0, [r5, r1]
- cmp r0, 0
- bne _080E2360
- movs r0, 0x5
- bl PlaySE
- ldr r1, =gSpecialVar_Result
- movs r0, 0x7F
- strh r0, [r1]
- b _080E2350
- .pool
-_080E234C:
- ldr r0, =gSpecialVar_Result
- strh r1, [r0]
-_080E2350:
- ldrb r0, [r5, 0xC]
- bl sub_80E2A78
- adds r0, r4, 0
- bl DestroyTask
- bl EnableBothScriptContexts
-_080E2360:
- pop {r4,r5}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_80E2308
-
- thumb_func_start ScrSpecial_CreatePCMenu
-@ bool ScrSpecial_CreatePCMenu()
-ScrSpecial_CreatePCMenu: @ 80E236C
- push {lr}
- ldr r0, =sub_80E2058
- bl FuncIsActiveTask
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- beq _080E2394
- ldr r1, =gSpecialVar_Result
- movs r0, 0xFF
- strh r0, [r1]
- bl CreatePCMenu
- movs r0, 0x1
- b _080E2396
- .pool
-_080E2394:
- movs r0, 0
-_080E2396:
- pop {r1}
- bx r1
- thumb_func_end ScrSpecial_CreatePCMenu
-
- thumb_func_start CreatePCMenu
-CreatePCMenu: @ 80E239C
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- sub sp, 0xC
- movs r7, 0x8
- movs r5, 0
- movs r4, 0
- ldr r6, =gUnknown_0858BB70
-_080E23AC:
- ldm r6!, {r0}
- adds r1, r5, 0
- bl display_text_and_get_width
- adds r5, r0, 0
- adds r4, 0x1
- cmp r4, 0x3
- bls _080E23AC
- ldr r6, =0x00000864 @ = FLAG_SYS_GAME_CLEAR
- adds r0, r6, 0
- bl FlagGet
- lsls r0, 24
- cmp r0, 0
- beq _080E23D4
- ldr r0, =gText_HallOfFame
- adds r1, r5, 0
- bl display_text_and_get_width
- adds r5, r0, 0
-_080E23D4:
- adds r0, r5, 0
- bl convert_pixel_width_to_tile_width
- lsls r0, 24
- lsrs r4, r0, 24
- adds r0, r6, 0
- bl FlagGet
- lsls r0, 24
- lsrs r5, r0, 24
- cmp r5, 0
- beq _080E2448
- movs r0, 0x4
- mov r8, r0
- movs r0, 0
- movs r1, 0
- adds r2, r4, 0
- movs r3, 0x8
- bl CreateWindowFromRect
- lsls r0, 24
- lsrs r6, r0, 24
- adds r0, r6, 0
- movs r1, 0
- bl SetStandardWindowBorderStyle
- ldr r2, =gText_HallOfFame
- movs r0, 0x21
- str r0, [sp]
- movs r5, 0xFF
- str r5, [sp, 0x4]
- movs r4, 0
- str r4, [sp, 0x8]
- adds r0, r6, 0
- movs r1, 0x1
- adds r3, r7, 0
- bl AddTextPrinterParameterized
- ldr r2, =gText_LogOff
- movs r0, 0x31
- str r0, [sp]
- str r5, [sp, 0x4]
- str r4, [sp, 0x8]
- adds r0, r6, 0
- movs r1, 0x1
- adds r3, r7, 0
- bl AddTextPrinterParameterized
- b _080E247A
- .pool
-_080E2448:
- movs r0, 0x3
- mov r8, r0
- movs r0, 0
- movs r1, 0
- adds r2, r4, 0
- movs r3, 0x6
- bl CreateWindowFromRect
- lsls r0, 24
- lsrs r6, r0, 24
- adds r0, r6, 0
- movs r1, 0
- bl SetStandardWindowBorderStyle
- ldr r2, =gText_LogOff
- movs r0, 0x21
- str r0, [sp]
- movs r0, 0xFF
- str r0, [sp, 0x4]
- str r5, [sp, 0x8]
- adds r0, r6, 0
- movs r1, 0x1
- adds r3, r7, 0
- bl AddTextPrinterParameterized
-_080E247A:
- ldr r0, =0x000008ab
- bl FlagGet
- lsls r0, 24
- lsrs r1, r0, 24
- cmp r1, 0
- beq _080E24B0
- ldr r2, =gText_LanettesPC
- movs r0, 0x1
- str r0, [sp]
- movs r0, 0xFF
- str r0, [sp, 0x4]
- movs r0, 0
- str r0, [sp, 0x8]
- adds r0, r6, 0
- movs r1, 0x1
- adds r3, r7, 0
- bl AddTextPrinterParameterized
- b _080E24C6
- .pool
-_080E24B0:
- ldr r2, =gText_SomeonesPC
- movs r0, 0x1
- str r0, [sp]
- movs r0, 0xFF
- str r0, [sp, 0x4]
- str r1, [sp, 0x8]
- adds r0, r6, 0
- movs r1, 0x1
- adds r3, r7, 0
- bl AddTextPrinterParameterized
-_080E24C6:
- ldr r4, =gStringVar4
- ldr r1, =gText_PlayersPC
- adds r0, r4, 0
- bl StringExpandPlaceholders
- adds r0, r6, 0
- adds r1, r4, 0
- adds r2, r7, 0
- movs r3, 0x11
- bl PrintPlayerNameOnWindow
- adds r0, r6, 0
- mov r1, r8
- movs r2, 0
- bl InitMenuInUpperLeftCornerPlaySoundWhenAPressed
- adds r0, r6, 0
- movs r1, 0x3
- bl CopyWindowToVram
- movs r0, 0
- mov r1, r8
- adds r2, r6, 0
- movs r3, 0x1
- bl sub_80E1FBC
- add sp, 0xC
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .pool
- thumb_func_end CreatePCMenu
-
- thumb_func_start ScriptMenu_DisplayPCStartupPrompt
-ScriptMenu_DisplayPCStartupPrompt: @ 80E2514
- push {lr}
- sub sp, 0x10
- movs r0, 0
- movs r1, 0x1
- bl sub_819786C
- ldr r2, =gUnknown_0827266F
- movs r0, 0
- str r0, [sp]
- movs r0, 0x2
- str r0, [sp, 0x4]
- movs r0, 0x1
- str r0, [sp, 0x8]
- movs r0, 0x3
- str r0, [sp, 0xC]
- movs r0, 0
- movs r1, 0x1
- movs r3, 0
- bl AddTextPrinterParameterized2
- add sp, 0x10
- pop {r0}
- bx r0
- .pool
- thumb_func_end ScriptMenu_DisplayPCStartupPrompt
-
- thumb_func_start sub_80E2548
-sub_80E2548: @ 80E2548
- push {lr}
- ldr r0, =sub_80E2058
- bl FuncIsActiveTask
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- beq _080E2570
- ldr r1, =gSpecialVar_Result
- movs r0, 0xFF
- strh r0, [r1]
- bl sub_80E2578
- movs r0, 0x1
- b _080E2572
- .pool
-_080E2570:
- movs r0, 0
-_080E2572:
- pop {r1}
- bx r1
- thumb_func_end sub_80E2548
-
- thumb_func_start sub_80E2578
-sub_80E2578: @ 80E2578
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- sub sp, 0xC
- movs r5, 0
- movs r4, 0
- ldr r3, =gUnknown_03001124
- movs r2, 0xFF
-_080E258A:
- adds r0, r4, r3
- ldrb r1, [r0]
- orrs r1, r2
- strb r1, [r0]
- adds r0, r4, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0x6
- bls _080E258A
- movs r0, 0x1
- movs r1, 0
- bl GetFontAttribute
- ldr r0, =gSpecialVar_0x8004
- ldrh r1, [r0]
- cmp r1, 0
- bne _080E25D2
- ldr r4, =gUnknown_03001124
- adds r0, r5, r4
- strb r1, [r0]
- adds r0, r5, 0x1
- lsls r0, 24
- lsrs r5, r0, 24
- movs r0, 0xE8
- lsls r0, 1
- bl FlagGet
- lsls r0, 24
- lsrs r1, r0, 24
- cmp r1, 0x1
- bne _080E25D2
- adds r0, r5, r4
- strb r1, [r0]
- adds r0, r5, 0x1
- lsls r0, 24
- lsrs r5, r0, 24
-_080E25D2:
- ldr r0, =0x00000113
- movs r1, 0x1
- bl CheckBagHasItem
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _080E2630
- ldr r0, =0x000008b3
- bl FlagGet
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _080E2630
- ldr r2, =gSpecialVar_0x8004
- ldrh r0, [r2]
- cmp r0, 0
- bne _080E2606
- ldr r0, =gUnknown_03001124
- adds r0, r5, r0
- movs r1, 0x2
- strb r1, [r0]
- adds r0, r5, 0x1
- lsls r0, 24
- lsrs r5, r0, 24
-_080E2606:
- ldrh r0, [r2]
- cmp r0, 0x1
- bne _080E2630
- movs r4, 0xD7
- lsls r4, 1
- adds r0, r4, 0
- bl FlagGet
- lsls r0, 24
- cmp r0, 0
- bne _080E2630
- ldr r0, =gUnknown_03001124
- adds r0, r5, r0
- movs r1, 0x2
- strb r1, [r0]
- adds r0, r5, 0x1
- lsls r0, 24
- lsrs r5, r0, 24
- adds r0, r4, 0
- bl FlagSet
-_080E2630:
- movs r0, 0xB9
- lsls r0, 1
- movs r1, 0x1
- bl CheckBagHasItem
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _080E2690
- movs r0, 0x8E
- lsls r0, 4
- bl FlagGet
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _080E2690
- ldr r2, =gSpecialVar_0x8004
- ldrh r0, [r2]
- cmp r0, 0
- bne _080E2668
- ldr r0, =gUnknown_03001124
- adds r0, r5, r0
- movs r1, 0x3
- strb r1, [r0]
- adds r0, r5, 0x1
- lsls r0, 24
- lsrs r5, r0, 24
-_080E2668:
- ldrh r0, [r2]
- cmp r0, 0x1
- bne _080E2690
- ldr r4, =0x000001db
- adds r0, r4, 0
- bl FlagGet
- lsls r0, 24
- cmp r0, 0
- bne _080E2690
- ldr r0, =gUnknown_03001124
- adds r0, r5, r0
- movs r1, 0x3
- strb r1, [r0]
- adds r0, r5, 0x1
- lsls r0, 24
- lsrs r5, r0, 24
- adds r0, r4, 0
- bl FlagSet
-_080E2690:
- ldr r0, =0x00000173
- movs r1, 0x1
- bl CheckBagHasItem
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _080E26EC
- ldr r0, =0x000008d5
- bl FlagGet
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _080E26EC
- ldr r2, =gSpecialVar_0x8004
- ldrh r0, [r2]
- cmp r0, 0
- bne _080E26C4
- ldr r0, =gUnknown_03001124
- adds r0, r5, r0
- movs r1, 0x4
- strb r1, [r0]
- adds r0, r5, 0x1
- lsls r0, 24
- lsrs r5, r0, 24
-_080E26C4:
- ldrh r0, [r2]
- cmp r0, 0x1
- bne _080E26EC
- ldr r4, =0x000001af
- adds r0, r4, 0
- bl FlagGet
- lsls r0, 24
- cmp r0, 0
- bne _080E26EC
- ldr r0, =gUnknown_03001124
- adds r0, r5, r0
- movs r1, 0x4
- strb r1, [r0]
- adds r0, r5, 0x1
- lsls r0, 24
- lsrs r5, r0, 24
- adds r0, r4, 0
- bl FlagSet
-_080E26EC:
- movs r0, 0xBC
- lsls r0, 1
- movs r1, 0x1
- bl CheckBagHasItem
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _080E274C
- ldr r0, =0x000008d6
- bl FlagGet
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _080E274C
- ldr r2, =gSpecialVar_0x8004
- ldrh r0, [r2]
- cmp r0, 0
- bne _080E2722
- ldr r0, =gUnknown_03001124
- adds r0, r5, r0
- movs r1, 0x5
- strb r1, [r0]
- adds r0, r5, 0x1
- lsls r0, 24
- lsrs r5, r0, 24
-_080E2722:
- ldrh r0, [r2]
- cmp r0, 0x1
- bne _080E274C
- movs r4, 0xD8
- lsls r4, 1
- adds r0, r4, 0
- bl FlagGet
- lsls r0, 24
- cmp r0, 0
- bne _080E274C
- ldr r0, =gUnknown_03001124
- adds r0, r5, r0
- movs r1, 0x5
- strb r1, [r0]
- adds r0, r5, 0x1
- lsls r0, 24
- lsrs r5, r0, 24
- adds r0, r4, 0
- bl FlagSet
-_080E274C:
- ldr r0, =gUnknown_03001124
- adds r0, r5, r0
- movs r1, 0x6
- strb r1, [r0]
- adds r0, r5, 0x1
- lsls r0, 24
- lsrs r5, r0, 24
- ldr r0, =gSpecialVar_0x8004
- ldrh r0, [r0]
- cmp r0, 0
- bne _080E276E
- movs r0, 0xE8
- lsls r0, 1
- bl FlagGet
- lsls r0, 24
- lsrs r0, 24
-_080E276E:
- adds r7, r5, 0
- cmp r7, 0x7
- bne _080E27A4
- ldr r1, =gSpecialVar_0x8004
- movs r0, 0xB
- strh r0, [r1]
- bl sub_813A128
- b _080E2860
- .pool
-_080E27A4:
- movs r1, 0
- movs r4, 0
- lsls r6, r7, 25
- subs r0, r7, 0x1
- mov r9, r0
- ldr r5, =gUnknown_0858BB80
-_080E27B0:
- ldr r0, =gUnknown_03001124
- adds r0, r4, r0
- ldrb r0, [r0]
- cmp r0, 0xFF
- beq _080E27C6
- lsls r0, 2
- adds r0, r5
- ldr r0, [r0]
- bl display_text_and_get_width
- adds r1, r0, 0
-_080E27C6:
- adds r4, 0x1
- cmp r4, 0x6
- bls _080E27B0
- adds r0, r1, 0
- bl convert_pixel_width_to_tile_width
- adds r2, r0, 0
- lsls r2, 24
- lsrs r2, 24
- movs r0, 0x1C
- subs r0, r2
- lsls r0, 24
- lsrs r0, 24
- movs r1, 0x6
- subs r1, r7
- lsls r1, 25
- lsrs r1, 24
- lsrs r3, r6, 24
- bl CreateWindowFromRect
- lsls r0, 24
- lsrs r6, r0, 24
- adds r0, r6, 0
- movs r1, 0
- bl SetStandardWindowBorderStyle
- movs r5, 0
- movs r4, 0
- ldr r0, =gUnknown_0858BB80
- mov r8, r0
-_080E2802:
- ldr r0, =gUnknown_03001124
- adds r1, r4, r0
- ldrb r0, [r1]
- cmp r0, 0xFF
- beq _080E2834
- lsls r0, 2
- add r0, r8
- ldr r2, [r0]
- lsls r0, r5, 4
- adds r0, 0x1
- lsls r0, 24
- lsrs r0, 24
- str r0, [sp]
- movs r0, 0xFF
- str r0, [sp, 0x4]
- movs r0, 0
- str r0, [sp, 0x8]
- adds r0, r6, 0
- movs r1, 0x1
- movs r3, 0x8
- bl AddTextPrinterParameterized
- adds r0, r5, 0x1
- lsls r0, 24
- lsrs r5, r0, 24
-_080E2834:
- adds r0, r4, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0x6
- bls _080E2802
- mov r0, r9
- lsls r2, r0, 24
- lsrs r2, 24
- adds r0, r6, 0
- adds r1, r7, 0
- bl InitMenuInUpperLeftCornerPlaySoundWhenAPressed
- adds r0, r6, 0
- movs r1, 0x3
- bl CopyWindowToVram
- movs r0, 0
- adds r1, r7, 0
- adds r2, r6, 0
- movs r3, 0x8
- bl sub_80E1FBC
-_080E2860:
- add sp, 0xC
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_80E2578
-
- thumb_func_start sub_80E2878
-sub_80E2878: @ 80E2878
- push {lr}
- ldr r2, =gSpecialVar_Result
- ldrh r0, [r2]
- cmp r0, 0x7F
- beq _080E288C
- ldr r0, =gUnknown_03001124
- ldrh r1, [r2]
- adds r1, r0
- ldrb r0, [r1]
- strh r0, [r2]
-_080E288C:
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_80E2878
-
- thumb_func_start task_picbox
-task_picbox: @ 80E2898
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- ldr r1, =gTasks
- adds r4, r0, r1
- movs r1, 0x8
- ldrsh r0, [r4, r1]
- cmp r0, 0x1
- beq _080E28F8
- cmp r0, 0x1
- bgt _080E28C0
- cmp r0, 0
- beq _080E28DE
- b _080E28F8
- .pool
-_080E28C0:
- cmp r0, 0x2
- beq _080E28CA
- cmp r0, 0x3
- beq _080E28EC
- b _080E28F8
-_080E28CA:
- movs r0, 0xC
- ldrsh r1, [r4, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- ldr r1, =gSprites
- adds r0, r1
- ldrb r1, [r4, 0xC]
- bl FreeResourcesAndDestroySprite
-_080E28DE:
- ldrh r0, [r4, 0x8]
- adds r0, 0x1
- strh r0, [r4, 0x8]
- b _080E28F8
- .pool
-_080E28EC:
- ldrb r0, [r4, 0x12]
- bl sub_80E2A78
- adds r0, r5, 0
- bl DestroyTask
-_080E28F8:
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end task_picbox
-
- thumb_func_start ScriptMenu_ShowPokemonPic
-ScriptMenu_ShowPokemonPic: @ 80E2900
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- lsls r0, 16
- lsrs r0, 16
- mov r8, r0
- lsls r1, 24
- lsrs r7, r1, 24
- lsls r2, 24
- lsrs r6, r2, 24
- ldr r4, =task_picbox
- adds r0, r4, 0
- bl FindTaskIdByFunc
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0xFF
- bne _080E29B8
- lsls r1, r7, 19
- movs r0, 0xA0
- lsls r0, 14
- adds r1, r0
- asrs r1, 16
- lsls r2, r6, 19
- adds r2, r0
- asrs r2, 16
- mov r0, r8
- movs r3, 0
- bl CreateMonSprite_PicBox
- adds r5, r0, 0
- lsls r5, 24
- lsrs r5, 24
- adds r0, r4, 0
- movs r1, 0x50
- bl CreateTask
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- adds r0, r7, 0
- adds r1, r6, 0
- movs r2, 0x8
- movs r3, 0x8
- bl CreateWindowFromRect
- ldr r1, =gTasks
- lsls r3, r4, 2
- adds r3, r4
- lsls r3, 3
- adds r3, r1
- lsls r0, 24
- lsrs r0, 24
- movs r1, 0
- strh r0, [r3, 0x12]
- strh r1, [r3, 0x8]
- mov r0, r8
- strh r0, [r3, 0xA]
- strh r5, [r3, 0xC]
- ldr r4, =gSprites
- lsls r1, r5, 4
- adds r1, r5
- lsls r1, 2
- adds r0, r4, 0
- adds r0, 0x1C
- adds r0, r1, r0
- ldr r2, =SpriteCallbackDummy
- str r2, [r0]
- adds r1, r4
- ldrb r2, [r1, 0x5]
- movs r0, 0xD
- negs r0, r0
- ands r0, r2
- strb r0, [r1, 0x5]
- ldrb r0, [r3, 0x12]
- movs r1, 0x1
- bl SetStandardWindowBorderStyle
- movs r0, 0
- bl schedule_bg_copy_tilemap_to_vram
- movs r0, 0x1
- b _080E29BA
- .pool
-_080E29B8:
- movs r0, 0
-_080E29BA:
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r1}
- bx r1
- thumb_func_end ScriptMenu_ShowPokemonPic
-
- thumb_func_start ScriptMenu_GetPicboxWaitFunc
-ScriptMenu_GetPicboxWaitFunc: @ 80E29C4
- push {lr}
- ldr r0, =task_picbox
- bl FindTaskIdByFunc
- lsls r0, 24
- lsrs r2, r0, 24
- cmp r2, 0xFF
- beq _080E29F4
- ldr r0, =gTasks
- lsls r1, r2, 2
- adds r1, r2
- lsls r1, 3
- adds r1, r0
- ldrh r0, [r1, 0x8]
- adds r0, 0x1
- strh r0, [r1, 0x8]
- ldr r0, =sub_80E29FC
- b _080E29F6
- .pool
-_080E29F4:
- movs r0, 0
-_080E29F6:
- pop {r1}
- bx r1
- thumb_func_end ScriptMenu_GetPicboxWaitFunc
-
- thumb_func_start sub_80E29FC
-sub_80E29FC: @ 80E29FC
- push {lr}
- ldr r0, =task_picbox
- bl FindTaskIdByFunc
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0xFF
- beq _080E2A14
- movs r0, 0
- b _080E2A16
- .pool
-_080E2A14:
- movs r0, 0x1
-_080E2A16:
- pop {r1}
- bx r1
- thumb_func_end sub_80E29FC
-
- thumb_func_start CreateWindowFromRect
-CreateWindowFromRect: @ 80E2A1C
- push {r4,r5,lr}
- sub sp, 0x20
- adds r4, r0, 0
- adds r5, r1, 0
- lsls r4, 24
- lsls r5, 24
- lsls r2, 24
- lsrs r2, 24
- lsls r3, 24
- lsrs r3, 24
- movs r0, 0x80
- lsls r0, 17
- adds r4, r0
- lsrs r4, 24
- adds r5, r0
- lsrs r5, 24
- str r2, [sp]
- str r3, [sp, 0x4]
- movs r0, 0xF
- str r0, [sp, 0x8]
- movs r0, 0x64
- str r0, [sp, 0xC]
- add r0, sp, 0x10
- movs r1, 0
- adds r2, r4, 0
- adds r3, r5, 0
- bl CreateWindowTemplate
- ldr r0, [sp, 0x10]
- ldr r1, [sp, 0x14]
- str r0, [sp, 0x18]
- str r1, [sp, 0x1C]
- add r0, sp, 0x18
- bl AddWindow
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- adds r0, r4, 0
- bl PutWindowTilemap
- adds r0, r4, 0
- add sp, 0x20
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end CreateWindowFromRect
-
- thumb_func_start sub_80E2A78
-sub_80E2A78: @ 80E2A78
- push {r4,lr}
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- adds r0, r4, 0
- movs r1, 0x1
- bl sub_8198070
- adds r0, r4, 0
- bl RemoveWindow
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_80E2A78
-
- thumb_func_start sub_80E2A94
-sub_80E2A94: @ 80E2A94
- push {r4,lr}
- sub sp, 0x10
- lsls r0, 24
- lsrs r0, 24
- subs r0, 0x4A
- cmp r0, 0x5
- bhi _080E2B70
- lsls r0, 2
- ldr r1, =_080E2AB0
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .pool
- .align 2, 0
-_080E2AB0:
- .4byte _080E2B40
- .4byte _080E2B08
- .4byte _080E2AD8
- .4byte _080E2AC8
- .4byte _080E2AE8
- .4byte _080E2AF8
-_080E2AC8:
- movs r0, 0
- movs r1, 0x11
- bl FillWindowPixelBuffer
- ldr r4, =gUnknown_0858BBAC
- b _080E2B12
- .pool
-_080E2AD8:
- movs r0, 0
- movs r1, 0x11
- bl FillWindowPixelBuffer
- ldr r4, =gUnknown_0858BB9C
- b _080E2B12
- .pool
-_080E2AE8:
- movs r0, 0
- movs r1, 0x11
- bl FillWindowPixelBuffer
- ldr r4, =gUnknown_0858BBBC
- b _080E2B12
- .pool
-_080E2AF8:
- movs r0, 0
- movs r1, 0x11
- bl FillWindowPixelBuffer
- ldr r4, =gUnknown_0858BBCC
- b _080E2B12
- .pool
-_080E2B08:
- movs r0, 0
- movs r1, 0x11
- bl FillWindowPixelBuffer
- ldr r4, =gUnknown_0858BBEC
-_080E2B12:
- bl GetMenuCursorPos
- lsls r0, 24
- lsrs r0, 22
- adds r0, r4
- ldr r2, [r0]
- movs r0, 0
- str r0, [sp]
- movs r0, 0x2
- str r0, [sp, 0x4]
- movs r0, 0x1
- str r0, [sp, 0x8]
- movs r0, 0x3
- str r0, [sp, 0xC]
- movs r0, 0
- movs r1, 0x1
- movs r3, 0
- bl AddTextPrinterParameterized2
- b _080E2B70
- .pool
-_080E2B40:
- movs r0, 0
- movs r1, 0x11
- bl FillWindowPixelBuffer
- ldr r4, =gUnknown_0858BBE0
- bl GetMenuCursorPos
- lsls r0, 24
- lsrs r0, 22
- adds r0, r4
- ldr r2, [r0]
- movs r0, 0
- str r0, [sp]
- movs r0, 0x2
- str r0, [sp, 0x4]
- movs r0, 0x1
- str r0, [sp, 0x8]
- movs r0, 0x3
- str r0, [sp, 0xC]
- movs r0, 0
- movs r1, 0x1
- movs r3, 0
- bl AddTextPrinterParameterized2
-_080E2B70:
- add sp, 0x10
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_80E2A94
-
- thumb_func_start sp106_CreateStartMenu
-sp106_CreateStartMenu: @ 80E2B7C
- push {lr}
- ldr r0, =sub_80E2058
- bl FuncIsActiveTask
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- beq _080E2BA4
- ldr r1, =gSpecialVar_Result
- movs r0, 0xFF
- strh r0, [r1]
- bl CreateStartMenu
- movs r0, 0x1
- b _080E2BA6
- .pool
-_080E2BA4:
- movs r0, 0
-_080E2BA6:
- pop {r1}
- bx r1
- thumb_func_end sp106_CreateStartMenu
-
- thumb_func_start CreateStartMenu
-CreateStartMenu: @ 80E2BAC
- push {r4-r6,lr}
- sub sp, 0xC
- movs r0, 0x15
- movs r1, 0
- movs r2, 0x7
- movs r3, 0x12
- bl CreateWindowFromRect
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- adds r0, r4, 0
- movs r1, 0
- bl SetStandardWindowBorderStyle
- ldr r2, =gText_MenuOptionPokedex
- movs r0, 0x9
- str r0, [sp]
- movs r5, 0xFF
- str r5, [sp, 0x4]
- movs r6, 0
- str r6, [sp, 0x8]
- adds r0, r4, 0
- movs r1, 0x1
- movs r3, 0x8
- bl AddTextPrinterParameterized
- ldr r2, =gText_MenuOptionPokemon
- movs r0, 0x19
- str r0, [sp]
- str r5, [sp, 0x4]
- str r6, [sp, 0x8]
- adds r0, r4, 0
- movs r1, 0x1
- movs r3, 0x8
- bl AddTextPrinterParameterized
- ldr r2, =gText_MenuOptionBag
- movs r0, 0x29
- str r0, [sp]
- str r5, [sp, 0x4]
- str r6, [sp, 0x8]
- adds r0, r4, 0
- movs r1, 0x1
- movs r3, 0x8
- bl AddTextPrinterParameterized
- ldr r2, =gText_MenuOptionPokenav
- movs r0, 0x39
- str r0, [sp]
- str r5, [sp, 0x4]
- str r6, [sp, 0x8]
- adds r0, r4, 0
- movs r1, 0x1
- movs r3, 0x8
- bl AddTextPrinterParameterized
- ldr r0, =gSaveBlock2Ptr
- ldr r2, [r0]
- movs r0, 0x49
- str r0, [sp]
- str r5, [sp, 0x4]
- str r6, [sp, 0x8]
- adds r0, r4, 0
- movs r1, 0x1
- movs r3, 0x8
- bl AddTextPrinterParameterized
- ldr r2, =gText_MenuOptionSave
- movs r0, 0x59
- str r0, [sp]
- str r5, [sp, 0x4]
- str r6, [sp, 0x8]
- adds r0, r4, 0
- movs r1, 0x1
- movs r3, 0x8
- bl AddTextPrinterParameterized
- ldr r2, =gText_MenuOptionOption
- movs r0, 0x69
- str r0, [sp]
- str r5, [sp, 0x4]
- str r6, [sp, 0x8]
- adds r0, r4, 0
- movs r1, 0x1
- movs r3, 0x8
- bl AddTextPrinterParameterized
- ldr r2, =gText_MenuOptionExit
- movs r0, 0x79
- str r0, [sp]
- str r5, [sp, 0x4]
- str r6, [sp, 0x8]
- adds r0, r4, 0
- movs r1, 0x1
- movs r3, 0x8
- bl AddTextPrinterParameterized
- movs r0, 0x10
- str r0, [sp]
- movs r0, 0x8
- str r0, [sp, 0x4]
- str r6, [sp, 0x8]
- adds r0, r4, 0
- movs r1, 0x1
- movs r2, 0
- movs r3, 0x9
- bl sub_81983AC
- movs r0, 0
- movs r1, 0x8
- adds r2, r4, 0
- movs r3, 0x56
- bl sub_80E2CC4
- adds r0, r4, 0
- movs r1, 0x3
- bl CopyWindowToVram
- add sp, 0xC
- pop {r4-r6}
- pop {r0}
- bx r0
- .pool
- thumb_func_end CreateStartMenu
-
- thumb_func_start sub_80E2CC4
-sub_80E2CC4: @ 80E2CC4
- push {r4-r6,lr}
- adds r4, r0, 0
- adds r5, r2, 0
- adds r6, r3, 0
- lsls r4, 24
- lsrs r4, 24
- lsls r5, 24
- lsrs r5, 24
- lsls r6, 24
- lsrs r6, 24
- ldr r1, =gUnknown_02039F90
- movs r0, 0x2
- strb r0, [r1]
- ldr r0, =sub_80E2058
- movs r1, 0x50
- bl CreateTask
- lsls r0, 24
- lsrs r0, 24
- ldr r2, =gTasks
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r1, r2
- movs r0, 0
- strh r4, [r1, 0x10]
- strh r0, [r1, 0x12]
- strh r5, [r1, 0x14]
- strh r6, [r1, 0x16]
- pop {r4-r6}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_80E2CC4
-
- thumb_func_start display_text_and_get_width_internal
-display_text_and_get_width_internal: @ 80E2D10
- push {lr}
- sub sp, 0x40
- adds r1, r0, 0
- mov r0, sp
- bl StringExpandPlaceholders
- movs r0, 0x1
- mov r1, sp
- movs r2, 0
- bl GetStringWidth
- add sp, 0x40
- pop {r1}
- bx r1
- thumb_func_end display_text_and_get_width_internal
-
- thumb_func_start display_text_and_get_width
-display_text_and_get_width: @ 80E2D2C
- push {r4,lr}
- adds r4, r1, 0
- bl display_text_and_get_width_internal
- cmp r0, r4
- bge _080E2D3A
- adds r0, r4, 0
-_080E2D3A:
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end display_text_and_get_width
-
- thumb_func_start convert_pixel_width_to_tile_width
-convert_pixel_width_to_tile_width: @ 80E2D40
- push {lr}
- adds r1, r0, 0
- adds r0, 0x9
- cmp r0, 0
- bge _080E2D4C
- adds r0, 0x7
-_080E2D4C:
- asrs r0, 3
- adds r0, 0x1
- cmp r0, 0x1C
- ble _080E2D56
- movs r0, 0x1C
-_080E2D56:
- pop {r1}
- bx r1
- thumb_func_end convert_pixel_width_to_tile_width
-
- thumb_func_start sub_80E2D5C
-sub_80E2D5C: @ 80E2D5C
- push {lr}
- adds r2, r0, 0
- adds r0, r2, r1
- cmp r0, 0x1C
- ble _080E2D70
- movs r0, 0x1C
- subs r2, r0, r1
- cmp r2, 0
- bge _080E2D70
- movs r2, 0
-_080E2D70:
- adds r0, r2, 0
- pop {r1}
- bx r1
- thumb_func_end sub_80E2D5C
-
- .align 2, 0 @ Don't pad with nop.