summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--Makefile10
-rw-r--r--asm/money.s480
-rw-r--r--asm/rom_80B5054.s1237
-rw-r--r--asm/script_menu.s1525
-rw-r--r--ld_script.txt4
5 files changed, 1630 insertions, 1626 deletions
diff --git a/Makefile b/Makefile
index 0cb5ed993..e82af3d4e 100644
--- a/Makefile
+++ b/Makefile
@@ -81,9 +81,9 @@ asm/trainer_card.o \
asm/save_menu_util.o \
asm/rom_8094928.o \
asm/berry.o \
-asm/rom_80B5054.o \
-asm/naming_screen.o \
asm/script_menu.o \
+asm/naming_screen.o \
+asm/money.o \
asm/contest_effect.o \
asm/record_mixing.o \
asm/sound_check_menu.o \
@@ -130,7 +130,11 @@ asm/mystery_event_menu.o \
asm/save_failed_screen.o \
asm/rom_81473B8.o \
asm/clear_save_data_menu.o \
-asm/rom_8148B8C.o
+asm/rom_8148B8C.o \
+asm/libgcnmultiboot.o \
+asm/m4a_1.o \
+asm/m4a_3.o \
+asm/libagbsyscall.o
DATA_ASM_OBJS := data/data2.o data/graphics.o data/sound_data.o \
data/event_scripts.o data/battle_anim_scripts.o \
diff --git a/asm/money.s b/asm/money.s
new file mode 100644
index 000000000..0d630ba52
--- /dev/null
+++ b/asm/money.s
@@ -0,0 +1,480 @@
+ .include "constants/gba_constants.s"
+ .include "constants/species_constants.s"
+ .include "asm/macros.s"
+
+ .syntax unified
+
+ .text
+
+ thumb_func_start IsEnoughMoney
+IsEnoughMoney: @ 80B79A8
+ push {lr}
+ cmp r0, r1
+ bcs _080B79B2
+ movs r0, 0
+ b _080B79B4
+_080B79B2:
+ movs r0, 0x1
+_080B79B4:
+ pop {r1}
+ bx r1
+ thumb_func_end IsEnoughMoney
+
+ thumb_func_start sub_80B79B8
+sub_80B79B8: @ 80B79B8
+ push {lr}
+ adds r2, r0, 0
+ ldr r0, [r2]
+ adds r1, r0, r1
+ cmp r0, r1
+ bls _080B79CC
+ ldr r0, _080B79C8 @ =0x000f423f
+ b _080B79D4
+ .align 2, 0
+_080B79C8: .4byte 0x000f423f
+_080B79CC:
+ str r1, [r2]
+ ldr r0, _080B79DC @ =0x000f423f
+ cmp r1, r0
+ bls _080B79D6
+_080B79D4:
+ str r0, [r2]
+_080B79D6:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080B79DC: .4byte 0x000f423f
+ thumb_func_end sub_80B79B8
+
+ thumb_func_start sub_80B79E0
+sub_80B79E0: @ 80B79E0
+ push {lr}
+ adds r2, r0, 0
+ ldr r0, [r2]
+ cmp r0, r1
+ bcs _080B79EE
+ movs r0, 0
+ b _080B79F0
+_080B79EE:
+ subs r0, r1
+_080B79F0:
+ str r0, [r2]
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80B79E0
+
+ thumb_func_start sub_80B79F8
+sub_80B79F8: @ 80B79F8
+ push {r4,lr}
+ adds r3, r0, 0
+ lsls r2, 24
+ lsrs r4, r2, 24
+ ldr r0, _080B7A0C @ =0x000f423f
+ cmp r1, r0
+ bls _080B7A10
+ movs r2, 0x7
+ b _080B7A46
+ .align 2, 0
+_080B7A0C: .4byte 0x000f423f
+_080B7A10:
+ ldr r0, _080B7A1C @ =0x0001869f
+ cmp r1, r0
+ bls _080B7A20
+ movs r2, 0x6
+ b _080B7A46
+ .align 2, 0
+_080B7A1C: .4byte 0x0001869f
+_080B7A20:
+ ldr r0, _080B7A2C @ =0x00002710
+ cmp r1, r0
+ bls _080B7A30
+ movs r2, 0x5
+ b _080B7A46
+ .align 2, 0
+_080B7A2C: .4byte 0x00002710
+_080B7A30:
+ ldr r0, _080B7A90 @ =0x000003e7
+ movs r2, 0x4
+ cmp r1, r0
+ bhi _080B7A46
+ movs r2, 0x3
+ cmp r1, 0x63
+ bhi _080B7A46
+ movs r2, 0x1
+ cmp r1, 0x9
+ bls _080B7A46
+ movs r2, 0x2
+_080B7A46:
+ movs r0, 0xFC
+ strb r0, [r3]
+ movs r0, 0x14
+ strb r0, [r3, 0x1]
+ movs r0, 0x6
+ strb r0, [r3, 0x2]
+ adds r3, 0x3
+ movs r0, 0
+ subs r2, r4, r2
+ cmp r0, r2
+ bge _080B7A6C
+ movs r4, 0
+_080B7A5E:
+ strb r4, [r3]
+ adds r3, 0x1
+ adds r0, 0x1
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, r2
+ blt _080B7A5E
+_080B7A6C:
+ movs r0, 0xB7
+ strb r0, [r3]
+ adds r3, 0x1
+ adds r0, r3, 0
+ bl ConvertIntToDecimalString
+ adds r3, r0, 0
+ movs r0, 0xFC
+ strb r0, [r3]
+ movs r0, 0x14
+ strb r0, [r3, 0x1]
+ movs r0, 0
+ strb r0, [r3, 0x2]
+ movs r0, 0xFF
+ strb r0, [r3, 0x3]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080B7A90: .4byte 0x000003e7
+ thumb_func_end sub_80B79F8
+
+ thumb_func_start sub_80B7A94
+sub_80B7A94: @ 80B7A94
+ push {r4-r7,lr}
+ sub sp, 0x10
+ adds r4, r0, 0
+ lsls r1, 24
+ lsrs r5, r1, 24
+ lsls r2, 24
+ lsrs r6, r2, 24
+ lsls r3, 24
+ lsrs r7, r3, 24
+ mov r0, sp
+ adds r1, r4, 0
+ adds r2, r5, 0
+ bl sub_80B79F8
+ mov r0, sp
+ bl sub_8072CA4
+ lsls r0, 24
+ lsrs r2, r0, 24
+ adds r0, r5, 0x1
+ lsls r0, 3
+ cmp r2, r0
+ blt _080B7ACE
+ mov r0, sp
+ adds r1, r6, 0
+ adds r2, r7, 0
+ bl MenuPrint
+ b _080B7AE4
+_080B7ACE:
+ adds r1, r6, 0x1
+ adds r1, r5
+ lsls r1, 3
+ subs r1, r2
+ lsls r1, 24
+ lsrs r1, 24
+ lsls r2, r7, 3
+ mov r0, sp
+ movs r3, 0x1
+ bl MenuPrint_PixelCoords
+_080B7AE4:
+ add sp, 0x10
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80B7A94
+
+ thumb_func_start sub_80B7AEC
+sub_80B7AEC: @ 80B7AEC
+ push {r4-r6,lr}
+ sub sp, 0x20
+ adds r3, r0, 0
+ adds r4, r1, 0
+ adds r5, r2, 0
+ lsls r4, 24
+ lsrs r4, 24
+ lsls r5, 24
+ lsrs r5, 24
+ mov r6, sp
+ movs r0, 0xB7
+ strb r0, [r6]
+ adds r6, 0x1
+ adds r0, r6, 0
+ adds r1, r3, 0
+ bl ConvertIntToDecimalString
+ adds r6, r0, 0
+ mov r0, sp
+ adds r1, r4, 0
+ adds r2, r5, 0
+ bl sub_8072B4C
+ movs r0, 0xFC
+ strb r0, [r6]
+ movs r0, 0x14
+ strb r0, [r6, 0x1]
+ movs r0, 0
+ strb r0, [r6, 0x2]
+ movs r0, 0xFF
+ strb r0, [r6, 0x3]
+ add sp, 0x20
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80B7AEC
+
+ thumb_func_start sub_80B7B34
+sub_80B7B34: @ 80B7B34
+ push {r4-r7,lr}
+ mov r7, r9
+ mov r6, r8
+ push {r6,r7}
+ sub sp, 0x4
+ mov r8, r0
+ adds r5, r1, 0
+ mov r9, r2
+ lsls r0, 24
+ lsrs r0, 24
+ mov r8, r0
+ lsls r5, 24
+ lsrs r5, 24
+ mov r1, r9
+ lsls r1, 8
+ mov r9, r1
+ ldr r4, _080B7BD8 @ =gDecoration10000_Gfx
+ adds r0, r1, r4
+ lsls r6, r5, 4
+ subs r6, r5
+ lsls r1, r6, 6
+ mov r3, r8
+ adds r3, 0x1
+ lsls r3, 5
+ ldr r2, _080B7BDC @ =0x06008000
+ adds r3, r2
+ adds r1, r3
+ movs r2, 0x20
+ str r3, [sp]
+ bl CpuFastSet
+ adds r4, 0x80
+ add r9, r4
+ adds r0, r5, 0x1
+ lsls r4, r0, 4
+ subs r4, r0
+ lsls r1, r4, 6
+ ldr r3, [sp]
+ adds r1, r3
+ mov r0, r9
+ movs r2, 0x20
+ bl CpuFastSet
+ movs r3, 0
+ lsls r5, 5
+ mov r0, r8
+ adds r7, r5, r0
+ lsls r6, 1
+ adds r6, 0x1
+ add r6, r8
+ ldr r1, _080B7BE0 @ =0xfffff000
+ adds r5, r1, 0
+ ldr r0, _080B7BE4 @ =0x0600f800
+ mov r12, r0
+ ldr r1, _080B7BE8 @ =0x0600f840
+ mov r9, r1
+ lsls r4, 1
+ adds r4, 0x1
+ add r4, r8
+_080B7BAA:
+ adds r1, r7, r3
+ lsls r1, 1
+ mov r0, r12
+ adds r2, r1, r0
+ adds r0, r3, r6
+ adds r0, r5
+ strh r0, [r2]
+ add r1, r9
+ adds r0, r3, r4
+ adds r0, r5
+ strh r0, [r1]
+ adds r0, r3, 0x1
+ lsls r0, 16
+ lsrs r3, r0, 16
+ cmp r3, 0x3
+ bls _080B7BAA
+ add sp, 0x4
+ pop {r3,r4}
+ mov r8, r3
+ mov r9, r4
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080B7BD8: .4byte gDecoration10000_Gfx
+_080B7BDC: .4byte 0x06008000
+_080B7BE0: .4byte 0xfffff000
+_080B7BE4: .4byte 0x0600f800
+_080B7BE8: .4byte 0x0600f840
+ thumb_func_end sub_80B7B34
+
+ thumb_func_start sub_80B7BEC
+sub_80B7BEC: @ 80B7BEC
+ push {r4,lr}
+ adds r4, r1, 0
+ adds r3, r2, 0
+ lsls r4, 24
+ lsls r3, 24
+ movs r1, 0xC0
+ lsls r1, 19
+ adds r4, r1
+ lsrs r4, 24
+ movs r1, 0x80
+ lsls r1, 17
+ adds r3, r1
+ lsrs r3, 24
+ movs r1, 0x6
+ adds r2, r4, 0
+ bl sub_80B7A94
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80B7BEC
+
+ thumb_func_start sub_80B7C14
+sub_80B7C14: @ 80B7C14
+ push {r4-r6,lr}
+ mov r6, r8
+ push {r6}
+ mov r8, r0
+ adds r4, r1, 0
+ adds r3, r2, 0
+ lsls r4, 24
+ lsls r3, 24
+ lsrs r6, r4, 24
+ movs r0, 0xD0
+ lsls r0, 20
+ adds r4, r0
+ lsrs r4, 24
+ lsrs r5, r3, 24
+ movs r1, 0xC0
+ lsls r1, 18
+ adds r3, r1
+ lsrs r3, 24
+ adds r0, r6, 0
+ adds r1, r5, 0
+ adds r2, r4, 0
+ bl MenuDrawTextWindow
+ mov r0, r8
+ adds r1, r6, 0
+ adds r2, r5, 0
+ bl sub_80B7BEC
+ ldr r0, _080B7C88 @ =gUnknown_083CF584
+ bl LoadCompressedObjectPic
+ ldr r0, _080B7C8C @ =gUnknown_083CF58C
+ bl LoadCompressedObjectPalette
+ ldr r0, _080B7C90 @ =gSpriteTemplate_83CF56C
+ lsls r6, 19
+ movs r1, 0x98
+ lsls r1, 13
+ adds r6, r1
+ asrs r6, 16
+ lsls r5, 19
+ movs r1, 0xB0
+ lsls r1, 12
+ adds r5, r1
+ asrs r5, 16
+ adds r1, r6, 0
+ adds r2, r5, 0
+ movs r3, 0
+ bl CreateSprite
+ ldr r1, _080B7C94 @ =gUnknown_02038734
+ strb r0, [r1]
+ pop {r3}
+ mov r8, r3
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080B7C88: .4byte gUnknown_083CF584
+_080B7C8C: .4byte gUnknown_083CF58C
+_080B7C90: .4byte gSpriteTemplate_83CF56C
+_080B7C94: .4byte gUnknown_02038734
+ thumb_func_end sub_80B7C14
+
+ thumb_func_start RemoveMoneyLabelObject
+RemoveMoneyLabelObject: @ 80B7C98
+ push {r4,r5,lr}
+ adds r4, r0, 0
+ adds r5, r1, 0
+ lsls r4, 24
+ lsrs r4, 24
+ lsls r5, 24
+ lsrs r5, 24
+ ldr r0, _080B7CDC @ =gUnknown_02038734
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ ldr r1, _080B7CE0 @ =gSprites
+ adds r0, r1
+ bl DestroySpriteAndFreeResources
+ ldr r0, _080B7CE4 @ =0x00002722
+ bl FreeSpritePaletteByTag
+ adds r2, r4, 0
+ adds r2, 0xD
+ lsls r2, 24
+ lsrs r2, 24
+ adds r3, r5, 0x3
+ lsls r3, 24
+ lsrs r3, 24
+ adds r0, r4, 0
+ adds r1, r5, 0
+ bl MenuZeroFillWindowRect
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080B7CDC: .4byte gUnknown_02038734
+_080B7CE0: .4byte gSprites
+_080B7CE4: .4byte 0x00002722
+ thumb_func_end RemoveMoneyLabelObject
+
+ thumb_func_start sub_80B7CE8
+sub_80B7CE8: @ 80B7CE8
+ push {lr}
+ ldr r0, _080B7D04 @ =gSaveBlock1
+ movs r1, 0x92
+ lsls r1, 3
+ adds r0, r1
+ ldr r0, [r0]
+ ldr r1, _080B7D08 @ =gUnknown_0202E8CE
+ ldrh r1, [r1]
+ bl IsEnoughMoney
+ lsls r0, 24
+ lsrs r0, 24
+ pop {r1}
+ bx r1
+ .align 2, 0
+_080B7D04: .4byte gSaveBlock1
+_080B7D08: .4byte gUnknown_0202E8CE
+ thumb_func_end sub_80B7CE8
+
+ thumb_func_start sub_80B7D0C
+sub_80B7D0C: @ 80B7D0C
+ push {lr}
+ ldr r0, _080B7D1C @ =gSaveBlock1 + 0x490
+ ldr r1, _080B7D20 @ =gUnknown_0202E8CE
+ ldrh r1, [r1]
+ bl sub_80B79E0
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080B7D1C: .4byte gSaveBlock1 + 0x490
+_080B7D20: .4byte gUnknown_0202E8CE
+ thumb_func_end sub_80B7D0C
+
+ .align 2, 0 @ Don't pad with nop.
diff --git a/asm/rom_80B5054.s b/asm/rom_80B5054.s
deleted file mode 100644
index 6d6c68244..000000000
--- a/asm/rom_80B5054.s
+++ /dev/null
@@ -1,1237 +0,0 @@
- .include "constants/gba_constants.s"
- .include "constants/species_constants.s"
- .include "asm/macros.s"
-
- .syntax unified
-
- .text
-
- thumb_func_start sub_80B5054
-sub_80B5054: @ 80B5054
- push {r4-r7,lr}
- sub sp, 0x8
- lsls r0, 24
- lsrs r7, r0, 24
- lsls r1, 24
- lsrs r6, r1, 24
- lsls r2, 24
- lsrs r4, r2, 24
- lsls r3, 24
- lsrs r5, r3, 24
- ldr r0, _080B5098 @ =sub_80B52B4
- bl FuncIsActiveTask
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- beq _080B50A4
- ldr r1, _080B509C @ =gScriptResult
- movs r0, 0xFF
- strh r0, [r1]
- ldr r1, _080B50A0 @ =gMultichoiceLists
- lsls r0, r4, 3
- adds r0, r1
- ldrb r2, [r0, 0x4]
- ldr r3, [r0]
- str r5, [sp]
- movs r0, 0
- str r0, [sp, 0x4]
- adds r0, r7, 0
- adds r1, r6, 0
- bl sub_80B5138
- movs r0, 0x1
- b _080B50A6
- .align 2, 0
-_080B5098: .4byte sub_80B52B4
-_080B509C: .4byte gScriptResult
-_080B50A0: .4byte gMultichoiceLists
-_080B50A4:
- movs r0, 0
-_080B50A6:
- add sp, 0x8
- pop {r4-r7}
- pop {r1}
- bx r1
- thumb_func_end sub_80B5054
-
- thumb_func_start sub_80B50B0
-sub_80B50B0: @ 80B50B0
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- sub sp, 0x8
- ldr r4, [sp, 0x20]
- lsls r0, 24
- lsrs r0, 24
- mov r8, r0
- lsls r1, 24
- lsrs r7, r1, 24
- lsls r2, 24
- lsrs r5, r2, 24
- lsls r3, 24
- lsrs r6, r3, 24
- lsls r4, 24
- lsrs r4, 24
- ldr r0, _080B5100 @ =sub_80B52B4
- bl FuncIsActiveTask
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- beq _080B510C
- ldr r1, _080B5104 @ =gScriptResult
- movs r0, 0xFF
- strh r0, [r1]
- ldr r1, _080B5108 @ =gMultichoiceLists
- lsls r0, r5, 3
- adds r0, r1
- ldrb r2, [r0, 0x4]
- ldr r3, [r0]
- str r6, [sp]
- str r4, [sp, 0x4]
- mov r0, r8
- adds r1, r7, 0
- bl sub_80B5138
- movs r0, 0x1
- b _080B510E
- .align 2, 0
-_080B5100: .4byte sub_80B52B4
-_080B5104: .4byte gScriptResult
-_080B5108: .4byte gMultichoiceLists
-_080B510C:
- movs r0, 0
-_080B510E:
- add sp, 0x8
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r1}
- bx r1
- thumb_func_end sub_80B50B0
-
- thumb_func_start GetStringWidthInTilesForScriptMenu
-GetStringWidthInTilesForScriptMenu: @ 80B511C
- push {lr}
- adds r1, r0, 0
- ldr r0, _080B5134 @ =gWindowConfig_81E6CE4
- bl GetStringWidthGivenWindowConfig
- lsls r0, 24
- lsrs r0, 24
- adds r1, r0, 0x7
- lsrs r0, r1, 3
- pop {r1}
- bx r1
- .align 2, 0
-_080B5134: .4byte gWindowConfig_81E6CE4
- thumb_func_end GetStringWidthInTilesForScriptMenu
-
- thumb_func_start sub_80B5138
-sub_80B5138: @ 80B5138
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x14
- mov r10, r3
- ldr r3, [sp, 0x34]
- ldr r4, [sp, 0x38]
- lsls r0, 24
- lsrs r0, 24
- mov r9, r0
- lsls r1, 24
- lsrs r1, 24
- str r1, [sp, 0x8]
- lsls r2, 24
- lsrs r2, 24
- mov r8, r2
- lsls r3, 24
- lsrs r3, 24
- str r3, [sp, 0xC]
- lsls r4, 24
- lsrs r4, 24
- str r4, [sp, 0x10]
- mov r1, r10
- ldr r0, [r1]
- bl GetStringWidthInTilesForScriptMenu
- lsls r0, 16
- lsrs r5, r0, 16
- movs r4, 0x1
- cmp r4, r8
- bcs _080B5198
-_080B517A:
- lsls r0, r4, 3
- add r0, r10
- ldr r0, [r0]
- bl GetStringWidthInTilesForScriptMenu
- lsls r0, 16
- lsrs r0, 16
- cmp r5, r0
- bcs _080B518E
- adds r5, r0, 0
-_080B518E:
- adds r0, r4, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, r8
- bcc _080B517A
-_080B5198:
- lsls r0, r5, 24
- lsrs r7, r0, 24
- mov r1, r9
- adds r0, r7, r1
- adds r0, 0x1
- lsls r0, 24
- lsrs r7, r0, 24
- cmp r7, 0x1D
- bls _080B51B8
- mov r0, r9
- adds r0, 0x1D
- subs r0, r7
- lsls r0, 24
- lsrs r0, 24
- mov r9, r0
- movs r7, 0x1D
-_080B51B8:
- mov r1, r8
- lsls r0, r1, 1
- adds r0, 0x1
- ldr r1, [sp, 0x8]
- lsls r4, r1, 24
- asrs r4, 24
- adds r4, r0
- lsls r4, 24
- lsrs r4, 24
- mov r0, r9
- adds r2, r7, 0
- adds r3, r4, 0
- bl MenuDrawTextWindow
- mov r6, r9
- adds r6, 0x1
- lsls r6, 24
- lsrs r6, 24
- ldr r5, [sp, 0x8]
- adds r5, 0x1
- lsls r5, 24
- lsrs r5, 24
- adds r0, r6, 0
- adds r1, r5, 0
- mov r2, r8
- mov r3, r10
- bl PrintMenuItems
- ldr r0, [sp, 0x10]
- str r0, [sp]
- mov r1, r9
- subs r0, r7, r1
- subs r0, 0x1
- lsls r0, 24
- lsrs r0, 24
- str r0, [sp, 0x4]
- movs r0, 0
- adds r1, r6, 0
- adds r2, r5, 0
- mov r3, r8
- bl InitMenu
- ldr r0, [sp, 0xC]
- str r0, [sp]
- mov r1, r8
- str r1, [sp, 0x4]
- mov r0, r9
- ldr r1, [sp, 0x8]
- adds r2, r7, 0
- adds r3, r4, 0
- bl sub_80B5230
- add sp, 0x14
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_80B5138
-
- thumb_func_start sub_80B5230
-sub_80B5230: @ 80B5230
- push {r4-r6,lr}
- mov r6, r9
- mov r5, r8
- push {r5,r6}
- sub sp, 0x4
- adds r4, r0, 0
- adds r5, r1, 0
- adds r6, r2, 0
- ldr r0, [sp, 0x1C]
- mov r8, r0
- ldr r0, [sp, 0x20]
- mov r9, r0
- lsls r4, 24
- lsrs r4, 24
- lsls r5, 24
- lsrs r5, 24
- lsls r6, 24
- lsrs r6, 24
- lsls r3, 24
- lsrs r3, 24
- mov r0, r8
- lsls r0, 24
- lsrs r0, 24
- mov r8, r0
- mov r0, r9
- lsls r0, 24
- lsrs r0, 24
- mov r9, r0
- ldr r0, _080B5298 @ =sub_80B52B4
- movs r1, 0x50
- str r3, [sp]
- bl CreateTask
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _080B529C @ =gTasks
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r1, r2
- strh r4, [r1, 0x8]
- strh r5, [r1, 0xA]
- strh r6, [r1, 0xC]
- ldr r3, [sp]
- strh r3, [r1, 0xE]
- mov r0, r8
- strh r0, [r1, 0x10]
- mov r0, r9
- cmp r0, 0x3
- bls _080B52A0
- movs r0, 0x1
- b _080B52A2
- .align 2, 0
-_080B5298: .4byte sub_80B52B4
-_080B529C: .4byte gTasks
-_080B52A0:
- movs r0, 0
-_080B52A2:
- strh r0, [r1, 0x12]
- add sp, 0x4
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r6}
- pop {r0}
- bx r0
- thumb_func_end sub_80B5230
-
- thumb_func_start sub_80B52B4
-sub_80B52B4: @ 80B52B4
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r0, _080B52E0 @ =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- bne _080B534E
- ldr r2, _080B52E4 @ =gTasks
- lsls r1, r4, 2
- adds r0, r1, r4
- lsls r0, 3
- adds r0, r2
- movs r2, 0x12
- ldrsh r0, [r0, r2]
- adds r5, r1, 0
- cmp r0, 0
- bne _080B52E8
- bl ProcessMenuInputNoWrap
- b _080B52EC
- .align 2, 0
-_080B52E0: .4byte gPaletteFade
-_080B52E4: .4byte gTasks
-_080B52E8:
- bl ProcessMenuInput
-_080B52EC:
- lsls r0, 24
- lsrs r0, 24
- lsls r0, 24
- asrs r1, r0, 24
- movs r0, 0x2
- negs r0, r0
- cmp r1, r0
- beq _080B534E
- adds r0, 0x1
- cmp r1, r0
- bne _080B5328
- ldr r0, _080B5320 @ =gTasks
- adds r1, r5, r4
- lsls r1, 3
- adds r1, r0
- movs r2, 0x10
- ldrsh r0, [r1, r2]
- cmp r0, 0
- bne _080B534E
- movs r0, 0x5
- bl PlaySE
- ldr r1, _080B5324 @ =gScriptResult
- movs r0, 0x7F
- strh r0, [r1]
- b _080B532C
- .align 2, 0
-_080B5320: .4byte gTasks
-_080B5324: .4byte gScriptResult
-_080B5328:
- ldr r0, _080B5354 @ =gScriptResult
- strh r1, [r0]
-_080B532C:
- bl sub_8072DEC
- ldr r0, _080B5358 @ =gTasks
- adds r3, r5, r4
- lsls r3, 3
- adds r3, r0
- ldrb r0, [r3, 0x8]
- ldrb r1, [r3, 0xA]
- ldrb r2, [r3, 0xC]
- ldrb r3, [r3, 0xE]
- bl MenuZeroFillWindowRect
- adds r0, r4, 0
- bl DestroyTask
- bl EnableBothScriptContexts
-_080B534E:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080B5354: .4byte gScriptResult
-_080B5358: .4byte gTasks
- thumb_func_end sub_80B52B4
-
- thumb_func_start Multichoice
-Multichoice: @ 80B535C
- 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 r4, r2, 24
- lsls r3, 24
- lsrs r5, r3, 24
- ldr r0, _080B539C @ =sub_80B52B4
- bl FuncIsActiveTask
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- beq _080B53A8
- ldr r1, _080B53A0 @ =gScriptResult
- movs r0, 0xFF
- strh r0, [r1]
- ldr r1, _080B53A4 @ =gMultichoiceLists
- lsls r0, r4, 3
- adds r0, r1
- ldrb r2, [r0, 0x4]
- ldr r3, [r0]
- str r5, [sp]
- adds r0, r7, 0
- adds r1, r6, 0
- bl sub_80B53B4
- movs r0, 0x1
- b _080B53AA
- .align 2, 0
-_080B539C: .4byte sub_80B52B4
-_080B53A0: .4byte gScriptResult
-_080B53A4: .4byte gMultichoiceLists
-_080B53A8:
- movs r0, 0
-_080B53AA:
- add sp, 0x4
- pop {r4-r7}
- pop {r1}
- bx r1
- thumb_func_end Multichoice
-
- thumb_func_start sub_80B53B4
-sub_80B53B4: @ 80B53B4
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x8
- adds r7, r3, 0
- ldr r3, [sp, 0x28]
- lsls r0, 24
- lsrs r0, 24
- mov r8, r0
- lsls r1, 24
- lsrs r1, 24
- mov r9, r1
- lsls r2, 24
- lsrs r6, r2, 24
- lsls r3, 24
- lsrs r3, 24
- mov r10, r3
- ldr r0, [r7]
- bl GetStringWidthInTilesForScriptMenu
- lsls r0, 16
- lsrs r4, r0, 16
- movs r5, 0x1
- cmp r5, r6
- bcs _080B5408
-_080B53EA:
- lsls r0, r5, 3
- adds r0, r7
- ldr r0, [r0]
- bl GetStringWidthInTilesForScriptMenu
- lsls r0, 16
- lsrs r0, 16
- cmp r4, r0
- bcs _080B53FE
- adds r4, r0, 0
-_080B53FE:
- adds r0, r5, 0x1
- lsls r0, 24
- lsrs r5, r0, 24
- cmp r5, r6
- bcc _080B53EA
-_080B5408:
- lsls r4, 24
- lsrs r4, 24
- add r4, r8
- adds r4, 0x2
- lsls r4, 24
- lsrs r4, 24
- lsls r0, r6, 1
- adds r0, 0x1
- mov r1, r9
- lsls r5, r1, 24
- asrs r5, 24
- adds r5, r0
- lsls r5, 24
- lsrs r5, 24
- mov r0, r8
- adds r2, r6, 0
- adds r3, r7, 0
- bl PrintMenuItems
- movs r0, 0
- str r0, [sp]
- mov r1, r8
- subs r0, r4, r1
- subs r0, 0x1
- lsls r0, 24
- lsrs r0, 24
- str r0, [sp, 0x4]
- movs r0, 0
- mov r2, r9
- adds r3, r6, 0
- bl InitMenu
- mov r0, r10
- str r0, [sp]
- str r6, [sp, 0x4]
- mov r0, r8
- mov r1, r9
- adds r2, r4, 0
- adds r3, r5, 0
- bl sub_80B5230
- 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 sub_80B53B4
-
- thumb_func_start yes_no_box
-yes_no_box: @ 80B546C
- push {r4-r6,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- lsls r1, 24
- lsrs r4, r1, 24
- ldr r6, _080B54B4 @ =task_yes_no_maybe
- adds r0, r6, 0
- bl FuncIsActiveTask
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- beq _080B54C0
- ldr r1, _080B54B8 @ =gScriptResult
- movs r0, 0xFF
- strh r0, [r1]
- adds r0, r5, 0
- adds r1, r4, 0
- movs r2, 0x1
- bl DisplayYesNoMenu
- adds r0, r6, 0
- movs r1, 0x50
- bl CreateTask
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _080B54BC @ =gTasks
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r1, r2
- strh r5, [r1, 0x8]
- strh r4, [r1, 0xA]
- movs r0, 0x1
- b _080B54C2
- .align 2, 0
-_080B54B4: .4byte task_yes_no_maybe
-_080B54B8: .4byte gScriptResult
-_080B54BC: .4byte gTasks
-_080B54C0:
- movs r0, 0
-_080B54C2:
- pop {r4-r6}
- pop {r1}
- bx r1
- thumb_func_end yes_no_box
-
- thumb_func_start unref_sub_80B54C8
-unref_sub_80B54C8: @ 80B54C8
- push {lr}
- ldr r0, _080B54D8 @ =gScriptResult
- ldrh r0, [r0]
- cmp r0, 0xFF
- beq _080B54DC
- movs r0, 0x1
- b _080B54DE
- .align 2, 0
-_080B54D8: .4byte gScriptResult
-_080B54DC:
- movs r0, 0
-_080B54DE:
- pop {r1}
- bx r1
- thumb_func_end unref_sub_80B54C8
-
- thumb_func_start task_yes_no_maybe
-task_yes_no_maybe: @ 80B54E4
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r1, _080B5504 @ =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 _080B5508
- adds r0, r2, 0x1
- strh r0, [r1, 0xC]
- b _080B556A
- .align 2, 0
-_080B5504: .4byte gTasks
-_080B5508:
- bl ProcessMenuInputNoWrap
- lsls r0, 24
- asrs r1, r0, 24
- movs r0, 0x1
- negs r0, r0
- cmp r1, r0
- beq _080B552C
- cmp r1, r0
- bgt _080B5524
- subs r0, 0x1
- cmp r1, r0
- beq _080B556A
- b _080B5542
-_080B5524:
- cmp r1, 0
- beq _080B553C
- cmp r1, 0x1
- bne _080B5542
-_080B552C:
- movs r0, 0x5
- bl PlaySE
- ldr r1, _080B5538 @ =gScriptResult
- movs r0, 0
- b _080B5540
- .align 2, 0
-_080B5538: .4byte gScriptResult
-_080B553C:
- ldr r1, _080B5570 @ =gScriptResult
- movs r0, 0x1
-_080B5540:
- strh r0, [r1]
-_080B5542:
- ldr r0, _080B5574 @ =gTasks
- lsls r1, r4, 2
- adds r1, r4
- lsls r1, 3
- adds r1, r0
- ldrb r0, [r1, 0x8]
- ldrb r1, [r1, 0xA]
- adds r2, r0, 0x6
- lsls r2, 24
- lsrs r2, 24
- adds r3, r1, 0x5
- lsls r3, 24
- lsrs r3, 24
- bl MenuZeroFillWindowRect
- adds r0, r4, 0
- bl DestroyTask
- bl EnableBothScriptContexts
-_080B556A:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080B5570: .4byte gScriptResult
-_080B5574: .4byte gTasks
- thumb_func_end task_yes_no_maybe
-
- thumb_func_start sub_80B5578
-sub_80B5578: @ 80B5578
- 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 r0, 24
- mov r9, r0
- lsls r1, 24
- lsrs r1, 24
- mov r8, r1
- lsls r2, 24
- lsrs r6, r2, 24
- lsls r3, 24
- lsrs r3, 24
- str r3, [sp, 0xC]
- lsls r4, 24
- lsrs r5, r4, 24
- movs r7, 0
- ldr r0, _080B55B8 @ =sub_80B5684
- mov r10, r0
- bl FuncIsActiveTask
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _080B55BC
- movs r0, 0
- b _080B5670
- .align 2, 0
-_080B55B8: .4byte sub_80B5684
-_080B55BC:
- ldr r1, _080B5620 @ =gScriptResult
- movs r0, 0xFF
- strh r0, [r1]
- ldr r0, _080B5624 @ =gMultichoiceLists
- lsls r4, r6, 3
- adds r0, r4, r0
- ldrb r6, [r0, 0x4]
- ldr r0, [r0]
- str r0, [sp]
- str r5, [sp, 0x4]
- str r7, [sp, 0x8]
- mov r0, r9
- mov r1, r8
- adds r2, r6, 0
- movs r3, 0
- bl sub_807274C
- mov r0, r10
- movs r1, 0x50
- bl CreateTask
- lsls r0, 24
- lsrs r0, 24
- mov r10, r0
- lsls r0, r6, 24
- lsrs r1, r0, 24
- lsrs r0, 25
- cmp r0, r5
- bcc _080B55FE
- movs r0, 0x1
- ands r0, r6
- cmp r0, 0
- beq _080B5606
-_080B55FE:
- cmp r5, 0x1
- beq _080B5606
- cmp r1, r5
- bne _080B5628
-_080B5606:
- ldr r0, _080B5624 @ =gMultichoiceLists
- adds r0, r4, r0
- ldrb r0, [r0, 0x4]
- adds r1, r5, 0
- bl __udivsi3
- lsls r0, 24
- lsrs r0, 23
- adds r0, 0x1
- mov r2, r8
- lsls r1, r2, 24
- b _080B563A
- .align 2, 0
-_080B5620: .4byte gScriptResult
-_080B5624: .4byte gMultichoiceLists
-_080B5628:
- adds r0, r6, 0
- adds r1, r5, 0
- bl __udivsi3
- lsls r0, 24
- lsrs r0, 23
- adds r0, 0x3
- mov r3, r8
- lsls r1, r3, 24
-_080B563A:
- asrs r1, 24
- adds r1, r0
- lsls r1, 24
- lsrs r7, r1, 24
- adds r0, r5, 0
- bl sub_807288C
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _080B5680 @ =gTasks
- mov r3, r10
- lsls r1, r3, 2
- add r1, r10
- lsls r1, 3
- adds r1, r2
- mov r2, r9
- strh r2, [r1, 0x8]
- mov r3, r8
- strh r3, [r1, 0xA]
- add r0, r9
- adds r0, 0x2
- strh r0, [r1, 0xC]
- strh r7, [r1, 0xE]
- mov r0, sp
- ldrh r0, [r0, 0xC]
- strh r0, [r1, 0x10]
- movs r0, 0x1
-_080B5670:
- add sp, 0x10
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r1}
- bx r1
- .align 2, 0
-_080B5680: .4byte gTasks
- thumb_func_end sub_80B5578
-
- thumb_func_start sub_80B5684
-sub_80B5684: @ 80B5684
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- bl sub_80727CC
- lsls r0, 24
- asrs r1, r0, 24
- movs r0, 0x2
- negs r0, r0
- cmp r1, r0
- beq _080B56F4
- adds r0, 0x1
- cmp r1, r0
- bne _080B56CC
- ldr r2, _080B56C4 @ =gTasks
- lsls r1, r5, 2
- adds r0, r1, r5
- lsls r0, 3
- adds r0, r2
- movs r2, 0x10
- ldrsh r0, [r0, r2]
- adds r4, r1, 0
- cmp r0, 0
- bne _080B56F4
- movs r0, 0x5
- bl PlaySE
- ldr r1, _080B56C8 @ =gScriptResult
- movs r0, 0x7F
- strh r0, [r1]
- b _080B56D2
- .align 2, 0
-_080B56C4: .4byte gTasks
-_080B56C8: .4byte gScriptResult
-_080B56CC:
- ldr r0, _080B56FC @ =gScriptResult
- strh r1, [r0]
- lsls r4, r5, 2
-_080B56D2:
- bl sub_8072DEC
- ldr r0, _080B5700 @ =gTasks
- adds r3, r4, r5
- lsls r3, 3
- adds r3, r0
- ldrb r0, [r3, 0x8]
- ldrb r1, [r3, 0xA]
- ldrb r2, [r3, 0xC]
- ldrb r3, [r3, 0xE]
- bl MenuZeroFillWindowRect
- adds r0, r5, 0
- bl DestroyTask
- bl EnableBothScriptContexts
-_080B56F4:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080B56FC: .4byte gScriptResult
-_080B5700: .4byte gTasks
- thumb_func_end sub_80B5684
-
- thumb_func_start sp109_CreatePCMenu
-sp109_CreatePCMenu: @ 80B5704
- push {lr}
- ldr r0, _080B5724 @ =sub_80B52B4
- bl FuncIsActiveTask
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- beq _080B572C
- ldr r1, _080B5728 @ =gScriptResult
- movs r0, 0xFF
- strh r0, [r1]
- bl CreatePCMenu
- movs r0, 0x1
- b _080B572E
- .align 2, 0
-_080B5724: .4byte sub_80B52B4
-_080B5728: .4byte gScriptResult
-_080B572C:
- movs r0, 0
-_080B572E:
- pop {r1}
- bx r1
- thumb_func_end sp109_CreatePCMenu
-
- thumb_func_start CreatePCMenu
-CreatePCMenu: @ 80B5734
- push {r4-r7,lr}
- sub sp, 0x8
- ldr r0, _080B5758 @ =gPCText_PlayersPC
- bl GetStringWidthInTilesForScriptMenu
- lsls r0, 16
- lsrs r4, r0, 16
- ldr r0, _080B575C @ =gPCText_SomeonesPC
- bl GetStringWidthInTilesForScriptMenu
- lsls r0, 16
- lsrs r0, 16
- cmp r4, r0
- bls _080B5760
- lsls r0, r4, 24
- lsrs r5, r0, 24
- b _080B5762
- .align 2, 0
-_080B5758: .4byte gPCText_PlayersPC
-_080B575C: .4byte gPCText_SomeonesPC
-_080B5760:
- movs r5, 0x8
-_080B5762:
- ldr r0, _080B5798 @ =0x00000804
- bl FlagGet
- lsls r0, 24
- cmp r0, 0
- beq _080B57A4
- movs r7, 0x4
- adds r4, r5, 0x2
- lsls r2, r4, 24
- lsrs r2, 24
- movs r0, 0
- movs r1, 0
- movs r3, 0x9
- bl MenuDrawTextWindow
- ldr r0, _080B579C @ =gPCText_HallOfFame
- movs r1, 0x1
- movs r2, 0x5
- bl MenuPrint
- ldr r0, _080B57A0 @ =gPCText_LogOff
- movs r1, 0x1
- movs r2, 0x7
- bl MenuPrint
- b _080B57C0
- .align 2, 0
-_080B5798: .4byte 0x00000804
-_080B579C: .4byte gPCText_HallOfFame
-_080B57A0: .4byte gPCText_LogOff
-_080B57A4:
- movs r7, 0x3
- adds r4, r5, 0x2
- lsls r2, r4, 24
- lsrs r2, 24
- movs r0, 0
- movs r1, 0
- movs r3, 0x7
- bl MenuDrawTextWindow
- ldr r0, _080B57DC @ =gPCText_LogOff
- movs r1, 0x1
- movs r2, 0x5
- bl MenuPrint
-_080B57C0:
- adds r6, r4, 0
- ldr r0, _080B57E0 @ =0x0000084b
- bl FlagGet
- lsls r0, 24
- cmp r0, 0
- beq _080B57E8
- ldr r0, _080B57E4 @ =gPCText_LanettesPC
- movs r1, 0x1
- movs r2, 0x1
- bl MenuPrint
- b _080B57F2
- .align 2, 0
-_080B57DC: .4byte gPCText_LogOff
-_080B57E0: .4byte 0x0000084b
-_080B57E4: .4byte gPCText_LanettesPC
-_080B57E8:
- ldr r0, _080B5830 @ =gPCText_SomeonesPC
- movs r1, 0x1
- movs r2, 0x1
- bl MenuPrint
-_080B57F2:
- ldr r0, _080B5834 @ =gPCText_PlayersPC
- movs r1, 0x1
- movs r2, 0x3
- bl MenuPrint
- movs r4, 0
- str r4, [sp]
- adds r0, r5, 0x1
- lsls r0, 24
- lsrs r0, 24
- str r0, [sp, 0x4]
- movs r0, 0
- movs r1, 0x1
- movs r2, 0x1
- adds r3, r7, 0
- bl InitMenu
- lsls r2, r6, 24
- lsrs r2, 24
- lsls r3, r7, 1
- adds r3, 0x1
- str r4, [sp]
- str r7, [sp, 0x4]
- movs r0, 0
- movs r1, 0
- bl sub_80B5230
- add sp, 0x8
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080B5830: .4byte gPCText_SomeonesPC
-_080B5834: .4byte gPCText_PlayersPC
- thumb_func_end CreatePCMenu
-
- thumb_func_start sub_80B5838
-sub_80B5838: @ 80B5838
- push {lr}
- bl MenuDisplayMessageBox
- ldr r0, _080B584C @ =gUnknown_081A0A01
- movs r1, 0x2
- movs r2, 0xF
- bl MenuPrint
- pop {r0}
- bx r0
- .align 2, 0
-_080B584C: .4byte gUnknown_081A0A01
- thumb_func_end sub_80B5838
-
- thumb_func_start task_picbox
-task_picbox: @ 80B5850
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- ldr r1, _080B5874 @ =gTasks
- adds r4, r0, r1
- movs r1, 0x8
- ldrsh r0, [r4, r1]
- cmp r0, 0x1
- beq _080B58BE
- cmp r0, 0x1
- bgt _080B5878
- cmp r0, 0
- beq _080B5894
- b _080B58BE
- .align 2, 0
-_080B5874: .4byte gTasks
-_080B5878:
- cmp r0, 0x2
- beq _080B5882
- cmp r0, 0x3
- beq _080B58A0
- b _080B58BE
-_080B5882:
- movs r0, 0xC
- ldrsh r1, [r4, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- ldr r1, _080B589C @ =gSprites
- adds r0, r1
- bl FreeResourcesAndDestroySprite
-_080B5894:
- ldrh r0, [r4, 0x8]
- adds r0, 0x1
- strh r0, [r4, 0x8]
- b _080B58BE
- .align 2, 0
-_080B589C: .4byte gSprites
-_080B58A0:
- ldrb r2, [r4, 0xE]
- adds r0, r2, 0
- ldrb r3, [r4, 0x10]
- adds r1, r3, 0
- adds r2, 0x9
- lsls r2, 24
- lsrs r2, 24
- adds r3, 0xA
- lsls r3, 24
- lsrs r3, 24
- bl MenuZeroFillWindowRect
- adds r0, r5, 0
- bl DestroyTask
-_080B58BE:
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end task_picbox
-
- thumb_func_start sub_80B58C4
-sub_80B58C4: @ 80B58C4
- push {r4-r7,lr}
- lsls r0, 16
- lsrs r7, r0, 16
- lsls r1, 24
- lsrs r6, r1, 24
- lsls r2, 24
- lsrs r5, r2, 24
- ldr r4, _080B595C @ =task_picbox
- adds r0, r4, 0
- bl FindTaskIdByFunc
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0xFF
- bne _080B596C
- adds r2, r6, 0
- adds r2, 0x9
- lsls r2, 24
- lsrs r2, 24
- adds r3, r5, 0
- adds r3, 0xA
- lsls r3, 24
- lsrs r3, 24
- adds r0, r6, 0
- adds r1, r5, 0
- bl MenuDrawTextWindow
- adds r0, r4, 0
- movs r1, 0x50
- bl CreateTask
- lsls r0, 24
- lsrs r0, 24
- ldr r1, _080B5960 @ =gTasks
- lsls r4, r0, 2
- adds r4, r0
- lsls r4, 3
- adds r4, r1
- movs r0, 0
- strh r0, [r4, 0x8]
- strh r7, [r4, 0xA]
- lsls r1, r6, 19
- movs r0, 0xA0
- lsls r0, 14
- adds r1, r0
- asrs r1, 16
- lsls r2, r5, 19
- adds r2, r0
- asrs r2, 16
- adds r0, r7, 0
- movs r3, 0
- bl CreateMonSprite_PicBox
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r4, 0xC]
- strh r6, [r4, 0xE]
- strh r5, [r4, 0x10]
- ldr r3, _080B5964 @ =gSprites
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- adds r0, r3, 0
- adds r0, 0x1C
- adds r0, r1, r0
- ldr r2, _080B5968 @ =SpriteCallbackDummy
- str r2, [r0]
- adds r1, r3
- ldrb r2, [r1, 0x5]
- movs r0, 0xD
- negs r0, r0
- ands r0, r2
- strb r0, [r1, 0x5]
- movs r0, 0x1
- b _080B596E
- .align 2, 0
-_080B595C: .4byte task_picbox
-_080B5960: .4byte gTasks
-_080B5964: .4byte gSprites
-_080B5968: .4byte SpriteCallbackDummy
-_080B596C:
- movs r0, 0
-_080B596E:
- pop {r4-r7}
- pop {r1}
- bx r1
- thumb_func_end sub_80B58C4
-
- thumb_func_start picbox_close
-picbox_close: @ 80B5974
- push {lr}
- ldr r0, _080B5998 @ =task_picbox
- bl FindTaskIdByFunc
- lsls r0, 24
- lsrs r2, r0, 24
- cmp r2, 0xFF
- beq _080B59A4
- ldr r0, _080B599C @ =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, _080B59A0 @ =sub_80B59AC
- b _080B59A6
- .align 2, 0
-_080B5998: .4byte task_picbox
-_080B599C: .4byte gTasks
-_080B59A0: .4byte sub_80B59AC
-_080B59A4:
- movs r0, 0
-_080B59A6:
- pop {r1}
- bx r1
- thumb_func_end picbox_close
-
- thumb_func_start sub_80B59AC
-sub_80B59AC: @ 80B59AC
- push {lr}
- ldr r0, _080B59C0 @ =task_picbox
- bl FindTaskIdByFunc
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0xFF
- beq _080B59C4
- movs r0, 0
- b _080B59C6
- .align 2, 0
-_080B59C0: .4byte task_picbox
-_080B59C4:
- movs r0, 0x1
-_080B59C6:
- pop {r1}
- bx r1
- thumb_func_end sub_80B59AC
-
- .align 2, 0 @ Don't pad with nop.
diff --git a/asm/script_menu.s b/asm/script_menu.s
index 0d630ba52..6d6c68244 100644
--- a/asm/script_menu.s
+++ b/asm/script_menu.s
@@ -6,475 +6,1232 @@
.text
- thumb_func_start IsEnoughMoney
-IsEnoughMoney: @ 80B79A8
- push {lr}
- cmp r0, r1
- bcs _080B79B2
+ thumb_func_start sub_80B5054
+sub_80B5054: @ 80B5054
+ push {r4-r7,lr}
+ sub sp, 0x8
+ lsls r0, 24
+ lsrs r7, r0, 24
+ lsls r1, 24
+ lsrs r6, r1, 24
+ lsls r2, 24
+ lsrs r4, r2, 24
+ lsls r3, 24
+ lsrs r5, r3, 24
+ ldr r0, _080B5098 @ =sub_80B52B4
+ bl FuncIsActiveTask
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ beq _080B50A4
+ ldr r1, _080B509C @ =gScriptResult
+ movs r0, 0xFF
+ strh r0, [r1]
+ ldr r1, _080B50A0 @ =gMultichoiceLists
+ lsls r0, r4, 3
+ adds r0, r1
+ ldrb r2, [r0, 0x4]
+ ldr r3, [r0]
+ str r5, [sp]
movs r0, 0
- b _080B79B4
-_080B79B2:
+ str r0, [sp, 0x4]
+ adds r0, r7, 0
+ adds r1, r6, 0
+ bl sub_80B5138
movs r0, 0x1
-_080B79B4:
- pop {r1}
- bx r1
- thumb_func_end IsEnoughMoney
-
- thumb_func_start sub_80B79B8
-sub_80B79B8: @ 80B79B8
- push {lr}
- adds r2, r0, 0
- ldr r0, [r2]
- adds r1, r0, r1
- cmp r0, r1
- bls _080B79CC
- ldr r0, _080B79C8 @ =0x000f423f
- b _080B79D4
- .align 2, 0
-_080B79C8: .4byte 0x000f423f
-_080B79CC:
- str r1, [r2]
- ldr r0, _080B79DC @ =0x000f423f
- cmp r1, r0
- bls _080B79D6
-_080B79D4:
- str r0, [r2]
-_080B79D6:
- pop {r0}
- bx r0
+ b _080B50A6
.align 2, 0
-_080B79DC: .4byte 0x000f423f
- thumb_func_end sub_80B79B8
-
- thumb_func_start sub_80B79E0
-sub_80B79E0: @ 80B79E0
- push {lr}
- adds r2, r0, 0
- ldr r0, [r2]
- cmp r0, r1
- bcs _080B79EE
+_080B5098: .4byte sub_80B52B4
+_080B509C: .4byte gScriptResult
+_080B50A0: .4byte gMultichoiceLists
+_080B50A4:
movs r0, 0
- b _080B79F0
-_080B79EE:
- subs r0, r1
-_080B79F0:
- str r0, [r2]
- pop {r0}
- bx r0
- thumb_func_end sub_80B79E0
+_080B50A6:
+ add sp, 0x8
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80B5054
- thumb_func_start sub_80B79F8
-sub_80B79F8: @ 80B79F8
- push {r4,lr}
- adds r3, r0, 0
+ thumb_func_start sub_80B50B0
+sub_80B50B0: @ 80B50B0
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ sub sp, 0x8
+ ldr r4, [sp, 0x20]
+ lsls r0, 24
+ lsrs r0, 24
+ mov r8, r0
+ lsls r1, 24
+ lsrs r7, r1, 24
lsls r2, 24
- lsrs r4, r2, 24
- ldr r0, _080B7A0C @ =0x000f423f
- cmp r1, r0
- bls _080B7A10
- movs r2, 0x7
- b _080B7A46
- .align 2, 0
-_080B7A0C: .4byte 0x000f423f
-_080B7A10:
- ldr r0, _080B7A1C @ =0x0001869f
- cmp r1, r0
- bls _080B7A20
- movs r2, 0x6
- b _080B7A46
- .align 2, 0
-_080B7A1C: .4byte 0x0001869f
-_080B7A20:
- ldr r0, _080B7A2C @ =0x00002710
- cmp r1, r0
- bls _080B7A30
- movs r2, 0x5
- b _080B7A46
+ lsrs r5, r2, 24
+ lsls r3, 24
+ lsrs r6, r3, 24
+ lsls r4, 24
+ lsrs r4, 24
+ ldr r0, _080B5100 @ =sub_80B52B4
+ bl FuncIsActiveTask
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ beq _080B510C
+ ldr r1, _080B5104 @ =gScriptResult
+ movs r0, 0xFF
+ strh r0, [r1]
+ ldr r1, _080B5108 @ =gMultichoiceLists
+ lsls r0, r5, 3
+ adds r0, r1
+ ldrb r2, [r0, 0x4]
+ ldr r3, [r0]
+ str r6, [sp]
+ str r4, [sp, 0x4]
+ mov r0, r8
+ adds r1, r7, 0
+ bl sub_80B5138
+ movs r0, 0x1
+ b _080B510E
.align 2, 0
-_080B7A2C: .4byte 0x00002710
-_080B7A30:
- ldr r0, _080B7A90 @ =0x000003e7
- movs r2, 0x4
- cmp r1, r0
- bhi _080B7A46
- movs r2, 0x3
- cmp r1, 0x63
- bhi _080B7A46
- movs r2, 0x1
- cmp r1, 0x9
- bls _080B7A46
- movs r2, 0x2
-_080B7A46:
- movs r0, 0xFC
- strb r0, [r3]
- movs r0, 0x14
- strb r0, [r3, 0x1]
- movs r0, 0x6
- strb r0, [r3, 0x2]
- adds r3, 0x3
+_080B5100: .4byte sub_80B52B4
+_080B5104: .4byte gScriptResult
+_080B5108: .4byte gMultichoiceLists
+_080B510C:
movs r0, 0
- subs r2, r4, r2
- cmp r0, r2
- bge _080B7A6C
- movs r4, 0
-_080B7A5E:
- strb r4, [r3]
- adds r3, 0x1
- adds r0, 0x1
+_080B510E:
+ add sp, 0x8
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80B50B0
+
+ thumb_func_start GetStringWidthInTilesForScriptMenu
+GetStringWidthInTilesForScriptMenu: @ 80B511C
+ push {lr}
+ adds r1, r0, 0
+ ldr r0, _080B5134 @ =gWindowConfig_81E6CE4
+ bl GetStringWidthGivenWindowConfig
lsls r0, 24
lsrs r0, 24
- cmp r0, r2
- blt _080B7A5E
-_080B7A6C:
- movs r0, 0xB7
- strb r0, [r3]
- adds r3, 0x1
- adds r0, r3, 0
- bl ConvertIntToDecimalString
- adds r3, r0, 0
- movs r0, 0xFC
- strb r0, [r3]
- movs r0, 0x14
- strb r0, [r3, 0x1]
- movs r0, 0
- strb r0, [r3, 0x2]
- movs r0, 0xFF
- strb r0, [r3, 0x3]
- pop {r4}
- pop {r0}
- bx r0
+ adds r1, r0, 0x7
+ lsrs r0, r1, 3
+ pop {r1}
+ bx r1
.align 2, 0
-_080B7A90: .4byte 0x000003e7
- thumb_func_end sub_80B79F8
+_080B5134: .4byte gWindowConfig_81E6CE4
+ thumb_func_end GetStringWidthInTilesForScriptMenu
- thumb_func_start sub_80B7A94
-sub_80B7A94: @ 80B7A94
+ thumb_func_start sub_80B5138
+sub_80B5138: @ 80B5138
push {r4-r7,lr}
- sub sp, 0x10
- adds r4, r0, 0
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x14
+ mov r10, r3
+ ldr r3, [sp, 0x34]
+ ldr r4, [sp, 0x38]
+ lsls r0, 24
+ lsrs r0, 24
+ mov r9, r0
lsls r1, 24
- lsrs r5, r1, 24
+ lsrs r1, 24
+ str r1, [sp, 0x8]
lsls r2, 24
- lsrs r6, r2, 24
+ lsrs r2, 24
+ mov r8, r2
lsls r3, 24
- lsrs r7, r3, 24
- mov r0, sp
- adds r1, r4, 0
- adds r2, r5, 0
- bl sub_80B79F8
- mov r0, sp
- bl sub_8072CA4
+ lsrs r3, 24
+ str r3, [sp, 0xC]
+ lsls r4, 24
+ lsrs r4, 24
+ str r4, [sp, 0x10]
+ mov r1, r10
+ ldr r0, [r1]
+ bl GetStringWidthInTilesForScriptMenu
+ lsls r0, 16
+ lsrs r5, r0, 16
+ movs r4, 0x1
+ cmp r4, r8
+ bcs _080B5198
+_080B517A:
+ lsls r0, r4, 3
+ add r0, r10
+ ldr r0, [r0]
+ bl GetStringWidthInTilesForScriptMenu
+ lsls r0, 16
+ lsrs r0, 16
+ cmp r5, r0
+ bcs _080B518E
+ adds r5, r0, 0
+_080B518E:
+ adds r0, r4, 0x1
lsls r0, 24
- lsrs r2, r0, 24
- adds r0, r5, 0x1
- lsls r0, 3
- cmp r2, r0
- blt _080B7ACE
- mov r0, sp
+ lsrs r4, r0, 24
+ cmp r4, r8
+ bcc _080B517A
+_080B5198:
+ lsls r0, r5, 24
+ lsrs r7, r0, 24
+ mov r1, r9
+ adds r0, r7, r1
+ adds r0, 0x1
+ lsls r0, 24
+ lsrs r7, r0, 24
+ cmp r7, 0x1D
+ bls _080B51B8
+ mov r0, r9
+ adds r0, 0x1D
+ subs r0, r7
+ lsls r0, 24
+ lsrs r0, 24
+ mov r9, r0
+ movs r7, 0x1D
+_080B51B8:
+ mov r1, r8
+ lsls r0, r1, 1
+ adds r0, 0x1
+ ldr r1, [sp, 0x8]
+ lsls r4, r1, 24
+ asrs r4, 24
+ adds r4, r0
+ lsls r4, 24
+ lsrs r4, 24
+ mov r0, r9
+ adds r2, r7, 0
+ adds r3, r4, 0
+ bl MenuDrawTextWindow
+ mov r6, r9
+ adds r6, 0x1
+ lsls r6, 24
+ lsrs r6, 24
+ ldr r5, [sp, 0x8]
+ adds r5, 0x1
+ lsls r5, 24
+ lsrs r5, 24
+ adds r0, r6, 0
+ adds r1, r5, 0
+ mov r2, r8
+ mov r3, r10
+ bl PrintMenuItems
+ ldr r0, [sp, 0x10]
+ str r0, [sp]
+ mov r1, r9
+ subs r0, r7, r1
+ subs r0, 0x1
+ lsls r0, 24
+ lsrs r0, 24
+ str r0, [sp, 0x4]
+ movs r0, 0
adds r1, r6, 0
+ adds r2, r5, 0
+ mov r3, r8
+ bl InitMenu
+ ldr r0, [sp, 0xC]
+ str r0, [sp]
+ mov r1, r8
+ str r1, [sp, 0x4]
+ mov r0, r9
+ ldr r1, [sp, 0x8]
adds r2, r7, 0
- bl MenuPrint
- b _080B7AE4
-_080B7ACE:
- adds r1, r6, 0x1
- adds r1, r5
- lsls r1, 3
- subs r1, r2
- lsls r1, 24
- lsrs r1, 24
- lsls r2, r7, 3
- mov r0, sp
- movs r3, 0x1
- bl MenuPrint_PixelCoords
-_080B7AE4:
- add sp, 0x10
+ adds r3, r4, 0
+ bl sub_80B5230
+ add sp, 0x14
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
pop {r4-r7}
pop {r0}
bx r0
- thumb_func_end sub_80B7A94
+ thumb_func_end sub_80B5138
- thumb_func_start sub_80B7AEC
-sub_80B7AEC: @ 80B7AEC
+ thumb_func_start sub_80B5230
+sub_80B5230: @ 80B5230
push {r4-r6,lr}
- sub sp, 0x20
- adds r3, r0, 0
- adds r4, r1, 0
- adds r5, r2, 0
+ mov r6, r9
+ mov r5, r8
+ push {r5,r6}
+ sub sp, 0x4
+ adds r4, r0, 0
+ adds r5, r1, 0
+ adds r6, r2, 0
+ ldr r0, [sp, 0x1C]
+ mov r8, r0
+ ldr r0, [sp, 0x20]
+ mov r9, r0
lsls r4, 24
lsrs r4, 24
lsls r5, 24
lsrs r5, 24
- mov r6, sp
- movs r0, 0xB7
- strb r0, [r6]
- adds r6, 0x1
- adds r0, r6, 0
- adds r1, r3, 0
- bl ConvertIntToDecimalString
- adds r6, r0, 0
- mov r0, sp
- adds r1, r4, 0
- adds r2, r5, 0
- bl sub_8072B4C
- movs r0, 0xFC
- strb r0, [r6]
- movs r0, 0x14
- strb r0, [r6, 0x1]
+ lsls r6, 24
+ lsrs r6, 24
+ lsls r3, 24
+ lsrs r3, 24
+ mov r0, r8
+ lsls r0, 24
+ lsrs r0, 24
+ mov r8, r0
+ mov r0, r9
+ lsls r0, 24
+ lsrs r0, 24
+ mov r9, r0
+ ldr r0, _080B5298 @ =sub_80B52B4
+ movs r1, 0x50
+ str r3, [sp]
+ bl CreateTask
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r2, _080B529C @ =gTasks
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ adds r1, r2
+ strh r4, [r1, 0x8]
+ strh r5, [r1, 0xA]
+ strh r6, [r1, 0xC]
+ ldr r3, [sp]
+ strh r3, [r1, 0xE]
+ mov r0, r8
+ strh r0, [r1, 0x10]
+ mov r0, r9
+ cmp r0, 0x3
+ bls _080B52A0
+ movs r0, 0x1
+ b _080B52A2
+ .align 2, 0
+_080B5298: .4byte sub_80B52B4
+_080B529C: .4byte gTasks
+_080B52A0:
movs r0, 0
- strb r0, [r6, 0x2]
- movs r0, 0xFF
- strb r0, [r6, 0x3]
- add sp, 0x20
+_080B52A2:
+ strh r0, [r1, 0x12]
+ add sp, 0x4
+ pop {r3,r4}
+ mov r8, r3
+ mov r9, r4
pop {r4-r6}
pop {r0}
bx r0
- thumb_func_end sub_80B7AEC
+ thumb_func_end sub_80B5230
- thumb_func_start sub_80B7B34
-sub_80B7B34: @ 80B7B34
+ thumb_func_start sub_80B52B4
+sub_80B52B4: @ 80B52B4
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ ldr r0, _080B52E0 @ =gPaletteFade
+ ldrb r1, [r0, 0x7]
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ bne _080B534E
+ ldr r2, _080B52E4 @ =gTasks
+ lsls r1, r4, 2
+ adds r0, r1, r4
+ lsls r0, 3
+ adds r0, r2
+ movs r2, 0x12
+ ldrsh r0, [r0, r2]
+ adds r5, r1, 0
+ cmp r0, 0
+ bne _080B52E8
+ bl ProcessMenuInputNoWrap
+ b _080B52EC
+ .align 2, 0
+_080B52E0: .4byte gPaletteFade
+_080B52E4: .4byte gTasks
+_080B52E8:
+ bl ProcessMenuInput
+_080B52EC:
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r0, 24
+ asrs r1, r0, 24
+ movs r0, 0x2
+ negs r0, r0
+ cmp r1, r0
+ beq _080B534E
+ adds r0, 0x1
+ cmp r1, r0
+ bne _080B5328
+ ldr r0, _080B5320 @ =gTasks
+ adds r1, r5, r4
+ lsls r1, 3
+ adds r1, r0
+ movs r2, 0x10
+ ldrsh r0, [r1, r2]
+ cmp r0, 0
+ bne _080B534E
+ movs r0, 0x5
+ bl PlaySE
+ ldr r1, _080B5324 @ =gScriptResult
+ movs r0, 0x7F
+ strh r0, [r1]
+ b _080B532C
+ .align 2, 0
+_080B5320: .4byte gTasks
+_080B5324: .4byte gScriptResult
+_080B5328:
+ ldr r0, _080B5354 @ =gScriptResult
+ strh r1, [r0]
+_080B532C:
+ bl sub_8072DEC
+ ldr r0, _080B5358 @ =gTasks
+ adds r3, r5, r4
+ lsls r3, 3
+ adds r3, r0
+ ldrb r0, [r3, 0x8]
+ ldrb r1, [r3, 0xA]
+ ldrb r2, [r3, 0xC]
+ ldrb r3, [r3, 0xE]
+ bl MenuZeroFillWindowRect
+ adds r0, r4, 0
+ bl DestroyTask
+ bl EnableBothScriptContexts
+_080B534E:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080B5354: .4byte gScriptResult
+_080B5358: .4byte gTasks
+ thumb_func_end sub_80B52B4
+
+ thumb_func_start Multichoice
+Multichoice: @ 80B535C
push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
sub sp, 0x4
- mov r8, r0
- adds r5, r1, 0
- mov r9, r2
+ lsls r0, 24
+ lsrs r7, r0, 24
+ lsls r1, 24
+ lsrs r6, r1, 24
+ lsls r2, 24
+ lsrs r4, r2, 24
+ lsls r3, 24
+ lsrs r5, r3, 24
+ ldr r0, _080B539C @ =sub_80B52B4
+ bl FuncIsActiveTask
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ beq _080B53A8
+ ldr r1, _080B53A0 @ =gScriptResult
+ movs r0, 0xFF
+ strh r0, [r1]
+ ldr r1, _080B53A4 @ =gMultichoiceLists
+ lsls r0, r4, 3
+ adds r0, r1
+ ldrb r2, [r0, 0x4]
+ ldr r3, [r0]
+ str r5, [sp]
+ adds r0, r7, 0
+ adds r1, r6, 0
+ bl sub_80B53B4
+ movs r0, 0x1
+ b _080B53AA
+ .align 2, 0
+_080B539C: .4byte sub_80B52B4
+_080B53A0: .4byte gScriptResult
+_080B53A4: .4byte gMultichoiceLists
+_080B53A8:
+ movs r0, 0
+_080B53AA:
+ add sp, 0x4
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ thumb_func_end Multichoice
+
+ thumb_func_start sub_80B53B4
+sub_80B53B4: @ 80B53B4
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x8
+ adds r7, r3, 0
+ ldr r3, [sp, 0x28]
lsls r0, 24
lsrs r0, 24
mov r8, r0
- lsls r5, 24
- lsrs r5, 24
- mov r1, r9
- lsls r1, 8
+ lsls r1, 24
+ lsrs r1, 24
mov r9, r1
- ldr r4, _080B7BD8 @ =gDecoration10000_Gfx
- adds r0, r1, r4
- lsls r6, r5, 4
- subs r6, r5
- lsls r1, r6, 6
- mov r3, r8
- adds r3, 0x1
- lsls r3, 5
- ldr r2, _080B7BDC @ =0x06008000
- adds r3, r2
- adds r1, r3
- movs r2, 0x20
- str r3, [sp]
- bl CpuFastSet
- adds r4, 0x80
- add r9, r4
+ lsls r2, 24
+ lsrs r6, r2, 24
+ lsls r3, 24
+ lsrs r3, 24
+ mov r10, r3
+ ldr r0, [r7]
+ bl GetStringWidthInTilesForScriptMenu
+ lsls r0, 16
+ lsrs r4, r0, 16
+ movs r5, 0x1
+ cmp r5, r6
+ bcs _080B5408
+_080B53EA:
+ lsls r0, r5, 3
+ adds r0, r7
+ ldr r0, [r0]
+ bl GetStringWidthInTilesForScriptMenu
+ lsls r0, 16
+ lsrs r0, 16
+ cmp r4, r0
+ bcs _080B53FE
+ adds r4, r0, 0
+_080B53FE:
adds r0, r5, 0x1
- lsls r4, r0, 4
- subs r4, r0
- lsls r1, r4, 6
- ldr r3, [sp]
- adds r1, r3
- mov r0, r9
- movs r2, 0x20
- bl CpuFastSet
- movs r3, 0
- lsls r5, 5
- mov r0, r8
- adds r7, r5, r0
- lsls r6, 1
- adds r6, 0x1
- add r6, r8
- ldr r1, _080B7BE0 @ =0xfffff000
- adds r5, r1, 0
- ldr r0, _080B7BE4 @ =0x0600f800
- mov r12, r0
- ldr r1, _080B7BE8 @ =0x0600f840
- mov r9, r1
- lsls r4, 1
- adds r4, 0x1
+ lsls r0, 24
+ lsrs r5, r0, 24
+ cmp r5, r6
+ bcc _080B53EA
+_080B5408:
+ lsls r4, 24
+ lsrs r4, 24
add r4, r8
-_080B7BAA:
- adds r1, r7, r3
- lsls r1, 1
- mov r0, r12
- adds r2, r1, r0
- adds r0, r3, r6
- adds r0, r5
- strh r0, [r2]
- add r1, r9
- adds r0, r3, r4
- adds r0, r5
- strh r0, [r1]
- adds r0, r3, 0x1
- lsls r0, 16
- lsrs r3, r0, 16
- cmp r3, 0x3
- bls _080B7BAA
- add sp, 0x4
- pop {r3,r4}
+ adds r4, 0x2
+ lsls r4, 24
+ lsrs r4, 24
+ lsls r0, r6, 1
+ adds r0, 0x1
+ mov r1, r9
+ lsls r5, r1, 24
+ asrs r5, 24
+ adds r5, r0
+ lsls r5, 24
+ lsrs r5, 24
+ mov r0, r8
+ adds r2, r6, 0
+ adds r3, r7, 0
+ bl PrintMenuItems
+ movs r0, 0
+ str r0, [sp]
+ mov r1, r8
+ subs r0, r4, r1
+ subs r0, 0x1
+ lsls r0, 24
+ lsrs r0, 24
+ str r0, [sp, 0x4]
+ movs r0, 0
+ mov r2, r9
+ adds r3, r6, 0
+ bl InitMenu
+ mov r0, r10
+ str r0, [sp]
+ str r6, [sp, 0x4]
+ mov r0, r8
+ mov r1, r9
+ adds r2, r4, 0
+ adds r3, r5, 0
+ bl sub_80B5230
+ 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 sub_80B53B4
+
+ thumb_func_start yes_no_box
+yes_no_box: @ 80B546C
+ push {r4-r6,lr}
+ lsls r0, 24
+ lsrs r5, r0, 24
+ lsls r1, 24
+ lsrs r4, r1, 24
+ ldr r6, _080B54B4 @ =task_yes_no_maybe
+ adds r0, r6, 0
+ bl FuncIsActiveTask
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ beq _080B54C0
+ ldr r1, _080B54B8 @ =gScriptResult
+ movs r0, 0xFF
+ strh r0, [r1]
+ adds r0, r5, 0
+ adds r1, r4, 0
+ movs r2, 0x1
+ bl DisplayYesNoMenu
+ adds r0, r6, 0
+ movs r1, 0x50
+ bl CreateTask
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r2, _080B54BC @ =gTasks
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ adds r1, r2
+ strh r5, [r1, 0x8]
+ strh r4, [r1, 0xA]
+ movs r0, 0x1
+ b _080B54C2
.align 2, 0
-_080B7BD8: .4byte gDecoration10000_Gfx
-_080B7BDC: .4byte 0x06008000
-_080B7BE0: .4byte 0xfffff000
-_080B7BE4: .4byte 0x0600f800
-_080B7BE8: .4byte 0x0600f840
- thumb_func_end sub_80B7B34
+_080B54B4: .4byte task_yes_no_maybe
+_080B54B8: .4byte gScriptResult
+_080B54BC: .4byte gTasks
+_080B54C0:
+ movs r0, 0
+_080B54C2:
+ pop {r4-r6}
+ pop {r1}
+ bx r1
+ thumb_func_end yes_no_box
- thumb_func_start sub_80B7BEC
-sub_80B7BEC: @ 80B7BEC
+ thumb_func_start unref_sub_80B54C8
+unref_sub_80B54C8: @ 80B54C8
+ push {lr}
+ ldr r0, _080B54D8 @ =gScriptResult
+ ldrh r0, [r0]
+ cmp r0, 0xFF
+ beq _080B54DC
+ movs r0, 0x1
+ b _080B54DE
+ .align 2, 0
+_080B54D8: .4byte gScriptResult
+_080B54DC:
+ movs r0, 0
+_080B54DE:
+ pop {r1}
+ bx r1
+ thumb_func_end unref_sub_80B54C8
+
+ thumb_func_start task_yes_no_maybe
+task_yes_no_maybe: @ 80B54E4
push {r4,lr}
- adds r4, r1, 0
- adds r3, r2, 0
- lsls r4, 24
+ lsls r0, 24
+ lsrs r4, r0, 24
+ ldr r1, _080B5504 @ =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 _080B5508
+ adds r0, r2, 0x1
+ strh r0, [r1, 0xC]
+ b _080B556A
+ .align 2, 0
+_080B5504: .4byte gTasks
+_080B5508:
+ bl ProcessMenuInputNoWrap
+ lsls r0, 24
+ asrs r1, r0, 24
+ movs r0, 0x1
+ negs r0, r0
+ cmp r1, r0
+ beq _080B552C
+ cmp r1, r0
+ bgt _080B5524
+ subs r0, 0x1
+ cmp r1, r0
+ beq _080B556A
+ b _080B5542
+_080B5524:
+ cmp r1, 0
+ beq _080B553C
+ cmp r1, 0x1
+ bne _080B5542
+_080B552C:
+ movs r0, 0x5
+ bl PlaySE
+ ldr r1, _080B5538 @ =gScriptResult
+ movs r0, 0
+ b _080B5540
+ .align 2, 0
+_080B5538: .4byte gScriptResult
+_080B553C:
+ ldr r1, _080B5570 @ =gScriptResult
+ movs r0, 0x1
+_080B5540:
+ strh r0, [r1]
+_080B5542:
+ ldr r0, _080B5574 @ =gTasks
+ lsls r1, r4, 2
+ adds r1, r4
+ lsls r1, 3
+ adds r1, r0
+ ldrb r0, [r1, 0x8]
+ ldrb r1, [r1, 0xA]
+ adds r2, r0, 0x6
+ lsls r2, 24
+ lsrs r2, 24
+ adds r3, r1, 0x5
lsls r3, 24
- movs r1, 0xC0
- lsls r1, 19
- adds r4, r1
- lsrs r4, 24
- movs r1, 0x80
- lsls r1, 17
- adds r3, r1
lsrs r3, 24
- movs r1, 0x6
- adds r2, r4, 0
- bl sub_80B7A94
+ bl MenuZeroFillWindowRect
+ adds r0, r4, 0
+ bl DestroyTask
+ bl EnableBothScriptContexts
+_080B556A:
pop {r4}
pop {r0}
bx r0
- thumb_func_end sub_80B7BEC
+ .align 2, 0
+_080B5570: .4byte gScriptResult
+_080B5574: .4byte gTasks
+ thumb_func_end task_yes_no_maybe
- thumb_func_start sub_80B7C14
-sub_80B7C14: @ 80B7C14
- push {r4-r6,lr}
- mov r6, r8
- push {r6}
- mov r8, r0
- adds r4, r1, 0
- adds r3, r2, 0
- lsls r4, 24
+ thumb_func_start sub_80B5578
+sub_80B5578: @ 80B5578
+ 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 r0, 24
+ mov r9, r0
+ lsls r1, 24
+ lsrs r1, 24
+ mov r8, r1
+ lsls r2, 24
+ lsrs r6, r2, 24
lsls r3, 24
- lsrs r6, r4, 24
- movs r0, 0xD0
- lsls r0, 20
- adds r4, r0
- lsrs r4, 24
- lsrs r5, r3, 24
- movs r1, 0xC0
- lsls r1, 18
- adds r3, r1
lsrs r3, 24
+ str r3, [sp, 0xC]
+ lsls r4, 24
+ lsrs r5, r4, 24
+ movs r7, 0
+ ldr r0, _080B55B8 @ =sub_80B5684
+ mov r10, r0
+ bl FuncIsActiveTask
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _080B55BC
+ movs r0, 0
+ b _080B5670
+ .align 2, 0
+_080B55B8: .4byte sub_80B5684
+_080B55BC:
+ ldr r1, _080B5620 @ =gScriptResult
+ movs r0, 0xFF
+ strh r0, [r1]
+ ldr r0, _080B5624 @ =gMultichoiceLists
+ lsls r4, r6, 3
+ adds r0, r4, r0
+ ldrb r6, [r0, 0x4]
+ ldr r0, [r0]
+ str r0, [sp]
+ str r5, [sp, 0x4]
+ str r7, [sp, 0x8]
+ mov r0, r9
+ mov r1, r8
+ adds r2, r6, 0
+ movs r3, 0
+ bl sub_807274C
+ mov r0, r10
+ movs r1, 0x50
+ bl CreateTask
+ lsls r0, 24
+ lsrs r0, 24
+ mov r10, r0
+ lsls r0, r6, 24
+ lsrs r1, r0, 24
+ lsrs r0, 25
+ cmp r0, r5
+ bcc _080B55FE
+ movs r0, 0x1
+ ands r0, r6
+ cmp r0, 0
+ beq _080B5606
+_080B55FE:
+ cmp r5, 0x1
+ beq _080B5606
+ cmp r1, r5
+ bne _080B5628
+_080B5606:
+ ldr r0, _080B5624 @ =gMultichoiceLists
+ adds r0, r4, r0
+ ldrb r0, [r0, 0x4]
+ adds r1, r5, 0
+ bl __udivsi3
+ lsls r0, 24
+ lsrs r0, 23
+ adds r0, 0x1
+ mov r2, r8
+ lsls r1, r2, 24
+ b _080B563A
+ .align 2, 0
+_080B5620: .4byte gScriptResult
+_080B5624: .4byte gMultichoiceLists
+_080B5628:
adds r0, r6, 0
adds r1, r5, 0
- adds r2, r4, 0
- bl MenuDrawTextWindow
- mov r0, r8
- adds r1, r6, 0
- adds r2, r5, 0
- bl sub_80B7BEC
- ldr r0, _080B7C88 @ =gUnknown_083CF584
- bl LoadCompressedObjectPic
- ldr r0, _080B7C8C @ =gUnknown_083CF58C
- bl LoadCompressedObjectPalette
- ldr r0, _080B7C90 @ =gSpriteTemplate_83CF56C
- lsls r6, 19
- movs r1, 0x98
- lsls r1, 13
- adds r6, r1
- asrs r6, 16
- lsls r5, 19
- movs r1, 0xB0
- lsls r1, 12
- adds r5, r1
- asrs r5, 16
- adds r1, r6, 0
- adds r2, r5, 0
- movs r3, 0
- bl CreateSprite
- ldr r1, _080B7C94 @ =gUnknown_02038734
- strb r0, [r1]
- pop {r3}
+ bl __udivsi3
+ lsls r0, 24
+ lsrs r0, 23
+ adds r0, 0x3
+ mov r3, r8
+ lsls r1, r3, 24
+_080B563A:
+ asrs r1, 24
+ adds r1, r0
+ lsls r1, 24
+ lsrs r7, r1, 24
+ adds r0, r5, 0
+ bl sub_807288C
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r2, _080B5680 @ =gTasks
+ mov r3, r10
+ lsls r1, r3, 2
+ add r1, r10
+ lsls r1, 3
+ adds r1, r2
+ mov r2, r9
+ strh r2, [r1, 0x8]
+ mov r3, r8
+ strh r3, [r1, 0xA]
+ add r0, r9
+ adds r0, 0x2
+ strh r0, [r1, 0xC]
+ strh r7, [r1, 0xE]
+ mov r0, sp
+ ldrh r0, [r0, 0xC]
+ strh r0, [r1, 0x10]
+ movs r0, 0x1
+_080B5670:
+ add sp, 0x10
+ pop {r3-r5}
mov r8, r3
- pop {r4-r6}
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_080B5680: .4byte gTasks
+ thumb_func_end sub_80B5578
+
+ thumb_func_start sub_80B5684
+sub_80B5684: @ 80B5684
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r5, r0, 24
+ bl sub_80727CC
+ lsls r0, 24
+ asrs r1, r0, 24
+ movs r0, 0x2
+ negs r0, r0
+ cmp r1, r0
+ beq _080B56F4
+ adds r0, 0x1
+ cmp r1, r0
+ bne _080B56CC
+ ldr r2, _080B56C4 @ =gTasks
+ lsls r1, r5, 2
+ adds r0, r1, r5
+ lsls r0, 3
+ adds r0, r2
+ movs r2, 0x10
+ ldrsh r0, [r0, r2]
+ adds r4, r1, 0
+ cmp r0, 0
+ bne _080B56F4
+ movs r0, 0x5
+ bl PlaySE
+ ldr r1, _080B56C8 @ =gScriptResult
+ movs r0, 0x7F
+ strh r0, [r1]
+ b _080B56D2
+ .align 2, 0
+_080B56C4: .4byte gTasks
+_080B56C8: .4byte gScriptResult
+_080B56CC:
+ ldr r0, _080B56FC @ =gScriptResult
+ strh r1, [r0]
+ lsls r4, r5, 2
+_080B56D2:
+ bl sub_8072DEC
+ ldr r0, _080B5700 @ =gTasks
+ adds r3, r4, r5
+ lsls r3, 3
+ adds r3, r0
+ ldrb r0, [r3, 0x8]
+ ldrb r1, [r3, 0xA]
+ ldrb r2, [r3, 0xC]
+ ldrb r3, [r3, 0xE]
+ bl MenuZeroFillWindowRect
+ adds r0, r5, 0
+ bl DestroyTask
+ bl EnableBothScriptContexts
+_080B56F4:
+ pop {r4,r5}
pop {r0}
bx r0
.align 2, 0
-_080B7C88: .4byte gUnknown_083CF584
-_080B7C8C: .4byte gUnknown_083CF58C
-_080B7C90: .4byte gSpriteTemplate_83CF56C
-_080B7C94: .4byte gUnknown_02038734
- thumb_func_end sub_80B7C14
+_080B56FC: .4byte gScriptResult
+_080B5700: .4byte gTasks
+ thumb_func_end sub_80B5684
+
+ thumb_func_start sp109_CreatePCMenu
+sp109_CreatePCMenu: @ 80B5704
+ push {lr}
+ ldr r0, _080B5724 @ =sub_80B52B4
+ bl FuncIsActiveTask
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ beq _080B572C
+ ldr r1, _080B5728 @ =gScriptResult
+ movs r0, 0xFF
+ strh r0, [r1]
+ bl CreatePCMenu
+ movs r0, 0x1
+ b _080B572E
+ .align 2, 0
+_080B5724: .4byte sub_80B52B4
+_080B5728: .4byte gScriptResult
+_080B572C:
+ movs r0, 0
+_080B572E:
+ pop {r1}
+ bx r1
+ thumb_func_end sp109_CreatePCMenu
- thumb_func_start RemoveMoneyLabelObject
-RemoveMoneyLabelObject: @ 80B7C98
+ thumb_func_start CreatePCMenu
+CreatePCMenu: @ 80B5734
+ push {r4-r7,lr}
+ sub sp, 0x8
+ ldr r0, _080B5758 @ =gPCText_PlayersPC
+ bl GetStringWidthInTilesForScriptMenu
+ lsls r0, 16
+ lsrs r4, r0, 16
+ ldr r0, _080B575C @ =gPCText_SomeonesPC
+ bl GetStringWidthInTilesForScriptMenu
+ lsls r0, 16
+ lsrs r0, 16
+ cmp r4, r0
+ bls _080B5760
+ lsls r0, r4, 24
+ lsrs r5, r0, 24
+ b _080B5762
+ .align 2, 0
+_080B5758: .4byte gPCText_PlayersPC
+_080B575C: .4byte gPCText_SomeonesPC
+_080B5760:
+ movs r5, 0x8
+_080B5762:
+ ldr r0, _080B5798 @ =0x00000804
+ bl FlagGet
+ lsls r0, 24
+ cmp r0, 0
+ beq _080B57A4
+ movs r7, 0x4
+ adds r4, r5, 0x2
+ lsls r2, r4, 24
+ lsrs r2, 24
+ movs r0, 0
+ movs r1, 0
+ movs r3, 0x9
+ bl MenuDrawTextWindow
+ ldr r0, _080B579C @ =gPCText_HallOfFame
+ movs r1, 0x1
+ movs r2, 0x5
+ bl MenuPrint
+ ldr r0, _080B57A0 @ =gPCText_LogOff
+ movs r1, 0x1
+ movs r2, 0x7
+ bl MenuPrint
+ b _080B57C0
+ .align 2, 0
+_080B5798: .4byte 0x00000804
+_080B579C: .4byte gPCText_HallOfFame
+_080B57A0: .4byte gPCText_LogOff
+_080B57A4:
+ movs r7, 0x3
+ adds r4, r5, 0x2
+ lsls r2, r4, 24
+ lsrs r2, 24
+ movs r0, 0
+ movs r1, 0
+ movs r3, 0x7
+ bl MenuDrawTextWindow
+ ldr r0, _080B57DC @ =gPCText_LogOff
+ movs r1, 0x1
+ movs r2, 0x5
+ bl MenuPrint
+_080B57C0:
+ adds r6, r4, 0
+ ldr r0, _080B57E0 @ =0x0000084b
+ bl FlagGet
+ lsls r0, 24
+ cmp r0, 0
+ beq _080B57E8
+ ldr r0, _080B57E4 @ =gPCText_LanettesPC
+ movs r1, 0x1
+ movs r2, 0x1
+ bl MenuPrint
+ b _080B57F2
+ .align 2, 0
+_080B57DC: .4byte gPCText_LogOff
+_080B57E0: .4byte 0x0000084b
+_080B57E4: .4byte gPCText_LanettesPC
+_080B57E8:
+ ldr r0, _080B5830 @ =gPCText_SomeonesPC
+ movs r1, 0x1
+ movs r2, 0x1
+ bl MenuPrint
+_080B57F2:
+ ldr r0, _080B5834 @ =gPCText_PlayersPC
+ movs r1, 0x1
+ movs r2, 0x3
+ bl MenuPrint
+ movs r4, 0
+ str r4, [sp]
+ adds r0, r5, 0x1
+ lsls r0, 24
+ lsrs r0, 24
+ str r0, [sp, 0x4]
+ movs r0, 0
+ movs r1, 0x1
+ movs r2, 0x1
+ adds r3, r7, 0
+ bl InitMenu
+ lsls r2, r6, 24
+ lsrs r2, 24
+ lsls r3, r7, 1
+ adds r3, 0x1
+ str r4, [sp]
+ str r7, [sp, 0x4]
+ movs r0, 0
+ movs r1, 0
+ bl sub_80B5230
+ add sp, 0x8
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080B5830: .4byte gPCText_SomeonesPC
+_080B5834: .4byte gPCText_PlayersPC
+ thumb_func_end CreatePCMenu
+
+ thumb_func_start sub_80B5838
+sub_80B5838: @ 80B5838
+ push {lr}
+ bl MenuDisplayMessageBox
+ ldr r0, _080B584C @ =gUnknown_081A0A01
+ movs r1, 0x2
+ movs r2, 0xF
+ bl MenuPrint
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080B584C: .4byte gUnknown_081A0A01
+ thumb_func_end sub_80B5838
+
+ thumb_func_start task_picbox
+task_picbox: @ 80B5850
push {r4,r5,lr}
- adds r4, r0, 0
- adds r5, r1, 0
- lsls r4, 24
- lsrs r4, 24
- lsls r5, 24
- lsrs r5, 24
- ldr r0, _080B7CDC @ =gUnknown_02038734
- ldrb r1, [r0]
+ lsls r0, 24
+ lsrs r5, r0, 24
+ lsls r0, r5, 2
+ adds r0, r5
+ lsls r0, 3
+ ldr r1, _080B5874 @ =gTasks
+ adds r4, r0, r1
+ movs r1, 0x8
+ ldrsh r0, [r4, r1]
+ cmp r0, 0x1
+ beq _080B58BE
+ cmp r0, 0x1
+ bgt _080B5878
+ cmp r0, 0
+ beq _080B5894
+ b _080B58BE
+ .align 2, 0
+_080B5874: .4byte gTasks
+_080B5878:
+ cmp r0, 0x2
+ beq _080B5882
+ cmp r0, 0x3
+ beq _080B58A0
+ b _080B58BE
+_080B5882:
+ movs r0, 0xC
+ ldrsh r1, [r4, r0]
lsls r0, r1, 4
adds r0, r1
lsls r0, 2
- ldr r1, _080B7CE0 @ =gSprites
+ ldr r1, _080B589C @ =gSprites
adds r0, r1
- bl DestroySpriteAndFreeResources
- ldr r0, _080B7CE4 @ =0x00002722
- bl FreeSpritePaletteByTag
- adds r2, r4, 0
- adds r2, 0xD
+ bl FreeResourcesAndDestroySprite
+_080B5894:
+ ldrh r0, [r4, 0x8]
+ adds r0, 0x1
+ strh r0, [r4, 0x8]
+ b _080B58BE
+ .align 2, 0
+_080B589C: .4byte gSprites
+_080B58A0:
+ ldrb r2, [r4, 0xE]
+ adds r0, r2, 0
+ ldrb r3, [r4, 0x10]
+ adds r1, r3, 0
+ adds r2, 0x9
lsls r2, 24
lsrs r2, 24
- adds r3, r5, 0x3
+ adds r3, 0xA
lsls r3, 24
lsrs r3, 24
- adds r0, r4, 0
- adds r1, r5, 0
bl MenuZeroFillWindowRect
+ adds r0, r5, 0
+ bl DestroyTask
+_080B58BE:
pop {r4,r5}
pop {r0}
bx r0
- .align 2, 0
-_080B7CDC: .4byte gUnknown_02038734
-_080B7CE0: .4byte gSprites
-_080B7CE4: .4byte 0x00002722
- thumb_func_end RemoveMoneyLabelObject
+ thumb_func_end task_picbox
- thumb_func_start sub_80B7CE8
-sub_80B7CE8: @ 80B7CE8
- push {lr}
- ldr r0, _080B7D04 @ =gSaveBlock1
- movs r1, 0x92
- lsls r1, 3
- adds r0, r1
- ldr r0, [r0]
- ldr r1, _080B7D08 @ =gUnknown_0202E8CE
- ldrh r1, [r1]
- bl IsEnoughMoney
+ thumb_func_start sub_80B58C4
+sub_80B58C4: @ 80B58C4
+ push {r4-r7,lr}
+ lsls r0, 16
+ lsrs r7, r0, 16
+ lsls r1, 24
+ lsrs r6, r1, 24
+ lsls r2, 24
+ lsrs r5, r2, 24
+ ldr r4, _080B595C @ =task_picbox
+ adds r0, r4, 0
+ bl FindTaskIdByFunc
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0xFF
+ bne _080B596C
+ adds r2, r6, 0
+ adds r2, 0x9
+ lsls r2, 24
+ lsrs r2, 24
+ adds r3, r5, 0
+ adds r3, 0xA
+ lsls r3, 24
+ lsrs r3, 24
+ adds r0, r6, 0
+ adds r1, r5, 0
+ bl MenuDrawTextWindow
+ adds r0, r4, 0
+ movs r1, 0x50
+ bl CreateTask
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r1, _080B5960 @ =gTasks
+ lsls r4, r0, 2
+ adds r4, r0
+ lsls r4, 3
+ adds r4, r1
+ movs r0, 0
+ strh r0, [r4, 0x8]
+ strh r7, [r4, 0xA]
+ lsls r1, r6, 19
+ movs r0, 0xA0
+ lsls r0, 14
+ adds r1, r0
+ asrs r1, 16
+ lsls r2, r5, 19
+ adds r2, r0
+ asrs r2, 16
+ adds r0, r7, 0
+ movs r3, 0
+ bl CreateMonSprite_PicBox
lsls r0, 24
lsrs r0, 24
+ strh r0, [r4, 0xC]
+ strh r6, [r4, 0xE]
+ strh r5, [r4, 0x10]
+ ldr r3, _080B5964 @ =gSprites
+ lsls r1, r0, 4
+ adds r1, r0
+ lsls r1, 2
+ adds r0, r3, 0
+ adds r0, 0x1C
+ adds r0, r1, r0
+ ldr r2, _080B5968 @ =SpriteCallbackDummy
+ str r2, [r0]
+ adds r1, r3
+ ldrb r2, [r1, 0x5]
+ movs r0, 0xD
+ negs r0, r0
+ ands r0, r2
+ strb r0, [r1, 0x5]
+ movs r0, 0x1
+ b _080B596E
+ .align 2, 0
+_080B595C: .4byte task_picbox
+_080B5960: .4byte gTasks
+_080B5964: .4byte gSprites
+_080B5968: .4byte SpriteCallbackDummy
+_080B596C:
+ movs r0, 0
+_080B596E:
+ pop {r4-r7}
pop {r1}
bx r1
+ thumb_func_end sub_80B58C4
+
+ thumb_func_start picbox_close
+picbox_close: @ 80B5974
+ push {lr}
+ ldr r0, _080B5998 @ =task_picbox
+ bl FindTaskIdByFunc
+ lsls r0, 24
+ lsrs r2, r0, 24
+ cmp r2, 0xFF
+ beq _080B59A4
+ ldr r0, _080B599C @ =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, _080B59A0 @ =sub_80B59AC
+ b _080B59A6
.align 2, 0
-_080B7D04: .4byte gSaveBlock1
-_080B7D08: .4byte gUnknown_0202E8CE
- thumb_func_end sub_80B7CE8
+_080B5998: .4byte task_picbox
+_080B599C: .4byte gTasks
+_080B59A0: .4byte sub_80B59AC
+_080B59A4:
+ movs r0, 0
+_080B59A6:
+ pop {r1}
+ bx r1
+ thumb_func_end picbox_close
- thumb_func_start sub_80B7D0C
-sub_80B7D0C: @ 80B7D0C
+ thumb_func_start sub_80B59AC
+sub_80B59AC: @ 80B59AC
push {lr}
- ldr r0, _080B7D1C @ =gSaveBlock1 + 0x490
- ldr r1, _080B7D20 @ =gUnknown_0202E8CE
- ldrh r1, [r1]
- bl sub_80B79E0
- pop {r0}
- bx r0
+ ldr r0, _080B59C0 @ =task_picbox
+ bl FindTaskIdByFunc
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0xFF
+ beq _080B59C4
+ movs r0, 0
+ b _080B59C6
.align 2, 0
-_080B7D1C: .4byte gSaveBlock1 + 0x490
-_080B7D20: .4byte gUnknown_0202E8CE
- thumb_func_end sub_80B7D0C
+_080B59C0: .4byte task_picbox
+_080B59C4:
+ movs r0, 0x1
+_080B59C6:
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80B59AC
.align 2, 0 @ Don't pad with nop.
diff --git a/ld_script.txt b/ld_script.txt
index 7f2a6c8d1..c6984bff4 100644
--- a/ld_script.txt
+++ b/ld_script.txt
@@ -103,9 +103,9 @@ SECTIONS {
asm/save_menu_util.o(.text);
asm/rom_8094928.o(.text);
asm/berry.o(.text);
- asm/rom_80B5054.o(.text);
- asm/naming_screen.o(.text);
asm/script_menu.o(.text);
+ asm/naming_screen.o(.text);
+ asm/money.o(.text);
asm/contest_effect.o(.text);
asm/record_mixing.o(.text);
asm/sound_check_menu.o(.text);