summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authoroctorock <79596758+octorock@users.noreply.github.com>2022-03-02 21:03:35 +0100
committeroctorock <79596758+octorock@users.noreply.github.com>2022-03-02 22:33:13 +0100
commit7bedfbf033583ce38a35999d448bf42e2e372c82 (patch)
tree7028856ebad1dce631bb8447519d422643148d07
parent4d66b468f843f72b6a7e5cae21b4c24cb25096d7 (diff)
Decompile subtask
-rw-r--r--asm/code_08054C04.s2368
-rw-r--r--linker.ld2
-rw-r--r--src/subtask.c864
3 files changed, 865 insertions, 2369 deletions
diff --git a/asm/code_08054C04.s b/asm/code_08054C04.s
deleted file mode 100644
index e8a02905..00000000
--- a/asm/code_08054C04.s
+++ /dev/null
@@ -1,2368 +0,0 @@
- .include "asm/macros.inc"
-
- .include "constants/constants.inc"
-
- .syntax unified
-
- .text
-
- thumb_func_start sub_08054C04
-sub_08054C04: @ 0x08054C04
- push {lr}
- ldr r1, _08054C18 @ =gUnk_080FEEB8
- ldr r0, _08054C1C @ =gMenu
- ldrb r0, [r0, #6]
- lsls r0, r0, #2
- adds r0, r0, r1
- ldr r0, [r0]
- bl _call_via_r0
- pop {pc}
- .align 2, 0
-_08054C18: .4byte gUnk_080FEEB8
-_08054C1C: .4byte gMenu
-
- thumb_func_start sub_08054C20
-sub_08054C20: @ 0x08054C20
- push {r4, lr}
- ldr r4, _08054C50 @ =gMenu
- ldrb r0, [r4, #4]
- movs r1, #0
- movs r2, #0
- movs r3, #0
- bl sub_08055B70
- ldrb r0, [r4, #4]
- movs r1, #0
- bl sub_0801876C
- ldrb r0, [r4, #6]
- adds r0, #1
- strb r0, [r4, #6]
- ldr r1, _08054C54 @ =gUpdateVisibleTiles
- movs r0, #1
- strb r0, [r1]
- movs r0, #4
- movs r1, #0x10
- bl SetFade
- pop {r4, pc}
- .align 2, 0
-_08054C50: .4byte gMenu
-_08054C54: .4byte gUpdateVisibleTiles
-
- thumb_func_start sub_08054C58
-sub_08054C58: @ 0x08054C58
- push {lr}
- ldr r0, _08054C80 @ =gFadeControl
- ldrb r0, [r0]
- cmp r0, #0
- bne _08054C7C
- movs r0, #0xff
- bl CheckRoomFlag
- cmp r0, #0
- beq _08054C7C
- movs r0, #7
- movs r1, #0x10
- bl SetFade
- ldr r1, _08054C84 @ =gMenu
- ldrb r0, [r1, #6]
- adds r0, #1
- strb r0, [r1, #6]
-_08054C7C:
- pop {pc}
- .align 2, 0
-_08054C80: .4byte gFadeControl
-_08054C84: .4byte gMenu
-
- thumb_func_start sub_08054C88
-sub_08054C88: @ 0x08054C88
- push {r4, lr}
- ldr r0, _08054CB8 @ =gFadeControl
- ldrb r0, [r0]
- cmp r0, #0
- bne _08054CB4
- ldr r4, _08054CBC @ =gMenu
- ldrb r0, [r4, #4]
- movs r1, #0
- bl sub_08054974
- movs r0, #6
- movs r1, #0x10
- bl SetFade
- movs r0, #0x73
- bl SoundReq
- ldrb r0, [r4, #6]
- adds r0, #1
- strb r0, [r4, #6]
- movs r0, #0x78
- strh r0, [r4, #8]
-_08054CB4:
- pop {r4, pc}
- .align 2, 0
-_08054CB8: .4byte gFadeControl
-_08054CBC: .4byte gMenu
-
- thumb_func_start sub_08054CC0
-sub_08054CC0: @ 0x08054CC0
- push {lr}
- ldr r0, _08054CE0 @ =gFadeControl
- ldrb r0, [r0]
- cmp r0, #0
- bne _08054CDE
- ldr r1, _08054CE4 @ =gMenu
- ldrh r0, [r1, #8]
- subs r0, #1
- strh r0, [r1, #8]
- lsls r0, r0, #0x10
- cmp r0, #0
- bne _08054CDE
- ldrb r0, [r1, #5]
- adds r0, #1
- strb r0, [r1, #5]
-_08054CDE:
- pop {pc}
- .align 2, 0
-_08054CE0: .4byte gFadeControl
-_08054CE4: .4byte gMenu
-
- thumb_func_start sub_08054CE8
-sub_08054CE8: @ 0x08054CE8
- push {lr}
- ldr r1, _08054CFC @ =gUnk_080FEEC8
- ldr r0, _08054D00 @ =gMenu
- ldrb r0, [r0, #6]
- lsls r0, r0, #2
- adds r0, r0, r1
- ldr r0, [r0]
- bl _call_via_r0
- pop {pc}
- .align 2, 0
-_08054CFC: .4byte gUnk_080FEEC8
-_08054D00: .4byte gMenu
-
- thumb_func_start sub_08054D04
-sub_08054D04: @ 0x08054D04
- push {r4, lr}
- ldr r4, _08054D34 @ =gMenu
- ldr r1, [r4, #0xc]
- ldrb r0, [r1, #2]
- ldrb r1, [r1, #3]
- bl sub_0804B0B0
- ldrb r0, [r4, #4]
- movs r1, #0
- movs r2, #0
- movs r3, #0
- bl sub_08055B70
- ldrb r0, [r4, #6]
- adds r0, #1
- strb r0, [r4, #6]
- ldr r1, _08054D38 @ =gUpdateVisibleTiles
- movs r0, #1
- strb r0, [r1]
- movs r0, #4
- movs r1, #0x10
- bl SetFade
- pop {r4, pc}
- .align 2, 0
-_08054D34: .4byte gMenu
-_08054D38: .4byte gUpdateVisibleTiles
-
- thumb_func_start sub_08054D3C
-sub_08054D3C: @ 0x08054D3C
- push {r4, lr}
- ldr r0, _08054D6C @ =gFadeControl
- ldrb r0, [r0]
- cmp r0, #0
- bne _08054D6A
- movs r0, #0xff
- bl CheckRoomFlag
- cmp r0, #0
- beq _08054D6A
- ldr r4, _08054D70 @ =gMenu
- ldrb r0, [r4, #4]
- movs r1, #1
- bl sub_0801876C
- ldrb r0, [r4, #4]
- bl sub_080553E0
- ldrb r0, [r4, #6]
- adds r0, #1
- strb r0, [r4, #6]
- movs r0, #0x78
- strh r0, [r4, #8]
-_08054D6A:
- pop {r4, pc}
- .align 2, 0
-_08054D6C: .4byte gFadeControl
-_08054D70: .4byte gMenu
-
- thumb_func_start sub_08054D74
-sub_08054D74: @ 0x08054D74
- push {lr}
- ldr r1, _08054D8C @ =gMenu
- ldrh r0, [r1, #8]
- subs r0, #1
- strh r0, [r1, #8]
- lsls r0, r0, #0x10
- cmp r0, #0
- bne _08054D8A
- ldrb r0, [r1, #5]
- adds r0, #1
- strb r0, [r1, #5]
-_08054D8A:
- pop {pc}
- .align 2, 0
-_08054D8C: .4byte gMenu
-
- thumb_func_start sub_08054D90
-sub_08054D90: @ 0x08054D90
- push {lr}
- ldr r1, _08054DA4 @ =gUnk_080FEF34
- ldr r0, _08054DA8 @ =gMenu
- ldrb r0, [r0, #6]
- lsls r0, r0, #2
- adds r0, r0, r1
- ldr r0, [r0]
- bl _call_via_r0
- pop {pc}
- .align 2, 0
-_08054DA4: .4byte gUnk_080FEF34
-_08054DA8: .4byte gMenu
-
- thumb_func_start sub_08054DAC
-sub_08054DAC: @ 0x08054DAC
- push {r4, lr}
- ldr r4, _08054DF0 @ =gMenu
- ldr r1, [r4, #0xc]
- ldrb r0, [r1, #2]
- ldrb r1, [r1, #3]
- bl sub_0804B0B0
- ldr r0, _08054DF4 @ =gUnk_080FEED4
- bl LoadRoomEntityList
- movs r0, #2
- bl sub_0805B4D0
- movs r0, #0
- bl sub_0806D0B0
- ldrb r0, [r4, #4]
- movs r1, #0
- movs r2, #0
- movs r3, #0
- bl sub_08055B70
- ldrb r0, [r4, #6]
- adds r0, #1
- strb r0, [r4, #6]
- ldr r1, _08054DF8 @ =gUpdateVisibleTiles
- movs r0, #1
- strb r0, [r1]
- movs r0, #4
- movs r1, #0x10
- bl SetFade
- pop {r4, pc}
- .align 2, 0
-_08054DF0: .4byte gMenu
-_08054DF4: .4byte gUnk_080FEED4
-_08054DF8: .4byte gUpdateVisibleTiles
-
- thumb_func_start nullsub_484
-nullsub_484: @ 0x08054DFC
- bx lr
- .align 2, 0
-
- thumb_func_start sub_08054E00
-sub_08054E00: @ 0x08054E00
- push {lr}
- ldr r1, _08054E14 @ =gUnk_080FEF3C
- ldr r0, _08054E18 @ =gMenu
- ldrb r0, [r0, #6]
- lsls r0, r0, #2
- adds r0, r0, r1
- ldr r0, [r0]
- bl _call_via_r0
- pop {pc}
- .align 2, 0
-_08054E14: .4byte gUnk_080FEF3C
-_08054E18: .4byte gMenu
-
- thumb_func_start sub_08054E1C
-sub_08054E1C: @ 0x08054E1C
- push {r4, r5, lr}
- ldr r5, _08054E54 @ =gMenu
- ldr r4, [r5, #0xc]
- ldrb r0, [r4, #2]
- ldrb r1, [r4, #3]
- bl sub_0804B0B0
- ldrb r0, [r4, #2]
- ldrb r1, [r4, #3]
- bl sub_0804B0E8
- ldrb r0, [r5, #4]
- movs r1, #0
- movs r2, #0
- movs r3, #0
- bl sub_08055B70
- ldrb r0, [r5, #6]
- adds r0, #1
- strb r0, [r5, #6]
- ldr r1, _08054E58 @ =gUpdateVisibleTiles
- movs r0, #1
- strb r0, [r1]
- movs r0, #4
- movs r1, #0x10
- bl SetFade
- pop {r4, r5, pc}
- .align 2, 0
-_08054E54: .4byte gMenu
-_08054E58: .4byte gUpdateVisibleTiles
-
- thumb_func_start sub_08054E5C
-sub_08054E5C: @ 0x08054E5C
- push {r4, lr}
- ldr r0, _08054E94 @ =gFadeControl
- ldrb r0, [r0]
- cmp r0, #0
- bne _08054E92
- movs r0, #0xff
- bl CheckRoomFlag
- cmp r0, #0
- beq _08054E92
- ldr r4, _08054E98 @ =gMenu
- ldrb r0, [r4, #6]
- adds r0, #1
- strb r0, [r4, #6]
- movs r0, #0xb4
- strh r0, [r4, #8]
- movs r0, #6
- movs r1, #0x10
- bl SetFade
- ldrb r0, [r4, #4]
- bl sub_080553E0
- ldrb r0, [r4, #4]
- movs r1, #1
- bl sub_0801876C
-_08054E92:
- pop {r4, pc}
- .align 2, 0
-_08054E94: .4byte gFadeControl
-_08054E98: .4byte gMenu
-
- thumb_func_start sub_08054E9C
-sub_08054E9C: @ 0x08054E9C
- push {lr}
- ldr r1, _08054EB4 @ =gMenu
- ldrh r0, [r1, #8]
- subs r0, #1
- strh r0, [r1, #8]
- lsls r0, r0, #0x10
- cmp r0, #0
- bne _08054EB2
- ldrb r0, [r1, #5]
- adds r0, #1
- strb r0, [r1, #5]
-_08054EB2:
- pop {pc}
- .align 2, 0
-_08054EB4: .4byte gMenu
-
- thumb_func_start sub_08054EB8
-sub_08054EB8: @ 0x08054EB8
- push {r4, lr}
- adds r4, r0, #0
- bl GetEmptyManager
- adds r3, r0, #0
- cmp r3, #0
- beq _08054EF6
- movs r0, #9
- strb r0, [r3, #8]
- movs r0, #0x24
- strb r0, [r3, #9]
- ldr r2, _08054EF8 @ =gRoomControls
- ldrh r0, [r4, #0x2e]
- ldrh r1, [r2, #6]
- subs r0, r0, r1
- strh r0, [r3, #0x38]
- ldrh r0, [r4, #0x32]
- ldrh r1, [r2, #8]
- subs r0, r0, r1
- subs r0, #0x10
- strh r0, [r3, #0x3a]
- adds r1, r3, #0
- adds r1, #0x35
- movs r0, #1
- strb r0, [r1]
-.ifdef JP
- movs r0, #0x77
-.else
-.ifdef EU
- movs r0, #0x77
-.else
-.ifdef DEMO_JP
- movs r0, #0x77 @ TODO deduplicate
-.else
- movs r0, #0x79
-.endif
-.endif
-.endif
- strh r0, [r3, #0x3e]
- adds r0, r3, #0
- movs r1, #6
- bl AppendEntityToList
-_08054EF6:
- pop {r4, pc}
- .align 2, 0
-_08054EF8: .4byte gRoomControls
-
- thumb_func_start sub_08054EFC
-sub_08054EFC: @ 0x08054EFC
- push {r4, r5, lr}
- adds r4, r0, #0
- movs r0, #0x2e
- ldrsh r1, [r4, r0]
- ldr r2, _08054F5C @ =gRoomControls
- ldrh r0, [r2, #6]
- subs r1, r1, r0
- asrs r1, r1, #4
- movs r3, #0x3f
- ands r1, r3
- movs r5, #0x32
- ldrsh r0, [r4, r5]
- ldrh r2, [r2, #8]
- subs r0, r0, r2
- asrs r0, r0, #4
- ands r0, r3
- lsls r0, r0, #6
- orrs r1, r0
- subs r1, #0x40
- ldr r0, _08054F60 @ =0x00004074
- movs r2, #1
- bl SetTile
- adds r1, r4, #0
- adds r1, #0x38
- movs r0, #2
- strb r0, [r1]
- adds r0, r4, #0
- bl UpdateSpriteForCollisionLayer
- adds r0, r4, #0
- movs r1, #0x35
- movs r2, #0
- bl CreateFx
- adds r1, r0, #0
- cmp r1, #0
- beq _08054F54
- ldrh r0, [r1, #0x32]
- subs r0, #0x10
- strh r0, [r1, #0x32]
- adds r0, r4, #0
- bl SortEntityBelow
-_08054F54:
- movs r0, #0xfd
- bl SoundReq
- pop {r4, r5, pc}
- .align 2, 0
-_08054F5C: .4byte gRoomControls
-_08054F60: .4byte 0x00004074
-
- thumb_func_start sub_08054F64
-sub_08054F64: @ 0x08054F64
- push {lr}
- ldrb r0, [r0, #0xb]
- ldr r3, _08054F7C @ =gActiveScriptInfo
- ldr r2, [r3]
- adds r1, r2, #0
- ands r1, r0
- cmp r1, r0
- beq _08054F80
- movs r0, #0
- strb r0, [r3, #6]
- b _08054F8C
- .align 2, 0
-_08054F7C: .4byte gActiveScriptInfo
-_08054F80:
- bics r2, r1
- str r2, [r3]
- ldrb r1, [r3, #7]
- movs r0, #1
- orrs r0, r1
- strb r0, [r3, #7]
-_08054F8C:
- pop {pc}
- .align 2, 0
-
- thumb_func_start sub_08054F90
-sub_08054F90: @ 0x08054F90
- push {lr}
- ldr r1, _08054FA4 @ =gUnk_080FF120
- ldr r0, _08054FA8 @ =gMenu
- ldrb r0, [r0, #6]
- lsls r0, r0, #2
- adds r0, r0, r1
- ldr r0, [r0]
- bl _call_via_r0
- pop {pc}
- .align 2, 0
-_08054FA4: .4byte gUnk_080FF120
-_08054FA8: .4byte gMenu
-
- thumb_func_start sub_08054FAC
-sub_08054FAC: @ 0x08054FAC
- push {r4, r5, r6, lr}
- ldr r6, _08055008 @ =gMenu
- ldr r5, [r6, #0xc]
- ldr r1, _0805500C @ =gUnk_080FF108
- ldrb r0, [r5, #1]
- lsls r0, r0, #2
- adds r0, r0, r1
- ldr r0, [r0]
- bl LoadRoomEntityList
- ldrb r0, [r5, #1]
- movs r1, #0
- cmp r0, #0
- beq _08054FCA
- movs r1, #3
-_08054FCA:
- ldrb r0, [r6, #4]
- movs r2, #0
- movs r3, #0
- bl sub_08055B70
- ldrb r0, [r6, #6]
- adds r0, #1
- movs r4, #0
- strb r0, [r6, #6]
- ldr r1, _08055010 @ =gUpdateVisibleTiles
- movs r0, #1
- strb r0, [r1]
- movs r0, #4
- movs r1, #0x10
- bl SetFade
- strh r4, [r6, #0xa]
- movs r0, #0x80
- lsls r0, r0, #3
- movs r1, #0x77
- bl CheckLocalFlagByBank
- cmp r0, #0
- beq _08055004
- ldrb r0, [r5, #2]
- cmp r0, #0x2f
- bne _08055004
- movs r0, #1
- strh r0, [r6, #0xa]
-_08055004:
- pop {r4, r5, r6, pc}
- .align 2, 0
-_08055008: .4byte gMenu
-_0805500C: .4byte gUnk_080FF108
-_08055010: .4byte gUpdateVisibleTiles
-
- thumb_func_start sub_08055014
-sub_08055014: @ 0x08055014
- push {lr}
- ldr r1, _08055030 @ =gMenu
- ldrh r0, [r1, #0xa]
- cmp r0, #0
- beq _0805502C
- movs r0, #0
- strh r0, [r1, #0xa]
- ldr r1, _08055034 @ =0x00000407
- movs r0, #0x74
- movs r2, #1
- bl SetTileType
-_0805502C:
- pop {pc}
- .align 2, 0
-_08055030: .4byte gMenu
-_08055034: .4byte 0x00000407
-
- thumb_func_start sub_08055038
-sub_08055038: @ 0x08055038
- push {lr}
- ldr r1, _0805504C @ =gUnk_080FF148
- ldr r0, _08055050 @ =gMenu
- ldrb r0, [r0, #6]
- lsls r0, r0, #2
- adds r0, r0, r1
- ldr r0, [r0]
- bl _call_via_r0
- pop {pc}
- .align 2, 0
-_0805504C: .4byte gUnk_080FF148
-_08055050: .4byte gMenu
-
- thumb_func_start sub_08055054
-sub_08055054: @ 0x08055054
- push {r4, lr}
- ldr r0, _08055080 @ =gUnk_080FF128
- bl LoadRoomEntityList
- ldr r4, _08055084 @ =gMenu
- ldrb r0, [r4, #4]
- movs r1, #2
- movs r2, #0
- movs r3, #0
- bl sub_08055B70
- ldrb r0, [r4, #6]
- adds r0, #1
- strb r0, [r4, #6]
- ldr r1, _08055088 @ =gUpdateVisibleTiles
- movs r0, #1
- strb r0, [r1]
- movs r0, #4
- movs r1, #0x10
- bl SetFade
- pop {r4, pc}
- .align 2, 0
-_08055080: .4byte gUnk_080FF128
-_08055084: .4byte gMenu
-_08055088: .4byte gUpdateVisibleTiles
-
- thumb_func_start sub_0805508C
-sub_0805508C: @ 0x0805508C
- bx lr
- .align 2, 0
-
- thumb_func_start sub_08055090
-sub_08055090: @ 0x08055090
- bx lr
- .align 2, 0
-
- thumb_func_start sub_08055094
-sub_08055094: @ 0x08055094
- push {lr}
- ldr r1, _080550A8 @ =gUnk_080FF174
- ldr r0, _080550AC @ =gMenu
- ldrb r0, [r0, #6]
- lsls r0, r0, #2
- adds r0, r0, r1
- ldr r0, [r0]
- bl _call_via_r0
- pop {pc}
- .align 2, 0
-_080550A8: .4byte gUnk_080FF174
-_080550AC: .4byte gMenu
-
- thumb_func_start sub_080550B0
-sub_080550B0: @ 0x080550B0
- push {r4, lr}
- ldr r4, _080550E8 @ =gMenu
- ldr r1, [r4, #0xc]
- ldrb r0, [r1, #2]
- ldrb r1, [r1, #3]
- bl sub_0804B0B0
- ldr r0, _080550EC @ =gUnk_080FF154
- bl LoadRoomEntityList
- ldrb r0, [r4, #4]
- movs r1, #0
- movs r2, #0
- movs r3, #0
- bl sub_08055B70
- ldrb r0, [r4, #6]
- adds r0, #1
- strb r0, [r4, #6]
- ldr r1, _080550F0 @ =gUpdateVisibleTiles
- movs r0, #1
- strb r0, [r1]
- movs r0, #4
- movs r1, #0x10
- bl SetFade
- pop {r4, pc}
- .align 2, 0
-_080550E8: .4byte gMenu
-_080550EC: .4byte gUnk_080FF154
-_080550F0: .4byte gUpdateVisibleTiles
-
- thumb_func_start nullsub_487
-nullsub_487: @ 0x080550F4
- bx lr
- .align 2, 0
-
- thumb_func_start sub_080550F8
-sub_080550F8: @ 0x080550F8
- push {lr}
- ldr r1, _0805510C @ =gUnk_080FF1CC
- ldr r0, _08055110 @ =gMenu
- ldrb r0, [r0, #6]
- lsls r0, r0, #2
- adds r0, r0, r1
- ldr r0, [r0]
- bl _call_via_r0
- pop {pc}
- .align 2, 0
-_0805510C: .4byte gUnk_080FF1CC
-_08055110: .4byte gMenu
-
- thumb_func_start sub_08055114
-sub_08055114: @ 0x08055114
- push {r4, lr}
- ldr r0, _08055150 @ =gUnk_080FF17C
- bl LoadRoomEntityList
- ldr r0, _08055154 @ =gSave
- ldrb r0, [r0, #8]
- cmp r0, #9
- beq _0805512A
- ldr r0, _08055158 @ =0x00000DB4
- bl sub_08018C58
-_0805512A:
- ldr r4, _0805515C @ =gMenu
- ldrb r0, [r4, #4]
- movs r1, #0
- movs r2, #0
- movs r3, #0
- bl sub_08055B70
- ldrb r0, [r4, #6]
- adds r0, #1
- strb r0, [r4, #6]
- ldr r1, _08055160 @ =gUpdateVisibleTiles
- movs r0, #1
- strb r0, [r1]
- movs r0, #4
- movs r1, #0x10
- bl SetFade
- pop {r4, pc}
- .align 2, 0
-_08055150: .4byte gUnk_080FF17C
-_08055154: .4byte gSave
-_08055158: .4byte 0x00000DB4
-_0805515C: .4byte gMenu
-_08055160: .4byte gUpdateVisibleTiles
-
- thumb_func_start nullsub_488
-nullsub_488: @ 0x08055164
- bx lr
- .align 2, 0
-
- thumb_func_start sub_08055168
-sub_08055168: @ 0x08055168
- push {lr}
- ldr r1, _0805517C @ =gUnk_080FF1F4
- ldr r0, _08055180 @ =gMenu
- ldrb r0, [r0, #6]
- lsls r0, r0, #2
- adds r0, r0, r1
- ldr r0, [r0]
- bl _call_via_r0
- pop {pc}
- .align 2, 0
-_0805517C: .4byte gUnk_080FF1F4
-_08055180: .4byte gMenu
-
- thumb_func_start sub_08055184
-sub_08055184: @ 0x08055184
- push {r4, r5, r6, lr}
- mov r6, r8
- push {r6}
- ldr r5, _0805520C @ =gMenu
- ldr r0, [r5, #0xc]
- ldrb r1, [r0, #1]
- movs r0, #0xf
- ands r0, r1
- lsls r4, r0, #1
- adds r4, r4, r0
- lsls r4, r4, #1
- ldr r0, _08055210 @ =gUnk_080FF1D4
- adds r4, r4, r0
- movs r1, #0
- ldrsh r0, [r4, r1]
- bl LoadGfxGroup
- ldr r2, _08055214 @ =gScreen
- ldrh r0, [r4, #2]
- movs r6, #0
- movs r3, #0
- mov r8, r3
- strh r0, [r2, #0x2e]
- ldrh r0, [r4, #4]
- strh r0, [r2, #0x30]
- ldr r0, _08055218 @ =0x00001E05
- strh r0, [r2, #0x2c]
- adds r1, r2, #0
- adds r1, #0x66
- ldr r0, _0805521C @ =0x00003648
- strh r0, [r1]
- adds r1, #2
- movs r0, #0x10
- strh r0, [r1]
- ldrh r0, [r2]
- movs r3, #0x80
- lsls r3, r3, #4
- adds r1, r3, #0
- orrs r0, r1
- strh r0, [r2]
- ldrb r0, [r5, #4]
- movs r1, #1
- bl sub_0801876C
- ldrb r0, [r5, #4]
- movs r1, #0
- movs r2, #0
- movs r3, #0
- bl sub_08055B70
- ldrb r0, [r5, #6]
- adds r0, #1
- strb r0, [r5, #6]
- strb r6, [r5, #7]
- movs r0, #0x3c
- strh r0, [r5, #8]
- mov r0, r8
- strh r0, [r5, #0xa]
- ldr r1, _08055220 @ =gUpdateVisibleTiles
- movs r0, #1
- strb r0, [r1]
- movs r0, #4
- movs r1, #0x10
- bl SetFade
- pop {r3}
- mov r8, r3
- pop {r4, r5, r6, pc}
- .align 2, 0
-_0805520C: .4byte gMenu
-_08055210: .4byte gUnk_080FF1D4
-_08055214: .4byte gScreen
-_08055218: .4byte 0x00001E05
-_0805521C: .4byte 0x00003648
-_08055220: .4byte gUpdateVisibleTiles
-
- thumb_func_start sub_08055224
-sub_08055224: @ 0x08055224
- push {lr}
- ldr r0, _08055244 @ =gFadeControl
- ldrb r0, [r0]
- cmp r0, #0
- bne _08055240
- movs r0, #0xff
- bl CheckRoomFlag
- cmp r0, #0
- beq _08055240
- ldr r1, _08055248 @ =gMenu
- ldrb r0, [r1, #6]
- adds r0, #1
- strb r0, [r1, #6]
-_08055240:
- pop {pc}
- .align 2, 0
-_08055244: .4byte gFadeControl
-_08055248: .4byte gMenu
-
- thumb_func_start sub_0805524C
-sub_0805524C: @ 0x0805524C
- push {r4, lr}
- ldr r3, _08055270 @ =gMenu
- ldrb r0, [r3, #7]
- cmp r0, #0
- bne _08055274
- ldrh r0, [r3, #8]
- subs r0, #1
- strh r0, [r3, #8]
- lsls r0, r0, #0x10
- cmp r0, #0
- bne _080552D6
- ldrb r0, [r3, #7]
- adds r0, #1
- strb r0, [r3, #7]
- movs r0, #0xf6
- bl SoundReq
- b _080552D6
- .align 2, 0
-_08055270: .4byte gMenu
-_08055274:
- ldr r0, _080552A4 @ =gRoomTransition
- ldr r0, [r0]
- movs r1, #7
- ands r0, r1
- cmp r0, #0
- bne _080552D6
- ldr r4, _080552A8 @ =gUnk_080FF204
- ldrh r2, [r3, #0xa]
- lsls r0, r2, #1
- adds r0, r0, r4
- ldrh r1, [r0]
- ldr r0, _080552AC @ =0x0000FFFF
- cmp r1, r0
- beq _080552B4
- ldr r1, _080552B0 @ =gScreen
- adds r0, r2, #1
- strh r0, [r3, #0xa]
- lsls r0, r2, #1
- adds r0, r0, r4
- ldrh r0, [r0]
- adds r1, #0x68
- strh r0, [r1]
- b _080552D6
- .align 2, 0
-_080552A4: .4byte gRoomTransition
-_080552A8: .4byte gUnk_080FF204
-_080552AC: .4byte 0x0000FFFF
-_080552B0: .4byte gScreen
-_080552B4:
- ldr r1, _080552D8 @ =gScreen
- ldrh r2, [r1]
- ldr r0, _080552DC @ =0x0000F7FF
- ands r0, r2
- strh r0, [r1]
- adds r1, #0x68
- movs r0, #0x80
- lsls r0, r0, #5
- strh r0, [r1]
- movs r0, #0x78
- strh r0, [r3, #8]
- ldrb r0, [r3, #6]
- adds r0, #1
- strb r0, [r3, #6]
-.ifndef EU
- movs r0, #0x73
- bl SoundReq
-.endif
-_080552D6:
- pop {r4, pc}
- .align 2, 0
-_080552D8: .4byte gScreen
-_080552DC: .4byte 0x0000F7FF
-
- thumb_func_start sub_080552E0
-sub_080552E0: @ 0x080552E0
- push {lr}
- ldr r1, _080552F8 @ =gMenu
- ldrh r0, [r1, #8]
- subs r0, #1
- strh r0, [r1, #8]
- lsls r0, r0, #0x10
- cmp r0, #0
- bne _080552F6
- ldrb r0, [r1, #5]
- adds r0, #1
- strb r0, [r1, #5]
-_080552F6:
- pop {pc}
- .align 2, 0
-_080552F8: .4byte gMenu
-
- thumb_func_start sub_080552FC
-sub_080552FC: @ 0x080552FC
- push {lr}
- ldr r1, _08055310 @ =gUnk_080FF228
- ldr r0, _08055314 @ =gMenu
- ldrb r0, [r0, #6]
- lsls r0, r0, #2
- adds r0, r0, r1
- ldr r0, [r0]
- bl _call_via_r0
- pop {pc}
- .align 2, 0
-_08055310: .4byte gUnk_080FF228
-_08055314: .4byte gMenu
-
- thumb_func_start sub_08055318
-sub_08055318: @ 0x08055318
- push {r4, lr}
- ldr r4, _08055348 @ =gMenu
- ldrb r0, [r4, #4]
- movs r1, #0
- movs r2, #0
- movs r3, #0
- bl sub_08055B70
- ldrb r0, [r4, #4]
- movs r1, #0
- bl sub_0801876C
- ldrb r0, [r4, #6]
- adds r0, #1
- strb r0, [r4, #6]
- ldr r1, _0805534C @ =gUpdateVisibleTiles
- movs r0, #1
- strb r0, [r1]
- movs r0, #4
- movs r1, #0x10
- bl SetFade
- pop {r4, pc}
- .align 2, 0
-_08055348: .4byte gMenu
-_0805534C: .4byte gUpdateVisibleTiles
-
- thumb_func_start sub_08055350
-sub_08055350: @ 0x08055350
- push {lr}
- ldr r0, _08055378 @ =gFadeControl
- ldrb r0, [r0]
- cmp r0, #0
- bne _08055374
- movs r0, #0xff
- bl CheckRoomFlag
- cmp r0, #0
- beq _08055374
- movs r0, #7
- movs r1, #0x10
- bl SetFade
- ldr r1, _0805537C @ =gMenu
- ldrb r0, [r1, #6]
- adds r0, #1
- strb r0, [r1, #6]
-_08055374:
- pop {pc}
- .align 2, 0
-_08055378: .4byte gFadeControl
-_0805537C: .4byte gMenu
-
- thumb_func_start sub_08055380
-sub_08055380: @ 0x08055380
- push {r4, lr}
- ldr r0, _080553B0 @ =gFadeControl
- ldrb r0, [r0]
- cmp r0, #0
- bne _080553AC
- ldr r4, _080553B4 @ =gMenu
- ldrb r0, [r4, #4]
- movs r1, #0
- bl sub_08054974
- movs r0, #6
- movs r1, #0x10
- bl SetFade
- movs r0, #0x73
- bl SoundReq
- ldrb r0, [r4, #6]
- adds r0, #1
- strb r0, [r4, #6]
- movs r0, #0x78
- strh r0, [r4, #8]
-_080553AC:
- pop {r4, pc}
- .align 2, 0
-_080553B0: .4byte gFadeControl
-_080553B4: .4byte gMenu
-
- thumb_func_start sub_080553B8
-sub_080553B8: @ 0x080553B8
- push {lr}
- ldr r0, _080553D8 @ =gFadeControl
- ldrb r0, [r0]
- cmp r0, #0
- bne _080553D6
- ldr r1, _080553DC @ =gMenu
- ldrh r0, [r1, #8]
- subs r0, #1
- strh r0, [r1, #8]
- lsls r0, r0, #0x10
- cmp r0, #0
- bne _080553D6
- ldrb r0, [r1, #5]
- adds r0, #1
- strb r0, [r1, #5]
-_080553D6:
- pop {pc}
- .align 2, 0
-_080553D8: .4byte gFadeControl
-_080553DC: .4byte gMenu
-
- thumb_func_start sub_080553E0
-sub_080553E0: @ 0x080553E0
- push {r4, lr}
- ldr r0, _0805540C @ =gMenu
- ldr r4, [r0, #0xc]
- movs r0, #0xf
- movs r1, #0x43
- movs r2, #0
- bl CreateObject
- adds r2, r0, #0
- cmp r2, #0
- beq _08055408
- ldr r0, _08055410 @ =gRoomControls
- ldrh r1, [r0, #6]
- ldrh r3, [r4, #8]
- adds r1, r1, r3
- strh r1, [r2, #0x2e]
- ldrh r0, [r0, #8]
- ldrh r4, [r4, #0xa]
- adds r0, r0, r4
- strh r0, [r2, #0x32]
-_08055408:
- pop {r4, pc}
- .align 2, 0
-_0805540C: .4byte gMenu
-_08055410: .4byte gRoomControls
-
- thumb_func_start sub_08055414
-sub_08055414: @ 0x08055414
- push {lr}
- ldr r1, _08055428 @ =gUnk_080FF238
- ldr r0, _0805542C @ =gMenu
- ldrb r0, [r0, #6]
- lsls r0, r0, #2
- adds r0, r0, r1
- ldr r0, [r0]
- bl _call_via_r0
- pop {pc}
- .align 2, 0
-_08055428: .4byte gUnk_080FF238
-_0805542C: .4byte gMenu
-
- thumb_func_start sub_08055430
-sub_08055430: @ 0x08055430
- push {r4, lr}
- ldr r4, _08055460 @ =gMenu
- ldr r1, [r4, #0xc]
- ldrb r0, [r1, #2]
- ldrb r1, [r1, #3]
- bl sub_0804B0E8
- ldrb r0, [r4, #4]
- movs r1, #0
- movs r2, #0
- movs r3, #0
- bl sub_08055B70
- ldrb r0, [r4, #6]
- adds r0, #1
- strb r0, [r4, #6]
- ldr r1, _08055464 @ =gUpdateVisibleTiles
- movs r0, #1
- strb r0, [r1]
- movs r0, #4
- movs r1, #0x10
- bl SetFade
- pop {r4, pc}
- .align 2, 0
-_08055460: .4byte gMenu
-_08055464: .4byte gUpdateVisibleTiles
-
- thumb_func_start sub_08055468
-sub_08055468: @ 0x08055468
- push {lr}
- ldr r0, _08055490 @ =gFadeControl
- ldrb r0, [r0]
- cmp r0, #0
- bne _0805548C
- movs r0, #0xff
- bl CheckRoomFlag
- cmp r0, #0
- beq _0805548C
- movs r0, #7
- movs r1, #0x10
- bl SetFade
- ldr r1, _08055494 @ =gMenu
- ldrb r0, [r1, #6]
- adds r0, #1
- strb r0, [r1, #6]
-_0805548C:
- pop {pc}
- .align 2, 0
-_08055490: .4byte gFadeControl
-_08055494: .4byte gMenu
-
- thumb_func_start sub_08055498
-sub_08055498: @ 0x08055498
- push {r4, lr}
- ldr r0, _080554CC @ =gFadeControl
- ldrb r0, [r0]
- cmp r0, #0
- bne _080554CA
- ldr r4, _080554D0 @ =gMenu
- ldrb r0, [r4, #4]
- movs r1, #1
- bl sub_0801876C
- ldrb r0, [r4, #4]
- bl sub_080553E0
- movs r0, #6
- movs r1, #0x10
- bl SetFade
- movs r0, #0x73
- bl SoundReq
- ldrb r0, [r4, #6]
- adds r0, #1
- strb r0, [r4, #6]
- movs r0, #0x78
- strh r0, [r4, #8]
-_080554CA:
- pop {r4, pc}
- .align 2, 0
-_080554CC: .4byte gFadeControl
-_080554D0: .4byte gMenu
-
- thumb_func_start sub_080554D4
-sub_080554D4: @ 0x080554D4
- push {lr}
- ldr r0, _080554F4 @ =gFadeControl
- ldrb r0, [r0]
- cmp r0, #0
- bne _080554F2
- ldr r1, _080554F8 @ =gMenu
- ldrh r0, [r1, #8]
- subs r0, #1
- strh r0, [r1, #8]
- lsls r0, r0, #0x10
- cmp r0, #0
- bne _080554F2
- ldrb r0, [r1, #5]
- adds r0, #1
- strb r0, [r1, #5]
-_080554F2:
- pop {pc}
- .align 2, 0
-_080554F4: .4byte gFadeControl
-_080554F8: .4byte gMenu
-
- thumb_func_start sub_080554FC
-sub_080554FC: @ 0x080554FC
- push {lr}
- ldr r1, _08055510 @ =gUnk_080FF248
- ldr r0, _08055514 @ =gMenu
- ldrb r0, [r0, #6]
- lsls r0, r0, #2
- adds r0, r0, r1
- ldr r0, [r0]
- bl _call_via_r0
- pop {pc}
- .align 2, 0
-_08055510: .4byte gUnk_080FF248
-_08055514: .4byte gMenu
-
- thumb_func_start sub_08055518
-sub_08055518: @ 0x08055518
- push {r4, lr}
- ldr r4, _08055540 @ =gMenu
- ldrb r0, [r4, #4]
- movs r1, #0
- movs r2, #0
- movs r3, #0
- bl sub_08055B70
- ldrb r0, [r4, #6]
- adds r0, #1
- strb r0, [r4, #6]
- ldr r1, _08055544 @ =gUpdateVisibleTiles
- movs r0, #1
- strb r0, [r1]
- movs r0, #4
- movs r1, #0x10
- bl SetFade
- pop {r4, pc}
- .align 2, 0
-_08055540: .4byte gMenu
-_08055544: .4byte gUpdateVisibleTiles
-
- thumb_func_start sub_08055548
-sub_08055548: @ 0x08055548
- push {r4, lr}
- ldr r0, _08055578 @ =gFadeControl
- ldrb r0, [r0]
- cmp r0, #0
- bne _08055576
- movs r0, #0xff
- bl CheckRoomFlag
- cmp r0, #0
- beq _08055576
- ldr r4, _0805557C @ =gMenu
- ldrb r0, [r4, #4]
- movs r1, #1
- bl sub_0801876C
- ldrb r0, [r4, #4]
- bl sub_080553E0
- ldrb r0, [r4, #6]
- adds r0, #1
- strb r0, [r4, #6]
- movs r0, #0xb4
- strh r0, [r4, #8]
-_08055576:
- pop {r4, pc}
- .align 2, 0
-_08055578: .4byte gFadeControl
-_0805557C: .4byte gMenu
-
- thumb_func_start sub_08055580
-sub_08055580: @ 0x08055580
- push {lr}
- ldr r1, _08055598 @ =gMenu
- ldrh r0, [r1, #8]
- subs r0, #1
- strh r0, [r1, #8]
- lsls r0, r0, #0x10
- cmp r0, #0
- bne _08055596
- ldrb r0, [r1, #5]
- adds r0, #1
- strb r0, [r1, #5]
-_08055596:
- pop {pc}
- .align 2, 0
-_08055598: .4byte gMenu
-
- thumb_func_start sub_0805559C
-sub_0805559C: @ 0x0805559C
- push {lr}
- ldr r1, _080555B0 @ =gUnk_080FF254
- ldr r0, _080555B4 @ =gMenu
- ldrb r0, [r0, #6]
- lsls r0, r0, #2
- adds r0, r0, r1
- ldr r0, [r0]
- bl _call_via_r0
- pop {pc}
- .align 2, 0
-_080555B0: .4byte gUnk_080FF254
-_080555B4: .4byte gMenu
-
- thumb_func_start sub_080555B8
-sub_080555B8: @ 0x080555B8
- push {r4, r5, lr}
- ldr r5, _08055600 @ =gMenu
- ldr r4, [r5, #0xc]
- ldr r1, _08055604 @ =gLocalFlagBanks
- ldrb r0, [r4, #0x11]
- lsls r0, r0, #1
- adds r0, r0, r1
- ldrh r0, [r0]
- ldrh r1, [r4, #0x12]
- bl SetLocalFlagByBank
- ldrb r0, [r4, #2]
- ldrb r1, [r4, #3]
- bl sub_0804B0E8
- movs r0, #0x11
- bl LoadGfxGroup
- ldrb r0, [r5, #4]
- movs r1, #0
- movs r2, #0
- movs r3, #0
- bl sub_08055B70
- ldrb r0, [r5, #6]
- adds r0, #1
- strb r0, [r5, #6]
- ldr r1, _08055608 @ =gUpdateVisibleTiles
- movs r0, #1
- strb r0, [r1]
- movs r0, #4
- movs r1, #0x10
- bl SetFade
- pop {r4, r5, pc}
- .align 2, 0
-_08055600: .4byte gMenu
-_08055604: .4byte gLocalFlagBanks
-_08055608: .4byte gUpdateVisibleTiles
-
- thumb_func_start sub_0805560C
-sub_0805560C: @ 0x0805560C
- push {lr}
- ldr r0, _0805562C @ =gFadeControl
- ldrb r0, [r0]
- cmp r0, #0
- bne _08055628
- movs r0, #0xff
- bl CheckRoomFlag
- cmp r0, #0
- beq _08055628
- ldr r1, _08055630 @ =gMenu
- ldrb r0, [r1, #6]
- adds r0, #1
- strb r0, [r1, #6]
-_08055628:
- pop {pc}
- .align 2, 0
-_0805562C: .4byte gFadeControl
-_08055630: .4byte gMenu
-
- thumb_func_start sub_08055634
-sub_08055634: @ 0x08055634
- push {r4, r5, lr}
- ldr r4, _0805566C @ =gMenu
- ldr r5, [r4, #0xc]
- movs r0, #0x2c
- movs r1, #0
- movs r2, #0
- bl CreateObject
- adds r2, r0, #0
- cmp r2, #0
- beq _0805565C
- ldr r0, _08055670 @ =gRoomControls
- ldrh r1, [r5, #8]
- ldrh r3, [r0, #6]
- adds r1, r1, r3
- strh r1, [r2, #0x2e]
- ldrh r1, [r5, #0xa]
- ldrh r0, [r0, #8]
- adds r1, r1, r0
- strh r1, [r2, #0x32]
-_0805565C:
- ldrb r0, [r4, #6]
- adds r0, #1
- strb r0, [r4, #6]
- movs r0, #0xc3
- lsls r0, r0, #1
- strh r0, [r4, #8]
- pop {r4, r5, pc}
- .align 2, 0
-_0805566C: .4byte gMenu
-_08055670: .4byte gRoomControls
-
- thumb_func_start sub_08055674
-sub_08055674: @ 0x08055674
- push {lr}
- ldr r1, _0805568C @ =gMenu
- ldrh r0, [r1, #8]
- subs r0, #1
- strh r0, [r1, #8]
- lsls r0, r0, #0x10
- cmp r0, #0
- bne _0805568A
- ldrb r0, [r1, #5]
- adds r0, #1
- strb r0, [r1, #5]
-_0805568A:
- pop {pc}
- .align 2, 0
-_0805568C: .4byte gMenu
-
- thumb_func_start sub_08055690
-sub_08055690: @ 0x08055690
- push {lr}
- ldr r1, _080556A4 @ =gUnk_080FF284
- ldr r0, _080556A8 @ =gMenu
- ldrb r0, [r0, #6]
- lsls r0, r0, #2
- adds r0, r0, r1
- ldr r0, [r0]
- bl _call_via_r0
- pop {pc}
- .align 2, 0
-_080556A4: .4byte gUnk_080FF284
-_080556A8: .4byte gMenu
-
- thumb_func_start sub_080556AC
-sub_080556AC: @ 0x080556AC
- push {r4, lr}
- ldr r4, _080556E4 @ =gMenu
- ldrb r0, [r4, #6]
- adds r0, #1
- strb r0, [r4, #6]
- ldr r1, _080556E8 @ =gUpdateVisibleTiles
- movs r0, #1
- strb r0, [r1]
- ldr r1, [r4, #0xc]
- ldrb r0, [r1, #2]
- ldrb r1, [r1, #3]
- bl sub_0804B0B0
- ldr r0, _080556EC @ =gUnk_080FF264
- bl LoadRoomEntityList
- ldrb r0, [r4, #4]
- movs r1, #0
- movs r2, #0
- movs r3, #0
- bl sub_08055B70
- movs r0, #4
- movs r1, #0x10
- bl SetFade
- pop {r4, pc}
- .align 2, 0
-_080556E4: .4byte gMenu
-_080556E8: .4byte gUpdateVisibleTiles
-_080556EC: .4byte gUnk_080FF264
-
- thumb_func_start nullsub_489
-nullsub_489: @ 0x080556F0
- bx lr
- .align 2, 0
-
- thumb_func_start sub_080556F4
-sub_080556F4: @ 0x080556F4
- push {lr}
- ldr r1, _08055708 @ =gUnk_080FF28C
- ldr r0, _0805570C @ =gMenu
- ldrb r0, [r0, #6]
- lsls r0, r0, #2
- adds r0, r0, r1
- ldr r0, [r0]
- bl _call_via_r0
- pop {pc}
- .align 2, 0
-_08055708: .4byte gUnk_080FF28C
-_0805570C: .4byte gMenu
-
- thumb_func_start sub_08055710
-sub_08055710: @ 0x08055710
- push {r4, lr}
- ldr r4, _0805575C @ =gMenu
- ldr r1, [r4, #0xc]
- ldrb r0, [r1, #2]
- ldrb r1, [r1, #3]
- bl sub_0804B0B0
- ldr r0, _08055760 @ =gUnk_080FEE48
- bl LoadRoomEntity
- adds r1, r0, #0
- cmp r1, #0
- beq _08055734
- movs r0, #2
- strb r0, [r1, #0xb]
- adds r1, #0x86
- ldr r0, _08055764 @ =0x000080FF
- strh r0, [r1]
-_08055734:
- ldrb r0, [r4, #4]
- bl sub_08054A14
- ldrb r0, [r4, #4]
- movs r1, #0
- movs r2, #0
- movs r3, #0
- bl sub_08055B70
- ldrb r0, [r4, #6]
- adds r0, #1
- strb r0, [r4, #6]
- ldr r1, _08055768 @ =gUpdateVisibleTiles
- movs r0, #1
- strb r0, [r1]
- movs r0, #4
- movs r1, #0x10
- bl SetFade
- pop {r4, pc}
- .align 2, 0
-_0805575C: .4byte gMenu
-_08055760: .4byte gUnk_080FEE48
-_08055764: .4byte 0x000080FF
-_08055768: .4byte gUpdateVisibleTiles
-
- thumb_func_start sub_0805576C
-sub_0805576C: @ 0x0805576C
- push {lr}
- ldr r0, _08055790 @ =gFadeControl
- ldrb r0, [r0]
- cmp r0, #0
- bne _0805578C
- movs r0, #0xff
- bl CheckRoomFlag
- cmp r0, #0
- beq _0805578C
- ldr r0, _08055794 @ =gMenu
- ldrb r1, [r0, #6]
- adds r1, #1
- strb r1, [r0, #6]
- movs r1, #0x78
- strh r1, [r0, #8]
-_0805578C:
- pop {pc}
- .align 2, 0
-_08055790: .4byte gFadeControl
-_08055794: .4byte gMenu
-
- thumb_func_start sub_08055798
-sub_08055798: @ 0x08055798
- push {lr}
- ldr r1, _080557B0 @ =gMenu
- ldrh r0, [r1, #8]
- subs r0, #1
- strh r0, [r1, #8]
- lsls r0, r0, #0x10
- cmp r0, #0
- bne _080557AE
- ldrb r0, [r1, #5]
- adds r0, #1
- strb r0, [r1, #5]
-_080557AE:
- pop {pc}
- .align 2, 0
-_080557B0: .4byte gMenu
-
- thumb_func_start sub_080557B4
-sub_080557B4: @ 0x080557B4
- push {lr}
- ldr r1, _080557C8 @ =gUnk_080FF2B8
- ldr r0, _080557CC @ =gMenu
- ldrb r0, [r0, #6]
- lsls r0, r0, #2
- adds r0, r0, r1
- ldr r0, [r0]
- bl _call_via_r0
- pop {pc}
- .align 2, 0
-_080557C8: .4byte gUnk_080FF2B8
-_080557CC: .4byte gMenu
-
- thumb_func_start sub_080557D0
-sub_080557D0: @ 0x080557D0
- push {r4, lr}
- ldr r4, _08055808 @ =gMenu
- ldrb r0, [r4, #6]
- adds r0, #1
- strb r0, [r4, #6]
- ldr r1, _0805580C @ =gUpdateVisibleTiles
- movs r0, #1
- strb r0, [r1]
- ldr r1, [r4, #0xc]
- ldrb r0, [r1, #2]
- ldrb r1, [r1, #3]
- bl sub_0804B0B0
- ldr r0, _08055810 @ =gUnk_080FF298
- bl LoadRoomEntityList
- ldrb r0, [r4, #4]
- movs r1, #0
- movs r2, #0
- movs r3, #0
- bl sub_08055B70
- movs r0, #4
- movs r1, #0x10
- bl SetFade
- pop {r4, pc}
- .align 2, 0
-_08055808: .4byte gMenu
-_0805580C: .4byte gUpdateVisibleTiles
-_08055810: .4byte gUnk_080FF298
-
- thumb_func_start nullsub_490
-nullsub_490: @ 0x08055814
- bx lr
- .align 2, 0
-
- thumb_func_start sub_08055818
-sub_08055818: @ 0x08055818
- push {lr}
- ldr r1, _0805582C @ =gUnk_080FF300
- ldr r0, _08055830 @ =gMenu
- ldrb r0, [r0, #6]
- lsls r0, r0, #2
- adds r0, r0, r1
- ldr r0, [r0]
- bl _call_via_r0
- pop {pc}
- .align 2, 0
-_0805582C: .4byte gUnk_080FF300
-_08055830: .4byte gMenu
-
- thumb_func_start sub_08055834
-sub_08055834: @ 0x08055834
- push {r4, lr}
- ldr r0, _08055870 @ =gUnk_080FF2C0
- bl LoadRoomEntityList
- ldr r0, _08055874 @ =gSave
- ldrb r0, [r0, #8]
- cmp r0, #9
- beq _0805584A
- ldr r0, _08055878 @ =0x00000DB4
- bl sub_08018C58
-_0805584A:
- ldr r4, _0805587C @ =gMenu
- ldrb r0, [r4, #4]
- movs r1, #1
- movs r2, #0
- movs r3, #0
- bl sub_08055B70
- ldrb r0, [r4, #6]
- adds r0, #1
- strb r0, [r4, #6]
- ldr r1, _08055880 @ =gUpdateVisibleTiles
- movs r0, #1
- strb r0, [r1]
- movs r0, #4
- movs r1, #0x10
- bl SetFade
- pop {r4, pc}
- .align 2, 0
-_08055870: .4byte gUnk_080FF2C0
-_08055874: .4byte gSave
-_08055878: .4byte 0x00000DB4
-_0805587C: .4byte gMenu
-_08055880: .4byte gUpdateVisibleTiles
-
- thumb_func_start nullsub_491
-nullsub_491: @ 0x08055884
- bx lr
- .align 2, 0
-
- thumb_func_start sub_08055888
-sub_08055888: @ 0x08055888
- push {lr}
- ldr r1, _0805589C @ =gUnk_080FF328
- ldr r0, _080558A0 @ =gMenu
- ldrb r0, [r0, #6]
- lsls r0, r0, #2
- adds r0, r0, r1
- ldr r0, [r0]
- bl _call_via_r0
- pop {pc}
- .align 2, 0
-_0805589C: .4byte gUnk_080FF328
-_080558A0: .4byte gMenu
-
- thumb_func_start sub_080558A4
-sub_080558A4: @ 0x080558A4
- push {r4, lr}
- ldr r4, _080558DC @ =gMenu
- ldr r1, [r4, #0xc]
- ldrb r0, [r1, #2]
- ldrb r1, [r1, #3]
- bl sub_0804B0B0
- ldr r0, _080558E0 @ =gUnk_080FF308
- bl LoadRoomEntityList
- ldrb r0, [r4, #4]
- movs r1, #0
- movs r2, #0
- movs r3, #0
- bl sub_08055B70
- ldrb r0, [r4, #6]
- adds r0, #1
- strb r0, [r4, #6]
- ldr r1, _080558E4 @ =gUpdateVisibleTiles
- movs r0, #1
- strb r0, [r1]
- movs r0, #4
- movs r1, #0x10
- bl SetFade
- pop {r4, pc}
- .align 2, 0
-_080558DC: .4byte gMenu
-_080558E0: .4byte gUnk_080FF308
-_080558E4: .4byte gUpdateVisibleTiles
-
- thumb_func_start nullsub_492
-nullsub_492: @ 0x080558E8
- bx lr
- .align 2, 0
-
- thumb_func_start sub_080558EC
-sub_080558EC: @ 0x080558EC
- push {lr}
- ldr r1, _08055900 @ =gUnk_080FF330
- ldr r0, _08055904 @ =gMenu
- ldrb r0, [r0, #6]
- lsls r0, r0, #2
- adds r0, r0, r1
- ldr r0, [r0]
- bl _call_via_r0
- pop {pc}
- .align 2, 0
-_08055900: .4byte gUnk_080FF330
-_08055904: .4byte gMenu
-
- thumb_func_start sub_08055908
-sub_08055908: @ 0x08055908
- push {r4, r5, lr}
- ldr r5, _08055940 @ =gMenu
- ldr r4, [r5, #0xc]
- ldrb r0, [r4, #2]
- ldrb r1, [r4, #3]
- bl sub_0804B0B0
- ldrb r0, [r4, #2]
- ldrb r1, [r4, #3]
- bl sub_0804B0E8
- ldrb r0, [r5, #4]
- movs r1, #0
- movs r2, #0
- movs r3, #0
- bl sub_08055B70
- ldrb r0, [r5, #6]
- adds r0, #1
- strb r0, [r5, #6]
- ldr r1, _08055944 @ =gUpdateVisibleTiles
- movs r0, #1
- strb r0, [r1]
- movs r0, #4
- movs r1, #0x10
- bl SetFade
- pop {r4, r5, pc}
- .align 2, 0
-_08055940: .4byte gMenu
-_08055944: .4byte gUpdateVisibleTiles
-
- thumb_func_start sub_08055948
-sub_08055948: @ 0x08055948
- push {lr}
- ldr r0, _08055970 @ =gFadeControl
- ldrb r0, [r0]
- cmp r0, #0
- bne _0805596C
- movs r0, #0xff
- bl CheckRoomFlag
- cmp r0, #0
- beq _0805596C
- bl sub_08055994
- ldr r0, _08055974 @ =gMenu
- ldrb r1, [r0, #6]
- adds r1, #1
- strb r1, [r0, #6]
- movs r1, #0x78
- strh r1, [r0, #8]
-_0805596C:
- pop {pc}
- .align 2, 0
-_08055970: .4byte gFadeControl
-_08055974: .4byte gMenu
-
- thumb_func_start sub_08055978
-sub_08055978: @ 0x08055978
- push {lr}
- ldr r1, _08055990 @ =gMenu
- ldrh r0, [r1, #8]
- subs r0, #1
- strh r0, [r1, #8]
- lsls r0, r0, #0x10
- cmp r0, #0
- bne _0805598E
- ldrb r0, [r1, #5]
- adds r0, #1
- strb r0, [r1, #5]
-_0805598E:
- pop {pc}
- .align 2, 0
-_08055990: .4byte gMenu
-
- thumb_func_start sub_08055994
-sub_08055994: @ 0x08055994
- push {r4, lr}
- ldr r4, _080559D8 @ =gMenu
- ldrb r0, [r4, #4]
- lsls r0, r0, #3
- ldr r1, _080559DC @ =gUnk_080FEAC8
- adds r0, r0, r1
- ldrb r1, [r0, #6]
- movs r0, #1
- ands r0, r1
- movs r3, #1
- cmp r0, #0
- beq _080559AE
- movs r3, #2
-_080559AE:
- ldr r0, [r4, #0xc]
- ldrh r1, [r0, #8]
- lsrs r1, r1, #4
- movs r2, #0x3f
- ands r1, r2
- ldrh r0, [r0, #0xa]
- lsrs r0, r0, #4
- ands r0, r2
- lsls r0, r0, #6
- orrs r1, r0
- movs r0, #0x73
- adds r2, r3, #0
- bl SetTileType
- ldrb r0, [r4, #4]
- bl sub_080553E0
- movs r0, #0x73
- bl SoundReq
- pop {r4, pc}
- .align 2, 0
-_080559D8: .4byte gMenu
-_080559DC: .4byte gUnk_080FEAC8
-
- thumb_func_start sub_080559E0
-sub_080559E0: @ 0x080559E0
- push {lr}
- ldr r1, _080559F4 @ =gUnk_080FF35C
- ldr r0, _080559F8 @ =gMenu
- ldrb r0, [r0, #6]
- lsls r0, r0, #2
- adds r0, r0, r1
- ldr r0, [r0]
- bl _call_via_r0
- pop {pc}
- .align 2, 0
-_080559F4: .4byte gUnk_080FF35C
-_080559F8: .4byte gMenu
-
- thumb_func_start sub_080559FC
-sub_080559FC: @ 0x080559FC
- push {r4, lr}
- ldr r4, _08055A30 @ =gMenu
- ldr r0, [r4, #0xc]
- ldrb r0, [r0, #1]
- cmp r0, #0
- beq _08055A0E
- ldr r0, _08055A34 @ =gUnk_080FF33C
- bl LoadRoomEntityList
-_08055A0E:
- ldrb r0, [r4, #4]
- movs r1, #0
- movs r2, #0
- movs r3, #0
- bl sub_08055B70
- ldrb r0, [r4, #6]
- adds r0, #1
- strb r0, [r4, #6]
- ldr r1, _08055A38 @ =gUpdateVisibleTiles
- movs r0, #1
- strb r0, [r1]
- movs r0, #4
- movs r1, #0x10
- bl SetFade
- pop {r4, pc}
- .align 2, 0
-_08055A30: .4byte gMenu
-_08055A34: .4byte gUnk_080FF33C
-_08055A38: .4byte gUpdateVisibleTiles
-
- thumb_func_start sub_08055A3C
-sub_08055A3C: @ 0x08055A3C
- push {lr}
- ldr r0, _08055A64 @ =gFadeControl
- ldrb r0, [r0]
- cmp r0, #0
- bne _08055A60
- movs r0, #0xff
- bl CheckRoomFlag
- cmp r0, #0
- beq _08055A60
- movs r0, #7
- movs r1, #0x10
- bl SetFade
- ldr r1, _08055A68 @ =gMenu
- ldrb r0, [r1, #6]
- adds r0, #1
- strb r0, [r1, #6]
-_08055A60:
- pop {pc}
- .align 2, 0
-_08055A64: .4byte gFadeControl
-_08055A68: .4byte gMenu
-
- thumb_func_start sub_08055A6C
-sub_08055A6C: @ 0x08055A6C
- push {r4, lr}
- ldr r0, _08055AA0 @ =gFadeControl
- ldrb r0, [r0]
- cmp r0, #0
- bne _08055A9E
- ldr r4, _08055AA4 @ =gMenu
- ldrb r0, [r4, #4]
- movs r1, #1
- bl sub_0801876C
- ldrb r0, [r4, #4]
- bl sub_080553E0
- movs r0, #6
- movs r1, #0x10
- bl SetFade
- movs r0, #0x73
- bl SoundReq
- ldrb r0, [r4, #6]
- adds r0, #1
- strb r0, [r4, #6]
- movs r0, #0x78
- strh r0, [r4, #8]
-_08055A9E:
- pop {r4, pc}
- .align 2, 0
-_08055AA0: .4byte gFadeControl
-_08055AA4: .4byte gMenu
-
- thumb_func_start sub_08055AA8
-sub_08055AA8: @ 0x08055AA8
- push {lr}
- ldr r0, _08055AC8 @ =gFadeControl
- ldrb r0, [r0]
- cmp r0, #0
- bne _08055AC6
- ldr r1, _08055ACC @ =gMenu
- ldrh r0, [r1, #8]
- subs r0, #1
- strh r0, [r1, #8]
- lsls r0, r0, #0x10
- cmp r0, #0
- bne _08055AC6
- ldrb r0, [r1, #5]
- adds r0, #1
- strb r0, [r1, #5]
-_08055AC6:
- pop {pc}
- .align 2, 0
-_08055AC8: .4byte gFadeControl
-_08055ACC: .4byte gMenu
-
- thumb_func_start sub_08055AD0
-sub_08055AD0: @ 0x08055AD0
- push {lr}
- ldr r1, _08055AE4 @ =gUnk_080FF36C
- ldr r0, _08055AE8 @ =gMenu
- ldrb r0, [r0, #6]
- lsls r0, r0, #2
- adds r0, r0, r1
- ldr r0, [r0]
- bl _call_via_r0
- pop {pc}
- .align 2, 0
-_08055AE4: .4byte gUnk_080FF36C
-_08055AE8: .4byte gMenu
-
- thumb_func_start sub_08055AEC
-sub_08055AEC: @ 0x08055AEC
- push {r4, lr}
- ldr r4, _08055B2C @ =gMenu
- ldrb r0, [r4, #4]
- movs r1, #0
- movs r2, #0
- movs r3, #0
- bl sub_08055B70
- ldr r0, [r4, #0xc]
- ldrb r0, [r0, #1]
- lsls r0, r0, #4
- ldr r1, _08055B30 @ =gUnk_080FED18
- adds r0, r0, r1
- bl LoadRoomEntity
- adds r1, r0, #0
- cmp r1, #0
- beq _08055B14
- movs r0, #1
- strb r0, [r1, #0xb]
-_08055B14:
- ldrb r0, [r4, #6]
- adds r0, #1
- strb r0, [r4, #6]
- ldr r1, _08055B34 @ =gUpdateVisibleTiles
- movs r0, #1
- strb r0, [r1]
- movs r0, #4
- movs r1, #0x10
- bl SetFade
- pop {r4, pc}
- .align 2, 0
-_08055B2C: .4byte gMenu
-_08055B30: .4byte gUnk_080FED18
-_08055B34: .4byte gUpdateVisibleTiles
-
- thumb_func_start sub_08055B38
-sub_08055B38: @ 0x08055B38
- push {lr}
- ldr r0, _08055B4C @ =gFadeControl
- ldrb r0, [r0]
- cmp r0, #0
- bne _08055B48
- ldr r1, _08055B50 @ =gMenu
- movs r0, #0x78
- strh r0, [r1, #8]
-_08055B48:
- pop {pc}
- .align 2, 0
-_08055B4C: .4byte gFadeControl
-_08055B50: .4byte gMenu
-
- thumb_func_start sub_08055B54
-sub_08055B54: @ 0x08055B54
- push {lr}
- ldr r1, _08055B6C @ =gMenu
- ldrh r0, [r1, #8]
- subs r0, #1
- strh r0, [r1, #8]
- lsls r0, r0, #0x10
- cmp r0, #0
- bne _08055B6A
- ldrb r0, [r1, #5]
- adds r0, #1
- strb r0, [r1, #5]
-_08055B6A:
- pop {pc}
- .align 2, 0
-_08055B6C: .4byte gMenu
-
- thumb_func_start sub_08055B70
-sub_08055B70: @ 0x08055B70
- push {r4, r5, r6, lr}
- adds r0, r1, #0
- adds r5, r2, #0
- adds r6, r3, #0
- ldr r1, _08055BA4 @ =gMenu
- ldr r4, [r1, #0xc]
- lsls r0, r0, #4
- ldr r1, _08055BA8 @ =gUnk_080FF378
- adds r0, r0, r1
- bl LoadRoomEntity
- adds r3, r0, #0
- cmp r3, #0
- beq _08055BA2
- ldrh r0, [r4, #8]
- ldr r1, _08055BAC @ =gRoomControls
- adds r0, r0, r5
- ldrh r2, [r1, #6]
- adds r0, r0, r2
- strh r0, [r3, #0x2e]
- ldrh r0, [r4, #0xa]
- adds r0, r0, r6
- ldrh r1, [r1, #8]
- adds r0, r0, r1
- strh r0, [r3, #0x32]
-_08055BA2:
- pop {r4, r5, r6, pc}
- .align 2, 0
-_08055BA4: .4byte gMenu
-_08055BA8: .4byte gUnk_080FF378
-_08055BAC: .4byte gRoomControls
-
- thumb_func_start sub_08055BB0
-sub_08055BB0: @ 0x08055BB0
- push {lr}
- ldr r1, _08055BC4 @ =gUnk_080FF3C8
- ldr r0, _08055BC8 @ =gMenu
- ldrb r0, [r0, #6]
- lsls r0, r0, #2
- adds r0, r0, r1
- ldr r0, [r0]
- bl _call_via_r0
- pop {pc}
- .align 2, 0
-_08055BC4: .4byte gUnk_080FF3C8
-_08055BC8: .4byte gMenu
-
- thumb_func_start sub_08055BCC
-sub_08055BCC: @ 0x08055BCC
- push {r4, lr}
- ldr r4, _08055BFC @ =gMenu
- ldrb r0, [r4, #4]
- movs r1, #0
- movs r2, #0
- movs r3, #0
- bl sub_08055B70
- ldrb r0, [r4, #4]
- movs r1, #0
- bl sub_0801876C
- ldrb r0, [r4, #6]
- adds r0, #1
- strb r0, [r4, #6]
- ldr r1, _08055C00 @ =gUpdateVisibleTiles
- movs r0, #1
- strb r0, [r1]
- movs r0, #4
- movs r1, #0x10
- bl SetFade
- pop {r4, pc}
- .align 2, 0
-_08055BFC: .4byte gMenu
-_08055C00: .4byte gUpdateVisibleTiles
-
- thumb_func_start sub_08055C04
-sub_08055C04: @ 0x08055C04
- push {lr}
- ldr r0, _08055C2C @ =gFadeControl
- ldrb r0, [r0]
- cmp r0, #0
- bne _08055C28
- movs r0, #0xff
- bl CheckRoomFlag
- cmp r0, #0
- beq _08055C28
- movs r0, #7
- movs r1, #0x10
- bl SetFade
- ldr r1, _08055C30 @ =gMenu
- ldrb r0, [r1, #6]
- adds r0, #1
- strb r0, [r1, #6]
-_08055C28:
- pop {pc}
- .align 2, 0
-_08055C2C: .4byte gFadeControl
-_08055C30: .4byte gMenu
-
- thumb_func_start sub_08055C34
-sub_08055C34: @ 0x08055C34
- push {r4, r5, lr}
- sub sp, #4
- ldr r0, _08055C64 @ =gFadeControl
- ldrb r0, [r0]
- cmp r0, #0
- bne _08055CA6
- ldr r5, _08055C68 @ =gMenu
- ldr r4, [r5, #0xc]
- ldrb r0, [r5, #4]
- bl sub_080553E0
- ldrb r1, [r4, #1]
- movs r0, #0x80
- ands r0, r1
- lsls r0, r0, #0x18
- lsrs r0, r0, #0x18
- cmp r0, #0
- beq _08055C6C
- ldrb r0, [r5, #4]
- movs r1, #0
- bl sub_08054974
- b _08055C8C
- .align 2, 0
-_08055C64: .4byte gFadeControl
-_08055C68: .4byte gMenu
-_08055C6C:
- str r0, [sp]
- movs r0, #6
- movs r1, #0x9e
- movs r2, #6
- movs r3, #0
- bl FindEntity
- adds r4, r0, #0
- cmp r4, #0
- beq _08055C8C
- ldr r0, [r4, #0x54]
- bl DeleteEntity
- adds r0, r4, #0
- bl DeleteEntity
-_08055C8C:
- movs r0, #6
- movs r1, #0x10
- bl SetFade
- movs r0, #0x73
- bl SoundReq
- ldr r0, _08055CAC @ =gMenu
- ldrb r1, [r0, #6]
- adds r1, #1
- strb r1, [r0, #6]
- movs r1, #0x78
- strh r1, [r0, #8]
-_08055CA6:
- add sp, #4
- pop {r4, r5, pc}
- .align 2, 0
-_08055CAC: .4byte gMenu
-
- thumb_func_start sub_08055CB0
-sub_08055CB0: @ 0x08055CB0
- push {lr}
- ldr r0, _08055CD0 @ =gFadeControl
- ldrb r0, [r0]
- cmp r0, #0
- bne _08055CCE
- ldr r1, _08055CD4 @ =gMenu
- ldrh r0, [r1, #8]
- subs r0, #1
- strh r0, [r1, #8]
- lsls r0, r0, #0x10
- cmp r0, #0
- bne _08055CCE
- ldrb r0, [r1, #5]
- adds r0, #1
- strb r0, [r1, #5]
-_08055CCE:
- pop {pc}
- .align 2, 0
-_08055CD0: .4byte gFadeControl
-_08055CD4: .4byte gMenu
-
- thumb_func_start sub_08055CD8
-sub_08055CD8: @ 0x08055CD8
- push {lr}
- ldr r1, _08055CEC @ =gUnk_080FF3E8
- ldr r0, _08055CF0 @ =gMenu
- ldrb r0, [r0, #6]
- lsls r0, r0, #2
- adds r0, r0, r1
- ldr r0, [r0]
- bl _call_via_r0
- pop {pc}
- .align 2, 0
-_08055CEC: .4byte gUnk_080FF3E8
-_08055CF0: .4byte gMenu
-
- thumb_func_start sub_08055CF4
-sub_08055CF4: @ 0x08055CF4
- push {r4, lr}
- ldr r4, _08055D24 @ =gMenu
- ldr r1, [r4, #0xc]
- ldrb r0, [r1, #2]
- ldrb r1, [r1, #3]
- bl sub_0804B0B0
- ldrb r0, [r4, #4]
- movs r1, #0
- movs r2, #0
- movs r3, #0
- bl sub_08055B70
- ldrb r0, [r4, #6]
- adds r0, #1
- strb r0, [r4, #6]
- ldr r1, _08055D28 @ =gUpdateVisibleTiles
- movs r0, #1
- strb r0, [r1]
- movs r0, #4
- movs r1, #0x10
- bl SetFade
- pop {r4, pc}
- .align 2, 0
-_08055D24: .4byte gMenu
-_08055D28: .4byte gUpdateVisibleTiles
-
- thumb_func_start sub_08055D2C
-sub_08055D2C: @ 0x08055D2C
- push {r4, lr}
- ldr r0, _08055D5C @ =gFadeControl
- ldrb r0, [r0]
- cmp r0, #0
- bne _08055D5A
- movs r0, #0xff
- bl CheckRoomFlag
- cmp r0, #0
- beq _08055D5A
- ldr r4, _08055D60 @ =gMenu
- ldrb r0, [r4, #4]
- movs r1, #1
- bl sub_0801876C
- ldrb r0, [r4, #4]
- bl sub_080553E0
- ldrb r0, [r4, #6]
- adds r0, #1
- strb r0, [r4, #6]
- movs r0, #0x78
- strh r0, [r4, #8]
-_08055D5A:
- pop {r4, pc}
- .align 2, 0
-_08055D5C: .4byte gFadeControl
-_08055D60: .4byte gMenu
-
- thumb_func_start sub_08055D64
-sub_08055D64: @ 0x08055D64
- push {lr}
- ldr r1, _08055D7C @ =gMenu
- ldrh r0, [r1, #8]
- subs r0, #1
- strh r0, [r1, #8]
- lsls r0, r0, #0x10
- cmp r0, #0
- bne _08055D7A
- ldrb r0, [r1, #5]
- adds r0, #1
- strb r0, [r1, #5]
-_08055D7A:
- pop {pc}
- .align 2, 0
-_08055D7C: .4byte gMenu
-
- thumb_func_start sub_08055D80
-sub_08055D80: @ 0x08055D80
- push {lr}
- ldr r1, _08055D94 @ =gUnk_080FF3F4
- ldr r0, _08055D98 @ =gMenu
- ldrb r0, [r0, #6]
- lsls r0, r0, #2
- adds r0, r0, r1
- ldr r0, [r0]
- bl _call_via_r0
- pop {pc}
- .align 2, 0
-_08055D94: .4byte gUnk_080FF3F4
-_08055D98: .4byte gMenu
-
- thumb_func_start sub_08055D9C
-sub_08055D9C: @ 0x08055D9C
- push {lr}
- ldr r1, _08055DB8 @ =gMenu
- ldrb r0, [r1, #6]
- adds r0, #1
- strb r0, [r1, #6]
- ldr r1, _08055DBC @ =gUpdateVisibleTiles
- movs r0, #1
- strb r0, [r1]
- movs r0, #4
- movs r1, #0x10
- bl SetFade
- pop {pc}
- .align 2, 0
-_08055DB8: .4byte gMenu
-_08055DBC: .4byte gUpdateVisibleTiles
-
- thumb_func_start sub_08055DC0
-sub_08055DC0: @ 0x08055DC0
- push {lr}
- ldr r0, _08055DE0 @ =gFadeControl
- ldrb r0, [r0]
- cmp r0, #0
- bne _08055DDC
- ldr r0, _08055DE4 @ =0x00000A01
- bl MessageFromTarget
- ldr r1, _08055DE8 @ =gMenu
- ldrb r0, [r1, #6]
- adds r0, #1
- strb r0, [r1, #6]
- movs r0, #0x78
- strh r0, [r1, #8]
-_08055DDC:
- pop {pc}
- .align 2, 0
-_08055DE0: .4byte gFadeControl
-_08055DE4: .4byte 0x00000A01
-_08055DE8: .4byte gMenu
-
- thumb_func_start sub_08055DEC
-sub_08055DEC: @ 0x08055DEC
- push {lr}
- ldr r1, _08055E04 @ =gMenu
- ldrh r0, [r1, #8]
- subs r0, #1
- strh r0, [r1, #8]
- lsls r0, r0, #0x10
- cmp r0, #0
- bne _08055E02
- ldrb r0, [r1, #5]
- adds r0, #1
- strb r0, [r1, #5]
-_08055E02:
- pop {pc}
- .align 2, 0
-_08055E04: .4byte gMenu
diff --git a/linker.ld b/linker.ld
index dce98966..7518f5c6 100644
--- a/linker.ld
+++ b/linker.ld
@@ -442,7 +442,7 @@ SECTIONS {
src/code_0805436C.o(.text);
asm/code_0805436C.o(.text); /* game.c */
src/playerItem/playerItemLantern.o(.text);
- asm/code_08054C04.o(.text); /* subtask */
+ src/subtask.o(.text);
src/sub_08055E08.o(.text);
src/main.o(.text);
src/message.o(.text);
diff --git a/src/subtask.c b/src/subtask.c
new file mode 100644
index 00000000..9209a2c5
--- /dev/null
+++ b/src/subtask.c
@@ -0,0 +1,864 @@
+#include "global.h"
+#include "menu.h"
+#include "fade.h"
+#include "flags.h"
+#include "sound.h"
+#include "room.h"
+#include "functions.h"
+#include "effects.h"
+#include "asm.h"
+#include "save.h"
+#include "kinstone.h"
+#include "screen.h"
+#include "common.h"
+#include "object.h"
+#include "message.h"
+
+extern void (*const gUnk_080FEEB8[])(void);
+
+extern void sub_0801876C(u32, u32);
+
+extern u8 gUpdateVisibleTiles;
+void sub_08055B70(u32, u32, u32, u32);
+
+extern void sub_08054974(u32, u32);
+
+extern void (*const gUnk_080FEEC8[])(void);
+
+void sub_080553E0(u32);
+
+extern void (*const gUnk_080FEF34[])(void);
+
+extern EntityData gUnk_080FEED4[];
+
+extern void (*const gUnk_080FEF3C[])(void);
+
+extern void sub_0804B0E8(u32, u32);
+
+extern void (*const gUnk_080FF120[])(void);
+
+extern EntityData* gUnk_080FF108[];
+
+extern void (*const gUnk_080FF148[])(void);
+
+extern EntityData gUnk_080FF128[];
+
+extern void (*const gUnk_080FF174[])(void);
+
+extern EntityData gUnk_080FF154[];
+
+extern void (*const gUnk_080FF1CC[])(void);
+
+extern EntityData gUnk_080FF17C[];
+
+extern void (*const gUnk_080FF1F4[])(void);
+
+extern const s16 gUnk_080FF1D4[];
+
+extern const u16 gUnk_080FF204[];
+
+extern void (*const gUnk_080FF228[])(void);
+
+extern void (*const gUnk_080FF238[])(void);
+
+extern void (*const gUnk_080FF254[])(void);
+
+extern void (*const gUnk_080FF284[])(void);
+
+extern const EntityData gUnk_080FF264[];
+
+extern void (*const gUnk_080FF28C[])(void);
+
+extern Entity* LoadRoomEntity(EntityData*);
+extern void sub_08054A14(u32);
+
+extern const EntityData gUnk_080FEE48[];
+
+extern void (*const gUnk_080FF2B8[])(void);
+
+extern const EntityData gUnk_080FF298[];
+
+extern void (*const gUnk_080FF300[])(void);
+
+extern const EntityData gUnk_080FF2C0[];
+
+extern void (*const gUnk_080FF328[])(void);
+
+extern const EntityData gUnk_080FF308[];
+
+extern void (*const gUnk_080FF330[])(void);
+
+void sub_08055994(void);
+
+typedef struct {
+ u8 unk_0[6];
+ u8 unk_6;
+ u8 unk_7;
+} struct_080FEAC8;
+extern struct_080FEAC8 gUnk_080FEAC8[];
+
+extern void (*const gUnk_080FF35C[])(void);
+
+extern const EntityData gUnk_080FF33C[];
+
+extern void (*const gUnk_080FF36C[])(void);
+
+extern const EntityData gUnk_080FED18[];
+
+extern const EntityData gUnk_080FF378[];
+
+extern void (*const gUnk_080FF3F4[])(void);
+
+void sub_08054C04(void) {
+ gUnk_080FEEB8[gMenu.overlayType]();
+}
+
+void sub_08054C20(void) {
+ sub_08055B70(gMenu.field_0x4, 0, 0, 0);
+ sub_0801876C(gMenu.field_0x4, 0);
+ gMenu.overlayType++;
+ gUpdateVisibleTiles = 1;
+ SetFade(4, 0x10);
+}
+
+void sub_08054C58(void) {
+ if ((gFadeControl.active == 0) && CheckRoomFlag(0xff)) {
+ SetFade(7, 0x10);
+ gMenu.overlayType++;
+ }
+}
+
+void sub_08054C88(void) {
+ if (gFadeControl.active == 0) {
+ sub_08054974(gMenu.field_0x4, 0);
+ SetFade(6, 0x10);
+ SoundReq(SFX_SECRET_BIG);
+ gMenu.overlayType++;
+ gMenu.transitionTimer = 0x78;
+ }
+}
+
+void sub_08054CC0(void) {
+ if ((gFadeControl.active == 0) && (--gMenu.transitionTimer == 0)) {
+ gMenu.menuType++;
+ }
+}
+
+void sub_08054CE8(void) {
+ gUnk_080FEEC8[gMenu.overlayType]();
+}
+
+void sub_08054D04(void) {
+ sub_0804B0B0(gMenu.field_0xc[2], gMenu.field_0xc[3]);
+ sub_08055B70(gMenu.field_0x4, 0, 0, 0);
+ gMenu.overlayType++;
+ gUpdateVisibleTiles = 1;
+ SetFade(4, 0x10);
+}
+
+void sub_08054D3C(void) {
+ if ((gFadeControl.active == 0) && CheckRoomFlag(0xff)) {
+ sub_0801876C(gMenu.field_0x4, 1);
+ sub_080553E0(gMenu.field_0x4);
+ gMenu.overlayType++;
+ gMenu.transitionTimer = 0x78;
+ }
+}
+
+void sub_08054D74(void) {
+ if (--gMenu.transitionTimer == 0) {
+ gMenu.menuType++;
+ }
+}
+
+void sub_08054D90(void) {
+ gUnk_080FEF34[gMenu.overlayType]();
+}
+
+void sub_08054DAC(void) {
+ sub_0804B0B0(gMenu.field_0xc[2], gMenu.field_0xc[3]);
+ LoadRoomEntityList(gUnk_080FEED4);
+ sub_0805B4D0(2);
+ sub_0806D0B0(NULL);
+ sub_08055B70(gMenu.field_0x4, 0, 0, 0);
+ gMenu.overlayType++;
+ gUpdateVisibleTiles = 1;
+ SetFade(4, 0x10);
+}
+
+void nullsub_484(void) {
+}
+
+void sub_08054E00(void) {
+ gUnk_080FEF3C[gMenu.overlayType]();
+}
+
+void sub_08054E1C(void) {
+ u8* ptr = gMenu.field_0xc;
+ sub_0804B0B0(ptr[2], ptr[3]);
+ sub_0804B0E8(ptr[2], ptr[3]);
+ sub_08055B70(gMenu.field_0x4, 0, 0, 0);
+ gMenu.overlayType++;
+ gUpdateVisibleTiles = 1;
+ SetFade(4, 0x10);
+}
+
+void sub_08054E5C(void) {
+ if ((gFadeControl.active == 0) && CheckRoomFlag(0xff)) {
+ gMenu.overlayType++;
+ gMenu.transitionTimer = 0xb4;
+ SetFade(6, 0x10);
+ sub_080553E0(gMenu.field_0x4);
+ sub_0801876C(gMenu.field_0x4, 1);
+ }
+}
+
+void sub_08054E9C(void) {
+ if (--gMenu.transitionTimer == 0) {
+ gMenu.menuType++;
+ }
+}
+
+void sub_08054EB8(Entity* this, ScriptExecutionContext* context) {
+ Manager24* manager = (Manager24*)GetEmptyManager();
+ if (manager != NULL) {
+ (manager->manager).type = 9;
+ (manager->manager).subtype = 0x24;
+ manager->x = this->x.HALF.HI - gRoomControls.origin_x;
+ manager->y = (this->y.HALF.HI - gRoomControls.origin_y) - 0x10;
+ manager->field_0x35 = 1;
+#if defined(EU) || defined(JP) || defined(DEMO_JP)
+ manager->field_0x3e = 0x77;
+#else
+ manager->field_0x3e = 0x79;
+#endif
+ AppendEntityToList((Entity*)manager, 6);
+ }
+}
+
+void sub_08054EFC(Entity* this) {
+ Entity* effect;
+ u32 tmp = COORD_TO_TILE(this) - 0x40;
+ SetTile(0x4074, tmp, 1);
+ this->collisionLayer = 2;
+ UpdateSpriteForCollisionLayer(this);
+ effect = CreateFx(this, FX_BIG_EXPLOSION, 0);
+ if (effect != NULL) {
+ effect->y.HALF.HI -= 0x10;
+ SortEntityBelow(this, effect);
+ }
+ SoundReq(SFX_ITEM_BOMB_EXPLODE);
+}
+
+void sub_08054F64(Entity* this, ScriptExecutionContext* context) {
+ u32 tmp = this->type2;
+ if ((gActiveScriptInfo.syncFlags & tmp) != tmp) {
+ gActiveScriptInfo.commandSize = 0;
+ } else {
+ gActiveScriptInfo.syncFlags &= ~tmp;
+ gActiveScriptInfo.flags |= 1;
+ }
+}
+
+void sub_08054F90(void) {
+ gUnk_080FF120[gMenu.overlayType]();
+}
+
+void sub_08054FAC(void) {
+ u8* ptr;
+ u32 tmp;
+
+ ptr = gMenu.field_0xc;
+ LoadRoomEntityList(gUnk_080FF108[ptr[1]]);
+ if (ptr[1] != 0) {
+ tmp = 3;
+ } else {
+ tmp = 0;
+ }
+ sub_08055B70(gMenu.field_0x4, tmp, 0, 0);
+ gMenu.overlayType++;
+ gUpdateVisibleTiles = 1;
+ SetFade(4, 0x10);
+ gMenu.field_0xa = 0;
+ if (CheckLocalFlagByBank(0x400, 0x77) && (ptr[2] == 0x2f)) {
+ gMenu.field_0xa = 1;
+ }
+}
+
+void sub_08055014(void) {
+ if (gMenu.field_0xa != 0) {
+ gMenu.field_0xa = 0;
+ SetTileType(0x74, 0x407, 1);
+ }
+}
+
+void sub_08055038(void) {
+ gUnk_080FF148[gMenu.overlayType]();
+}
+
+void sub_08055054(void) {
+ LoadRoomEntityList(gUnk_080FF128);
+ sub_08055B70(gMenu.field_0x4, 2, 0, 0);
+ gMenu.overlayType++;
+ gUpdateVisibleTiles = 1;
+ SetFade(4, 0x10);
+}
+
+void sub_0805508C(void) {
+}
+
+void sub_08055090(void) {
+}
+
+void sub_08055094(void) {
+ gUnk_080FF174[gMenu.overlayType]();
+}
+
+void sub_080550B0(void) {
+ sub_0804B0B0(gMenu.field_0xc[2], gMenu.field_0xc[3]);
+ LoadRoomEntityList(gUnk_080FF154);
+ sub_08055B70(gMenu.field_0x4, 0, 0, 0);
+ gMenu.overlayType++;
+ gUpdateVisibleTiles = 1;
+ SetFade(4, 0x10);
+}
+
+void nullsub_487(void) {
+}
+
+void sub_080550F8(void) {
+ gUnk_080FF1CC[gMenu.overlayType]();
+}
+
+void sub_08055114(void) {
+ LoadRoomEntityList(gUnk_080FF17C);
+ if (gSave.global_progress != 9) {
+ sub_08018C58(0xdb4);
+ }
+ sub_08055B70(gMenu.field_0x4, 0, 0, 0);
+ gMenu.overlayType++;
+ gUpdateVisibleTiles = 1;
+ SetFade(4, 0x10);
+}
+
+void nullsub_488(void) {
+}
+
+void sub_08055168(void) {
+ gUnk_080FF1F4[gMenu.overlayType]();
+}
+
+void sub_08055184(void) {
+ const s16* ptr = &gUnk_080FF1D4[(gMenu.field_0xc[1] & 0xf) * 3];
+ LoadGfxGroup(ptr[0]);
+ gScreen.bg3.xOffset = ptr[1];
+ gScreen.bg3.yOffset = ptr[2];
+ gScreen.bg3.control = 0x1e05;
+ gScreen.controls.layerFXControl = 0x3648;
+ gScreen.controls.alphaBlend = 0x10;
+ gScreen.lcd.displayControl |= 0x800;
+ sub_0801876C(gMenu.field_0x4, 1);
+ sub_08055B70(gMenu.field_0x4, 0, 0, 0);
+ gMenu.overlayType++;
+ gMenu.storyPanelIndex = 0;
+ gMenu.transitionTimer = 0x3c;
+ gMenu.field_0xa = 0;
+ gUpdateVisibleTiles = 1;
+ SetFade(4, 0x10);
+}
+
+void sub_08055224(void) {
+ if ((gFadeControl.active == 0) && CheckRoomFlag(0xff)) {
+ gMenu.overlayType++;
+ }
+}
+
+void sub_0805524C(void) {
+ if (gMenu.storyPanelIndex == 0) {
+ gMenu.transitionTimer--;
+ if (gMenu.transitionTimer == 0) {
+ u32 tmp = gMenu.storyPanelIndex;
+ gMenu.storyPanelIndex = tmp + 1;
+ SoundReq(SFX_EVAPORATE);
+ }
+ } else if ((gRoomTransition.frameCount & 7U) == 0) {
+ if (gUnk_080FF204[gMenu.field_0xa] != 0xffff) {
+ gScreen.controls.alphaBlend = gUnk_080FF204[gMenu.field_0xa++];
+ } else {
+ gScreen.lcd.displayControl &= 0xf7ff;
+ gScreen.controls.alphaBlend = 0x1000;
+ gMenu.transitionTimer = 0x78;
+ gMenu.overlayType++;
+#ifndef EU
+ SoundReq(SFX_SECRET_BIG);
+#endif
+ }
+ }
+}
+
+void sub_080552E0(void) {
+ if (--gMenu.transitionTimer == 0) {
+ gMenu.menuType++;
+ }
+}
+
+void sub_080552FC(void) {
+ gUnk_080FF228[gMenu.overlayType]();
+}
+
+void sub_08055318(void) {
+ sub_08055B70(gMenu.field_0x4, 0, 0, 0);
+ sub_0801876C(gMenu.field_0x4, 0);
+ gMenu.overlayType++;
+ gUpdateVisibleTiles = 1;
+ SetFade(4, 0x10);
+}
+
+void sub_08055350(void) {
+ if ((gFadeControl.active == 0) && CheckRoomFlag(0xff)) {
+ SetFade(7, 0x10);
+ gMenu.overlayType++;
+ }
+}
+
+void sub_08055380(void) {
+ if (gFadeControl.active == 0) {
+ sub_08054974(gMenu.field_0x4, 0);
+ SetFade(6, 0x10);
+ SoundReq(SFX_SECRET_BIG);
+ gMenu.overlayType++;
+ gMenu.transitionTimer = 0x78;
+ }
+}
+
+void sub_080553B8(void) {
+ if ((gFadeControl.active == 0) && (--gMenu.transitionTimer == 0)) {
+ gMenu.menuType++;
+ }
+}
+
+void sub_080553E0(u32 param_1) {
+ u8* ptr = gMenu.field_0xc;
+ Entity* effect = CreateObject(SPECIAL_FX, FX_BIG_EXPLOSION2, 0);
+ if (effect != NULL) {
+ effect->x.HALF.HI = *(s16*)(ptr + 8) + gRoomControls.origin_x;
+ effect->y.HALF.HI = *(s16*)(ptr + 10) + gRoomControls.origin_y;
+ }
+}
+
+void sub_08055414(void) {
+ gUnk_080FF238[gMenu.overlayType]();
+}
+
+void sub_08055430(void) {
+ sub_0804B0E8(gMenu.field_0xc[2], gMenu.field_0xc[3]);
+ sub_08055B70(gMenu.field_0x4, 0, 0, 0);
+ gMenu.overlayType++;
+ gUpdateVisibleTiles = 1;
+ SetFade(4, 0x10);
+}
+
+void sub_08055468(void) {
+ if ((gFadeControl.active == 0) && CheckRoomFlag(0xff)) {
+ SetFade(7, 0x10);
+ gMenu.overlayType++;
+ }
+}
+
+void sub_08055498(void) {
+ if (gFadeControl.active == 0) {
+ sub_0801876C(gMenu.field_0x4, 1);
+ sub_080553E0(gMenu.field_0x4);
+ SetFade(6, 0x10);
+ SoundReq(SFX_SECRET_BIG);
+ gMenu.overlayType++;
+ gMenu.transitionTimer = 0x78;
+ }
+}
+
+void sub_080554D4(void) {
+ if ((gFadeControl.active == 0) && --gMenu.transitionTimer == 0) {
+ gMenu.menuType++;
+ }
+}
+
+void sub_080554FC(void) {
+ extern void (*const gUnk_080FF248[])(void);
+ gUnk_080FF248[gMenu.overlayType]();
+}
+
+void sub_08055518(void) {
+ sub_08055B70(gMenu.field_0x4, 0, 0, 0);
+ gMenu.overlayType++;
+ gUpdateVisibleTiles = 1;
+ SetFade(4, 0x10);
+}
+
+void sub_08055548(void) {
+ if ((gFadeControl.active == 0) && CheckRoomFlag(0xff)) {
+ sub_0801876C(gMenu.field_0x4, 1);
+ sub_080553E0(gMenu.field_0x4);
+ gMenu.overlayType++;
+ gMenu.transitionTimer = 0xb4;
+ }
+}
+
+void sub_08055580(void) {
+ if (--gMenu.transitionTimer == 0) {
+ gMenu.menuType++;
+ }
+}
+
+void sub_0805559C(void) {
+ gUnk_080FF254[gMenu.overlayType]();
+}
+
+void sub_080555B8(void) {
+ u8* ptr = gMenu.field_0xc;
+ SetLocalFlagByBank(gLocalFlagBanks[gMenu.field_0xc[0x11]], (u32) * (u16*)(gMenu.field_0xc + 0x12));
+ sub_0804B0E8(ptr[2], ptr[3]);
+ LoadGfxGroup(0x11);
+ sub_08055B70(gMenu.field_0x4, 0, 0, 0);
+ gMenu.overlayType++;
+ gUpdateVisibleTiles = 1;
+ SetFade(4, 0x10);
+}
+
+void sub_0805560C(void) {
+ if ((gFadeControl.active == 0) && CheckRoomFlag(0xff)) {
+ gMenu.overlayType++;
+ }
+}
+
+void sub_08055634(void) {
+ u8* ptr = gMenu.field_0xc;
+ Entity* obj = CreateObject(BEANSTALK, 0, 0);
+ if (obj != NULL) {
+ obj->x.HALF.HI = gRoomControls.origin_x + *(s16*)(ptr + 8);
+ obj->y.HALF.HI = gRoomControls.origin_y + *(s16*)(ptr + 10);
+ }
+ gMenu.overlayType++;
+ gMenu.transitionTimer = 0x186;
+}
+
+void sub_08055674(void) {
+ if (--gMenu.transitionTimer == 0) {
+ gMenu.menuType++;
+ }
+}
+
+void sub_08055690(void) {
+ gUnk_080FF284[gMenu.overlayType]();
+}
+
+void sub_080556AC(void) {
+ gMenu.overlayType++;
+ gUpdateVisibleTiles = 1;
+ sub_0804B0B0(gMenu.field_0xc[2], gMenu.field_0xc[3]);
+ LoadRoomEntityList((EntityData*)gUnk_080FF264);
+ sub_08055B70(gMenu.field_0x4, 0, 0, 0);
+ SetFade(4, 0x10);
+}
+
+void nullsub_489(void) {
+}
+
+void sub_080556F4(void) {
+ gUnk_080FF28C[gMenu.overlayType]();
+}
+
+void sub_08055710(void) {
+ Entity* entity;
+
+ sub_0804B0B0(gMenu.field_0xc[2], gMenu.field_0xc[3]);
+ entity = LoadRoomEntity((EntityData*)gUnk_080FEE48);
+ if (entity != NULL) {
+ entity->type2 = 2;
+ entity->field_0x86.HWORD = 0x80ff;
+ }
+ sub_08054A14(gMenu.field_0x4);
+ sub_08055B70(gMenu.field_0x4, 0, 0, 0);
+ gMenu.overlayType++;
+ gUpdateVisibleTiles = 1;
+ SetFade(4, 0x10);
+}
+
+void sub_0805576C(void) {
+ if ((gFadeControl.active == 0) && CheckRoomFlag(0xff)) {
+ gMenu.overlayType++;
+ gMenu.transitionTimer = 0x78;
+ }
+}
+
+void sub_08055798(void) {
+ if (--gMenu.transitionTimer == 0) {
+ gMenu.menuType++;
+ }
+}
+
+void sub_080557B4(void) {
+ gUnk_080FF2B8[gMenu.overlayType]();
+}
+
+void sub_080557D0(void) {
+ gMenu.overlayType++;
+ gUpdateVisibleTiles = 1;
+ sub_0804B0B0((u32)gMenu.field_0xc[2], gMenu.field_0xc[3]);
+ LoadRoomEntityList((EntityData*)gUnk_080FF298);
+ sub_08055B70(gMenu.field_0x4, 0, 0, 0);
+ SetFade(4, 0x10);
+}
+
+void nullsub_490(void) {
+}
+
+void sub_08055818(void) {
+ gUnk_080FF300[gMenu.overlayType]();
+}
+
+void sub_08055834(void) {
+ LoadRoomEntityList((EntityData*)gUnk_080FF2C0);
+ if (gSave.global_progress != 9) {
+ sub_08018C58(0xdb4);
+ }
+ sub_08055B70(gMenu.field_0x4, 1, 0, 0);
+ gMenu.overlayType++;
+ gUpdateVisibleTiles = 1;
+ SetFade(4, 0x10);
+}
+
+void nullsub_491(void) {
+}
+
+void sub_08055888(void) {
+ gUnk_080FF328[gMenu.overlayType]();
+}
+
+void sub_080558A4(void) {
+ sub_0804B0B0(gMenu.field_0xc[2], gMenu.field_0xc[3]);
+ LoadRoomEntityList((EntityData*)gUnk_080FF308);
+ sub_08055B70(gMenu.field_0x4, 0, 0, 0);
+ gMenu.overlayType++;
+ gUpdateVisibleTiles = 1;
+ SetFade(4, 0x10);
+}
+
+void nullsub_492(void) {
+}
+
+void sub_080558EC(void) {
+ gUnk_080FF330[gMenu.overlayType]();
+}
+
+void sub_08055908(void) {
+ u8* ptr = gMenu.field_0xc;
+ sub_0804B0B0(gMenu.field_0xc[2], gMenu.field_0xc[3]);
+ sub_0804B0E8(ptr[2], ptr[3]);
+ sub_08055B70(gMenu.field_0x4, 0, 0, 0);
+ gMenu.overlayType++;
+ gUpdateVisibleTiles = 1;
+ SetFade(4, 0x10);
+}
+
+void sub_08055948(void) {
+ if ((gFadeControl.active == 0) && CheckRoomFlag(0xff)) {
+ sub_08055994();
+ gMenu.overlayType++;
+ gMenu.transitionTimer = 0x78;
+ }
+}
+
+void sub_08055978(void) {
+ if (--gMenu.transitionTimer == 0) {
+ gMenu.menuType++;
+ }
+}
+
+void sub_08055994(void) {
+ u32 layer;
+ struct_080FEAC8* ptr = &gUnk_080FEAC8[gMenu.field_0x4];
+ if ((ptr->unk_6 & 1) != 0) {
+ layer = 2;
+ } else {
+ layer = 1;
+ }
+ SetTileType(0x73, (*(u16*)(gMenu.field_0xc + 8) >> 4 & 0x3f) | (*(u16*)(gMenu.field_0xc + 10) >> 4 & 0x3f) << 6,
+ layer);
+ sub_080553E0((u32)gMenu.field_0x4);
+ SoundReq(SFX_SECRET_BIG);
+}
+
+void sub_080559E0(void) {
+ gUnk_080FF35C[gMenu.overlayType]();
+}
+
+void sub_080559FC(void) {
+ if (gMenu.field_0xc[1] != 0) {
+ LoadRoomEntityList((EntityData*)gUnk_080FF33C);
+ }
+ sub_08055B70(gMenu.field_0x4, 0, 0, 0);
+ gMenu.overlayType++;
+ gUpdateVisibleTiles = 1;
+ SetFade(4, 0x10);
+}
+
+void sub_08055A3C(void) {
+ if ((gFadeControl.active == 0) && CheckRoomFlag(0xff)) {
+ SetFade(7, 0x10);
+ gMenu.overlayType++;
+ }
+}
+
+void sub_08055A6C(void) {
+ if (gFadeControl.active == 0) {
+ sub_0801876C(gMenu.field_0x4, 1);
+ sub_080553E0(gMenu.field_0x4);
+ SetFade(6, 0x10);
+ SoundReq(SFX_SECRET_BIG);
+ gMenu.overlayType++;
+ gMenu.transitionTimer = 0x78;
+ }
+}
+
+void sub_08055AA8(void) {
+ if ((gFadeControl.active == 0) && --gMenu.transitionTimer == 0) {
+ gMenu.menuType++;
+ }
+}
+
+void sub_08055AD0(void) {
+ gUnk_080FF36C[gMenu.overlayType]();
+}
+
+void sub_08055AEC(void) {
+ Entity* entity;
+ sub_08055B70(gMenu.field_0x4, 0, 0, 0);
+ entity = LoadRoomEntity((EntityData*)&gUnk_080FED18[gMenu.field_0xc[1]]);
+ if (entity != NULL) {
+ entity->type2 = 1;
+ }
+ gMenu.overlayType++;
+ gUpdateVisibleTiles = 1;
+ SetFade(4, 0x10);
+}
+
+void sub_08055B38(void) {
+ if (gFadeControl.active == 0) {
+ gMenu.transitionTimer = 0x78;
+ }
+}
+
+void sub_08055B54(void) {
+ if (--gMenu.transitionTimer == 0) {
+ gMenu.menuType++;
+ }
+}
+
+void sub_08055B70(u32 param_1, u32 param_2, u32 param_3, u32 param_4) {
+ u8* ptr = gMenu.field_0xc;
+ Entity* entity = LoadRoomEntity((EntityData*)&gUnk_080FF378[param_2]);
+ if (entity != NULL) {
+ entity->x.HALF.HI = *(s16*)(ptr + 8) + param_3 + gRoomControls.origin_x;
+ entity->y.HALF.HI = *(s16*)(ptr + 10) + param_4 + gRoomControls.origin_y;
+ }
+}
+
+void sub_08055BB0(void) {
+ extern void (*const gUnk_080FF3C8[])(void);
+ gUnk_080FF3C8[gMenu.overlayType]();
+}
+
+void sub_08055BCC(void) {
+ sub_08055B70(gMenu.field_0x4, 0, 0, 0);
+ sub_0801876C(gMenu.field_0x4, 0);
+ gMenu.overlayType++;
+ gUpdateVisibleTiles = 1;
+ SetFade(4, 0x10);
+}
+
+void sub_08055C04(void) {
+ if ((gFadeControl.active == 0) && CheckRoomFlag(0xff)) {
+ SetFade(7, 0x10);
+ gMenu.overlayType++;
+ }
+}
+
+void sub_08055C34(void) {
+ u8* ptr;
+ Entity* entity;
+ if (gFadeControl.active == 0) {
+ ptr = gMenu.field_0xc;
+ sub_080553E0((u32)gMenu.field_0x4);
+ if ((ptr[1] & 0x80) != 0) {
+ sub_08054974(gMenu.field_0x4, 0);
+ } else {
+ entity = FindEntity(OBJECT, TREE_THORNS, 6, 0, ptr[1] & 0x80);
+ if (entity != NULL) {
+ DeleteEntity(entity->child);
+ DeleteEntity(entity);
+ }
+ }
+ SetFade(6, 0x10);
+ SoundReq(SFX_SECRET_BIG);
+ gMenu.overlayType++;
+ gMenu.transitionTimer = 0x78;
+ }
+}
+
+void sub_08055CB0(void) {
+ if ((gFadeControl.active == 0) && --gMenu.transitionTimer == 0) {
+ gMenu.menuType++;
+ }
+}
+
+void sub_08055CD8(void) {
+ extern void (*const gUnk_080FF3E8[])(void);
+ gUnk_080FF3E8[gMenu.overlayType]();
+}
+
+void sub_08055CF4(void) {
+ sub_0804B0B0(gMenu.field_0xc[2], gMenu.field_0xc[3]);
+ sub_08055B70(gMenu.field_0x4, 0, 0, 0);
+ gMenu.overlayType++;
+ gUpdateVisibleTiles = 1;
+ SetFade(4, 0x10);
+}
+
+void sub_08055D2C(void) {
+ if ((gFadeControl.active == 0) && CheckRoomFlag(0xff)) {
+ sub_0801876C(gMenu.field_0x4, 1);
+ sub_080553E0(gMenu.field_0x4);
+ gMenu.overlayType++;
+ gMenu.transitionTimer = 0x78;
+ }
+}
+
+void sub_08055D64(void) {
+ if (--gMenu.transitionTimer == 0) {
+ gMenu.menuType++;
+ }
+}
+
+void sub_08055D80(void) {
+ gUnk_080FF3F4[gMenu.overlayType]();
+}
+
+void sub_08055D9C(void) {
+ gMenu.overlayType++;
+ gUpdateVisibleTiles = 1;
+ SetFade(4, 0x10);
+}
+
+void sub_08055DC0(void) {
+ if (gFadeControl.active == 0) {
+ MessageFromTarget(0xa01);
+ gMenu.overlayType++;
+ gMenu.transitionTimer = 0x78;
+ }
+}
+
+void sub_08055DEC(void) {
+ if (--gMenu.transitionTimer == 0) {
+ gMenu.menuType++;
+ }
+}