finished menu (1 failed attempt)

This commit is contained in:
jiangzhengwenjz
2019-07-09 14:07:19 +08:00
parent 09b94d8b34
commit e0e81c5fbe
38 changed files with 1215 additions and 3676 deletions
+4 -4
View File
@@ -2102,7 +2102,7 @@ _0814E6E0:
movs r1, 0 movs r1, 0
adds r2, r4, 0 adds r2, r4, 0
movs r3, 0xD movs r3, 0xD
bl SetWindowBorderStyle bl DrawStdFrameWithCustomTileAndPalette
b _0814E7F8 b _0814E7F8
.align 2, 0 .align 2, 0
_0814E700: .4byte 0x0000021d _0814E700: .4byte 0x0000021d
@@ -2246,7 +2246,7 @@ sub_814E80C: @ 814E80C
adds r5, r4, r0 adds r5, r4, r0
ldrb r0, [r5] ldrb r0, [r5]
movs r1, 0x1 movs r1, 0x1
bl ClearMenuWindow bl ClearStdWindowAndFrameToTransparent
ldrb r0, [r5] ldrb r0, [r5]
bl RemoveWindow bl RemoveWindow
adds r0, r4, 0 adds r0, r4, 0
@@ -2314,7 +2314,7 @@ _0814E876:
movs r1, 0 movs r1, 0
adds r2, r4, 0 adds r2, r4, 0
movs r3, 0xD movs r3, 0xD
bl SetWindowBorderStyle bl DrawStdFrameWithCustomTileAndPalette
b _0814EA66 b _0814EA66
.align 2, 0 .align 2, 0
_0814E8A8: .4byte gUnknown_846E3F0 _0814E8A8: .4byte gUnknown_846E3F0
@@ -2499,7 +2499,7 @@ _0814EA3C: .4byte gMain
_0814EA40: _0814EA40:
ldrb r0, [r7, 0x2] ldrb r0, [r7, 0x2]
movs r1, 0x1 movs r1, 0x1
bl ClearMenuWindow bl ClearStdWindowAndFrameToTransparent
ldrb r0, [r7, 0x2] ldrb r0, [r7, 0x2]
bl ClearWindowTilemap bl ClearWindowTilemap
ldrb r0, [r7, 0x2] ldrb r0, [r7, 0x2]
+7 -7
View File
@@ -1974,7 +1974,7 @@ _0813DC86:
movs r1, 0x2 movs r1, 0x2
movs r2, 0 movs r2, 0
movs r3, 0x2 movs r3, 0x2
bl ProgramAndPlaceMenuCursorOnWindow bl Menu_InitCursor
movs r0, 0x6 movs r0, 0x6
bl sub_813EA08 bl sub_813EA08
adds r4, r0, 0 adds r4, r0, 0
@@ -2051,7 +2051,7 @@ sub_813DDA0: @ 813DDA0
lsrs r0, 24 lsrs r0, 24
cmp r0, 0x1 cmp r0, 0x1
beq _0813DDFE beq _0813DDFE
bl ProcessMenuInputNoWrapAround bl Menu_ProcessInputNoWrapAround
lsls r0, 24 lsls r0, 24
asrs r4, r0, 24 asrs r4, r0, 24
movs r0, 0x2 movs r0, 0x2
@@ -3509,7 +3509,7 @@ _0813EA38:
movs r1, 0 movs r1, 0
movs r2, 0xA movs r2, 0xA
movs r3, 0xC movs r3, 0xC
bl SetWindowBorderStyle bl DrawStdFrameWithCustomTileAndPalette
b _0813EA60 b _0813EA60
.align 2, 0 .align 2, 0
_0813EA4C: .4byte gUnknown_203F38C _0813EA4C: .4byte gUnknown_203F38C
@@ -3519,7 +3519,7 @@ _0813EA54:
movs r1, 0 movs r1, 0
movs r2, 0x1 movs r2, 0x1
movs r3, 0xE movs r3, 0xE
bl SetWindowBorderStyle bl DrawStdFrameWithCustomTileAndPalette
_0813EA60: _0813EA60:
movs r0, 0x2 movs r0, 0x2
bl ScheduleBgCopyTilemapToVram bl ScheduleBgCopyTilemapToVram
@@ -3545,7 +3545,7 @@ sub_813EA78: @ 813EA78
movs r1, 0 movs r1, 0
movs r2, 0x1 movs r2, 0x1
movs r3, 0xE movs r3, 0xE
bl SetWindowBorderStyle bl DrawStdFrameWithCustomTileAndPalette
pop {r0} pop {r0}
bx r0 bx r0
.align 2, 0 .align 2, 0
@@ -3562,7 +3562,7 @@ sub_813EA98: @ 813EA98
adds r4, r0 adds r4, r0
ldrb r0, [r4] ldrb r0, [r4]
movs r1, 0 movs r1, 0
bl ClearMenuWindow bl ClearStdWindowAndFrameToTransparent
ldrb r0, [r4] ldrb r0, [r4]
bl ClearWindowTilemap bl ClearWindowTilemap
ldrb r0, [r4] ldrb r0, [r4]
@@ -3589,7 +3589,7 @@ sub_813EACC: @ 813EACC
cmp r0, 0xFF cmp r0, 0xFF
beq _0813EB04 beq _0813EB04
movs r1, 0 movs r1, 0
bl ClearMenuWindow_BorderThickness2 bl ClearDialogWindowAndFrameToTransparent
ldrb r0, [r4] ldrb r0, [r4]
bl ClearWindowTilemap bl ClearWindowTilemap
ldrb r0, [r4] ldrb r0, [r4]
+2 -2
View File
@@ -120,7 +120,7 @@ _080F5660:
movs r1, 0x1 movs r1, 0x1
movs r2, 0x1 movs r2, 0x1
movs r3, 0xF movs r3, 0xF
bl SetWindowBorderStyle bl DrawStdFrameWithCustomTileAndPalette
movs r0, 0x1 movs r0, 0x1
str r0, [sp] str r0, [sp]
str r0, [sp, 0x4] str r0, [sp, 0x4]
@@ -304,7 +304,7 @@ _080F57D4:
lsrs r4, r0, 24 lsrs r4, r0, 24
cmp r4, 0 cmp r4, 0
bne _080F57FE bne _080F57FE
bl sub_81100E8 bl DestroyYesNoMenu
adds r0, r6, 0 adds r0, r6, 0
bl DestroyTask bl DestroyTask
bl FreeAllWindowBuffers bl FreeAllWindowBuffers
+3 -3
View File
@@ -2076,7 +2076,7 @@ sub_80CB580: @ 80CB580
movs r1, 0 movs r1, 0
adds r2, r5, 0 adds r2, r5, 0
movs r3, 0xD movs r3, 0xD
bl SetWindowBorderStyle bl DrawStdFrameWithCustomTileAndPalette
ldrb r0, [r4] ldrb r0, [r4]
ldr r2, _080CB630 @ =gUnknown_8418075 ldr r2, _080CB630 @ =gUnknown_8418075
movs r1, 0x2 movs r1, 0x2
@@ -2141,7 +2141,7 @@ sub_80CB63C: @ 80CB63C
ldr r4, _080CB654 @ =gUnknown_2039A0C ldr r4, _080CB654 @ =gUnknown_2039A0C
ldrb r0, [r4] ldrb r0, [r4]
movs r1, 0x1 movs r1, 0x1
bl ClearMenuWindow bl ClearStdWindowAndFrameToTransparent
ldrb r0, [r4] ldrb r0, [r4]
bl RemoveWindow bl RemoveWindow
pop {r4} pop {r4}
@@ -2862,7 +2862,7 @@ sub_80CBBAC: @ 80CBBAC
lsls r0, 24 lsls r0, 24
lsrs r0, 24 lsrs r0, 24
movs r1, 0x1 movs r1, 0x1
bl ClearMenuWindow bl ClearStdWindowAndFrameToTransparent
ldrh r0, [r4, 0x22] ldrh r0, [r4, 0x22]
lsls r0, 24 lsls r0, 24
lsrs r0, 24 lsrs r0, 24
+6 -6
View File
@@ -1607,7 +1607,7 @@ sub_80F2AA4: @ 80F2AA4
movs r1, 0x1E movs r1, 0x1E
movs r2, 0 movs r2, 0
movs r3, 0xC movs r3, 0xC
bl CreateWindow_SnapRight_StdPal bl CreateTopBarWindowLoadPalette
movs r0, 0x3 movs r0, 0x3
bl Save_LoadGameData bl Save_LoadGameData
lsls r0, 24 lsls r0, 24
@@ -1894,7 +1894,7 @@ _080F2CB4:
adds r0, r5, 0 adds r0, r5, 0
movs r2, 0 movs r2, 0
movs r3, 0 movs r3, 0
bl Menu_PrintHelpSystemUIHeader bl TopBarWindowPrintTwoStrings
b _080F2D34 b _080F2D34
.align 2, 0 .align 2, 0
_080F2D08: .4byte 0xffff0000 _080F2D08: .4byte 0xffff0000
@@ -1911,7 +1911,7 @@ _080F2D24:
adds r0, r5, 0 adds r0, r5, 0
movs r2, 0 movs r2, 0
movs r3, 0 movs r3, 0
bl Menu_PrintHelpSystemUIHeader bl TopBarWindowPrintTwoStrings
_080F2D34: _080F2D34:
ldr r0, _080F2D58 @ =gTasks ldr r0, _080F2D58 @ =gTasks
ldr r1, [sp, 0x14] ldr r1, [sp, 0x14]
@@ -2298,7 +2298,7 @@ sub_80F3030: @ 80F3030
bl HideBg bl HideBg
movs r0, 0x3 movs r0, 0x3
bl HideBg bl HideBg
bl sub_810F740 bl DestroyTopBarWindow
bl FreeAllWindowBuffers bl FreeAllWindowBuffers
movs r0, 0x1 movs r0, 0x1
bl UnsetBgTilemapBuffer bl UnsetBgTilemapBuffer
@@ -2342,7 +2342,7 @@ sub_80F30A4: @ 80F30A4
ldr r0, _080F30FC @ =gText_ABUTTONExit ldr r0, _080F30FC @ =gText_ABUTTONExit
movs r1, 0x8 movs r1, 0x8
movs r2, 0x1 movs r2, 0x1
bl PrintTextOnRightSnappedWindow bl TopBarWindowPrintString
movs r0, 0 movs r0, 0
movs r1, 0 movs r1, 0
bl DrawDialogueFrame bl DrawDialogueFrame
@@ -2750,7 +2750,7 @@ sub_80F33DC: @ 80F33DC
movs r0, 0x1 movs r0, 0x1
movs r1, 0 movs r1, 0
movs r3, 0xD movs r3, 0xD
bl SetWindowBorderStyle bl DrawStdFrameWithCustomTileAndPalette
movs r7, 0 movs r7, 0
str r7, [sp] str r7, [sp]
str r7, [sp, 0x4] str r7, [sp, 0x4]
+3 -3
View File
@@ -3715,7 +3715,7 @@ _08109AD4:
movs r1, 0x2 movs r1, 0x2
movs r2, 0 movs r2, 0
movs r3, 0x2 movs r3, 0x2
bl ProgramAndPlaceMenuCursorOnWindow bl Menu_InitCursor
movs r0, 0x6 movs r0, 0x6
movs r1, 0 movs r1, 0
bl sub_810B9DC bl sub_810B9DC
@@ -3791,7 +3791,7 @@ sub_8109BE4: @ 8109BE4
lsrs r0, 24 lsrs r0, 24
cmp r0, 0x1 cmp r0, 0x1
beq _08109C42 beq _08109C42
bl ProcessMenuInputNoWrapAround bl Menu_ProcessInputNoWrapAround
lsls r0, 24 lsls r0, 24
asrs r4, r0, 24 asrs r4, r0, 24
movs r0, 0x2 movs r0, 0x2
@@ -6507,7 +6507,7 @@ _0810B290:
movs r0, 0x5 movs r0, 0x5
bl PlaySE bl PlaySE
movs r0, 0x1 movs r0, 0x1
bl MoveMenuCursorNoWrapAround bl Menu_MoveCursorNoWrapAround
b _0810B36C b _0810B36C
_0810B29E: _0810B29E:
movs r0, 0x5 movs r0, 0x5
+1 -1
View File
@@ -8586,7 +8586,7 @@ _0811A168:
_0811A174: _0811A174:
cmp r5, 0 cmp r5, 0
beq _0811A186 beq _0811A186
bl sub_81100E8 bl DestroyYesNoMenu
movs r0, 0 movs r0, 0
strb r0, [r4] strb r0, [r4]
movs r0, 0x3 movs r0, 0x3
+1 -1
View File
@@ -81,7 +81,7 @@ sub_810EBE0: @ 810EBE0
adds r4, r0 adds r4, r0
ldrb r0, [r4] ldrb r0, [r4]
movs r1, 0 movs r1, 0
bl ClearMenuWindow bl ClearStdWindowAndFrameToTransparent
ldrb r0, [r4] ldrb r0, [r4]
bl ClearWindowTilemap bl ClearWindowTilemap
ldrb r0, [r4] ldrb r0, [r4]
-3455
View File
File diff suppressed because it is too large Load Diff
+18 -18
View File
@@ -3234,7 +3234,7 @@ sub_8120328: @ 8120328
bne _0812035E bne _0812035E
movs r0, 0x6 movs r0, 0x6
movs r1, 0 movs r1, 0
bl ClearMenuWindow bl ClearStdWindowAndFrameToTransparent
movs r0, 0x6 movs r0, 0x6
bl ClearWindowTilemap bl ClearWindowTilemap
_0812035E: _0812035E:
@@ -3302,7 +3302,7 @@ sub_81203B8: @ 81203B8
beq _08120410 beq _08120410
movs r0, 0x6 movs r0, 0x6
movs r1, 0 movs r1, 0
bl ClearMenuWindow bl ClearStdWindowAndFrameToTransparent
movs r0, 0x6 movs r0, 0x6
bl ClearWindowTilemap bl ClearWindowTilemap
bl MenuHelpers_LinkSomething bl MenuHelpers_LinkSomething
@@ -6507,7 +6507,7 @@ sub_8121CE4: @ 8121CE4
cmp r0, 0xFF cmp r0, 0xFF
beq _08121D04 beq _08121D04
movs r1, 0 movs r1, 0
bl ClearMenuWindow bl ClearStdWindowAndFrameToTransparent
ldrb r0, [r4] ldrb r0, [r4]
bl RemoveWindow bl RemoveWindow
movs r0, 0xFF movs r0, 0xFF
@@ -6608,7 +6608,7 @@ _08121DB0:
movs r1, 0 movs r1, 0
movs r2, 0x58 movs r2, 0x58
movs r3, 0xF movs r3, 0xF
bl SetWindowBorderStyle bl DrawStdFrameWithCustomTileAndPalette
ldr r4, _08121DF0 @ =gStringVar4 ldr r4, _08121DF0 @ =gStringVar4
ldr r1, _08121DF4 @ =gUnknown_845A2E8 ldr r1, _08121DF4 @ =gUnknown_845A2E8
lsls r0, r6, 2 lsls r0, r6, 2
@@ -6770,7 +6770,7 @@ _08121ED2:
movs r1, 0 movs r1, 0
movs r2, 0x4F movs r2, 0x4F
movs r3, 0xD movs r3, 0xD
bl SetWindowBorderStyle bl DrawStdFrameWithCustomTileAndPalette
cmp r4, 0x3 cmp r4, 0x3
bne _08121F00 bne _08121F00
ldr r0, [r6] ldr r0, [r6]
@@ -6854,7 +6854,7 @@ _08121F7A:
movs r1, 0x2 movs r1, 0x2
movs r2, 0 movs r2, 0
movs r3, 0x2 movs r3, 0x2
bl sub_810F774 bl Menu_InitCursorInternal
movs r0, 0x2 movs r0, 0x2
bl ScheduleBgCopyTilemapToVram bl ScheduleBgCopyTilemapToVram
ldr r0, [r4] ldr r0, [r4]
@@ -6882,7 +6882,7 @@ sub_8121FC0: @ 8121FC0
movs r1, 0 movs r1, 0
movs r2, 0x4F movs r2, 0x4F
movs r3, 0xD movs r3, 0xD
bl SetWindowBorderStyle bl DrawStdFrameWithCustomTileAndPalette
ldr r2, _08122008 @ =gTextFlags ldr r2, _08122008 @ =gTextFlags
ldrb r0, [r2] ldrb r0, [r2]
movs r1, 0x1 movs r1, 0x1
@@ -6947,7 +6947,7 @@ sub_8122034: @ 8122034
movs r1, 0 movs r1, 0
movs r2, 0x4F movs r2, 0x4F
movs r3, 0xD movs r3, 0xD
bl SetWindowBorderStyle bl DrawStdFrameWithCustomTileAndPalette
ldr r0, [r4] ldr r0, [r4]
ldrb r0, [r0, 0xC] ldrb r0, [r0, 0xC]
pop {r4} pop {r4}
@@ -7054,7 +7054,7 @@ sub_8122110: @ 8122110
bl ClearWindowTilemap bl ClearWindowTilemap
adds r0, r4, 0 adds r0, r4, 0
movs r1, 0 movs r1, 0
bl ClearMenuWindow_BorderThickness2 bl ClearDialogWindowAndFrameToTransparent
adds r0, r4, 0 adds r0, r4, 0
bl RemoveWindow bl RemoveWindow
movs r0, 0x2 movs r0, 0x2
@@ -8550,27 +8550,27 @@ sub_8122C5C: @ 8122C5C
ldrb r0, [r0, 0x17] ldrb r0, [r0, 0x17]
cmp r0, 0x3 cmp r0, 0x3
bhi _08122CA0 bhi _08122CA0
bl ProcessMenuInputNoWrapAround_other bl Menu_ProcessInputNoWrapAround_other
b _08122CA4 b _08122CA4
.align 2, 0 .align 2, 0
_08122C94: .4byte gPaletteFade _08122C94: .4byte gPaletteFade
_08122C98: .4byte gTasks+0x8 _08122C98: .4byte gTasks+0x8
_08122C9C: .4byte gUnknown_203B09C _08122C9C: .4byte gUnknown_203B09C
_08122CA0: _08122CA0:
bl ProcessMenuInput_other bl Menu_ProcessInput_other
_08122CA4: _08122CA4:
lsls r0, 24 lsls r0, 24
lsrs r5, r0, 24 lsrs r5, r0, 24
movs r0, 0 movs r0, 0
ldrsh r4, [r7, r0] ldrsh r4, [r7, r0]
bl GetMenuCursorPos bl Menu_GetCursorPos
lsls r0, 24 lsls r0, 24
lsrs r0, 24 lsrs r0, 24
cmp r4, r0 cmp r4, r0
beq _08122CCE beq _08122CCE
ldr r0, _08122D14 @ =gUnknown_203B09C ldr r0, _08122D14 @ =gUnknown_203B09C
ldr r4, [r0] ldr r4, [r0]
bl GetMenuCursorPos bl Menu_GetCursorPos
lsls r0, 24 lsls r0, 24
lsrs r0, 24 lsrs r0, 24
adds r4, 0xF adds r4, 0xF
@@ -8578,7 +8578,7 @@ _08122CA4:
ldrb r0, [r4] ldrb r0, [r4]
bl sub_8122138 bl sub_8122138
_08122CCE: _08122CCE:
bl GetMenuCursorPos bl Menu_GetCursorPos
lsls r0, 24 lsls r0, 24
lsrs r0, 24 lsrs r0, 24
strh r0, [r7] strh r0, [r7]
@@ -11600,7 +11600,7 @@ sub_81245A4: @ 81245A4
push {r4-r7,lr} push {r4-r7,lr}
lsls r0, 24 lsls r0, 24
lsrs r6, r0, 24 lsrs r6, r0, 24
bl GetMenuCursorPos bl Menu_GetCursorPos
ldr r5, _08124610 @ =gUnknown_203B09C ldr r5, _08124610 @ =gUnknown_203B09C
ldr r1, [r5] ldr r1, [r5]
lsls r0, 24 lsls r0, 24
@@ -13684,7 +13684,7 @@ _08125680:
mov r1, r8 mov r1, r8
movs r2, 0 movs r2, 0
movs r3, 0x2 movs r3, 0x2
bl ProgramAndPlaceMenuCursorOnWindow bl Menu_InitCursor
movs r0, 0x2 movs r0, 0x2
bl ScheduleBgCopyTilemapToVram bl ScheduleBgCopyTilemapToVram
add sp, 0x10 add sp, 0x10
@@ -13706,7 +13706,7 @@ sub_81256C0: @ 81256C0
lsls r0, 24 lsls r0, 24
lsrs r4, r0, 24 lsrs r4, r0, 24
adds r5, r4, 0 adds r5, r4, 0
bl ProcessMenuInput bl Menu_ProcessInput
lsls r0, 24 lsls r0, 24
asrs r1, r0, 24 asrs r1, r0, 24
movs r0, 0x2 movs r0, 0x2
@@ -13813,7 +13813,7 @@ sub_8125790: @ 8125790
ldr r0, [r0] ldr r0, [r0]
adds r0, 0xC adds r0, 0xC
bl sub_8121CE4 bl sub_8121CE4
bl GetMenuCursorPos bl Menu_GetCursorPos
ldr r1, _081257C4 @ =gUnknown_203B0A0 ldr r1, _081257C4 @ =gUnknown_203B0A0
lsls r0, 24 lsls r0, 24
lsrs r0, 24 lsrs r0, 24
+14 -14
View File
@@ -187,7 +187,7 @@ _080EB77E:
movs r1, 0x2 movs r1, 0x2
movs r2, 0 movs r2, 0
movs r3, 0x2 movs r3, 0x2
bl ProgramAndPlaceMenuCursorOnWindow bl Menu_InitCursor
movs r0, 0 movs r0, 0
bl ScheduleBgCopyTilemapToVram bl ScheduleBgCopyTilemapToVram
ldr r1, _080EB814 @ =gTasks ldr r1, _080EB814 @ =gTasks
@@ -223,7 +223,7 @@ sub_80EB81C: @ 80EB81C
lsls r6, r1, 3 lsls r6, r1, 3
ldr r7, _080EB870 @ =gTasks+0x8 ldr r7, _080EB870 @ =gTasks+0x8
adds r4, r6, r7 adds r4, r6, r7
bl ProcessMenuInputNoWrapAround bl Menu_ProcessInputNoWrapAround
lsls r0, 24 lsls r0, 24
asrs r5, r0, 24 asrs r5, r0, 24
movs r0, 0x2 movs r0, 0x2
@@ -237,7 +237,7 @@ sub_80EB81C: @ 80EB81C
bl PlaySE bl PlaySE
ldrb r0, [r4, 0x14] ldrb r0, [r4, 0x14]
movs r1, 0 movs r1, 0
bl ClearMenuWindow bl ClearStdWindowAndFrameToTransparent
ldrb r0, [r4, 0x14] ldrb r0, [r4, 0x14]
bl ClearWindowTilemap bl ClearWindowTilemap
ldrb r0, [r4, 0x14] ldrb r0, [r4, 0x14]
@@ -256,7 +256,7 @@ _080EB874: .4byte sub_80EB9B8
_080EB878: _080EB878:
ldrb r0, [r4, 0x14] ldrb r0, [r4, 0x14]
movs r1, 0 movs r1, 0
bl ClearMenuWindow bl ClearStdWindowAndFrameToTransparent
ldrb r0, [r4, 0x14] ldrb r0, [r4, 0x14]
bl ClearWindowTilemap bl ClearWindowTilemap
ldrb r0, [r4, 0x14] ldrb r0, [r4, 0x14]
@@ -488,7 +488,7 @@ _080EBA1E:
movs r1, 0x2 movs r1, 0x2
movs r2, 0 movs r2, 0
movs r3, 0x2 movs r3, 0x2
bl ProgramAndPlaceMenuCursorOnWindow bl Menu_InitCursor
movs r0, 0 movs r0, 0
bl ScheduleBgCopyTilemapToVram bl ScheduleBgCopyTilemapToVram
ldr r1, _080EBA88 @ =gUnknown_84021DC ldr r1, _080EBA88 @ =gUnknown_84021DC
@@ -541,7 +541,7 @@ sub_80EBAB8: @ 80EBAB8
ands r0, r1 ands r0, r1
cmp r0, 0 cmp r0, 0
beq _080EBAE8 beq _080EBAE8
bl GetMenuCursorPos bl Menu_GetCursorPos
lsls r0, 24 lsls r0, 24
cmp r0, 0 cmp r0, 0
beq _080EBB64 beq _080EBB64
@@ -557,7 +557,7 @@ _080EBAE8:
ands r0, r1 ands r0, r1
cmp r0, 0 cmp r0, 0
beq _080EBB20 beq _080EBB20
bl GetMenuCursorPos bl Menu_GetCursorPos
lsls r0, 24 lsls r0, 24
lsrs r0, 24 lsrs r0, 24
cmp r0, 0x2 cmp r0, 0x2
@@ -566,9 +566,9 @@ _080EBAE8:
bl PlaySE bl PlaySE
movs r0, 0x1 movs r0, 0x1
_080EBB04: _080EBB04:
bl MoveMenuCursor bl Menu_MoveCursor
ldr r4, _080EBB1C @ =gUnknown_84021DC ldr r4, _080EBB1C @ =gUnknown_84021DC
bl GetMenuCursorPos bl Menu_GetCursorPos
lsls r0, 24 lsls r0, 24
lsrs r0, 22 lsrs r0, 22
adds r0, r4 adds r0, r4
@@ -586,7 +586,7 @@ _080EBB20:
movs r0, 0x5 movs r0, 0x5
bl PlaySE bl PlaySE
ldr r4, _080EBB48 @ =gUnknown_8402208 ldr r4, _080EBB48 @ =gUnknown_8402208
bl GetMenuCursorPos bl Menu_GetCursorPos
lsls r0, 24 lsls r0, 24
lsrs r0, 21 lsrs r0, 21
adds r4, 0x4 adds r4, 0x4
@@ -752,7 +752,7 @@ _080EBC78: .4byte sub_80EBCAC
_080EBC7C: _080EBC7C:
ldrb r0, [r4, 0x14] ldrb r0, [r4, 0x14]
movs r1, 0 movs r1, 0
bl ClearMenuWindow bl ClearStdWindowAndFrameToTransparent
ldrb r0, [r4, 0x14] ldrb r0, [r4, 0x14]
bl ClearWindowTilemap bl ClearWindowTilemap
ldrb r0, [r4, 0x14] ldrb r0, [r4, 0x14]
@@ -861,7 +861,7 @@ sub_80EBD48: @ 80EBD48
adds r4, r0 adds r4, r0
ldrb r0, [r4, 0x14] ldrb r0, [r4, 0x14]
movs r1, 0 movs r1, 0
bl ClearMenuWindow bl ClearStdWindowAndFrameToTransparent
ldrb r0, [r4, 0x14] ldrb r0, [r4, 0x14]
bl ClearWindowTilemap bl ClearWindowTilemap
ldrb r0, [r4, 0x14] ldrb r0, [r4, 0x14]
@@ -1341,7 +1341,7 @@ sub_80EC0D8: @ 80EC0D8
movs r1, 0x2 movs r1, 0x2
movs r2, 0 movs r2, 0
movs r3, 0x2 movs r3, 0x2
bl ProgramAndPlaceMenuCursorOnWindow bl Menu_InitCursor
movs r0, 0 movs r0, 0
bl ScheduleBgCopyTilemapToVram bl ScheduleBgCopyTilemapToVram
ldr r1, _080EC154 @ =gTasks ldr r1, _080EC154 @ =gTasks
@@ -1369,7 +1369,7 @@ sub_80EC15C: @ 80EC15C
lsls r0, 24 lsls r0, 24
lsrs r5, r0, 24 lsrs r5, r0, 24
adds r6, r5, 0 adds r6, r5, 0
bl ProcessMenuInput_other bl Menu_ProcessInput_other
lsls r0, 24 lsls r0, 24
asrs r4, r0, 24 asrs r4, r0, 24
movs r0, 0x2 movs r0, 0x2
+1 -1
View File
@@ -5304,7 +5304,7 @@ sub_814A218: @ 814A218
_0814A22C: .4byte gUnknown_203F3D8 _0814A22C: .4byte gUnknown_203F3D8
_0814A230: _0814A230:
bl sub_814A6CC bl sub_814A6CC
bl sub_81100E8 bl DestroyYesNoMenu
movs r0, 0 movs r0, 0
bl CopyBgTilemapBufferToVram bl CopyBgTilemapBufferToVram
ldr r1, [r5] ldr r1, [r5]
+1 -1
View File
@@ -1703,7 +1703,7 @@ sub_811D2D0: @ 811D2D0
bl ClearWindowTilemap bl ClearWindowTilemap
movs r0, 0 movs r0, 0
movs r1, 0 movs r1, 0
bl ClearMenuWindow bl ClearStdWindowAndFrameToTransparent
movs r0, 0 movs r0, 0
movs r1, 0x1 movs r1, 0x1
bl CopyWindowToVram bl CopyWindowToVram
+14 -14
View File
@@ -1466,7 +1466,7 @@ _0808C454:
strh r0, [r5, 0x8] strh r0, [r5, 0x8]
b _0808C69C b _0808C69C
_0808C45C: _0808C45C:
bl ProcessMenuInput bl Menu_ProcessInput
lsls r0, 24 lsls r0, 24
asrs r0, 24 asrs r0, 24
strh r0, [r5, 0xC] strh r0, [r5, 0xC]
@@ -1665,8 +1665,8 @@ _0808C5D8:
_0808C5F4: _0808C5F4:
movs r0, 0x1 movs r0, 0x1
negs r0, r0 negs r0, r0
bl MoveMenuCursor bl Menu_MoveCursor
bl GetMenuCursorPos bl Menu_GetCursorPos
lsls r0, 24 lsls r0, 24
lsrs r0, 24 lsrs r0, 24
strh r0, [r5, 0xA] strh r0, [r5, 0xA]
@@ -1699,8 +1699,8 @@ _0808C624:
strh r6, [r5, 0xA] strh r6, [r5, 0xA]
_0808C63C: _0808C63C:
movs r0, 0x1 movs r0, 0x1
bl MoveMenuCursor bl Menu_MoveCursor
bl GetMenuCursorPos bl Menu_GetCursorPos
lsls r0, 24 lsls r0, 24
lsrs r0, 24 lsrs r0, 24
strh r0, [r5, 0xA] strh r0, [r5, 0xA]
@@ -1861,7 +1861,7 @@ sub_808C72C: @ 808C72C
movs r1, 0x2 movs r1, 0x2
movs r2, 0 movs r2, 0
movs r3, 0x2 movs r3, 0x2
bl ProgramAndPlaceMenuCursorOnWindow bl Menu_InitCursor
mov r0, r10 mov r0, r10
strh r5, [r0] strh r5, [r0]
add sp, 0xC add sp, 0xC
@@ -8349,7 +8349,7 @@ sub_808FCE8: @ 808FCE8
lsls r4, 24 lsls r4, 24
asrs r4, 24 asrs r4, 24
adds r0, r4, 0 adds r0, r4, 0
bl MoveMenuCursorNoWrapAround bl Menu_MoveCursorNoWrapAround
add sp, 0xC add sp, 0xC
pop {r4} pop {r4}
pop {r0} pop {r0}
@@ -8363,7 +8363,7 @@ sub_808FD20: @ 808FD20
push {lr} push {lr}
movs r0, 0x1 movs r0, 0x1
movs r1, 0 movs r1, 0
bl ClearMenuWindow bl ClearStdWindowAndFrameToTransparent
movs r0, 0 movs r0, 0
bl ScheduleBgCopyTilemapToVram bl ScheduleBgCopyTilemapToVram
pop {r0} pop {r0}
@@ -18931,7 +18931,7 @@ sub_8094E88: @ 8094E88
movs r1, 0 movs r1, 0
movs r2, 0xB movs r2, 0xB
movs r3, 0xE movs r3, 0xE
bl SetWindowBorderStyle bl DrawStdFrameWithCustomTileAndPalette
ldr r2, [r5] ldr r2, [r5]
adds r0, r2, r4 adds r0, r2, r4
ldrb r0, [r0] ldrb r0, [r0]
@@ -18961,7 +18961,7 @@ sub_8094E88: @ 8094E88
movs r1, 0x1 movs r1, 0x1
movs r2, 0 movs r2, 0
movs r3, 0x2 movs r3, 0x2
bl ProgramAndPlaceMenuCursorOnWindow bl Menu_InitCursor
movs r0, 0 movs r0, 0
bl ScheduleBgCopyTilemapToVram bl ScheduleBgCopyTilemapToVram
ldr r0, [r5] ldr r0, [r5]
@@ -19023,7 +19023,7 @@ _08094FB6:
bl PlaySE bl PlaySE
movs r0, 0x1 movs r0, 0x1
negs r0, r0 negs r0, r0
bl MoveMenuCursor bl Menu_MoveCursor
b _08094FF2 b _08094FF2
.align 2, 0 .align 2, 0
_08094FD0: .4byte gMain _08094FD0: .4byte gMain
@@ -19035,10 +19035,10 @@ _08094FD4:
movs r0, 0x5 movs r0, 0x5
bl PlaySE bl PlaySE
movs r0, 0x1 movs r0, 0x1
bl MoveMenuCursor bl Menu_MoveCursor
b _08094FF2 b _08094FF2
_08094FEA: _08094FEA:
bl GetMenuCursorPos bl Menu_GetCursorPos
lsls r0, 24 lsls r0, 24
lsrs r5, r0, 24 lsrs r5, r0, 24
_08094FF2: _08094FF2:
@@ -19077,7 +19077,7 @@ sub_8095024: @ 8095024
adds r0, r4 adds r0, r4
ldrb r0, [r0] ldrb r0, [r0]
movs r1, 0x1 movs r1, 0x1
bl ClearMenuWindow bl ClearStdWindowAndFrameToTransparent
ldr r0, [r5] ldr r0, [r5]
adds r0, r4 adds r0, r4
ldrb r0, [r0] ldrb r0, [r0]
+13 -13
View File
@@ -271,7 +271,7 @@ _0809CB32:
movs r1, 0x2 movs r1, 0x2
movs r2, 0x8 movs r2, 0x8
movs r3, 0x2 movs r3, 0x2
bl sub_810FBE8 bl PrintMultichoiceListItems
b _0809CB7A b _0809CB7A
.align 2, 0 .align 2, 0
_0809CB54: .4byte sub_809D6D4 _0809CB54: .4byte sub_809D6D4
@@ -290,7 +290,7 @@ _0809CB5C:
movs r1, 0x2 movs r1, 0x2
movs r2, 0x8 movs r2, 0x8
movs r3, 0x2 movs r3, 0x2
bl sub_810FBE8 bl PrintMultichoiceListItems
_0809CB7A: _0809CB7A:
movs r0, 0xE movs r0, 0xE
str r0, [sp] str r0, [sp]
@@ -301,7 +301,7 @@ _0809CB7A:
movs r1, 0x2 movs r1, 0x2
movs r2, 0 movs r2, 0
movs r3, 0x2 movs r3, 0x2
bl ProgramAndPlaceMenuCursorOnWindow bl Menu_InitCursor
ldr r0, [sp, 0x18] ldr r0, [sp, 0x18]
adds r1, r7, 0 adds r1, r7, 0
adds r2, r5, 0 adds r2, r5, 0
@@ -475,10 +475,10 @@ _0809CCD0:
ldrsh r0, [r5, r1] ldrsh r0, [r5, r1]
cmp r0, 0 cmp r0, 0
bne _0809CCDE bne _0809CCDE
bl ProcessMenuInputNoWrapAround bl Menu_ProcessInputNoWrapAround
b _0809CCE2 b _0809CCE2
_0809CCDE: _0809CCDE:
bl ProcessMenuInput bl Menu_ProcessInput
_0809CCE2: _0809CCE2:
lsls r0, 24 lsls r0, 24
lsrs r4, r0, 24 lsrs r4, r0, 24
@@ -562,7 +562,7 @@ _0809CD78:
bl FillWindowPixelBuffer bl FillWindowPixelBuffer
ldr r4, _0809CDAC @ =gUnknown_83E0738 ldr r4, _0809CDAC @ =gUnknown_83E0738
_0809CD82: _0809CD82:
bl GetMenuCursorPos bl Menu_GetCursorPos
lsls r0, 24 lsls r0, 24
lsrs r0, 22 lsrs r0, 22
adds r0, r4 adds r0, r4
@@ -587,7 +587,7 @@ _0809CDB0:
movs r1, 0x11 movs r1, 0x11
bl FillWindowPixelBuffer bl FillWindowPixelBuffer
ldr r4, _0809CDE8 @ =gUnknown_83E0748 ldr r4, _0809CDE8 @ =gUnknown_83E0748
bl GetMenuCursorPos bl Menu_GetCursorPos
lsls r0, 24 lsls r0, 24
lsrs r0, 22 lsrs r0, 22
adds r0, r4 adds r0, r4
@@ -833,7 +833,7 @@ _0809CF08:
movs r1, 0x1 movs r1, 0x1
adds r2, r5, 0 adds r2, r5, 0
movs r3, 0x10 movs r3, 0x10
bl sub_8110104 bl MultichoiceGridPrintItems
ldrb r0, [r4, 0x14] ldrb r0, [r4, 0x14]
str r5, [sp] str r5, [sp]
str r7, [sp, 0x4] str r7, [sp, 0x4]
@@ -843,7 +843,7 @@ _0809CF08:
movs r1, 0x1 movs r1, 0x1
movs r2, 0 movs r2, 0
movs r3, 0x1 movs r3, 0x1
bl sub_811030C bl MultichoiceGridInitCursor
movs r0, 0 movs r0, 0
bl ScheduleBgCopyTilemapToVram bl ScheduleBgCopyTilemapToVram
_0809CFB8: _0809CFB8:
@@ -874,7 +874,7 @@ sub_809CFDC: @ 809CFDC
lsls r0, 3 lsls r0, 3
ldr r1, _0809D018 @ =gTasks+0x8 ldr r1, _0809D018 @ =gTasks+0x8
adds r5, r0, r1 adds r5, r0, r1
bl sub_8110650 bl Menu_ProcessInputGridLayout
lsls r0, 24 lsls r0, 24
asrs r1, r0, 24 asrs r1, r0, 24
movs r0, 0x2 movs r0, 0x2
@@ -1138,7 +1138,7 @@ _0809D1FA:
movs r1, 0x2 movs r1, 0x2
movs r2, 0 movs r2, 0
movs r3, 0x2 movs r3, 0x2
bl ProgramAndPlaceMenuCursorOnWindow bl Menu_InitCursor
movs r0, 0 movs r0, 0
mov r1, r9 mov r1, r9
adds r2, r6, 0 adds r2, r6, 0
@@ -1721,7 +1721,7 @@ sub_809D6B0: @ 809D6B0
bl ClearWindowTilemap bl ClearWindowTilemap
adds r0, r4, 0 adds r0, r4, 0
movs r1, 0x1 movs r1, 0x1
bl ClearMenuWindow bl ClearStdWindowAndFrameToTransparent
adds r0, r4, 0 adds r0, r4, 0
bl RemoveWindow bl RemoveWindow
pop {r4} pop {r4}
@@ -1946,7 +1946,7 @@ _0809D844:
movs r1, 0x2 movs r1, 0x2
movs r2, 0 movs r2, 0
movs r3, 0x2 movs r3, 0x2
bl ProgramAndPlaceMenuCursorOnWindow bl Menu_InitCursor
movs r0, 0 movs r0, 0
mov r1, r9 mov r1, r9
adds r2, r7, 0 adds r2, r7, 0
+9 -9
View File
@@ -74,7 +74,7 @@ _0809AAF8:
movs r1, 0x2 movs r1, 0x2
movs r2, 0 movs r2, 0
movs r3, 0x2 movs r3, 0x2
bl ProgramAndPlaceMenuCursorOnWindow bl Menu_InitCursor
ldrb r0, [r4] ldrb r0, [r4]
bl PutWindowTilemap bl PutWindowTilemap
ldrb r0, [r4] ldrb r0, [r4]
@@ -194,7 +194,7 @@ sub_809AC10: @ 809AC10
lsls r0, 24 lsls r0, 24
lsrs r4, r0, 24 lsrs r4, r0, 24
adds r5, r4, 0 adds r5, r4, 0
bl ProcessMenuInputNoWrapAround bl Menu_ProcessInputNoWrapAround
lsls r0, 24 lsls r0, 24
asrs r1, r0, 24 asrs r1, r0, 24
movs r0, 0x2 movs r0, 0x2
@@ -211,7 +211,7 @@ sub_809AC10: @ 809AC10
b _0809AC52 b _0809AC52
_0809AC3C: _0809AC3C:
ldr r4, _0809AC58 @ =gUnknown_83DF09C ldr r4, _0809AC58 @ =gUnknown_83DF09C
bl GetMenuCursorPos bl Menu_GetCursorPos
lsls r0, 24 lsls r0, 24
lsrs r0, 21 lsrs r0, 21
adds r4, 0x4 adds r4, 0x4
@@ -332,7 +332,7 @@ sub_809AD24: @ 809AD24
ldr r4, _0809AD3C @ =gUnknown_2039950 ldr r4, _0809AD3C @ =gUnknown_2039950
ldrb r0, [r4] ldrb r0, [r4]
movs r1, 0x2 movs r1, 0x2
bl ClearMenuWindow bl ClearStdWindowAndFrameToTransparent
ldrb r0, [r4] ldrb r0, [r4]
bl RemoveWindow bl RemoveWindow
pop {r4} pop {r4}
@@ -2396,10 +2396,10 @@ _0809BDD4:
bl sub_809B73C bl sub_809B73C
movs r0, 0x3 movs r0, 0x3
movs r1, 0 movs r1, 0
bl ClearMenuWindow bl ClearStdWindowAndFrameToTransparent
movs r0, 0x1 movs r0, 0x1
movs r1, 0 movs r1, 0
bl ClearMenuWindow bl ClearStdWindowAndFrameToTransparent
movs r0, 0x3 movs r0, 0x3
bl ClearWindowTilemap bl ClearWindowTilemap
movs r0, 0x1 movs r0, 0x1
@@ -2442,10 +2442,10 @@ _0809BE54:
bl sub_809B73C bl sub_809B73C
movs r0, 0x3 movs r0, 0x3
movs r1, 0 movs r1, 0
bl ClearMenuWindow bl ClearStdWindowAndFrameToTransparent
movs r0, 0x1 movs r0, 0x1
movs r1, 0 movs r1, 0
bl ClearMenuWindow bl ClearStdWindowAndFrameToTransparent
movs r0, 0x3 movs r0, 0x3
bl ClearWindowTilemap bl ClearWindowTilemap
movs r0, 0x1 movs r0, 0x1
@@ -2601,7 +2601,7 @@ sub_809BF98: @ 809BF98
adds r4, r5, r6 adds r4, r5, r6
movs r0, 0x2 movs r0, 0x2
movs r1, 0 movs r1, 0
bl ClearMenuWindow_BorderThickness2 bl ClearDialogWindowAndFrameToTransparent
ldrb r0, [r4, 0xE] ldrb r0, [r4, 0xE]
movs r1, 0x1 movs r1, 0x1
bl sub_809B57C bl sub_809B57C
+2 -2
View File
@@ -4607,7 +4607,7 @@ sub_8141AD8: @ 8141AD8
lsls r4, 24 lsls r4, 24
asrs r4, 24 asrs r4, 24
adds r0, r4, 0 adds r0, r4, 0
bl MoveMenuCursorNoWrapAround bl Menu_MoveCursorNoWrapAround
bl sub_814112C bl sub_814112C
movs r1, 0x1 movs r1, 0x1
str r1, [r0, 0x28] str r1, [r0, 0x28]
@@ -4627,7 +4627,7 @@ sub_8141B18: @ 8141B18
ldr r0, [r4, 0x28] ldr r0, [r4, 0x28]
cmp r0, 0 cmp r0, 0
beq _08141B2E beq _08141B2E
bl sub_81100E8 bl DestroyYesNoMenu
movs r0, 0 movs r0, 0
str r0, [r4, 0x28] str r0, [r4, 0x28]
_08141B2E: _08141B2E:
+7 -7
View File
@@ -220,7 +220,7 @@ sub_806EF18: @ 806EF18
ldr r4, _0806EF40 @ =gUnknown_2037101 ldr r4, _0806EF40 @ =gUnknown_2037101
ldrb r0, [r4] ldrb r0, [r4]
movs r1, 0 movs r1, 0
bl ClearMenuWindow bl ClearStdWindowAndFrameToTransparent
ldrb r0, [r4] ldrb r0, [r4]
movs r1, 0x2 movs r1, 0x2
bl CopyWindowToVram bl CopyWindowToVram
@@ -438,7 +438,7 @@ _0806F0C4:
movs r1, 0x2 movs r1, 0x2
movs r2, 0 movs r2, 0
movs r3, 0 movs r3, 0
bl ProgramAndPlaceMenuCursorOnWindow bl Menu_InitCursor
strb r0, [r4] strb r0, [r4]
bl MenuHelpers_LinkSomething bl MenuHelpers_LinkSomething
lsls r0, 24 lsls r0, 24
@@ -663,7 +663,7 @@ sub_806F280: @ 806F280
bl PlaySE bl PlaySE
movs r0, 0x1 movs r0, 0x1
negs r0, r0 negs r0, r0
bl MoveMenuCursor bl Menu_MoveCursor
ldr r4, _0806F360 @ =gUnknown_20370F4 ldr r4, _0806F360 @ =gUnknown_20370F4
strb r0, [r4] strb r0, [r4]
bl MenuHelpers_LinkSomething bl MenuHelpers_LinkSomething
@@ -698,7 +698,7 @@ _0806F2D2:
movs r0, 0x5 movs r0, 0x5
bl PlaySE bl PlaySE
movs r0, 0x1 movs r0, 0x1
bl MoveMenuCursor bl Menu_MoveCursor
ldr r4, _0806F360 @ =gUnknown_20370F4 ldr r4, _0806F360 @ =gUnknown_20370F4
strb r0, [r4] strb r0, [r4]
bl MenuHelpers_LinkSomething bl MenuHelpers_LinkSomething
@@ -1080,7 +1080,7 @@ sub_806F5C8: @ 806F5C8
_0806F5E4: _0806F5E4:
movs r0, 0 movs r0, 0
movs r1, 0 movs r1, 0
bl ClearMenuWindow_BorderThickness2 bl ClearDialogWindowAndFrameToTransparent
bl sub_806F14C bl sub_806F14C
bl sub_812B248 bl sub_812B248
ldr r1, _0806F5FC @ =gUnknown_20370F0 ldr r1, _0806F5FC @ =gUnknown_20370F0
@@ -1093,7 +1093,7 @@ _0806F600: .4byte sub_806F280
_0806F604: _0806F604:
movs r0, 0 movs r0, 0
movs r1, 0x1 movs r1, 0x1
bl ClearMenuWindow_BorderThickness2 bl ClearDialogWindowAndFrameToTransparent
bl sub_80696C0 bl sub_80696C0
bl ScriptContext2_Disable bl ScriptContext2_Disable
bl sub_812B248 bl sub_812B248
@@ -2019,7 +2019,7 @@ sub_806FCF4: @ 806FCF4
movs r1, 0 movs r1, 0
adds r2, r4, 0 adds r2, r4, 0
movs r3, 0xD movs r3, 0xD
bl SetWindowBorderStyle bl DrawStdFrameWithCustomTileAndPalette
ldr r4, _0806FE60 @ =gStringVar4 ldr r4, _0806FE60 @ =gStringVar4
movs r0, 0x3 movs r0, 0x3
adds r1, r4, 0 adds r1, r4, 0
+3 -3
View File
@@ -3379,7 +3379,7 @@ _0804E208:
movs r1, 0x3 movs r1, 0x3
movs r2, 0x10 movs r2, 0x10
movs r3, 0x2 movs r3, 0x2
bl sub_810FC80 bl UnionRoomAndTradeMenuPrintOptions
movs r0, 0x10 movs r0, 0x10
str r0, [sp] str r0, [sp]
movs r0, 0x2 movs r0, 0x2
@@ -3390,7 +3390,7 @@ _0804E208:
movs r1, 0x3 movs r1, 0x3
movs r2, 0 movs r2, 0
movs r3, 0 movs r3, 0
bl ProgramAndPlaceMenuCursorOnWindow bl Menu_InitCursor
movs r0, 0x1 movs r0, 0x1
bl PutWindowTilemap bl PutWindowTilemap
movs r0, 0x1 movs r0, 0x1
@@ -3533,7 +3533,7 @@ _0804E384: .4byte 0x06010000
sub_804E388: @ 804E388 sub_804E388: @ 804E388
push {lr} push {lr}
sub sp, 0x4 sub sp, 0x4
bl ProcessMenuInputNoWrapAround bl Menu_ProcessInputNoWrapAround
lsls r0, 24 lsls r0, 24
asrs r0, 24 asrs r0, 24
movs r1, 0x1 movs r1, 0x1
+9 -9
View File
@@ -499,7 +499,7 @@ _081287FE:
.align 2, 0 .align 2, 0
_0812880C: .4byte gUnknown_203B0E0 _0812880C: .4byte gUnknown_203B0E0
_08128810: _08128810:
bl ProcessMenuInput bl Menu_ProcessInput
lsls r0, 24 lsls r0, 24
asrs r0, 8 asrs r0, 8
lsrs r6, r0, 16 lsrs r6, r0, 16
@@ -534,7 +534,7 @@ _08128848:
movs r0, 0x5 movs r0, 0x5
bl PlaySE bl PlaySE
movs r0, 0x1 movs r0, 0x1
bl MoveMenuCursor bl Menu_MoveCursor
b _081288CE b _081288CE
.align 2, 0 .align 2, 0
_08128864: .4byte gMain _08128864: .4byte gMain
@@ -4299,7 +4299,7 @@ sub_812A424: @ 812A424
movs r1, 0x2 movs r1, 0x2
movs r2, 0 movs r2, 0
movs r3, 0x2 movs r3, 0x2
bl ProgramAndPlaceMenuCursorOnWindow bl Menu_InitCursor
_0812A4F0: _0812A4F0:
add sp, 0x14 add sp, 0x14
pop {r3} pop {r3}
@@ -4329,7 +4329,7 @@ sub_812A51C: @ 812A51C
lsls r0, 24 lsls r0, 24
lsrs r0, 24 lsrs r0, 24
movs r1, 0 movs r1, 0
bl ClearMenuWindow bl ClearStdWindowAndFrameToTransparent
ldr r0, [r4] ldr r0, [r4]
ldrb r0, [r0, 0x18] ldrb r0, [r0, 0x18]
bl ClearWindowTilemap bl ClearWindowTilemap
@@ -4366,7 +4366,7 @@ _0812A564: .4byte gUnknown_203B0E4
thumb_func_start sub_812A568 thumb_func_start sub_812A568
sub_812A568: @ 812A568 sub_812A568: @ 812A568
push {lr} push {lr}
bl ProcessMenuInput bl Menu_ProcessInput
lsls r0, 24 lsls r0, 24
asrs r0, 24 asrs r0, 24
pop {r1} pop {r1}
@@ -4568,7 +4568,7 @@ sub_812A6F4: @ 812A6F4
lsls r0, 24 lsls r0, 24
lsrs r0, 24 lsrs r0, 24
movs r1, 0 movs r1, 0
bl ClearMenuWindow bl ClearStdWindowAndFrameToTransparent
ldr r0, [r4] ldr r0, [r4]
ldrb r0, [r0, 0x1E] ldrb r0, [r0, 0x1E]
bl ClearWindowTilemap bl ClearWindowTilemap
@@ -4987,7 +4987,7 @@ sub_812AA10: @ 812AA10
movs r1, 0x2 movs r1, 0x2
movs r2, 0xE movs r2, 0xE
movs r3, 0x5 movs r3, 0x5
bl sub_810FC80 bl UnionRoomAndTradeMenuPrintOptions
bl sub_81296F4 bl sub_81296F4
lsls r0, 24 lsls r0, 24
lsrs r0, 24 lsrs r0, 24
@@ -5000,7 +5000,7 @@ sub_812AA10: @ 812AA10
movs r1, 0x2 movs r1, 0x2
movs r2, 0 movs r2, 0
movs r3, 0 movs r3, 0
bl ProgramAndPlaceMenuCursorOnWindow bl Menu_InitCursor
movs r0, 0x3 movs r0, 0x3
bl PutWindowTilemap bl PutWindowTilemap
add sp, 0xC add sp, 0xC
@@ -5015,7 +5015,7 @@ sub_812AA64: @ 812AA64
push {lr} push {lr}
movs r0, 0x3 movs r0, 0x3
movs r1, 0 movs r1, 0
bl ClearMenuWindow bl ClearStdWindowAndFrameToTransparent
movs r0, 0x3 movs r0, 0x3
bl ClearWindowTilemap bl ClearWindowTilemap
pop {r0} pop {r0}
+1 -3
View File
@@ -823,9 +823,7 @@ gUnknown_8454000:: @ 8454000
gUnknown_8454003:: @ 8454003 gUnknown_8454003:: @ 8454003
.incbin "baserom.gba", 0x454003, 0x2615 .incbin "baserom.gba", 0x454003, 0x2615
gUnknown_8456618:: @ 8456618 @ menu.o
.incbin "baserom.gba", 0x456618, 0x4
@ quest_log.o @ quest_log.o
@ link_rfu_3.o @ link_rfu_3.o
.section .rodata.8456C74 .section .rodata.8456C74
+41 -20
View File
@@ -17,44 +17,65 @@ struct MenuAction
} func; } func;
}; };
struct WindowTemplateWithAttr
{
struct WindowTemplate *ptr;
u32 attr;
};
void AddTextPrinterParameterized3(u8, u8, u8, u8, const void *, s8, const u8 *); void AddTextPrinterParameterized3(u8, u8, u8, u8, const void *, s8, const u8 *);
void AddTextPrinterParameterized5(u8 windowId, u8 fontId, const u8 *str, u8 x, u8 y, u8 speed, void (*callback)(struct TextPrinterTemplate *, u16), u8 letterSpacing, u8 lineSpacing);
void sub_8198070(u8 windowId, bool8 copyToVram); void sub_8198070(u8 windowId, bool8 copyToVram);
void SetWindowTemplateFields(struct WindowTemplate* template, u8 priority, u8 tilemapLeft, u8 tilemapTop, u8 width, u8 height, u8 palNum, u16 baseBlock);
void SetWindowBorderStyle(u8 windowId, bool8 copyToVram, u16 tileStart, u8 palette);
void ScheduleBgCopyTilemapToVram(u8 bgNum); void ScheduleBgCopyTilemapToVram(u8 bgNum);
void PrintMenuTable(u8 idx, u8 nstrs, const struct MenuAction *strs); void PrintMenuTable(u8 idx, u8 nstrs, const struct MenuAction *strs);
void InitMenuInUpperLeftCornerPlaySoundWhenAPressed(u8 idx, u8 nstrs,u8); void InitMenuInUpperLeftCornerPlaySoundWhenAPressed(u8 idx, u8 nstrs,u8);
u8 GetMenuCursorPos(void);
s8 ProcessMenuInput(void);
s8 ProcessMenuInputNoWrapAround(void);
void ResetTempTileDataBuffers(void); void ResetTempTileDataBuffers(void);
void *DecompressAndCopyTileDataToVram(u8 bg_id, const void *src, u32 size, u16 offset, u8 mode); void *DecompressAndCopyTileDataToVram(u8 bg_id, const void *src, u32 size, u16 offset, u8 mode);
bool8 FreeTempTileDataBuffersIfPossible(void); bool8 FreeTempTileDataBuffersIfPossible(void);
u64 sub_8198A50(struct WindowTemplate*, u8, u8, u8, u8, u8, u8, u16); // returns something but it isn't used, fix when menu.s is decomp'd
s8 Menu_ProcessInputNoWrapClearOnChoose(void);
void DoScheduledBgTilemapCopiesToVram(void); void DoScheduledBgTilemapCopiesToVram(void);
void ClearScheduledBgCopiesToVram(void); void ClearScheduledBgCopiesToVram(void);
void AddTextPrinterParameterized4(u8 windowId, u8 fontId, u8 x, u8 y, u8 letterSpacing, u8 lineSpacing, const struct TextColor *color, s8 speed, const u8 *str); void AddTextPrinterParameterized4(u8 windowId, u8 fontId, u8 x, u8 y, u8 letterSpacing, u8 lineSpacing, const struct TextColor *color, s8 speed, const u8 *str);
void sub_8197B1C(u8 windowId, bool8 copyToVram, u16 a2, u16 a3); void sub_8197B1C(u8 windowId, bool8 copyToVram, u16 a2, u16 a3);
void ClearMenuWindow(u8 windowId, bool8 copyToVram);
void *DecompressAndCopyTileDataToVram2(u8 bgId, const void *src, u32 size, u16 offset, u8 mode); void *DecompressAndCopyTileDataToVram2(u8 bgId, const void *src, u32 size, u16 offset, u8 mode);
void CreateWindow_SnapRight_StdPal(u8, u8, u8, u8, u16);
void Menu_PrintHelpSystemUIHeader(const u8 *, const u8 *, u8, u32, u8);
void PrintTextOnRightSnappedWindow(const u8 *, u32, u8);
void sub_810F71C(void);
void sub_810F740(void);
u8 ProgramAndPlaceMenuCursorOnWindow(u8 windowId, u8 fontId, u8 left, u8 top, u8 cursorHeight, u8 numChoices, u8 initialCursorPosition);
void CreateYesNoMenu(const struct WindowTemplate *, u8, u8, u8, u16, u8, u8);
void DrawDialogFrameWithCustomTileAndPalette(u8 windowId, bool8 copyToVram, u16 a2, u8 a3);
void StartBlendTask(u8 eva_start, u8 evb_start, u8 eva_end, u8 evb_end, u8 ev_step, u8 priority); void StartBlendTask(u8 eva_start, u8 evb_start, u8 eva_end, u8 evb_end, u8 ev_step, u8 priority);
bool8 IsBlendTaskActive(void); bool8 IsBlendTaskActive(void);
void AddItemMenuActionTextPrinters(u8 windowId, u8 fontId, u8 left, u8 top, u8 letterSpacing, u8 lineHeight, u8 itemCount, const struct MenuAction *strs, const u8 *a8);
void ClearMenuWindow_BorderThickness2(u8 windowId, u8 a1);
void PrintTextArray(u8, u8, u8, u8, u8, u8, const struct MenuAction *);
// list_menu
void sub_8107CD8(u8 palOffset, u16 speciesId); void sub_8107CD8(u8 palOffset, u16 speciesId);
void sub_8107CF8(u8 windowId, u16 speciesId, u32 personality, u16 x, u16 y); void sub_8107CF8(u8 windowId, u16 speciesId, u32 personality, u16 x, u16 y);
void sub_8107D38(u8, u8); void sub_8107D38(u8 palOffset, u8 palId);
void BlitMoveInfoIcon(u8 windowId, u8 iconId, u16 x, u16 y); void BlitMoveInfoIcon(u8 windowId, u8 iconId, u16 x, u16 y);
// menu
s8 Menu_ProcessInputGridLayout(void);
u8 MultichoiceGridInitCursor(u8 windowId, u8 fontId, u8 left, u8 top, u8 optionWidth, u8 cols, u8 rows, u8 cursorPos);
void MultichoiceGridPrintItems(u8 windowId, u8 fontId, u8 itemWidth, u8 itemHeight, u8 cols, u8 rows, const struct MenuAction *strs);
void DestroyYesNoMenu(void);
s8 Menu_ProcessInputNoWrapClearOnChoose(void);
void CreateYesNoMenu(const struct WindowTemplate *window, u8 fontId, u8 left, u8 top, u16 baseTileNum, u8 paletteNum, u8 initialCursorPos);
void AddItemMenuActionTextPrinters(u8 windowId, u8 fontId, u8 left, u8 top, u8 letterSpacing, u8 lineHeight, u8 itemCount, const struct MenuAction *strs, const u8 *orderArray);
void UnionRoomAndTradeMenuPrintOptions(u8 windowId, u8 fontId, u8 lineHeight, u8 itemCount, const struct MenuAction *strs);
void PrintMultichoiceListItems(u8 windowId, u8 fontId, u8 left, u8 top, u8 lineHeight, u8 itemCount, const struct MenuAction *strs, u8 letterSpacing, u8 lineSpacing);
void PrintTextArray(u8 windowId, u8 fontId, u8 left, u8 top, u8 lineHeight, u8 itemCount, const struct MenuAction *strs);
s8 Menu_ProcessInputNoWrapAround_other(void);
s8 Menu_ProcessInput_other(void);
s8 Menu_ProcessInputNoWrapAround(void);
s8 Menu_ProcessInput(void);
u8 Menu_GetCursorPos(void);
u8 Menu_InitCursor(u8 windowId, u8 fontId, u8 left, u8 top, u8 cursorHeight, u8 numChoices, u8 initialCursorPos);
u8 Menu_InitCursorInternal(u8 windowId, u8 fontId, u8 left, u8 top, u8 cursorHeight, u8 numChoices, u8 initialCursorPos, bool8 APressMuted);
void TopBarWindowPrintTwoStrings(const u8 *string, const u8 *string2, bool8 fgColorChooser, u8 notUsed, bool8 copyToVram);
void TopBarWindowPrintString(const u8 *string, u8 unUsed, bool8 copyToVram);
void ClearTopBarWindow(void);
void DestroyTopBarWindow(void);
u8 CreateTopBarWindowLoadPalette(u8 bg, u8 width, u8 yPos, u8 palette, u16 baseTile);
void ClearStdWindowAndFrameToTransparent(u8 windowId, bool8 copyToVram);
void DrawStdFrameWithCustomTileAndPalette(u8 windowId, bool8 copyToVram, u16 baseTileNum, u8 paletteNum);
void ClearDialogWindowAndFrameToTransparent(u8 windowId, bool8 copyToVram);
void DrawDialogFrameWithCustomTileAndPalette(u8 windowId, bool8 copyToVram, u16 tileNum, u8 paletteNum);
// currently incorrect, WIP
void SetWindowTemplateFields(struct WindowTemplate *template, u8 bg, u8 left, u8 top, u8 width, u8 height, u8 paletteNum, u16 baseBlock);
#endif // GUARD_MENU_H #endif // GUARD_MENU_H
+2
View File
@@ -28,5 +28,7 @@ u8 sub_80BF8E4(void);
u8 AdjustQuantityAccordingToDPadInput(s16 * a0, u16 a1); u8 AdjustQuantityAccordingToDPadInput(s16 * a0, u16 a1);
void DisplayMessageAndContinueTask(u8 taskId, u8 windowId, u16 arg2, u8 arg3, u8 fontId, u8 textSpeed, const u8 *string, void *taskFunc); void DisplayMessageAndContinueTask(u8 taskId, u8 windowId, u16 arg2, u8 arg3, u8 fontId, u8 textSpeed, const u8 *string, void *taskFunc);
void CreateYesNoMenuWithCallbacks(u8 taskId, const struct WindowTemplate *template, u8 arg2, u8 arg3, u8 arg4, u16 tileStart, u8 palette, const struct YesNoFuncTable *yesNo); void CreateYesNoMenuWithCallbacks(u8 taskId, const struct WindowTemplate *template, u8 arg2, u8 arg3, u8 arg4, u16 tileStart, u8 palette, const struct YesNoFuncTable *yesNo);
u8 GetLRKeysState(void);
u8 sub_80BF66C(void);
#endif //GUARD_MENU_HELPERS_H #endif //GUARD_MENU_HELPERS_H
+2
View File
@@ -178,4 +178,6 @@ extern const u8 gUnknown_84169DC[];
extern const u8 gUnknown_84162BD[]; extern const u8 gUnknown_84162BD[];
extern const u8 gUnknown_841623D[];
#endif //GUARD_STRINGS_H #endif //GUARD_STRINGS_H
+2 -1
View File
@@ -234,7 +234,7 @@ SECTIONS {
src/vs_seeker.o(.text); src/vs_seeker.o(.text);
src/item_pc.o(.text); src/item_pc.o(.text);
asm/mailbox_pc.o(.text); asm/mailbox_pc.o(.text);
asm/menu.o(.text); src/menu.o(.text);
src/quest_log.o(.text); src/quest_log.o(.text);
asm/link_rfu_3.o(.text); asm/link_rfu_3.o(.text);
asm/pokemon_special_anim.o(.text); asm/pokemon_special_anim.o(.text);
@@ -432,6 +432,7 @@ SECTIONS {
src/vs_seeker.o(.rodata); src/vs_seeker.o(.rodata);
src/item_pc.o(.rodata); src/item_pc.o(.rodata);
data/data_83FECCC.o(.rodata.8453F6C); data/data_83FECCC.o(.rodata.8453F6C);
src/menu.o(.rodata);
src/quest_log.o(.rodata); src/quest_log.o(.rodata);
data/data_83FECCC.o(.rodata.8456C74); data/data_83FECCC.o(.rodata.8456C74);
src/help_system_812B1E0.o(.rodata); src/help_system_812B1E0.o(.rodata);
+5 -5
View File
@@ -240,7 +240,7 @@ void sub_810B958(const u8 * str)
void sub_810B994(void) void sub_810B994(void)
{ {
u32 x; u32 x;
SetWindowBorderStyle(2, FALSE, 0x081, 0x0C); DrawStdFrameWithCustomTileAndPalette(2, FALSE, 0x081, 0x0C);
x = 0x40 - GetStringWidth(0, gText_DepositItem, 0); x = 0x40 - GetStringWidth(0, gText_DepositItem, 0);
AddTextPrinterParameterized(2, 0, gText_DepositItem, x / 2, 1, 0, NULL); AddTextPrinterParameterized(2, 0, gText_DepositItem, x / 2, 1, 0, NULL);
} }
@@ -252,11 +252,11 @@ u8 sub_810B9DC(u8 a0, u8 a1)
gUnknown_203AD34[a0] = AddWindow(&gUnknown_8453104[a0 + a1]); gUnknown_203AD34[a0] = AddWindow(&gUnknown_8453104[a0 + a1]);
if (a0 != 6) if (a0 != 6)
{ {
SetWindowBorderStyle(gUnknown_203AD34[a0], FALSE, 0x064, 0x0E); DrawStdFrameWithCustomTileAndPalette(gUnknown_203AD34[a0], FALSE, 0x064, 0x0E);
} }
else else
{ {
SetWindowBorderStyle(gUnknown_203AD34[a0], FALSE, 0x081, 0x0C); DrawStdFrameWithCustomTileAndPalette(gUnknown_203AD34[a0], FALSE, 0x081, 0x0C);
} }
ScheduleBgCopyTilemapToVram(0); ScheduleBgCopyTilemapToVram(0);
} }
@@ -265,7 +265,7 @@ u8 sub_810B9DC(u8 a0, u8 a1)
void sub_810BA3C(u8 a0) void sub_810BA3C(u8 a0)
{ {
ClearMenuWindow(gUnknown_203AD34[a0], FALSE); ClearStdWindowAndFrameToTransparent(gUnknown_203AD34[a0], FALSE);
ClearWindowTilemap(gUnknown_203AD34[a0]); ClearWindowTilemap(gUnknown_203AD34[a0]);
RemoveWindow(gUnknown_203AD34[a0]); RemoveWindow(gUnknown_203AD34[a0]);
ScheduleBgCopyTilemapToVram(0); ScheduleBgCopyTilemapToVram(0);
@@ -285,7 +285,7 @@ void sub_810BA9C(u8 a0)
{ {
if (gUnknown_203AD34[a0] != 0xFF) if (gUnknown_203AD34[a0] != 0xFF)
{ {
ClearMenuWindow_BorderThickness2(gUnknown_203AD34[a0], FALSE); ClearDialogWindowAndFrameToTransparent(gUnknown_203AD34[a0], FALSE);
ClearWindowTilemap(gUnknown_203AD34[a0]); ClearWindowTilemap(gUnknown_203AD34[a0]);
RemoveWindow(gUnknown_203AD34[a0]); RemoveWindow(gUnknown_203AD34[a0]);
PutWindowTilemap(1); PutWindowTilemap(1);
+2 -2
View File
@@ -97,7 +97,7 @@ void sub_815EFBC(u8 windowId, u32 powder, u8 x, u8 y, u8 speed)
void sub_815F014(u8 windowId, u16 baseBlock, u8 palette, u32 powder) void sub_815F014(u8 windowId, u16 baseBlock, u8 palette, u32 powder)
{ {
SetWindowBorderStyle(windowId, FALSE, baseBlock, palette); DrawStdFrameWithCustomTileAndPalette(windowId, FALSE, baseBlock, palette);
AddTextPrinterParameterized(windowId, 0, gOtherText_Powder, 0, 0, -1, NULL); AddTextPrinterParameterized(windowId, 0, gOtherText_Powder, 0, 0, -1, NULL);
sub_815EFBC(windowId, powder, 39, 12, 0); sub_815EFBC(windowId, powder, 39, 12, 0);
} }
@@ -127,6 +127,6 @@ void sub_815F094(void)
void sub_815F114(void) void sub_815F114(void)
{ {
ClearWindowTilemap(gUnknown_203F464); ClearWindowTilemap(gUnknown_203F464);
ClearMenuWindow(gUnknown_203F464, 1); ClearStdWindowAndFrameToTransparent(gUnknown_203F464, 1);
RemoveWindow(gUnknown_203F464); RemoveWindow(gUnknown_203F464);
} }
+2 -2
View File
@@ -202,12 +202,12 @@ void BuyMenuDisplayMessage(u8 taskId, const u8 *text, TaskFunc callback)
void BuyMenuQuantityBoxNormalBorder(u8 windowId, bool8 copyToVram) void BuyMenuQuantityBoxNormalBorder(u8 windowId, bool8 copyToVram)
{ {
SetWindowBorderStyle(windowId, copyToVram, 0x1, 0xD); DrawStdFrameWithCustomTileAndPalette(windowId, copyToVram, 0x1, 0xD);
} }
void BuyMenuQuantityBoxThinBorder(u8 windowId, bool8 copyToVram) void BuyMenuQuantityBoxThinBorder(u8 windowId, bool8 copyToVram)
{ {
SetWindowBorderStyle(windowId, copyToVram, 0xA, 0xF); DrawStdFrameWithCustomTileAndPalette(windowId, copyToVram, 0xA, 0xF);
} }
void BuyMenuConfirmPurchase(u8 taskId, const struct YesNoFuncTable *yesNo) void BuyMenuConfirmPurchase(u8 taskId, const struct YesNoFuncTable *yesNo)
+3 -3
View File
@@ -61,7 +61,7 @@ void PrintCoinsString_Parameterized(u8 windowId, u32 coinAmount, u8 x, u8 y, u8
void sub_80D0674(u8 windowId, u16 tileStart, u8 palette, u32 coinAmount) void sub_80D0674(u8 windowId, u16 tileStart, u8 palette, u32 coinAmount)
{ {
SetWindowBorderStyle(windowId, FALSE, tileStart, palette); DrawStdFrameWithCustomTileAndPalette(windowId, FALSE, tileStart, palette);
AddTextPrinterParameterized(windowId, 2, gUnknown_8417C2D, 0, 0, 0xFF, 0); AddTextPrinterParameterized(windowId, 2, gUnknown_8417C2D, 0, 0, 0xFF, 0);
PrintCoinsString_Parameterized(windowId, coinAmount, 0x10, 0xC, 0); PrintCoinsString_Parameterized(windowId, coinAmount, 0x10, 0xC, 0);
} }
@@ -88,7 +88,7 @@ void ShowCoinsWindow(u32 coinAmount, u8 x, u8 y)
FillWindowPixelBuffer(sCoinsWindowId, 0); FillWindowPixelBuffer(sCoinsWindowId, 0);
PutWindowTilemap(sCoinsWindowId); PutWindowTilemap(sCoinsWindowId);
TextWindow_SetStdFrame0_WithPal(sCoinsWindowId, 0x21D, 0xD0); TextWindow_SetStdFrame0_WithPal(sCoinsWindowId, 0x21D, 0xD0);
SetWindowBorderStyle(sCoinsWindowId, FALSE, 0x21D, 0xD); DrawStdFrameWithCustomTileAndPalette(sCoinsWindowId, FALSE, 0x21D, 0xD);
AddTextPrinterParameterized(sCoinsWindowId, 2, gUnknown_8417C2D, 0, 0, 0xFF, 0); AddTextPrinterParameterized(sCoinsWindowId, 2, gUnknown_8417C2D, 0, 0, 0xFF, 0);
PrintCoinsString(coinAmount); PrintCoinsString(coinAmount);
} }
@@ -96,6 +96,6 @@ void ShowCoinsWindow(u32 coinAmount, u8 x, u8 y)
void HideCoinsWindow(void) void HideCoinsWindow(void)
{ {
ClearWindowTilemap(sCoinsWindowId); ClearWindowTilemap(sCoinsWindowId);
ClearMenuWindow(sCoinsWindowId, TRUE); ClearStdWindowAndFrameToTransparent(sCoinsWindowId, TRUE);
RemoveWindow(sCoinsWindowId); RemoveWindow(sCoinsWindowId);
} }
+1 -1
View File
@@ -85,7 +85,7 @@ static void sub_80E58A0(u8 taskId)
sub_811F818(gUnknown_203B0A0.unk9, 0); sub_811F818(gUnknown_203B0A0.unk9, 0);
gUnknown_203B0A0.unk9 = gUnknown_203B0A0.unkA; gUnknown_203B0A0.unk9 = gUnknown_203B0A0.unkA;
sub_811F818(gUnknown_203B0A0.unkA, 1); sub_811F818(gUnknown_203B0A0.unkA, 1);
ClearMenuWindow(6, 0); ClearStdWindowAndFrameToTransparent(6, 0);
ClearWindowTilemap(6); ClearWindowTilemap(6);
sub_8121D0C(0); sub_8121D0C(0);
gTasks[taskId].func = sub_811FB28; gTasks[taskId].func = sub_811FB28;
+10 -10
View File
@@ -845,7 +845,7 @@ static void Task_ItemPcSubmenuInit(u8 taskId)
ItemPc_SetBorderStyleOnWindow(4); ItemPc_SetBorderStyleOnWindow(4);
windowId = ItemPc_GetOrCreateSubwindow(0); windowId = ItemPc_GetOrCreateSubwindow(0);
PrintTextArray(4, 2, 8, 2, GetFontAttribute(2, FONTATTR_MAX_LETTER_HEIGHT) + 2, 3, sItemPcSubmenuOptions); PrintTextArray(4, 2, 8, 2, GetFontAttribute(2, FONTATTR_MAX_LETTER_HEIGHT) + 2, 3, sItemPcSubmenuOptions);
ProgramAndPlaceMenuCursorOnWindow(4, 2, 0, 2, GetFontAttribute(2, FONTATTR_MAX_LETTER_HEIGHT) + 2, 3, 0); Menu_InitCursor(4, 2, 0, 2, GetFontAttribute(2, FONTATTR_MAX_LETTER_HEIGHT) + 2, 3, 0);
CopyItemName(ItemPc_GetItemIdBySlotId(data[1]), gStringVar1); CopyItemName(ItemPc_GetItemIdBySlotId(data[1]), gStringVar1);
StringExpandPlaceholders(gStringVar4, gOtherText_StrVar1); StringExpandPlaceholders(gStringVar4, gOtherText_StrVar1);
ItemPc_AddTextPrinterParameterized(windowId, 2, gStringVar4, 0, 2, 1, 0, 0, 1); ItemPc_AddTextPrinterParameterized(windowId, 2, gStringVar4, 0, 2, 1, 0, 0, 1);
@@ -855,7 +855,7 @@ static void Task_ItemPcSubmenuInit(u8 taskId)
static void Task_ItemPcSubmenuRun(u8 taskId) static void Task_ItemPcSubmenuRun(u8 taskId)
{ {
s8 input = ProcessMenuInputNoWrapAround(); s8 input = Menu_ProcessInputNoWrapAround();
switch (input) switch (input)
{ {
case -1: case -1:
@@ -874,7 +874,7 @@ static void Task_ItemPcWithdraw(u8 taskId)
{ {
s16 * data = gTasks[taskId].data; s16 * data = gTasks[taskId].data;
ClearMenuWindow(4, FALSE); ClearStdWindowAndFrameToTransparent(4, FALSE);
ItemPc_DestroySubwindow(0); ItemPc_DestroySubwindow(0);
ClearWindowTilemap(4); ClearWindowTilemap(4);
data[8] = 1; data[8] = 1;
@@ -998,7 +998,7 @@ static void Task_ItemPcHandleWithdrawMultiple(u8 taskId)
else if (JOY_NEW(B_BUTTON)) else if (JOY_NEW(B_BUTTON))
{ {
PlaySE(SE_SELECT); PlaySE(SE_SELECT);
ClearMenuWindow(3, FALSE); ClearStdWindowAndFrameToTransparent(3, FALSE);
ItemPc_DestroySubwindow(1); ItemPc_DestroySubwindow(1);
ClearWindowTilemap(3); ClearWindowTilemap(3);
PutWindowTilemap(0); PutWindowTilemap(0);
@@ -1014,7 +1014,7 @@ static void Task_ItemPcGive(u8 taskId)
{ {
if (CalculatePlayerPartyCount() == 0) if (CalculatePlayerPartyCount() == 0)
{ {
ClearMenuWindow(4, FALSE); ClearStdWindowAndFrameToTransparent(4, FALSE);
ItemPc_DestroySubwindow(0); ItemPc_DestroySubwindow(0);
ClearWindowTilemap(4); ClearWindowTilemap(4);
PutWindowTilemap(0); PutWindowTilemap(0);
@@ -1045,7 +1045,7 @@ static void gTask_ItemPcWaitButtonAndExitSubmenu(u8 taskId)
if (JOY_NEW(A_BUTTON)) if (JOY_NEW(A_BUTTON))
{ {
PlaySE(SE_SELECT); PlaySE(SE_SELECT);
ClearMenuWindow_BorderThickness2(5, 0); ClearDialogWindowAndFrameToTransparent(5, 0);
ClearWindowTilemap(5); ClearWindowTilemap(5);
PutWindowTilemap(1); PutWindowTilemap(1);
ItemPc_PrintOrRemoveCursor(data[0], 1); ItemPc_PrintOrRemoveCursor(data[0], 1);
@@ -1058,7 +1058,7 @@ static void Task_ItemPcCancel(u8 taskId)
{ {
s16 * data = gTasks[taskId].data; s16 * data = gTasks[taskId].data;
ClearMenuWindow(4, FALSE); ClearStdWindowAndFrameToTransparent(4, FALSE);
ItemPc_DestroySubwindow(0); ItemPc_DestroySubwindow(0);
ClearWindowTilemap(4); ClearWindowTilemap(4);
PutWindowTilemap(0); PutWindowTilemap(0);
@@ -1116,7 +1116,7 @@ static void ItemPc_AddTextPrinterParameterized(u8 windowId, u8 fontId, const u8
static void ItemPc_SetBorderStyleOnWindow(u8 windowId) static void ItemPc_SetBorderStyleOnWindow(u8 windowId)
{ {
SetWindowBorderStyle(windowId, FALSE, 0x3C0, 0x0E); DrawStdFrameWithCustomTileAndPalette(windowId, FALSE, 0x3C0, 0x0E);
} }
static u8 ItemPc_GetOrCreateSubwindow(u8 idx) static u8 ItemPc_GetOrCreateSubwindow(u8 idx)
@@ -1124,7 +1124,7 @@ static u8 ItemPc_GetOrCreateSubwindow(u8 idx)
if (sSubmenuWindowIds[idx] == 0xFF) if (sSubmenuWindowIds[idx] == 0xFF)
{ {
sSubmenuWindowIds[idx] = AddWindow(&gUnknown_8453FD0[idx]); sSubmenuWindowIds[idx] = AddWindow(&gUnknown_8453FD0[idx]);
SetWindowBorderStyle(sSubmenuWindowIds[idx], TRUE, 0x3A3, 0x0C); DrawStdFrameWithCustomTileAndPalette(sSubmenuWindowIds[idx], TRUE, 0x3A3, 0x0C);
} }
return sSubmenuWindowIds[idx]; return sSubmenuWindowIds[idx];
@@ -1132,7 +1132,7 @@ static u8 ItemPc_GetOrCreateSubwindow(u8 idx)
static void ItemPc_DestroySubwindow(u8 idx) static void ItemPc_DestroySubwindow(u8 idx)
{ {
ClearMenuWindow(sSubmenuWindowIds[idx], FALSE); ClearStdWindowAndFrameToTransparent(sSubmenuWindowIds[idx], FALSE);
ClearWindowTilemap(sSubmenuWindowIds[idx]); // redundant ClearWindowTilemap(sSubmenuWindowIds[idx]); // redundant
RemoveWindow(sSubmenuWindowIds[idx]); RemoveWindow(sSubmenuWindowIds[idx]);
sSubmenuWindowIds[idx] = 0xFF; sSubmenuWindowIds[idx] = 0xFF;
+984
View File
@@ -0,0 +1,984 @@
#include "global.h"
#include "bg.h"
#include "malloc.h"
#include "menu.h"
#include "menu_helpers.h"
#include "new_menu_helpers.h"
#include "string_util.h"
#include "strings.h"
#include "task.h"
#include "text_window.h"
#include "window.h"
#include "sound.h"
#include "palette.h"
#include "constants/songs.h"
struct Menu
{
u8 left;
u8 top;
s8 cursorPos;
s8 minCursorPos;
s8 maxCursorPos;
u8 windowId;
u8 fontId;
u8 optionWidth;
u8 optionHeight;
u8 columns;
u8 rows;
bool8 APressMuted;
};
static EWRAM_DATA struct Menu sMenu = {0};
static EWRAM_DATA u16 sTileNum = 0;
static EWRAM_DATA u8 sPaletteNum = 0;
static EWRAM_DATA u8 sYesNoWindowId = 0;
static EWRAM_DATA u8 sTopBarWindowId = 0;
static const struct TextColor gUnknown_8456618 =
{
.fgColor = 15,
.bgColor = 1,
.shadowColor = 2,
};
static void WindowFunc_DrawDialogFrameWithCustomTileAndPalette(u8 bg, u8 tilemapLeft, u8 tilemapTop, u8 width, u8 height, u8 paletteNum);
static void WindowFunc_ClearDialogWindowAndFrameNullPalette(u8 bg, u8 tilemapLeft, u8 tilemapTop, u8 width, u8 height, u8 paletteNum);
static void WindowFunc_DrawStdFrameWithCustomTileAndPalette(u8 bg, u8 tilemapLeft, u8 tilemapTop, u8 width, u8 height, u8 paletteNum);
static void WindowFunc_ClearStdWindowAndFrameToTransparent(u8 bg, u8 tilemapLeft, u8 tilemapTop, u8 width, u8 height, u8 paletteNum);
static u8 MultichoiceGridComputeNewCursorPos(s8 deltaX, s8 deltaY);
u8 Menu_MoveCursor(s8 cursorDelta);
void DestroyYesNoMenu(void);
void DrawDialogFrameWithCustomTileAndPalette(u8 windowId, bool8 copyToVram, u16 tileNum, u8 paletteNum)
{
sTileNum = tileNum;
sPaletteNum = paletteNum;
CallWindowFunction(windowId, WindowFunc_DrawDialogFrameWithCustomTileAndPalette);
FillWindowPixelBuffer(windowId, PIXEL_FILL(1));
PutWindowTilemap(windowId);
if (copyToVram == TRUE)
CopyWindowToVram(windowId, 3);
}
// not used
static void DrawDialogFrameWithCustomTile(u8 windowId, bool8 copyToVram, u16 tileNum)
{
sTileNum = tileNum;
sPaletteNum = GetWindowAttribute(windowId, WINDOW_PALETTE_NUM);
CallWindowFunction(windowId, WindowFunc_DrawDialogFrameWithCustomTileAndPalette);
FillWindowPixelBuffer(windowId, PIXEL_FILL(1));
PutWindowTilemap(windowId);
if (copyToVram == TRUE)
CopyWindowToVram(windowId, 3);
}
static void WindowFunc_DrawDialogFrameWithCustomTileAndPalette(u8 bg, u8 tilemapLeft, u8 tilemapTop, u8 width, u8 height, u8 paletteNum)
{
FillBgTilemapBufferRect(bg, sTileNum, tilemapLeft - 2, tilemapTop - 1, 1, 1, sPaletteNum);
FillBgTilemapBufferRect(bg, sTileNum + 1, tilemapLeft - 1, tilemapTop - 1, 1, 1, sPaletteNum);
FillBgTilemapBufferRect(bg, sTileNum + 2, tilemapLeft, tilemapTop - 1, width, 1, sPaletteNum);
FillBgTilemapBufferRect(bg, sTileNum + 3, tilemapLeft + width, tilemapTop - 1, 1, 1, sPaletteNum);
FillBgTilemapBufferRect(bg, sTileNum + 4, tilemapLeft + width + 1, tilemapTop - 1, 1, 1, sPaletteNum);
FillBgTilemapBufferRect(bg, sTileNum + 5, tilemapLeft - 2, tilemapTop, 1, 1, sPaletteNum);
FillBgTilemapBufferRect(bg, sTileNum + 6, tilemapLeft - 1, tilemapTop, 1, 1, sPaletteNum);
FillBgTilemapBufferRect(bg, sTileNum + 8, tilemapLeft + width, tilemapTop, 1, 1, sPaletteNum);
FillBgTilemapBufferRect(bg, sTileNum + 9, tilemapLeft + width + 1, tilemapTop, 1, 1, sPaletteNum);
FillBgTilemapBufferRect(bg, sTileNum + 10, tilemapLeft - 2, tilemapTop + 1, 1, 1, sPaletteNum);
FillBgTilemapBufferRect(bg, sTileNum + 11, tilemapLeft - 1, tilemapTop + 1, 1, 1, sPaletteNum);
FillBgTilemapBufferRect(bg, sTileNum + 12, tilemapLeft + width, tilemapTop + 1, 1, 1, sPaletteNum);
FillBgTilemapBufferRect(bg, sTileNum + 13, tilemapLeft + width + 1, tilemapTop + 1, 1, 1, sPaletteNum);
FillBgTilemapBufferRect(bg, BG_TILE_V_FLIP(sTileNum + 10), tilemapLeft - 2, tilemapTop + 2, 1, 1, sPaletteNum);
FillBgTilemapBufferRect(bg, BG_TILE_V_FLIP(sTileNum + 11), tilemapLeft - 1, tilemapTop + 2, 1, 1, sPaletteNum);
FillBgTilemapBufferRect(bg, BG_TILE_V_FLIP(sTileNum + 12), tilemapLeft + width, tilemapTop + 2, 1, 1, sPaletteNum);
FillBgTilemapBufferRect(bg, BG_TILE_V_FLIP(sTileNum + 13), tilemapLeft + width + 1, tilemapTop + 2, 1, 1, sPaletteNum);
FillBgTilemapBufferRect(bg, BG_TILE_V_FLIP(sTileNum + 5), tilemapLeft - 2, tilemapTop + 3, 1, 1, sPaletteNum);
FillBgTilemapBufferRect(bg, BG_TILE_V_FLIP(sTileNum + 6), tilemapLeft - 1, tilemapTop + 3, 1, 1, sPaletteNum);
FillBgTilemapBufferRect(bg, BG_TILE_V_FLIP(sTileNum + 8), tilemapLeft + width, tilemapTop + 3, 1, 1, sPaletteNum);
FillBgTilemapBufferRect(bg, BG_TILE_V_FLIP(sTileNum + 9), tilemapLeft + width + 1, tilemapTop + 3, 1, 1, sPaletteNum);
FillBgTilemapBufferRect(bg, BG_TILE_V_FLIP(sTileNum), tilemapLeft - 2, tilemapTop + 4, 1, 1, sPaletteNum);
FillBgTilemapBufferRect(bg, BG_TILE_V_FLIP(sTileNum + 1), tilemapLeft - 1, tilemapTop + 4, 1, 1, sPaletteNum);
FillBgTilemapBufferRect(bg, BG_TILE_V_FLIP(sTileNum + 2), tilemapLeft, tilemapTop + 4, width, 1, sPaletteNum);
FillBgTilemapBufferRect(bg, BG_TILE_V_FLIP(sTileNum + 3), tilemapLeft + width, tilemapTop + 4, 1, 1, sPaletteNum);
FillBgTilemapBufferRect(bg, BG_TILE_V_FLIP(sTileNum + 4), tilemapLeft + width + 1, tilemapTop + 4, 1, 1, sPaletteNum);
}
void ClearDialogWindowAndFrameToTransparent(u8 windowId, bool8 copyToVram)
{
// The palette slot doesn't matter, since the tiles are transparent.
CallWindowFunction(windowId, WindowFunc_ClearDialogWindowAndFrameNullPalette);
FillWindowPixelBuffer(windowId, PIXEL_FILL(0));
ClearWindowTilemap(windowId);
if (copyToVram == TRUE)
CopyWindowToVram(windowId, 3);
}
static void WindowFunc_ClearDialogWindowAndFrameNullPalette(u8 bg, u8 tilemapLeft, u8 tilemapTop, u8 width, u8 height, u8 paletteNum)
{
FillBgTilemapBufferRect(bg, 0, tilemapLeft - 2, tilemapTop - 1, width + 4, height + 2, 0);
}
void DrawStdFrameWithCustomTileAndPalette(u8 windowId, bool8 copyToVram, u16 baseTileNum, u8 paletteNum)
{
sTileNum = baseTileNum;
sPaletteNum = paletteNum;
CallWindowFunction(windowId, WindowFunc_DrawStdFrameWithCustomTileAndPalette);
FillWindowPixelBuffer(windowId, PIXEL_FILL(1));
PutWindowTilemap(windowId);
if (copyToVram == TRUE)
CopyWindowToVram(windowId, 3);
}
// not used
static void DrawStdFrameWithCustomTile(u8 windowId, bool8 copyToVram, u16 baseTileNum)
{
sTileNum = baseTileNum;
sPaletteNum = GetWindowAttribute(windowId, WINDOW_PALETTE_NUM);
CallWindowFunction(windowId, WindowFunc_DrawStdFrameWithCustomTileAndPalette);
FillWindowPixelBuffer(windowId, PIXEL_FILL(1));
PutWindowTilemap(windowId);
if (copyToVram == TRUE)
CopyWindowToVram(windowId, 3);
}
static void WindowFunc_DrawStdFrameWithCustomTileAndPalette(u8 bg, u8 tilemapLeft, u8 tilemapTop, u8 width, u8 height, u8 paletteNum)
{
FillBgTilemapBufferRect(bg, sTileNum, tilemapLeft - 1, tilemapTop - 1, 1, 1, sPaletteNum);
FillBgTilemapBufferRect(bg, sTileNum + 1, tilemapLeft, tilemapTop - 1, width, 1, sPaletteNum);
FillBgTilemapBufferRect(bg, sTileNum + 2, tilemapLeft + width, tilemapTop - 1, 1, 1, sPaletteNum);
FillBgTilemapBufferRect(bg, sTileNum + 3, tilemapLeft - 1, tilemapTop, 1, height, sPaletteNum);
FillBgTilemapBufferRect(bg, sTileNum + 5, tilemapLeft + width, tilemapTop, 1, height, sPaletteNum);
FillBgTilemapBufferRect(bg, sTileNum + 6, tilemapLeft - 1, tilemapTop + height, 1, 1, sPaletteNum);
FillBgTilemapBufferRect(bg, sTileNum + 7, tilemapLeft, tilemapTop + height, width, 1, sPaletteNum);
FillBgTilemapBufferRect(bg, sTileNum + 8, tilemapLeft + width, tilemapTop + height, 1, 1, sPaletteNum);
}
void ClearStdWindowAndFrameToTransparent(u8 windowId, bool8 copyToVram)
{
CallWindowFunction(windowId, WindowFunc_ClearStdWindowAndFrameToTransparent);
FillWindowPixelBuffer(windowId, PIXEL_FILL(0));
ClearWindowTilemap(windowId);
if (copyToVram == TRUE)
CopyWindowToVram(windowId, 3);
}
static void WindowFunc_ClearStdWindowAndFrameToTransparent(u8 bg, u8 tilemapLeft, u8 tilemapTop, u8 width, u8 height, u8 paletteNum)
{
FillBgTilemapBufferRect(bg, 0, tilemapLeft - 1, tilemapTop - 1, width + 2, height + 2, 0);
}
/*
The following functions are used for handling top bar window
in hall of fame screen and story mode screen before oak intro.
However, you can still designate a yPos value to place that bar
as well as the bar width.
The xPos is simply computed according to width (always right aligned).
*/
u8 CreateTopBarWindowLoadPalette(u8 bg, u8 width, u8 yPos, u8 palette, u16 baseTile)
{
struct WindowTemplate window;
memset(&window, 0, sizeof(window));
if (bg > 3)
window.bg = 0;
else
window.bg = bg;
window.tilemapTop = yPos;
window.height = 2;
window.tilemapLeft = 0x1E - width;
window.width = width;
window.paletteNum = palette;
window.baseBlock = baseTile;
sTopBarWindowId = AddWindow(&window);
if (palette > 15)
palette = 15 * 16;
else
palette *= 16;
LoadPalette(stdpal_get(2), palette, 0x20);
return sTopBarWindowId;
}
void TopBarWindowPrintString(const u8 *string, u8 unUsed, bool8 copyToVram)
{
s32 width;
if (sTopBarWindowId != 0xFF)
{
PutWindowTilemap(sTopBarWindowId);
FillWindowPixelBuffer(sTopBarWindowId, PIXEL_FILL(15));
width = GetStringWidth(0, string, 0);
AddTextPrinterParameterized3(sTopBarWindowId, 0, -20 - width, 1, &gUnknown_8456618, 0, string);
if (copyToVram)
CopyWindowToVram(sTopBarWindowId, 3);
}
}
void TopBarWindowPrintTwoStrings(const u8 *string, const u8 *string2, bool8 fgColorChooser, u8 notUsed, bool8 copyToVram)
{
struct TextColor color;
s32 fgColor, width;
if ( sTopBarWindowId != 0xFF )
{
if (fgColorChooser)
{
color.fgColor = 0;
color.bgColor = 1;
color.shadowColor = 2;
}
else
{
color.fgColor = 15;
color.bgColor = 1;
color.shadowColor = 2;
}
PutWindowTilemap(sTopBarWindowId);
FillWindowPixelBuffer(sTopBarWindowId, PIXEL_FILL(15));
if (string2)
{
width = GetStringWidth(0, string2, 0);
AddTextPrinterParameterized3(sTopBarWindowId, 0, -20 - width, 1, &color, 0, string2);
}
AddTextPrinterParameterized4(sTopBarWindowId, 1, 4, 1, 0, 0, &color, 0, string);
if (copyToVram)
CopyWindowToVram(sTopBarWindowId, 3);
}
}
// not used
static void Unused_CopyTopBarWindowToVram(void)
{
if (sTopBarWindowId != 0xFF)
CopyWindowToVram(sTopBarWindowId, 3);
}
void ClearTopBarWindow(void)
{
if (sTopBarWindowId != 0xFF)
{
FillWindowPixelBuffer(sTopBarWindowId, PIXEL_FILL(15));
CopyWindowToVram(sTopBarWindowId, 3);
}
}
void DestroyTopBarWindow(void)
{
if (sTopBarWindowId != 0xFF)
{
FillWindowPixelBuffer(sTopBarWindowId, PIXEL_FILL(0));
ClearWindowTilemap(sTopBarWindowId);
CopyWindowToVram(sTopBarWindowId, 3);
RemoveWindow(sTopBarWindowId);
sTopBarWindowId = 0xFF;
}
}
u8 Menu_InitCursorInternal(u8 windowId, u8 fontId, u8 left, u8 top, u8 cursorHeight, u8 numChoices, u8 initialCursorPos, bool8 APressMuted)
{
s32 pos;
sMenu.left = left;
sMenu.top = top;
sMenu.minCursorPos = 0;
sMenu.maxCursorPos = numChoices - 1;
sMenu.windowId = windowId;
sMenu.fontId = fontId;
sMenu.optionHeight = cursorHeight;
sMenu.APressMuted = APressMuted;
pos = initialCursorPos;
if (pos < 0 || pos > sMenu.maxCursorPos)
sMenu.cursorPos = 0;
else
sMenu.cursorPos = pos;
Menu_MoveCursor(0);
return sMenu.cursorPos;
}
u8 Menu_InitCursor(u8 windowId, u8 fontId, u8 left, u8 top, u8 cursorHeight, u8 numChoices, u8 initialCursorPos)
{
return Menu_InitCursorInternal(windowId, fontId, left, top, cursorHeight, numChoices, initialCursorPos, 0);
}
// not used
static u8 sub_810F818(u8 windowId, u8 fontId, u8 left, u8 top, u8 numChoices, u8 initialCursorPos)
{
return Menu_InitCursor(windowId, fontId, left, top, GetMenuCursorDimensionByFont(fontId, 1), numChoices, initialCursorPos);
}
void RedrawMenuCursor(u8 oldPos, u8 newPos)
{
u8 width, height;
width = GetMenuCursorDimensionByFont(sMenu.fontId, 0);
height = GetMenuCursorDimensionByFont(sMenu.fontId, 1);
FillWindowPixelRect(sMenu.windowId, 1, sMenu.left, sMenu.optionHeight * oldPos + sMenu.top, width, height);
AddTextPrinterParameterized(sMenu.windowId, sMenu.fontId, gFameCheckerText_ListMenuCursor, sMenu.left, sMenu.optionHeight * newPos + sMenu.top, 0, 0);
}
u8 Menu_MoveCursor(s8 cursorDelta)
{
u8 oldPos = sMenu.cursorPos;
s32 newPos = sMenu.cursorPos + cursorDelta;
if (newPos < sMenu.minCursorPos)
sMenu.cursorPos = sMenu.maxCursorPos;
else if (newPos > sMenu.maxCursorPos)
sMenu.cursorPos = sMenu.minCursorPos;
else
sMenu.cursorPos += cursorDelta;
RedrawMenuCursor(oldPos, sMenu.cursorPos);
return sMenu.cursorPos;
}
u8 Menu_MoveCursorNoWrapAround(s8 cursorDelta)
{
u8 oldPos = sMenu.cursorPos;
s32 newPos = sMenu.cursorPos + cursorDelta;
if (newPos < sMenu.minCursorPos)
sMenu.cursorPos = sMenu.minCursorPos;
else if (newPos > sMenu.maxCursorPos)
sMenu.cursorPos = sMenu.maxCursorPos;
else
sMenu.cursorPos += cursorDelta;
RedrawMenuCursor(oldPos, sMenu.cursorPos);
return sMenu.cursorPos;
}
u8 Menu_GetCursorPos(void)
{
return sMenu.cursorPos;
}
s8 Menu_ProcessInput(void)
{
if (JOY_NEW(A_BUTTON))
{
if (!sMenu.APressMuted)
PlaySE(SE_SELECT);
return sMenu.cursorPos;
}
else if (JOY_NEW(B_BUTTON))
{
return MENU_B_PRESSED;
}
else if (JOY_NEW(DPAD_UP))
{
PlaySE(SE_SELECT);
Menu_MoveCursor(-1);
return MENU_NOTHING_CHOSEN;
}
else if (JOY_NEW(DPAD_DOWN))
{
PlaySE(SE_SELECT);
Menu_MoveCursor(1);
return MENU_NOTHING_CHOSEN;
}
return MENU_NOTHING_CHOSEN;
}
s8 Menu_ProcessInputNoWrapAround(void)
{
u8 oldPos = sMenu.cursorPos;
if (JOY_NEW(A_BUTTON))
{
if (!sMenu.APressMuted)
PlaySE(SE_SELECT);
return sMenu.cursorPos;
}
else if (JOY_NEW(B_BUTTON))
{
return MENU_B_PRESSED;
}
else if (JOY_NEW(DPAD_UP))
{
if (oldPos != Menu_MoveCursorNoWrapAround(-1))
PlaySE(SE_SELECT);
return MENU_NOTHING_CHOSEN;
}
else if (JOY_NEW(DPAD_DOWN))
{
if (oldPos != Menu_MoveCursorNoWrapAround(1))
PlaySE(SE_SELECT);
return MENU_NOTHING_CHOSEN;
}
return MENU_NOTHING_CHOSEN;
}
s8 Menu_ProcessInput_other(void)
{
if (JOY_NEW(A_BUTTON))
{
if (!sMenu.APressMuted)
PlaySE(SE_SELECT);
return sMenu.cursorPos;
}
else if (JOY_NEW(B_BUTTON))
{
return MENU_B_PRESSED;
}
else if (JOY_REPT(DPAD_ANY) == DPAD_UP)
{
PlaySE(SE_SELECT);
Menu_MoveCursor(-1);
return MENU_NOTHING_CHOSEN;
}
else if (JOY_REPT(DPAD_ANY) == DPAD_DOWN)
{
PlaySE(SE_SELECT);
Menu_MoveCursor(1);
return MENU_NOTHING_CHOSEN;
}
return MENU_NOTHING_CHOSEN;
}
s8 Menu_ProcessInputNoWrapAround_other(void)
{
u8 oldPos = sMenu.cursorPos;
if (JOY_NEW(A_BUTTON))
{
if (!sMenu.APressMuted)
PlaySE(SE_SELECT);
return sMenu.cursorPos;
}
else if (JOY_NEW(B_BUTTON))
{
return MENU_B_PRESSED;
}
else if (JOY_REPT(DPAD_ANY) == DPAD_UP)
{
if (oldPos != Menu_MoveCursorNoWrapAround(-1))
PlaySE(SE_SELECT);
return MENU_NOTHING_CHOSEN;
}
else if (JOY_REPT(DPAD_ANY) == DPAD_DOWN)
{
if (oldPos != Menu_MoveCursorNoWrapAround(1))
PlaySE(SE_SELECT);
return MENU_NOTHING_CHOSEN;
}
return MENU_NOTHING_CHOSEN;
}
void PrintTextArray(u8 windowId, u8 fontId, u8 left, u8 top, u8 lineHeight, u8 itemCount, const struct MenuAction *strs)
{
u8 i;
for (i = 0; i < itemCount; i++)
AddTextPrinterParameterized(windowId, fontId, strs[i].text, left, (lineHeight * i) + top, 0xFF, NULL);
CopyWindowToVram(windowId, 2);
}
void PrintMultichoiceListItems(u8 windowId, u8 fontId, u8 left, u8 top, u8 lineHeight, u8 itemCount, const struct MenuAction *strs, u8 letterSpacing, u8 lineSpacing)
{
u8 i;
for (i = 0; i < itemCount; i++)
{
AddTextPrinterParameterized5(windowId, fontId, strs[i].text, left, (lineHeight * i) + top, 0xFF, NULL, letterSpacing, lineSpacing);
}
CopyWindowToVram(windowId, 2);
}
void UnionRoomAndTradeMenuPrintOptions(u8 windowId, u8 fontId, u8 lineHeight, u8 itemCount, const struct MenuAction *strs)
{
u8 left = GetMenuCursorDimensionByFont(fontId, 0);
PrintTextArray(windowId, fontId, left, 0, lineHeight, itemCount, strs);
}
void AddItemMenuActionTextPrinters(u8 windowId, u8 fontId, u8 left, u8 top, u8 letterSpacing, u8 lineHeight, u8 itemCount, const struct MenuAction *strs, const u8 *orderArray)
{
u8 i;
struct TextPrinterTemplate printer;
printer.windowId = windowId;
printer.fontId = fontId;
printer.fgColor = GetFontAttribute(fontId, FONTATTR_COLOR_FOREGROUND);
printer.bgColor = GetFontAttribute(fontId, FONTATTR_COLOR_BACKGROUND);
printer.shadowColor = GetFontAttribute(fontId, FONTATTR_COLOR_SHADOW);
printer.unk = GetFontAttribute(fontId, FONTATTR_UNKNOWN);
printer.letterSpacing = letterSpacing;
printer.lineSpacing = GetFontAttribute(fontId, FONTATTR_LINE_SPACING);
printer.x = left;
printer.currentX = left;
for (i = 0; i < itemCount; i++)
{
printer.currentChar = strs[orderArray[i]].text;
printer.y = (lineHeight * i) + top;
printer.currentY = printer.y;
AddTextPrinter(&printer, 0xFF, NULL);
}
CopyWindowToVram(windowId, 2);
}
// not used
static void sub_810FDE4(u8 windowId, u8 fontId, u8 lineHeight, u8 itemCount, const struct MenuAction *strs, const u8 *orderArray)
{
AddItemMenuActionTextPrinters(windowId, fontId, GetFontAttribute(fontId, FONTATTR_MAX_LETTER_WIDTH), 0, GetFontAttribute(fontId, FONTATTR_LETTER_SPACING), lineHeight, itemCount, strs, orderArray);
}
/*
struct WindowTemplateWithAttr SetWindowTemplateFields(struct WindowTemplate *template, u8 bg, u8 left, u8 top, u8 width, u8 height, u8 paletteNum, u16 baseBlock)
{
struct WindowTemplate temp;
struct WindowTemplateWithAttr ret;
temp.bg = bg;
temp.tilemapLeft = left;
temp.tilemapTop = top;
temp.width = width;
temp.height = height;
temp.paletteNum = paletteNum;
temp.baseBlock = baseBlock;
*template = temp;
ret.ptr = template;
ret.attr = *((u32*)&temp);
return ret;
}
*/
NAKED
void SetWindowTemplateFields(struct WindowTemplate *template, u8 bg, u8 left, u8 top, u8 width, u8 height, u8 paletteNum, u16 baseBlock)
{
asm_unified("\n\
push {r4-r7,lr}\n\
mov r7, r10\n\
mov r6, r9\n\
mov r5, r8\n\
push {r5-r7}\n\
sub sp, 0x8\n\
ldr r4, [sp, 0x28]\n\
mov r12, r4\n\
ldr r4, [sp, 0x2C]\n\
mov r9, r4\n\
ldr r4, [sp, 0x30]\n\
mov r10, r4\n\
ldr r7, [sp, 0x34]\n\
lsls r1, 24\n\
lsrs r1, 24\n\
lsls r2, 24\n\
lsls r3, 24\n\
mov r4, r9\n\
lsls r4, 24\n\
lsrs r4, 24\n\
mov r9, r4\n\
mov r4, r10\n\
lsls r4, 24\n\
mov r10, r4\n\
ldr r4, _0810FEF0 @ =0xffffff00\n\
mov r8, r4\n\
mov r5, r8\n\
ldr r4, [sp]\n\
ands r5, r4\n\
orrs r5, r1\n\
str r5, [sp]\n\
lsrs r2, 16\n\
ldr r6, _0810FEF4 @ =0xffff00ff\n\
adds r4, r6, 0\n\
ands r4, r5\n\
orrs r4, r2\n\
str r4, [sp]\n\
lsrs r3, 8\n\
ldr r1, _0810FEF8 @ =0xff00ffff\n\
ands r1, r4\n\
orrs r1, r3\n\
str r1, [sp]\n\
mov r2, r12\n\
lsls r2, 24\n\
mov r12, r2\n\
ldr r2, _0810FEFC @ =0x00ffffff\n\
ands r1, r2\n\
mov r4, r12\n\
orrs r4, r1\n\
str r4, [sp]\n\
ldr r1, [sp, 0x4]\n\
mov r2, r8\n\
ands r1, r2\n\
mov r4, r9\n\
orrs r1, r4\n\
mov r8, r1\n\
str r1, [sp, 0x4]\n\
mov r1, r10\n\
lsrs r1, 16\n\
mov r2, r8\n\
ands r6, r2\n\
orrs r6, r1\n\
str r6, [sp, 0x4]\n\
lsls r2, r7, 16\n\
ldr r1, _0810FF00 @ =0x0000ffff\n\
ands r6, r1\n\
orrs r6, r2\n\
str r6, [sp, 0x4]\n\
ldr r1, [sp]\n\
ldr r2, [sp, 0x4]\n\
str r1, [r0]\n\
str r2, [r0, 0x4]\n\
add sp, 0x8\n\
pop {r3-r5}\n\
mov r8, r3\n\
mov r9, r4\n\
mov r10, r5\n\
pop {r4-r7}\n\
pop {r2}\n\
bx r2\n\
.align 2, 0\n\
_0810FEF0: .4byte 0xffffff00\n\
_0810FEF4: .4byte 0xffff00ff\n\
_0810FEF8: .4byte 0xff00ffff\n\
_0810FEFC: .4byte 0x00ffffff\n\
_0810FF00: .4byte 0x0000ffff\n\
");
}
// not used
static u16 CreateWindowTemplate(u8 bg, u8 left, u8 top, u8 width, u8 height, u8 paletteNum, u16 baseBlock)
{
struct WindowTemplate template, temp;
SetWindowTemplateFields(&template, bg, left, top, width, height, paletteNum, baseBlock);
temp = template;
return (u16)AddWindow(&temp);
}
void CreateYesNoMenu(const struct WindowTemplate *window, u8 fontId, u8 left, u8 top, u16 baseTileNum, u8 paletteNum, u8 initialCursorPos)
{
struct TextPrinterTemplate textSubPrinter;
sYesNoWindowId = AddWindow(window);
DrawStdFrameWithCustomTileAndPalette(sYesNoWindowId, 1, baseTileNum, paletteNum);
textSubPrinter.currentChar = gUnknown_841623D;
textSubPrinter.windowId = sYesNoWindowId;
textSubPrinter.fontId = fontId;
textSubPrinter.x = GetMenuCursorDimensionByFont(fontId, 0) + left;
textSubPrinter.y = top;
textSubPrinter.currentX = textSubPrinter.x;
textSubPrinter.currentY = textSubPrinter.y;
textSubPrinter.fgColor = GetFontAttribute(fontId, FONTATTR_COLOR_FOREGROUND);
textSubPrinter.bgColor = GetFontAttribute(fontId, FONTATTR_COLOR_BACKGROUND);
textSubPrinter.shadowColor = GetFontAttribute(fontId, FONTATTR_COLOR_SHADOW);
textSubPrinter.unk = GetFontAttribute(fontId, FONTATTR_UNKNOWN);
textSubPrinter.letterSpacing = GetFontAttribute(fontId, FONTATTR_LETTER_SPACING);
textSubPrinter.lineSpacing = GetFontAttribute(fontId, FONTATTR_LINE_SPACING);
AddTextPrinter(&textSubPrinter, 0xFF, NULL);
Menu_InitCursor(sYesNoWindowId, fontId, left, top, GetFontAttribute(fontId, FONTATTR_MAX_LETTER_HEIGHT) + textSubPrinter.lineSpacing, 2, initialCursorPos);
}
// not used
static void Unused_CreateYesNoMenu2(const struct WindowTemplate *window, u8 paletteNum, u16 baseTileNum, u8 initialCursorPos)
{
CreateYesNoMenu(window, paletteNum, 0, 0, baseTileNum, initialCursorPos, 0);
}
s8 Menu_ProcessInputNoWrapClearOnChoose(void)
{
s8 result = Menu_ProcessInputNoWrapAround();
if (result != MENU_NOTHING_CHOSEN)
DestroyYesNoMenu();
return result;
}
void DestroyYesNoMenu(void)
{
ClearStdWindowAndFrameToTransparent(sYesNoWindowId, TRUE);
RemoveWindow(sYesNoWindowId);
}
void MultichoiceGridPrintItems(u8 windowId, u8 fontId, u8 itemWidth, u8 itemHeight, u8 cols, u8 rows, const struct MenuAction *strs)
{
u8 width, i, j, yOffset;
fontId = fontId;
itemWidth = itemWidth;
itemHeight = itemHeight;
width = GetFontAttribute(fontId, FONTATTR_MAX_LETTER_WIDTH);
yOffset = (16 - GetFontAttribute(fontId, FONTATTR_MAX_LETTER_HEIGHT)) / 2;
for (i = 0; i < rows; ++i)
for (j = 0; j < cols; ++j)
AddTextPrinterParameterized(windowId, fontId, strs[i * cols + j].text, itemWidth * j + width, yOffset + itemHeight * i, 0xFF, 0);
CopyWindowToVram(windowId, 2);
}
//not used
static void Unused_MultichoiceGridPrintItemsCustomOrder(u8 windowId, u8 fontId, u8 itemWidth, u8 itemHeight, u8 cols, u8 rows, const struct MenuAction *strs, const u8 *orderArray)
{
u8 width, i, j;
fontId = fontId;
itemWidth = itemWidth;
itemHeight = itemHeight;
width = GetFontAttribute(fontId, FONTATTR_MAX_LETTER_WIDTH);
for (i = 0; i < rows; ++i)
for (j = 0; j < cols; ++j)
AddTextPrinterParameterized(windowId, fontId, strs[orderArray[i * cols + j]].text, itemWidth * j + width, itemHeight * i, 0xFF, 0);
CopyWindowToVram(windowId, 2);
}
static u8 MultichoiceGridInitCursorInternal(u8 windowId, u8 fontId, u8 left, u8 top, u8 optionWidth, u8 cursorHeight, u8 cols, u8 rows, u8 numChoices, u8 cursorPos)
{
s32 pos;
sMenu.left = left;
sMenu.top = top;
sMenu.minCursorPos = 0;
sMenu.maxCursorPos = numChoices - 1;
sMenu.windowId = windowId;
sMenu.fontId = fontId;
sMenu.optionWidth = optionWidth;
sMenu.optionHeight = cursorHeight;
sMenu.columns = cols;
sMenu.rows = rows;
pos = cursorPos;
if (pos < 0 || pos > sMenu.maxCursorPos)
sMenu.cursorPos = 0;
else
sMenu.cursorPos = pos;
MultichoiceGridComputeNewCursorPos(0, 0);
return sMenu.cursorPos;
}
u8 MultichoiceGridInitCursor(u8 windowId, u8 fontId, u8 left, u8 top, u8 optionWidth, u8 cols, u8 rows, u8 cursorPos)
{
s32 cursorHeight = 16;
u8 numChoices = cols * rows;
return MultichoiceGridInitCursorInternal(windowId, fontId, left, top, optionWidth, cursorHeight, cols, rows, numChoices, cursorPos);
}
static void MultichoiceGridUpdateCursorPos(u8 oldCursorPos, u8 newCursorPos)
{
u8 cursorWidth = GetMenuCursorDimensionByFont(sMenu.fontId, 0);
u8 cursorHeight = GetMenuCursorDimensionByFont(sMenu.fontId, 1);
u8 xPos = (oldCursorPos % sMenu.columns) * sMenu.optionWidth + sMenu.left;
u8 yPos = (oldCursorPos / sMenu.columns) * sMenu.optionHeight + sMenu.top;
FillWindowPixelRect(sMenu.windowId, PIXEL_FILL(1), xPos, yPos, cursorWidth, cursorHeight);
xPos = (newCursorPos % sMenu.columns) * sMenu.optionWidth + sMenu.left;
yPos = (newCursorPos / sMenu.columns) * sMenu.optionHeight + sMenu.top;
AddTextPrinterParameterized(sMenu.windowId, sMenu.fontId, gFameCheckerText_ListMenuCursor, xPos, yPos, 0, 0);
}
static u8 MultichoiceGridComputeNewCursorPos(s8 deltaX, s8 deltaY)
{
u8 oldPos = sMenu.cursorPos;
if (deltaX)
{
if ((sMenu.cursorPos % sMenu.columns) + deltaX < 0)
sMenu.cursorPos += sMenu.columns - 1;
else if ((sMenu.cursorPos % sMenu.columns) + deltaX >= sMenu.columns)
sMenu.cursorPos = (sMenu.cursorPos / sMenu.columns) * sMenu.columns;
else
sMenu.cursorPos += deltaX;
}
if (deltaY)
{
if ((sMenu.cursorPos / sMenu.columns) + deltaY < 0)
sMenu.cursorPos += sMenu.columns * (sMenu.rows - 1);
else if ((sMenu.cursorPos / sMenu.columns) + deltaY >= sMenu.rows)
sMenu.cursorPos -= sMenu.columns * (sMenu.rows - 1);
else
sMenu.cursorPos += (sMenu.columns * deltaY);
}
if (sMenu.cursorPos > sMenu.maxCursorPos)
{
sMenu.cursorPos = oldPos;
return sMenu.cursorPos;
}
else
{
MultichoiceGridUpdateCursorPos(oldPos, sMenu.cursorPos);
return sMenu.cursorPos;
}
}
static u8 MultichoiceGridComputeNewCursorPosIfValid(s8 deltaX, s8 deltaY)
{
u8 oldPos = sMenu.cursorPos;
if (deltaX)
{
if (((sMenu.cursorPos % sMenu.columns) + deltaX >= 0) && ((sMenu.cursorPos % sMenu.columns) + deltaX < sMenu.columns))
sMenu.cursorPos += deltaX;
}
if (deltaY)
{
if (((sMenu.cursorPos / sMenu.columns) + deltaY >= 0) && ((sMenu.cursorPos / sMenu.columns) + deltaY < sMenu.rows))
sMenu.cursorPos += (sMenu.columns * deltaY);
}
if (sMenu.cursorPos > sMenu.maxCursorPos)
{
sMenu.cursorPos = oldPos;
return sMenu.cursorPos;
}
else
{
MultichoiceGridUpdateCursorPos(oldPos, sMenu.cursorPos);
return sMenu.cursorPos;
}
}
// not used
static s8 sub_81105A0(void)
{
if (JOY_NEW(A_BUTTON))
{
PlaySE(SE_SELECT);
return sMenu.cursorPos;
}
else if (JOY_NEW(B_BUTTON))
{
return MENU_B_PRESSED;
}
else if (JOY_NEW(DPAD_UP))
{
PlaySE(SE_SELECT);
MultichoiceGridComputeNewCursorPos(0, -1);
return MENU_NOTHING_CHOSEN;
}
else if (JOY_NEW(DPAD_DOWN))
{
PlaySE(SE_SELECT);
MultichoiceGridComputeNewCursorPos(0, 1);
return MENU_NOTHING_CHOSEN;
}
else if (JOY_NEW(DPAD_LEFT) || GetLRKeysState() == 1)
{
PlaySE(SE_SELECT);
MultichoiceGridComputeNewCursorPos(-1, 0);
return MENU_NOTHING_CHOSEN;
}
else if (JOY_NEW(DPAD_RIGHT) || GetLRKeysState() == 2)
{
PlaySE(SE_SELECT);
MultichoiceGridComputeNewCursorPos(1, 0);
return MENU_NOTHING_CHOSEN;
}
return MENU_NOTHING_CHOSEN;
}
s8 Menu_ProcessInputGridLayout(void)
{
u8 oldPos = sMenu.cursorPos;
if (JOY_NEW(A_BUTTON))
{
PlaySE(SE_SELECT);
return sMenu.cursorPos;
}
else if (JOY_NEW(B_BUTTON))
{
return MENU_B_PRESSED;
}
else if (JOY_NEW(DPAD_UP))
{
if (oldPos != MultichoiceGridComputeNewCursorPosIfValid(0, -1))
PlaySE(SE_SELECT);
return MENU_NOTHING_CHOSEN;
}
else if (JOY_NEW(DPAD_DOWN))
{
if (oldPos != MultichoiceGridComputeNewCursorPosIfValid(0, 1))
PlaySE(SE_SELECT);
return MENU_NOTHING_CHOSEN;
}
else if (JOY_NEW(DPAD_LEFT) || GetLRKeysState() == 1)
{
if (oldPos != MultichoiceGridComputeNewCursorPosIfValid(-1, 0))
PlaySE(SE_SELECT);
return MENU_NOTHING_CHOSEN;
}
else if (JOY_NEW(DPAD_RIGHT) || GetLRKeysState() == 2)
{
if (oldPos != MultichoiceGridComputeNewCursorPosIfValid(1, 0))
PlaySE(SE_SELECT);
return MENU_NOTHING_CHOSEN;
}
return MENU_NOTHING_CHOSEN;
}
// not used
static s8 sub_81106F4(void)
{
if (JOY_NEW(A_BUTTON))
{
PlaySE(SE_SELECT);
return sMenu.cursorPos;
}
else if (JOY_NEW(B_BUTTON))
{
return MENU_B_PRESSED;
}
else if (JOY_REPT(DPAD_ANY) == DPAD_UP)
{
PlaySE(SE_SELECT);
MultichoiceGridComputeNewCursorPos(0, -1);
return MENU_NOTHING_CHOSEN;
}
else if (JOY_REPT(DPAD_ANY) == DPAD_DOWN)
{
PlaySE(SE_SELECT);
MultichoiceGridComputeNewCursorPos(0, 1);
return MENU_NOTHING_CHOSEN;
}
else if (JOY_REPT(DPAD_ANY) == DPAD_LEFT || sub_80BF66C() == 1)
{
PlaySE(SE_SELECT);
MultichoiceGridComputeNewCursorPos(-1, 0);
return MENU_NOTHING_CHOSEN;
}
else if (JOY_REPT(DPAD_ANY) == DPAD_RIGHT || sub_80BF66C() == 2)
{
PlaySE(SE_SELECT);
MultichoiceGridComputeNewCursorPos(1, 0);
return MENU_NOTHING_CHOSEN;
}
return MENU_NOTHING_CHOSEN;
}
// not used
static s8 sub_81107A0(void)
{
u8 oldPos = sMenu.cursorPos;
if (JOY_NEW(A_BUTTON))
{
PlaySE(SE_SELECT);
return sMenu.cursorPos;
}
else if (JOY_NEW(B_BUTTON))
{
return MENU_B_PRESSED;
}
else if (JOY_REPT(DPAD_ANY) == DPAD_UP)
{
if (oldPos != MultichoiceGridComputeNewCursorPosIfValid(0, -1))
PlaySE(SE_SELECT);
return MENU_NOTHING_CHOSEN;
}
else if (JOY_REPT(DPAD_ANY) == DPAD_DOWN)
{
if (oldPos != MultichoiceGridComputeNewCursorPosIfValid(0, 1))
PlaySE(SE_SELECT);
return MENU_NOTHING_CHOSEN;
}
else if (JOY_REPT(DPAD_ANY) == DPAD_LEFT || sub_80BF66C() == 1)
{
if (oldPos != MultichoiceGridComputeNewCursorPosIfValid(-1, 0))
PlaySE(SE_SELECT);
return MENU_NOTHING_CHOSEN;
}
else if (JOY_REPT(DPAD_ANY) == DPAD_RIGHT || sub_80BF66C() == 2)
{
if (oldPos != MultichoiceGridComputeNewCursorPosIfValid(1, 0))
PlaySE(SE_SELECT);
return MENU_NOTHING_CHOSEN;
}
return MENU_NOTHING_CHOSEN;
}
+2 -2
View File
@@ -109,7 +109,7 @@ void PrintMoneyAmount(u8 windowId, u8 x, u8 y, int amount, u8 speed)
void PrintMoneyAmountInMoneyBoxWithBorder(u8 windowId, u16 tileStart, u8 pallete, int amount) void PrintMoneyAmountInMoneyBoxWithBorder(u8 windowId, u16 tileStart, u8 pallete, int amount)
{ {
SetWindowBorderStyle(windowId, FALSE, tileStart, pallete); DrawStdFrameWithCustomTileAndPalette(windowId, FALSE, tileStart, pallete);
AddTextPrinterParameterized(windowId, 2, gUnknown_8419CE7, 0, 0, 0xFF, 0); AddTextPrinterParameterized(windowId, 2, gUnknown_8419CE7, 0, 0, 0xFF, 0);
PrintMoneyAmountInMoneyBox(windowId, amount, 0); PrintMoneyAmountInMoneyBox(windowId, amount, 0);
} }
@@ -134,7 +134,7 @@ void DrawMoneyBox(int amount, u8 x, u8 y)
void HideMoneyBox(void) void HideMoneyBox(void)
{ {
ClearMenuWindow(sMoneyBoxWindowId, FALSE); ClearStdWindowAndFrameToTransparent(sMoneyBoxWindowId, FALSE);
CopyWindowToVram(sMoneyBoxWindowId, 2); CopyWindowToVram(sMoneyBoxWindowId, 2);
RemoveWindow(sMoneyBoxWindowId); RemoveWindow(sMoneyBoxWindowId);
} }
+1 -1
View File
@@ -603,7 +603,7 @@ void sub_80F771C(bool8 copyToVram)
void SetStdWindowBorderStyle(u8 windowId, bool8 copyToVram) void SetStdWindowBorderStyle(u8 windowId, bool8 copyToVram)
{ {
SetWindowBorderStyle(windowId, copyToVram, STD_WINDOW_BASE_TILE_NUM, STD_WINDOW_PALETTE_NUM); DrawStdFrameWithCustomTileAndPalette(windowId, copyToVram, STD_WINDOW_BASE_TILE_NUM, STD_WINDOW_PALETTE_NUM);
} }
void sub_80F7768(u8 windowId, bool8 copyToVram) void sub_80F7768(u8 windowId, bool8 copyToVram)
+19 -19
View File
@@ -546,7 +546,7 @@ static void Task_OaksSpeech1(u8 taskId)
CopyBgTilemapBufferToVram(1); CopyBgTilemapBufferToVram(1);
break; break;
case 7: case 7:
CreateWindow_SnapRight_StdPal(0, 30, 0, 13, 0x1C4); CreateTopBarWindowLoadPalette(0, 30, 0, 13, 0x1C4);
FillBgTilemapBufferRect_Palette0(1, 0xD00F, 0, 0, 30, 2); FillBgTilemapBufferRect_Palette0(1, 0xD00F, 0, 0, 30, 2);
FillBgTilemapBufferRect_Palette0(1, 0xD002, 0, 2, 30, 1); FillBgTilemapBufferRect_Palette0(1, 0xD002, 0, 2, 30, 1);
FillBgTilemapBufferRect_Palette0(1, 0xD00E, 0, 19, 30, 1); FillBgTilemapBufferRect_Palette0(1, 0xD00E, 0, 19, 30, 1);
@@ -572,7 +572,7 @@ static void Task_OaksSpeech1(u8 taskId)
static void CreateHelpDocsPage1(void) static void CreateHelpDocsPage1(void)
{ {
Menu_PrintHelpSystemUIHeader(gText_Controls, gText_ABUTTONNext, 0, 0, 1); TopBarWindowPrintTwoStrings(gText_Controls, gText_ABUTTONNext, 0, 0, 1);
sOakSpeechResources->unk_0014[0] = AddWindow(sHelpDocsWindowTemplatePtrs[sOakSpeechResources->unk_0012]); sOakSpeechResources->unk_0014[0] = AddWindow(sHelpDocsWindowTemplatePtrs[sOakSpeechResources->unk_0012]);
PutWindowTilemap(sOakSpeechResources->unk_0014[0]); PutWindowTilemap(sOakSpeechResources->unk_0014[0]);
FillWindowPixelBuffer(sOakSpeechResources->unk_0014[0], 0x00); FillWindowPixelBuffer(sOakSpeechResources->unk_0014[0], 0x00);
@@ -592,7 +592,7 @@ static void Task_OakSpeech4(u8 taskId)
} }
else else
{ {
PrintTextOnRightSnappedWindow(gText_ABUTTONNext_BBUTTONBack, 0, 1); TopBarWindowPrintString(gText_ABUTTONNext_BBUTTONBack, 0, 1);
for (i = 0; i < 3; i++) for (i = 0; i < 3; i++)
{ {
sOakSpeechResources->unk_0014[i] = AddWindow(&sHelpDocsWindowTemplatePtrs[sOakSpeechResources->unk_0012][i]); sOakSpeechResources->unk_0014[i] = AddWindow(&sHelpDocsWindowTemplatePtrs[sOakSpeechResources->unk_0012][i]);
@@ -716,8 +716,8 @@ static void Task_OakSpeech6(u8 taskId)
else else
{ {
PlayBGM(BGM_FRLG_GAME_EXPLANATION_MIDDLE); PlayBGM(BGM_FRLG_GAME_EXPLANATION_MIDDLE);
sub_810F71C(); ClearTopBarWindow();
PrintTextOnRightSnappedWindow(gText_ABUTTONNext, 0, 1); TopBarWindowPrintString(gText_ABUTTONNext, 0, 1);
sOakSpeechResources->unk_0008 = MallocAndDecompress(sNewGameAdventureIntroTilemap, &sp14); sOakSpeechResources->unk_0008 = MallocAndDecompress(sNewGameAdventureIntroTilemap, &sp14);
CopyToBgTilemapBufferRect(1, sOakSpeechResources->unk_0008, 0, 2, 30, 19); CopyToBgTilemapBufferRect(1, sOakSpeechResources->unk_0008, 0, 2, 30, 19);
CopyBgTilemapBufferToVram(1); CopyBgTilemapBufferToVram(1);
@@ -793,13 +793,13 @@ static void Task_OakSpeech7(u8 taskId)
AddTextPrinterParameterized4(data[14], 2, 3, 5, 1, 0, &sTextColor_OakSpeech, 0, sNewGameAdventureIntroTextPointers[sOakSpeechResources->unk_0012]); AddTextPrinterParameterized4(data[14], 2, 3, 5, 1, 0, &sTextColor_OakSpeech, 0, sNewGameAdventureIntroTextPointers[sOakSpeechResources->unk_0012]);
if (sOakSpeechResources->unk_0012 == 0) if (sOakSpeechResources->unk_0012 == 0)
{ {
sub_810F71C(); ClearTopBarWindow();
PrintTextOnRightSnappedWindow(gText_ABUTTONNext, 0, 1); TopBarWindowPrintString(gText_ABUTTONNext, 0, 1);
} }
else else
{ {
sub_810F71C(); ClearTopBarWindow();
PrintTextOnRightSnappedWindow(gText_ABUTTONNext_BBUTTONBack, 0, 1); TopBarWindowPrintString(gText_ABUTTONNext_BBUTTONBack, 0, 1);
} }
gMain.state++; gMain.state++;
} }
@@ -846,7 +846,7 @@ static void Task_OakSpeech8(u8 taskId)
if (!gPaletteFade.active) if (!gPaletteFade.active)
{ {
sub_810F740(); DestroyTopBarWindow();
FillWindowPixelBuffer(data[14], 0x00); FillWindowPixelBuffer(data[14], 0x00);
ClearWindowTilemap(data[14]); ClearWindowTilemap(data[14]);
CopyWindowToVram(data[14], 3); CopyWindowToVram(data[14], 3);
@@ -1054,7 +1054,7 @@ static void Task_OakSpeech19(u8 taskId)
{ {
gTasks[taskId].data[13] = AddWindow(&sNewGameAdventureIntroWindowTemplates[1]); gTasks[taskId].data[13] = AddWindow(&sNewGameAdventureIntroWindowTemplates[1]);
PutWindowTilemap(gTasks[taskId].data[13]); PutWindowTilemap(gTasks[taskId].data[13]);
SetWindowBorderStyle(gTasks[taskId].data[13], 1, GetStdWindowBaseTileNum(), 14); DrawStdFrameWithCustomTileAndPalette(gTasks[taskId].data[13], 1, GetStdWindowBaseTileNum(), 14);
FillWindowPixelBuffer(gTasks[taskId].data[13], 0x11); FillWindowPixelBuffer(gTasks[taskId].data[13], 0x11);
sOakSpeechResources->unk_001C[0] = 1; sOakSpeechResources->unk_001C[0] = 1;
sOakSpeechResources->unk_001C[1] = 2; sOakSpeechResources->unk_001C[1] = 2;
@@ -1064,7 +1064,7 @@ static void Task_OakSpeech19(u8 taskId)
sOakSpeechResources->unk_001C[1] = 2; sOakSpeechResources->unk_001C[1] = 2;
sOakSpeechResources->unk_001C[2] = 3; sOakSpeechResources->unk_001C[2] = 3;
AddTextPrinterParameterized3(gTasks[taskId].data[13], 2, 8, 17, sOakSpeechResources->unk_001C, 0, gText_Girl); AddTextPrinterParameterized3(gTasks[taskId].data[13], 2, 8, 17, sOakSpeechResources->unk_001C, 0, gText_Girl);
ProgramAndPlaceMenuCursorOnWindow(gTasks[taskId].data[13], 2, 0, 1, GetFontAttribute(2, 1) + 2, 2, 0); Menu_InitCursor(gTasks[taskId].data[13], 2, 0, 1, GetFontAttribute(2, 1) + 2, 2, 0);
CopyWindowToVram(gTasks[taskId].data[13], 3); CopyWindowToVram(gTasks[taskId].data[13], 3);
gTasks[taskId].func = Task_OakSpeech20; gTasks[taskId].func = Task_OakSpeech20;
} }
@@ -1072,7 +1072,7 @@ static void Task_OakSpeech19(u8 taskId)
static void Task_OakSpeech20(u8 taskId) static void Task_OakSpeech20(u8 taskId)
{ {
s8 input = ProcessMenuInputNoWrapAround(); s8 input = Menu_ProcessInputNoWrapAround();
switch (input) switch (input)
{ {
case 0: case 0:
@@ -1092,7 +1092,7 @@ static void Task_OakSpeech20(u8 taskId)
static void Task_OakSpeech21(u8 taskId) static void Task_OakSpeech21(u8 taskId)
{ {
s16 * data = gTasks[taskId].data; s16 * data = gTasks[taskId].data;
ClearMenuWindow(data[13], 1); ClearStdWindowAndFrameToTransparent(data[13], 1);
RemoveWindow(data[13]); RemoveWindow(data[13]);
data[13] = 0; data[13] = 0;
ClearDialogWindowAndFrame(0, 1); ClearDialogWindowAndFrame(0, 1);
@@ -1176,7 +1176,7 @@ static void Task_OakSpeech28(u8 taskId)
static void Task_OakSpeech29(u8 taskId) static void Task_OakSpeech29(u8 taskId)
{ {
s16 * data = gTasks[taskId].data; s16 * data = gTasks[taskId].data;
s8 input = ProcessMenuInput(); s8 input = Menu_ProcessInput();
switch (input) switch (input)
{ {
case 1: case 1:
@@ -1184,7 +1184,7 @@ static void Task_OakSpeech29(u8 taskId)
case 3: case 3:
case 4: case 4:
PlaySE(SE_SELECT); PlaySE(SE_SELECT);
ClearMenuWindow(data[13], TRUE); ClearStdWindowAndFrameToTransparent(data[13], TRUE);
RemoveWindow(data[13]); RemoveWindow(data[13]);
GetDefaultName(sOakSpeechResources->unk_0010, input - 1); GetDefaultName(sOakSpeechResources->unk_0010, input - 1);
data[15] = 1; data[15] = 1;
@@ -1211,7 +1211,7 @@ static void Task_OakSpeech25(u8 taskId)
} }
else else
{ {
ClearMenuWindow(gTasks[taskId].data[13], 1); ClearStdWindowAndFrameToTransparent(gTasks[taskId].data[13], 1);
RemoveWindow(gTasks[taskId].data[13]); RemoveWindow(gTasks[taskId].data[13]);
DoNamingScreen(4, gSaveBlock1Ptr->rivalName, 0, 0, 0, CB2_ReturnFromNamingScreen); DoNamingScreen(4, gSaveBlock1Ptr->rivalName, 0, 0, 0, CB2_ReturnFromNamingScreen);
} }
@@ -1850,7 +1850,7 @@ static void PrintNameChoiceOptions(u8 taskId, u8 state)
data[13] = AddWindow(&sNewGameAdventureIntroWindowTemplates[3]); data[13] = AddWindow(&sNewGameAdventureIntroWindowTemplates[3]);
PutWindowTilemap(data[13]); PutWindowTilemap(data[13]);
SetWindowBorderStyle(data[13], 1, GetStdWindowBaseTileNum(), 14); DrawStdFrameWithCustomTileAndPalette(data[13], 1, GetStdWindowBaseTileNum(), 14);
FillWindowPixelBuffer(gTasks[taskId].data[13], 0x11); FillWindowPixelBuffer(gTasks[taskId].data[13], 0x11);
AddTextPrinterParameterized(data[13], 2, gOtherText_NewName, 8, 1, 0, NULL); AddTextPrinterParameterized(data[13], 2, gOtherText_NewName, 8, 1, 0, NULL);
if (state == 0) if (state == 0)
@@ -1861,7 +1861,7 @@ static void PrintNameChoiceOptions(u8 taskId, u8 state)
{ {
AddTextPrinterParameterized(data[13], 2, textPtrs[i], 8, 16 * (i + 1) + 1, 0, NULL); AddTextPrinterParameterized(data[13], 2, textPtrs[i], 8, 16 * (i + 1) + 1, 0, NULL);
} }
ProgramAndPlaceMenuCursorOnWindow(data[13], 2, 0, 1, 16, 5, 0); Menu_InitCursor(data[13], 2, 0, 1, 16, 5, 0);
CopyWindowToVram(data[13], 3); CopyWindowToVram(data[13], 3);
} }
+18 -18
View File
@@ -795,7 +795,7 @@ static void Task_SelectTMAction_FromFieldBag(u8 taskId)
sTMCaseDynamicResources->numMenuActions = NELEMS(sMenuActionIndices_UnionRoom); sTMCaseDynamicResources->numMenuActions = NELEMS(sMenuActionIndices_UnionRoom);
} }
AddItemMenuActionTextPrinters(sTMCaseDynamicResources->contextMenuWindowId, 2, GetMenuCursorDimensionByFont(2, 0), 2, 0, GetFontAttribute(2, 1) + 2, sTMCaseDynamicResources->numMenuActions, sMenuActions_UseGiveExit, sTMCaseDynamicResources->menuActionIndices); AddItemMenuActionTextPrinters(sTMCaseDynamicResources->contextMenuWindowId, 2, GetMenuCursorDimensionByFont(2, 0), 2, 0, GetFontAttribute(2, 1) + 2, sTMCaseDynamicResources->numMenuActions, sMenuActions_UseGiveExit, sTMCaseDynamicResources->menuActionIndices);
ProgramAndPlaceMenuCursorOnWindow(sTMCaseDynamicResources->contextMenuWindowId, 2, 0, 2, GetFontAttribute(2, 1) + 2, sTMCaseDynamicResources->numMenuActions, 0); Menu_InitCursor(sTMCaseDynamicResources->contextMenuWindowId, 2, 0, 2, GetFontAttribute(2, 1) + 2, sTMCaseDynamicResources->numMenuActions, 0);
strbuf = Alloc(256); strbuf = Alloc(256);
GetTMNumberAndMoveString(strbuf, gSpecialVar_ItemId); GetTMNumberAndMoveString(strbuf, gSpecialVar_ItemId);
StringAppend(strbuf, gText_IsSelected); StringAppend(strbuf, gText_IsSelected);
@@ -817,7 +817,7 @@ static void Task_TMContextMenu_HandleInput(u8 taskId)
if (sub_80BF72C() != TRUE) if (sub_80BF72C() != TRUE)
{ {
input = ProcessMenuInputNoWrapAround(); input = Menu_ProcessInputNoWrapAround();
switch (input) switch (input)
{ {
case -1: case -1:
@@ -837,7 +837,7 @@ static void Task_TMContextMenu_HandleInput(u8 taskId)
static void TMHMContextMenuAction_Use(u8 taskId) static void TMHMContextMenuAction_Use(u8 taskId)
{ {
RemoveTMContextMenu(&sTMCaseDynamicResources->contextMenuWindowId); RemoveTMContextMenu(&sTMCaseDynamicResources->contextMenuWindowId);
ClearMenuWindow(2, 0); ClearStdWindowAndFrameToTransparent(2, 0);
ClearWindowTilemap(2); ClearWindowTilemap(2);
PutWindowTilemap(0); PutWindowTilemap(0);
ScheduleBgCopyTilemapToVram(0); ScheduleBgCopyTilemapToVram(0);
@@ -859,7 +859,7 @@ static void TMHMContextMenuAction_Give(u8 taskId)
s16 * data = gTasks[taskId].data; s16 * data = gTasks[taskId].data;
u16 itemId = BagGetItemIdByPocketPosition(POCKET_TM_CASE, data[1]); u16 itemId = BagGetItemIdByPocketPosition(POCKET_TM_CASE, data[1]);
RemoveTMContextMenu(&sTMCaseDynamicResources->contextMenuWindowId); RemoveTMContextMenu(&sTMCaseDynamicResources->contextMenuWindowId);
ClearMenuWindow(2, 0); ClearStdWindowAndFrameToTransparent(2, 0);
ClearWindowTilemap(2); ClearWindowTilemap(2);
PutWindowTilemap(1); PutWindowTilemap(1);
PutWindowTilemap(4); PutWindowTilemap(4);
@@ -912,7 +912,7 @@ static void Subtask_CloseContextMenuAndReturnToMain(u8 taskId)
DestroyListMenuTask(data[0], &sTMCaseStaticResources.scrollOffset, &sTMCaseStaticResources.selectedRow); DestroyListMenuTask(data[0], &sTMCaseStaticResources.scrollOffset, &sTMCaseStaticResources.selectedRow);
data[0] = ListMenuInit(&gMultiuseListMenuTemplate, sTMCaseStaticResources.scrollOffset, sTMCaseStaticResources.selectedRow); data[0] = ListMenuInit(&gMultiuseListMenuTemplate, sTMCaseStaticResources.scrollOffset, sTMCaseStaticResources.selectedRow);
PrintListMenuCursorByID_WithColorIdx(data[0], 1); PrintListMenuCursorByID_WithColorIdx(data[0], 1);
ClearMenuWindow_BorderThickness2(6, 0); ClearDialogWindowAndFrameToTransparent(6, 0);
ClearWindowTilemap(6); ClearWindowTilemap(6);
PutWindowTilemap(1); PutWindowTilemap(1);
PutWindowTilemap(4); PutWindowTilemap(4);
@@ -927,7 +927,7 @@ static void TMHMContextMenuAction_Exit(u8 taskId)
s16 * data = gTasks[taskId].data; s16 * data = gTasks[taskId].data;
RemoveTMContextMenu(&sTMCaseDynamicResources->contextMenuWindowId); RemoveTMContextMenu(&sTMCaseDynamicResources->contextMenuWindowId);
ClearMenuWindow(2, 0); ClearStdWindowAndFrameToTransparent(2, 0);
ClearWindowTilemap(2); ClearWindowTilemap(2);
PutWindowTilemap(0); PutWindowTilemap(0);
PrintListMenuCursorByID_WithColorIdx(data[0], 1); PrintListMenuCursorByID_WithColorIdx(data[0], 1);
@@ -1016,8 +1016,8 @@ static void Task_SaleOfTMsCancelled(u8 taskId)
{ {
s16 * data = gTasks[taskId].data; s16 * data = gTasks[taskId].data;
ClearMenuWindow(8, 0); ClearStdWindowAndFrameToTransparent(8, 0);
ClearMenuWindow_BorderThickness2(6, 0); ClearDialogWindowAndFrameToTransparent(6, 0);
PutWindowTilemap(0); PutWindowTilemap(0);
PutWindowTilemap(1); PutWindowTilemap(1);
PutWindowTilemap(3); PutWindowTilemap(3);
@@ -1065,7 +1065,7 @@ static void Task_QuantitySelect_HandleInput(u8 taskId)
else if (JOY_NEW(A_BUTTON)) else if (JOY_NEW(A_BUTTON))
{ {
PlaySE(SE_SELECT); PlaySE(SE_SELECT);
ClearMenuWindow(7, 0); ClearStdWindowAndFrameToTransparent(7, 0);
ScheduleBgCopyTilemapToVram(0); ScheduleBgCopyTilemapToVram(0);
ScheduleBgCopyTilemapToVram(1); ScheduleBgCopyTilemapToVram(1);
RemoveTMCaseScrollIndicatorArrowPair(); RemoveTMCaseScrollIndicatorArrowPair();
@@ -1074,9 +1074,9 @@ static void Task_QuantitySelect_HandleInput(u8 taskId)
else if (JOY_NEW(B_BUTTON)) else if (JOY_NEW(B_BUTTON))
{ {
PlaySE(SE_SELECT); PlaySE(SE_SELECT);
ClearMenuWindow(7, 0); ClearStdWindowAndFrameToTransparent(7, 0);
ClearMenuWindow(8, 0); ClearStdWindowAndFrameToTransparent(8, 0);
ClearMenuWindow_BorderThickness2(6, 0); ClearDialogWindowAndFrameToTransparent(6, 0);
PutWindowTilemap(3); PutWindowTilemap(3);
PutWindowTilemap(0); PutWindowTilemap(0);
PutWindowTilemap(1); PutWindowTilemap(1);
@@ -1123,8 +1123,8 @@ static void Task_AfterSale_ReturnToList(u8 taskId)
if (JOY_NEW(A_BUTTON) || JOY_NEW(B_BUTTON)) if (JOY_NEW(A_BUTTON) || JOY_NEW(B_BUTTON))
{ {
PlaySE(SE_SELECT); PlaySE(SE_SELECT);
ClearMenuWindow(8, 0); ClearStdWindowAndFrameToTransparent(8, 0);
ClearMenuWindow_BorderThickness2(6, 0); ClearDialogWindowAndFrameToTransparent(6, 0);
PutWindowTilemap(1); PutWindowTilemap(1);
PutWindowTilemap(3); PutWindowTilemap(3);
PutWindowTilemap(4); PutWindowTilemap(4);
@@ -1249,7 +1249,7 @@ static void Task_TMCaseDude_Playback(u8 taskId)
{ {
FillBG2RowWithPalette_2timesNplus1(0); FillBG2RowWithPalette_2timesNplus1(0);
BeginNormalPaletteFade(0x00000400, 0, 6, 0, 0); BeginNormalPaletteFade(0x00000400, 0, 6, 0, 0);
ClearMenuWindow_BorderThickness2(6, 0); ClearDialogWindowAndFrameToTransparent(6, 0);
ScheduleBgCopyTilemapToVram(1); ScheduleBgCopyTilemapToVram(1);
data[8]++; data[8]++;
} }
@@ -1322,12 +1322,12 @@ static void AddTextPrinterParameterized_ColorByIndex(u8 windowId, u8 fontId, con
static void TMCase_SetWindowBorder1(u8 windowId) static void TMCase_SetWindowBorder1(u8 windowId)
{ {
SetWindowBorderStyle(windowId, FALSE, 0x5B, 0x0E); DrawStdFrameWithCustomTileAndPalette(windowId, FALSE, 0x5B, 0x0E);
} }
static void TMCase_SetWindowBorder2(u8 windowId) static void TMCase_SetWindowBorder2(u8 windowId)
{ {
SetWindowBorderStyle(windowId, FALSE, 0x78, 0x0D); DrawStdFrameWithCustomTileAndPalette(windowId, FALSE, 0x78, 0x0D);
} }
static void TMCase_PrintMessageWithFollowupTask(u8 taskId, u8 windowId, const u8 * str, TaskFunc func) static void TMCase_PrintMessageWithFollowupTask(u8 taskId, u8 windowId, const u8 * str, TaskFunc func)
@@ -1420,7 +1420,7 @@ static u8 AddTMContextMenu(u8 * a0, u8 a1)
static void RemoveTMContextMenu(u8 * a0) static void RemoveTMContextMenu(u8 * a0)
{ {
ClearMenuWindow(*a0, FALSE); ClearStdWindowAndFrameToTransparent(*a0, FALSE);
ClearWindowTilemap(*a0); ClearWindowTilemap(*a0);
RemoveWindow(*a0); RemoveWindow(*a0);
ScheduleBgCopyTilemapToVram(0); ScheduleBgCopyTilemapToVram(0);
+1 -1
View File
@@ -1299,7 +1299,7 @@ void sub_815E720(void)
void sub_815E88C(void) void sub_815E88C(void)
{ {
u8 windowId = VarGet(VAR_0x4001); u8 windowId = VarGet(VAR_0x4001);
ClearMenuWindow(windowId, TRUE); ClearStdWindowAndFrameToTransparent(windowId, TRUE);
RemoveWindow(windowId); RemoveWindow(windowId);
} }
+1 -15
View File
@@ -1227,21 +1227,7 @@ gUnknown_203ADDC: @ 203ADDC
gUnknown_203ADE0: @ 203ADE0 gUnknown_203ADE0: @ 203ADE0
.space 0x4 .space 0x4
gUnknown_203ADE4: @ 203ADE4 .include "src/menu.o"
.space 0xC
gUnknown_203ADF0: @ 203ADF0
.space 0x2
gUnknown_203ADF2: @ 203ADF2
.space 0x1
gUnknown_203ADF3: @ 203ADF3
.space 0x1
gUnknown_203ADF4: @ 203ADF4
.space 0x4
.include "src/quest_log.o" .include "src/quest_log.o"
gUnknown_203B04C: @ 203B04C gUnknown_203B04C: @ 203B04C