Document list_menu.c and main_menu.c

This commit is contained in:
Diegoisawesome 2018-07-15 04:23:38 -07:00
parent abc1905cab
commit 731d6d59bc
73 changed files with 836 additions and 752 deletions

View File

@ -5988,7 +5988,7 @@ sub_811D0BC: @ 811D0BC
movs r0, 0x1 movs r0, 0x1
movs r1, 0x1 movs r1, 0x1
movs r2, 0xE0 movs r2, 0xE0
bl sub_809882C bl LoadUserWindowBorderGfx
movs r0, 0x1 movs r0, 0x1
movs r1, 0x1 movs r1, 0x1
movs r2, 0xE movs r2, 0xE

View File

@ -912,7 +912,7 @@ _0813839C:
adds r0, r5, 0 adds r0, r5, 0
adds r2, r4, 0 adds r2, r4, 0
mov r3, r12 mov r3, r12
bl SpawnSpecialEventObjectParametrized bl SpawnSpecialEventObjectParameterized
adds r0, r5, 0 adds r0, r5, 0
adds r1, r4, 0 adds r1, r4, 0
adds r2, r6, 0 adds r2, r6, 0
@ -2557,7 +2557,7 @@ SpawnScriptEventObject: @ 8139158
movs r0, 0x7 movs r0, 0x7
movs r1, 0x8 movs r1, 0x8
movs r2, 0x7F movs r2, 0x7F
bl SpawnSpecialEventObjectParametrized bl SpawnSpecialEventObjectParameterized
lsls r0, 24 lsls r0, 24
lsrs r0, 24 lsrs r0, 24
ldr r2, =gEventObjects ldr r2, =gEventObjects

View File

@ -1270,7 +1270,7 @@ _081611D4:
ldrb r0, [r0] ldrb r0, [r0]
cmp r0, 0xFF cmp r0, 0xFF
bne _08161210 bne _08161210
ldr r0, =gUnknown_0203CE8C ldr r0, =gTempScrollArrowTemplate
adds r2, r0, 0 adds r2, r0, 0
ldr r1, =gUnknown_085CEBD0 ldr r1, =gUnknown_085CEBD0
ldm r1!, {r3,r5,r6} ldm r1!, {r3,r5,r6}

View File

@ -856,7 +856,7 @@ sub_8011AFC: @ 8011AFC
bl ResetPaletteFade bl ResetPaletteFade
ldr r0, =sub_8011AE8 ldr r0, =sub_8011AE8
bl SetVBlankCallback bl SetVBlankCallback
bl sub_80093CC bl IsWirelessAdapterConnected
lsls r0, 24 lsls r0, 24
cmp r0, 0 cmp r0, 0
beq _08011B70 beq _08011B70

View File

@ -4396,7 +4396,7 @@ _081B23E8:
movs r0, 0 movs r0, 0
movs r1, 0x4F movs r1, 0x4F
movs r2, 0xD0 movs r2, 0xD0
bl sub_809882C bl LoadUserWindowBorderGfx
bl GetOverworldTextboxPalettePtr bl GetOverworldTextboxPalettePtr
movs r1, 0xE0 movs r1, 0xE0
movs r2, 0x20 movs r2, 0x20

View File

@ -1837,7 +1837,7 @@ _080C805E:
movs r0, 0x1 movs r0, 0x1
movs r1, 0xB movs r1, 0xB
movs r2, 0xE0 movs r2, 0xE0
bl sub_809882C bl LoadUserWindowBorderGfx
b _080C8198 b _080C8198
.pool .pool
_080C808C: _080C808C:
@ -6712,7 +6712,7 @@ sub_80CAC1C: @ 80CAC1C
movs r0, 0x1 movs r0, 0x1
movs r1, 0x2 movs r1, 0x2
movs r2, 0xD0 movs r2, 0xD0
bl sub_809882C bl LoadUserWindowBorderGfx
movs r0, 0x20 movs r0, 0x20
str r0, [sp] str r0, [sp]
movs r0, 0x14 movs r0, 0x14

View File

@ -2869,7 +2869,7 @@ sub_81C5674: @ 81C5674
movs r1, 0xAC movs r1, 0xAC
movs r2, 0xC movs r2, 0xC
movs r3, 0x94 movs r3, 0x94
bl AddScrollIndicatorArrowPairParametrized bl AddScrollIndicatorArrowPairParameterized
ldr r1, [r4] ldr r1, [r4]
ldr r2, =0x00000816 ldr r2, =0x00000816
adds r1, r2 adds r1, r2
@ -4868,7 +4868,7 @@ sub_81C67CC: @ 81C67CC
ldrb r0, [r5] ldrb r0, [r5]
movs r1, 0x10 movs r1, 0x10
movs r2, 0x1 movs r2, 0x1
bl sub_81AF15C bl ListMenuSetUnkIndicatorsStructField
ldr r0, =gSaveBlock2Ptr ldr r0, =gSaveBlock2Ptr
ldr r3, [r0] ldr r3, [r0]
movs r0, 0x2 movs r0, 0x2
@ -5293,7 +5293,7 @@ sub_81C6BD8: @ 81C6BD8
movs r0, 0 movs r0, 0
movs r1, 0x1 movs r1, 0x1
movs r2, 0xE0 movs r2, 0xE0
bl sub_809882C bl LoadUserWindowBorderGfx
movs r0, 0 movs r0, 0
movs r1, 0xA movs r1, 0xA
movs r2, 0xD0 movs r2, 0xD0

View File

@ -10101,7 +10101,7 @@ sub_81CC09C: @ 81CC09C
ldrb r0, [r4, 0x14] ldrb r0, [r4, 0x14]
movs r1, 0x1 movs r1, 0x1
movs r2, 0x40 movs r2, 0x40
bl sub_809882C bl LoadUserWindowBorderGfx
ldrb r0, [r4, 0x14] ldrb r0, [r4, 0x14]
movs r1, 0x1 movs r1, 0x1
movs r2, 0x4 movs r2, 0x4
@ -21001,7 +21001,7 @@ sub_81D1E90: @ 81D1E90
movs r1, 0xC8 movs r1, 0xC8
movs r2, 0xC movs r2, 0xC
movs r3, 0x94 movs r3, 0x94
bl AddScrollIndicatorArrowPairParametrized bl AddScrollIndicatorArrowPairParameterized
strb r0, [r4, 0x9] strb r0, [r4, 0x9]
add sp, 0x10 add sp, 0x10
pop {r4} pop {r4}
@ -22282,7 +22282,7 @@ sub_81D2824: @ 81D2824
movs r0, 0 movs r0, 0
movs r1, 0x1 movs r1, 0x1
movs r2, 0xE0 movs r2, 0xE0
bl sub_809882C bl LoadUserWindowBorderGfx
ldr r0, =gUnknown_0860F074 ldr r0, =gUnknown_0860F074
movs r1, 0xF0 movs r1, 0xF0
movs r2, 0x20 movs r2, 0x20

View File

@ -679,7 +679,7 @@ _08012B3C:
bl sub_8013398 bl sub_8013398
strb r0, [r6, 0x13] strb r0, [r6, 0x13]
ldrb r0, [r6, 0x12] ldrb r0, [r6, 0x12]
bl sub_81AE70C bl RedrawListMenu
b _08012E5C b _08012E5C
.pool .pool
_08012B54: _08012B54:
@ -837,7 +837,7 @@ _08012C5C:
movs r0, 0 movs r0, 0
strb r0, [r1, 0x1B] strb r0, [r1, 0x1B]
ldrb r0, [r6, 0x12] ldrb r0, [r6, 0x12]
bl sub_81AE70C bl RedrawListMenu
ldrb r0, [r6, 0x13] ldrb r0, [r6, 0x13]
adds r0, 0x1 adds r0, 0x1
strb r0, [r6, 0x13] strb r0, [r6, 0x13]
@ -908,7 +908,7 @@ _08012D04:
ldr r0, [r6] ldr r0, [r6]
bl sub_8013398 bl sub_8013398
ldrb r0, [r6, 0x12] ldrb r0, [r6, 0x12]
bl sub_81AE70C bl RedrawListMenu
_08012D40: _08012D40:
movs r0, 0x4 movs r0, 0x4
strb r0, [r6, 0xC] strb r0, [r6, 0xC]
@ -1459,7 +1459,7 @@ _08013228:
movs r0, 0x2 movs r0, 0x2
bl PlaySE bl PlaySE
ldrb r0, [r4, 0x12] ldrb r0, [r4, 0x12]
bl sub_81AE70C bl RedrawListMenu
ldr r0, =gStringVar2 ldr r0, =gStringVar2
ldrb r2, [r4, 0x13] ldrb r2, [r4, 0x13]
lsls r2, 5 lsls r2, 5
@ -1478,7 +1478,7 @@ _0801325C:
movs r1, 0 movs r1, 0
bl sub_8011A64 bl sub_8011A64
ldrb r0, [r4, 0x12] ldrb r0, [r4, 0x12]
bl sub_81AE70C bl RedrawListMenu
strb r5, [r4, 0xC] strb r5, [r4, 0xC]
movs r0, 0x1 movs r0, 0x1
b _08013272 b _08013272
@ -2373,7 +2373,7 @@ _08013A70:
strb r0, [r6, 0x8] strb r0, [r6, 0x8]
_08013A72: _08013A72:
ldrb r0, [r6, 0xE] ldrb r0, [r6, 0xE]
bl sub_81AE70C bl RedrawListMenu
b _08013B82 b _08013B82
_08013A7A: _08013A7A:
bl sub_8011A74 bl sub_8011A74
@ -2542,7 +2542,7 @@ sub_8013BD8: @ 8013BD8
movs r1, 0 movs r1, 0
bl CreateWirelessStatusIndicatorSprite bl CreateWirelessStatusIndicatorSprite
ldrb r0, [r4, 0xE] ldrb r0, [r4, 0xE]
bl sub_81AE70C bl RedrawListMenu
ldr r0, =gStringVar1 ldr r0, =gStringVar1
ldrb r2, [r4, 0xF] ldrb r2, [r4, 0xF]
lsls r2, 5 lsls r2, 5
@ -4281,7 +4281,7 @@ _08014C34:
bl sub_8013398 bl sub_8013398
strb r0, [r5, 0x13] strb r0, [r5, 0x13]
ldrb r0, [r5, 0x12] ldrb r0, [r5, 0x12]
bl sub_81AE70C bl RedrawListMenu
_08014C42: _08014C42:
movs r0, 0x2 movs r0, 0x2
strb r0, [r5, 0xC] strb r0, [r5, 0xC]
@ -4326,7 +4326,7 @@ _08014C82:
adds r1, r0 adds r1, r0
strb r4, [r1, 0x1B] strb r4, [r1, 0x1B]
ldrb r0, [r5, 0x12] ldrb r0, [r5, 0x12]
bl sub_81AE70C bl RedrawListMenu
movs r0, 0x5 movs r0, 0x5
strb r0, [r5, 0x19] strb r0, [r5, 0x19]
ldrb r1, [r5, 0x13] ldrb r1, [r5, 0x13]
@ -4396,7 +4396,7 @@ _08014CF2:
movs r0, 0 movs r0, 0
strb r0, [r1, 0x1B] strb r0, [r1, 0x1B]
ldrb r0, [r5, 0x12] ldrb r0, [r5, 0x12]
bl sub_81AE70C bl RedrawListMenu
ldrb r0, [r5, 0x13] ldrb r0, [r5, 0x13]
adds r0, 0x1 adds r0, 0x1
strb r0, [r5, 0x13] strb r0, [r5, 0x13]
@ -4441,7 +4441,7 @@ _08014D64:
ldr r0, [r5] ldr r0, [r5]
bl sub_8013398 bl sub_8013398
ldrb r0, [r5, 0x12] ldrb r0, [r5, 0x12]
bl sub_81AE70C bl RedrawListMenu
movs r0, 0x2 movs r0, 0x2
strb r0, [r5, 0xC] strb r0, [r5, 0xC]
_08014DA4: _08014DA4:
@ -4784,7 +4784,7 @@ _080150B8:
bl PlaySE bl PlaySE
_080150CE: _080150CE:
ldrb r0, [r7, 0xE] ldrb r0, [r7, 0xE]
bl sub_81AE70C bl RedrawListMenu
b _080152A0 b _080152A0
_080150D6: _080150D6:
ldrb r0, [r7, 0xE] ldrb r0, [r7, 0xE]
@ -4818,7 +4818,7 @@ _080150D6:
movs r1, 0 movs r1, 0
bl CreateWirelessStatusIndicatorSprite bl CreateWirelessStatusIndicatorSprite
ldrb r0, [r7, 0xE] ldrb r0, [r7, 0xE]
bl sub_81AE70C bl RedrawListMenu
ldr r0, =gStringVar1 ldr r0, =gStringVar1
ldrb r2, [r7, 0xF] ldrb r2, [r7, 0xF]
lsls r2, 5 lsls r2, 5
@ -5152,7 +5152,7 @@ _08015436:
b _08015604 b _08015604
_0801543E: _0801543E:
ldrb r0, [r5, 0xE] ldrb r0, [r5, 0xE]
bl sub_81AE70C bl RedrawListMenu
b _08015604 b _08015604
_08015446: _08015446:
ldrb r0, [r5, 0x13] ldrb r0, [r5, 0x13]
@ -10972,7 +10972,7 @@ _08018574:
movs r0, 0 movs r0, 0
movs r1, 0xA movs r1, 0xA
movs r2, 0xE0 movs r2, 0xE0
bl sub_809882C bl LoadUserWindowBorderGfx
movs r0, 0 movs r0, 0
movs r1, 0x1 movs r1, 0x1
movs r2, 0xF0 movs r2, 0xF0
@ -15907,7 +15907,7 @@ _0801AD8C:
movs r0, 0 movs r0, 0
movs r1, 0x1 movs r1, 0x1
movs r2, 0xD0 movs r2, 0xD0
bl sub_809882C bl LoadUserWindowBorderGfx
movs r0, 0 movs r0, 0
movs r1, 0x1 movs r1, 0x1
movs r2, 0xD0 movs r2, 0xD0
@ -27081,7 +27081,7 @@ sub_8020740: @ 8020740
movs r0, 0x3 movs r0, 0x3
movs r1, 0x1 movs r1, 0x1
movs r2, 0xD0 movs r2, 0xD0
bl sub_809882C bl LoadUserWindowBorderGfx
movs r0, 0x3 movs r0, 0x3
movs r1, 0xA movs r1, 0xA
movs r2, 0x20 movs r2, 0x20

View File

@ -877,7 +877,7 @@ BuyMenuAddScrollIndicatorArrows: @ 80E01C8
movs r1, 0xAC movs r1, 0xAC
movs r2, 0xC movs r2, 0xC
movs r3, 0x94 movs r3, 0x94
bl AddScrollIndicatorArrowPairParametrized bl AddScrollIndicatorArrowPairParameterized
ldr r1, [r5] ldr r1, [r5]
adds r1, r4 adds r1, r4
strb r0, [r1] strb r0, [r1]
@ -1157,7 +1157,7 @@ BuyMenuInitWindows: @ 80E0468
movs r0, 0 movs r0, 0
movs r1, 0x1 movs r1, 0x1
movs r2, 0xD0 movs r2, 0xD0
bl sub_809882C bl LoadUserWindowBorderGfx
movs r0, 0 movs r0, 0
movs r1, 0xA movs r1, 0xA
movs r2, 0xE0 movs r2, 0xE0

View File

@ -639,7 +639,7 @@ sub_812AA48: @ 812AA48
lsls r1, 2 lsls r1, 2
movs r0, 0 movs r0, 0
movs r2, 0xE0 movs r2, 0xE0
bl sub_809882C bl LoadUserWindowBorderGfx
movs r0, 0 movs r0, 0
bl PutWindowTilemap bl PutWindowTilemap
pop {r0} pop {r0}

View File

@ -245,7 +245,7 @@ _08077310:
movs r0, 0x2 movs r0, 0x2
movs r1, 0x1 movs r1, 0x1
movs r2, 0xE0 movs r2, 0xE0
bl sub_809882C bl LoadUserWindowBorderGfx
bl LoadMonIconPalettes bl LoadMonIconPalettes
ldr r2, =gUnknown_0203229C ldr r2, =gUnknown_0203229C
ldr r0, [r2] ldr r0, [r2]

View File

@ -1,2 +1,2 @@
gUnknown_03006300 gListMenuOverride
gMultiuseListMenuTemplate gMultiuseListMenuTemplate

View File

@ -551,7 +551,7 @@ BattleFrontier_BattleTowerLobby_EventScript_23EE68:: @ 823EE68
compare VAR_RESULT, 0 compare VAR_RESULT, 0
goto_eq BattleFrontier_BattleTowerLobby_EventScript_23F0D0 goto_eq BattleFrontier_BattleTowerLobby_EventScript_23F0D0
incrementgamestat 30 incrementgamestat 30
specialvar VAR_RESULT, sub_80093CC specialvar VAR_RESULT, IsWirelessAdapterConnected
compare VAR_RESULT, 1 compare VAR_RESULT, 1
goto_eq BattleFrontier_BattleTowerLobby_EventScript_23F3E8 goto_eq BattleFrontier_BattleTowerLobby_EventScript_23F3E8
goto BattleFrontier_BattleTowerLobby_EventScript_23F2C5 goto BattleFrontier_BattleTowerLobby_EventScript_23F2C5

View File

@ -649,7 +649,7 @@ LilycoveCity_ContestLobby_EventScript_21A856:: @ 821A856
goto_eq LilycoveCity_ContestLobby_EventScript_21A97F goto_eq LilycoveCity_ContestLobby_EventScript_21A97F
message LilycoveCity_ContestLobby_Text_27C8FD message LilycoveCity_ContestLobby_Text_27C8FD
waitmessage waitmessage
specialvar VAR_TEMP_D, sub_80093CC specialvar VAR_TEMP_D, IsWirelessAdapterConnected
multichoice 0, 0, 85, 0 multichoice 0, 0, 85, 0
switch VAR_RESULT switch VAR_RESULT
case 0, LilycoveCity_ContestLobby_EventScript_21A8BB case 0, LilycoveCity_ContestLobby_EventScript_21A8BB

View File

@ -1315,7 +1315,7 @@ gUnknown_082F0184:: @ 82F0184
.align 2 .align 2
gUnknown_082F0204:: @ 82F0204 struct ListMenuTemplate gUnknown_082F0204:: @ 82F0204 struct ListMenuTemplate
.4byte gUnknown_082F0184 .4byte gUnknown_082F0184
.4byte sub_81AF078 .4byte ListMenuDefaultCursorMoveFunc
.4byte sub_8013DF4 .4byte sub_8013DF4
.byte 0x10, 0x00, 0x05, 0x00, 0x00, 0x00, 0x08, 0x00 .byte 0x10, 0x00, 0x05, 0x00, 0x00, 0x00, 0x08, 0x00
.byte 0x21, 0x31, 0x40, 0x01 .byte 0x21, 0x31, 0x40, 0x01
@ -1351,7 +1351,7 @@ gUnknown_082F0264:: @ 82F0264
.align 2 .align 2
gUnknown_082F027C:: @ 82F027C gUnknown_082F027C:: @ 82F027C
.4byte gUnknown_082F0264 .4byte gUnknown_082F0264
.4byte sub_81AF078 .4byte ListMenuDefaultCursorMoveFunc
.4byte NULL .4byte NULL
.byte 0x03, 0x00, 0x03, 0x00, 0x00, 0x00, 0x08, 0x00 .byte 0x03, 0x00, 0x03, 0x00, 0x00, 0x00, 0x08, 0x00
.byte 0x21, 0x31, 0x00, 0x01 .byte 0x21, 0x31, 0x00, 0x01
@ -1384,7 +1384,7 @@ gUnknown_082F029C:: @ 82F029C
.align 2 .align 2
gUnknown_082F032C:: @ 82F032C gUnknown_082F032C:: @ 82F032C
.4byte gUnknown_082F029C .4byte gUnknown_082F029C
.4byte sub_81AF078 .4byte ListMenuDefaultCursorMoveFunc
.4byte NULL .4byte NULL
.byte 0x12, 0x00, 0x06, 0x00, 0x00, 0x00, 0x08, 0x00 .byte 0x12, 0x00, 0x06, 0x00, 0x00, 0x00, 0x08, 0x00
.byte 0x21, 0x31, 0x00, 0x01 .byte 0x21, 0x31, 0x00, 0x01
@ -1413,7 +1413,7 @@ gUnknown_082F0354:: @ 82F0354
.align 2 .align 2
gUnknown_082F03A4:: @ 82F03A4 gUnknown_082F03A4:: @ 82F03A4
.4byte gUnknown_082F0354 .4byte gUnknown_082F0354
.4byte sub_81AF078 .4byte ListMenuDefaultCursorMoveFunc
.4byte sub_8017BE8 .4byte sub_8017BE8
.byte 0x0a, 0x00, 0x06, 0x00, 0x00, 0x00, 0x08, 0x00 .byte 0x0a, 0x00, 0x06, 0x00, 0x00, 0x00, 0x08, 0x00
.byte 0xe1, 0xdf, 0x00, 0x01 .byte 0xe1, 0xdf, 0x00, 0x01
@ -1442,7 +1442,7 @@ gUnknown_082F03C4:: @ 82F03C4
.align 2 .align 2
.4byte gUnknown_082F03C4 .4byte gUnknown_082F03C4
.4byte sub_81AF078 .4byte ListMenuDefaultCursorMoveFunc
.4byte nullsub_14 .4byte nullsub_14
.byte 0x10, 0x00, 0x04, 0x00, 0x00, 0x00, 0x08, 0x00 .byte 0x10, 0x00, 0x04, 0x00, 0x00, 0x00, 0x08, 0x00
.byte 0x21, 0x31, 0x40, 0x01 .byte 0x21, 0x31, 0x40, 0x01
@ -1637,7 +1637,7 @@ gUnknown_082F0620:: @ 82F0620
.align 2 .align 2
gUnknown_082F0638:: @ 82F0638 struct ListMenuTemplate gUnknown_082F0638:: @ 82F0638 struct ListMenuTemplate
.4byte NULL .4byte NULL
.4byte sub_81AF078 .4byte ListMenuDefaultCursorMoveFunc
.4byte NULL .4byte NULL
.byte 0x03, 0x00, 0x03, 0x00, 0x00, 0x00, 0x08, 0x00 .byte 0x03, 0x00, 0x03, 0x00, 0x00, 0x00, 0x08, 0x00
.byte 0x21, 0x31, 0x00, 0x01 .byte 0x21, 0x31, 0x00, 0x01
@ -1669,7 +1669,7 @@ gUnknown_082F06A0:: @ 82F06A0
.align 2 .align 2
gUnknown_082F06B0:: @ 82F06B0 struct ListMenuTemplate gUnknown_082F06B0:: @ 82F06B0 struct ListMenuTemplate
.4byte gUnknown_082F0650 .4byte gUnknown_082F0650
.4byte sub_81AF078 .4byte ListMenuDefaultCursorMoveFunc
.4byte NULL .4byte NULL
.byte 0x04, 0x00, 0x04, 0x00, 0x00, 0x00, 0x08, 0x00 .byte 0x04, 0x00, 0x04, 0x00, 0x00, 0x00, 0x08, 0x00
.byte 0x21, 0x31, 0x00, 0x01 .byte 0x21, 0x31, 0x00, 0x01
@ -1677,7 +1677,7 @@ gUnknown_082F06B0:: @ 82F06B0 struct ListMenuTemplate
.align 2 .align 2
gUnknown_082F06C8:: @ 82F06C8 gUnknown_082F06C8:: @ 82F06C8
.4byte gUnknown_082F0670 .4byte gUnknown_082F0670
.4byte sub_81AF078 .4byte ListMenuDefaultCursorMoveFunc
.4byte NULL .4byte NULL
.byte 0x03, 0x00, 0x03, 0x00, 0x00, 0x00, 0x08, 0x00 .byte 0x03, 0x00, 0x03, 0x00, 0x00, 0x00, 0x08, 0x00
.byte 0x21, 0x31, 0x00, 0x01 .byte 0x21, 0x31, 0x00, 0x01
@ -1685,7 +1685,7 @@ gUnknown_082F06C8:: @ 82F06C8
.align 2 .align 2
gUnknown_082F06E0:: @ 82F06E0 gUnknown_082F06E0:: @ 82F06E0
.4byte gUnknown_082F0688 .4byte gUnknown_082F0688
.4byte sub_81AF078 .4byte ListMenuDefaultCursorMoveFunc
.4byte NULL .4byte NULL
.byte 0x03, 0x00, 0x03, 0x00, 0x00, 0x00, 0x08, 0x00 .byte 0x03, 0x00, 0x03, 0x00, 0x00, 0x00, 0x08, 0x00
.byte 0x21, 0x31, 0x00, 0x01 .byte 0x21, 0x31, 0x00, 0x01
@ -1693,7 +1693,7 @@ gUnknown_082F06E0:: @ 82F06E0
.align 2 .align 2
gUnknown_082F06F8:: @ 82F06F8 gUnknown_082F06F8:: @ 82F06F8
.4byte gUnknown_082F06A0 .4byte gUnknown_082F06A0
.4byte sub_81AF078 .4byte ListMenuDefaultCursorMoveFunc
.4byte NULL .4byte NULL
.byte 0x02, 0x00, 0x02, 0x00, 0x00, 0x00, 0x08, 0x00 .byte 0x02, 0x00, 0x02, 0x00, 0x00, 0x00, 0x08, 0x00
.byte 0x21, 0x31, 0x00, 0x01 .byte 0x21, 0x31, 0x00, 0x01

View File

@ -999,7 +999,7 @@ OldaleTown_PokemonCenter_2F_EventScript_27751B:: @ 827751B
compare VAR_RESULT, 1 compare VAR_RESULT, 1
goto_eq OldaleTown_PokemonCenter_2F_EventScript_27731B goto_eq OldaleTown_PokemonCenter_2F_EventScript_27731B
copyvar VAR_0x8007, VAR_LAST_TALKED copyvar VAR_0x8007, VAR_LAST_TALKED
specialvar VAR_RESULT, sub_80093CC specialvar VAR_RESULT, IsWirelessAdapterConnected
compare VAR_RESULT, 0 compare VAR_RESULT, 0
goto_eq OldaleTown_PokemonCenter_2F_EventScript_277668 goto_eq OldaleTown_PokemonCenter_2F_EventScript_277668
message OldaleTown_PokemonCenter_2F_Text_27940D message OldaleTown_PokemonCenter_2F_Text_27940D
@ -1108,7 +1108,7 @@ OldaleTown_PokemonCenter_2F_EventScript_2776A4:: @ 82776A4
specialvar VAR_RESULT, sub_813990C specialvar VAR_RESULT, sub_813990C
compare VAR_RESULT, 1 compare VAR_RESULT, 1
goto_eq OldaleTown_PokemonCenter_2F_EventScript_27731B goto_eq OldaleTown_PokemonCenter_2F_EventScript_27731B
specialvar VAR_RESULT, sub_80093CC specialvar VAR_RESULT, IsWirelessAdapterConnected
compare VAR_RESULT, 0 compare VAR_RESULT, 0
goto_eq OldaleTown_PokemonCenter_2F_EventScript_276E13 goto_eq OldaleTown_PokemonCenter_2F_EventScript_276E13
message OldaleTown_PokemonCenter_2F_Text_279013 message OldaleTown_PokemonCenter_2F_Text_279013
@ -1396,7 +1396,7 @@ OldaleTown_PokemonCenter_2F_EventScript_277B8A:: @ 8277B8A
lockall lockall
checkflag FLAG_SYS_POKEDEX_GET checkflag FLAG_SYS_POKEDEX_GET
goto_if 0, OldaleTown_PokemonCenter_2F_EventScript_27733F goto_if 0, OldaleTown_PokemonCenter_2F_EventScript_27733F
specialvar VAR_RESULT, sub_80093CC specialvar VAR_RESULT, IsWirelessAdapterConnected
compare VAR_RESULT, 0 compare VAR_RESULT, 0
goto_eq EventScript_277BB4 goto_eq EventScript_277BB4
fadescreen 1 fadescreen 1
@ -1495,7 +1495,7 @@ MossdeepCity_GameCorner_1F_EventScript_277C91:: @ 8277C91
faceplayer faceplayer
message MossdeepCity_GameCorner_1F_Text_278CEB message MossdeepCity_GameCorner_1F_Text_278CEB
waitmessage waitmessage
specialvar VAR_RESULT, sub_80093CC specialvar VAR_RESULT, IsWirelessAdapterConnected
compare VAR_RESULT, 0 compare VAR_RESULT, 0
goto_eq MossdeepCity_GameCorner_1F_EventScript_277E48 goto_eq MossdeepCity_GameCorner_1F_EventScript_277E48
delay 60 delay 60

View File

@ -594,7 +594,7 @@ LilycoveCity_ContestLobby_EventScript_2940BB:: @ 82940BB
call LilycoveCity_ContestLobby_EventScript_27134F call LilycoveCity_ContestLobby_EventScript_27134F
compare VAR_RESULT, 0 compare VAR_RESULT, 0
goto_eq LilycoveCity_ContestLobby_EventScript_294160 goto_eq LilycoveCity_ContestLobby_EventScript_294160
specialvar VAR_RESULT, sub_80093CC specialvar VAR_RESULT, IsWirelessAdapterConnected
compare VAR_RESULT, 1 compare VAR_RESULT, 1
goto_eq LilycoveCity_ContestLobby_EventScript_2941ED goto_eq LilycoveCity_ContestLobby_EventScript_2941ED
message LilycoveCity_ContestLobby_Text_293955 message LilycoveCity_ContestLobby_Text_293955

View File

@ -423,7 +423,7 @@ gSpecials:: @ 81DBA64
def_special sub_81BE79C def_special sub_81BE79C
def_special sub_81BE7F4 def_special sub_81BE7F4
def_special sub_81398C0 def_special sub_81398C0
def_special sub_80093CC def_special IsWirelessAdapterConnected
def_special BerryBlenderLinkBecomeLeader def_special BerryBlenderLinkBecomeLeader
def_special BerryBlenderLinkJoinGroup def_special BerryBlenderLinkJoinGroup
def_special UnionRoomSpecial def_special UnionRoomSpecial

View File

@ -351,7 +351,7 @@ void TrySpawnEventObjects(s16, s16);
u8 sprite_new(u8, u8, s16, s16, u8, u8); u8 sprite_new(u8, u8, s16, s16, u8, u8);
u8 AddPseudoEventObject(u16, void (*)(struct Sprite *), s16, s16, u8); u8 AddPseudoEventObject(u16, void (*)(struct Sprite *), s16, s16, u8);
u8 show_sprite(u8, u8, u8); u8 show_sprite(u8, u8, u8);
u8 SpawnSpecialEventObjectParametrized(u8, u8, u8, s16, s16, u8); u8 SpawnSpecialEventObjectParameterized(u8, u8, u8, s16, s16, u8);
u8 SpawnSpecialEventObject(struct EventObjectTemplate *); u8 SpawnSpecialEventObject(struct EventObjectTemplate *);
void sub_8093038(s16, s16, s16 *, s16 *); void sub_8093038(s16, s16, s16 *, s16 *);
void CameraObjectReset1(void); void CameraObjectReset1(void);

View File

@ -545,6 +545,35 @@
#define BGCNT_AFF512x512 0x8000 #define BGCNT_AFF512x512 0x8000
#define BGCNT_AFF1024x1024 0xC000 #define BGCNT_AFF1024x1024 0xC000
// WININ/OUT
#define WININ_WIN0_BG0 (1 << 0)
#define WININ_WIN0_BG1 (1 << 1)
#define WININ_WIN0_BG2 (1 << 2)
#define WININ_WIN0_BG3 (1 << 3)
#define WININ_WIN0_OBJ (1 << 4)
#define WININ_WIN0_CLR (1 << 5)
#define WININ_WIN1_BG0 (1 << 8)
#define WININ_WIN1_BG1 (1 << 9)
#define WININ_WIN1_BG2 (1 << 10)
#define WININ_WIN1_BG3 (1 << 11)
#define WININ_WIN1_OBJ (1 << 12)
#define WININ_WIN1_CLR (1 << 13)
#define WINOUT_WIN01_BG0 (1 << 0)
#define WINOUT_WIN01_BG1 (1 << 1)
#define WINOUT_WIN01_BG2 (1 << 2)
#define WINOUT_WIN01_BG3 (1 << 3)
#define WINOUT_WIN01_OBJ (1 << 4)
#define WINOUT_WIN01_CLR (1 << 5)
#define WINOUT_WINOBJ_BG0 (1 << 8)
#define WINOUT_WINOBJ_BG1 (1 << 9)
#define WINOUT_WINOBJ_BG2 (1 << 10)
#define WINOUT_WINOBJ_BG3 (1 << 11)
#define WINOUT_WINOBJ_OBJ (1 << 12)
#define WINOUT_WINOBJ_CLR (1 << 13)
#define WINHV_COORDS(m, n) (((m) << 8) | (n))
// BLDCNT // BLDCNT
// Bits 0-5 select layers for the 1st target // Bits 0-5 select layers for the 1st target
#define BLDCNT_TGT1_BG0 (1 << 0) #define BLDCNT_TGT1_BG0 (1 << 0)

View File

@ -201,7 +201,7 @@ extern u32 gLinkStatus;
void c2_mystery_gift(void); void c2_mystery_gift(void);
void sub_801867C(void); void sub_801867C(void);
bool8 sub_80093CC(void); bool8 IsWirelessAdapterConnected(void);
void Task_DestroySelf(u8 taskId); void Task_DestroySelf(u8 taskId);
void OpenLink(void); void OpenLink(void);
void CloseLink(void); void CloseLink(void);

View File

@ -3,11 +3,19 @@
#define LIST_NOTHING_CHOSEN -1 #define LIST_NOTHING_CHOSEN -1
#define LIST_B_PRESSED -2 #define LIST_B_PRESSED -2
#define LIST_HEADER -3
#define LIST_NO_MULTIPLE_SCROLL 0 #define LIST_NO_MULTIPLE_SCROLL 0
#define LIST_MULTIPLE_SCROLL_DPAD 1 #define LIST_MULTIPLE_SCROLL_DPAD 1
#define LIST_MULTIPLE_SCROLL_L_R 2 #define LIST_MULTIPLE_SCROLL_L_R 2
enum {
SCROLL_ARROW_LEFT,
SCROLL_ARROW_RIGHT,
SCROLL_ARROW_UP,
SCROLL_ARROW_DOWN
};
struct ListMenu; struct ListMenu;
struct ListMenuItem struct ListMenuItem
@ -19,20 +27,20 @@ struct ListMenuItem
struct ListMenuTemplate struct ListMenuTemplate
{ {
const struct ListMenuItem *items; const struct ListMenuItem *items;
void (* moveCursorFunc)(s32, bool8, struct ListMenu *); void (* moveCursorFunc)(s32 itemIndex, bool8 onInit, struct ListMenu *list);
void (* unk_08)(u8 windowId, s32 itemId, u8 y); void (* itemPrintFunc)(u8 windowId, s32 itemId, u8 y);
u16 totalItems; u16 totalItems;
u16 maxShowed; u16 maxShowed;
u8 windowId; u8 windowId;
u8 unk_11; u8 header_X;
u8 unk_12; u8 item_X;
u8 cursor_X; u8 cursor_X;
u8 upText_Y:4; // x1, x2, x4, x8 = xF u8 upText_Y:4; // x1, x2, x4, x8 = xF
u8 cursorPal:4; // x10, x20, x40, x80 = xF0 u8 cursorPal:4; // x10, x20, x40, x80 = xF0
u8 fillValue:4; // x1, x2, x4, x8 = xF u8 fillValue:4; // x1, x2, x4, x8 = xF
u8 cursorShadowPal:4; // x10, x20, x40, x80 = xF0 u8 cursorShadowPal:4; // x10, x20, x40, x80 = xF0
u8 lettersSpacing:3; u8 lettersSpacing:3;
u8 unk_16_3:3; u8 itemVerticalPadding:3;
u8 scrollMultiple:2; // x40, x80 = xC0 u8 scrollMultiple:2; // x40, x80 = xC0
u8 fontId:6; // x1, x2, x4, x8, x10, x20 = x3F u8 fontId:6; // x1, x2, x4, x8, x10, x20 = x3F
u8 cursorKind:2; // x40, x80 u8 cursorKind:2; // x40, x80
@ -45,11 +53,11 @@ struct ListMenu
u16 selectedRow; u16 selectedRow;
u8 unk_1C; u8 unk_1C;
u8 unk_1D; u8 unk_1D;
u8 unk_1E; u8 taskId;
u8 unk_1F; u8 unk_1F;
}; };
struct UnknownListMenuWindowStruct struct ListMenuWindowRect
{ {
u8 x; u8 x;
u8 y; u8 y;
@ -58,16 +66,16 @@ struct UnknownListMenuWindowStruct
u8 palNum; u8 palNum;
}; };
struct ArrowStruct struct ScrollArrowsTemplate
{ {
u8 unk0; u8 firstArrowType;
u8 unk1; u8 firstX;
u8 unk2; u8 firstY;
u8 unk3; u8 secondArrowType;
u8 unk4; u8 secondX;
u8 unk5; u8 secondY;
u16 unk6; u16 fullyUpThreshold;
u16 unk8; u16 fullyDownThreshold;
u16 tileTag; u16 tileTag;
u16 palTag; u16 palTag;
u8 palNum; u8 palNum;
@ -75,36 +83,36 @@ struct ArrowStruct
struct CursorStruct struct CursorStruct
{ {
u8 unk0; u8 left;
u8 unk1; u8 top;
u16 unk2; u16 rowWidth;
u16 unk4; u16 rowHeight;
u16 tileTag; u16 tileTag;
u16 palTag; u16 palTag;
u8 palNum; u8 palNum;
}; };
extern struct ArrowStruct gUnknown_0203CE8C; extern struct ScrollArrowsTemplate gTempScrollArrowTemplate;
extern struct ListMenuTemplate gMultiuseListMenuTemplate; extern struct ListMenuTemplate gMultiuseListMenuTemplate;
s32 DoMysteryGiftListMenu(struct WindowTemplate *windowTemplate, struct ListMenuTemplate *listMenuTemplate, u8 arg2, u16 tileNum, u16 palNum); s32 DoMysteryGiftListMenu(struct WindowTemplate *windowTemplate, struct ListMenuTemplate *listMenuTemplate, u8 arg2, u16 tileNum, u16 palNum);
u8 ListMenuInit(struct ListMenuTemplate *listMenuTemplate, u16 scrollOffset, u16 selectedRow); u8 ListMenuInit(struct ListMenuTemplate *listMenuTemplate, u16 scrollOffset, u16 selectedRow);
u8 ListMenuInitWithWindows(struct ListMenuTemplate *listMenuTemplate, struct UnknownListMenuWindowStruct *arg1, u16 scrollOffset, u16 selectedRow); u8 ListMenuInitInRect(struct ListMenuTemplate *listMenuTemplate, struct ListMenuWindowRect *arg1, u16 scrollOffset, u16 selectedRow);
s32 ListMenuHandleInputGetItemId(u8 listTaskId); s32 ListMenuHandleInputGetItemId(u8 listTaskId);
void DestroyListMenuTask(u8 listTaskId, u16 *scrollOffset, u16 *selectedRow); void DestroyListMenuTask(u8 listTaskId, u16 *scrollOffset, u16 *selectedRow);
void sub_81AE70C(u8 listTaskId); void RedrawListMenu(u8 listTaskId);
void ChangeListMenuPals(u8 listTaskId, u8 cursorPal, u8 fillValue, u8 cursorShadowPal); void ChangeListMenuPals(u8 listTaskId, u8 cursorPal, u8 fillValue, u8 cursorShadowPal);
void ChangeListMenuCoords(u8 listTaskId, u8 x, u8 y); void ChangeListMenuCoords(u8 listTaskId, u8 x, u8 y);
s32 ListMenuTestInput(struct ListMenuTemplate *template, u32 scrollOffset, u32 selectedRow, u16 keys, u16 *newScrollOffset, u16 *newSelectedRow); s32 ListMenuTestInput(struct ListMenuTemplate *template, u32 scrollOffset, u32 selectedRow, u16 keys, u16 *newScrollOffset, u16 *newSelectedRow);
void ListMenuGetCurrentItemArrayId(u8 listTaskId, u16 *arrayId); void ListMenuGetCurrentItemArrayId(u8 listTaskId, u16 *arrayId);
void ListMenuGetScrollAndRow(u8 listTaskId, u16 *scrollOffset, u16 *selectedRow); void ListMenuGetScrollAndRow(u8 listTaskId, u16 *scrollOffset, u16 *selectedRow);
u16 ListMenuGetYCoordForPrintingArrowCursor(u8 listTaskId); u16 ListMenuGetYCoordForPrintingArrowCursor(u8 listTaskId);
void sub_81AF028(u8 cursorPal, u8 fillValue, u8 cursorShadowPal); void ListMenuOverrideSetColors(u8 cursorPal, u8 fillValue, u8 cursorShadowPal);
void sub_81AF078(s32 arg0, u8 arg1, struct ListMenu *list); void ListMenuDefaultCursorMoveFunc(s32 arg0, u8 arg1, struct ListMenu *list);
s32 sub_81AF08C(u8 taskId, u8 field); s32 ListMenuGetUnkIndicatorsStructFields(u8 taskId, u8 field);
void sub_81AF15C(u8 taskId, u8 field, s32 value); void ListMenuSetUnkIndicatorsStructField(u8 taskId, u8 field, s32 value);
u8 AddScrollIndicatorArrowPair(const struct ArrowStruct *arrowInfo, u16 *arg1); u8 AddScrollIndicatorArrowPair(const struct ScrollArrowsTemplate *arrowInfo, u16 *arg1);
u8 AddScrollIndicatorArrowPairParametrized(u32 arg0, s32 arg1, s32 arg2, s32 arg3, s32 arg4, s32 tileTag, s32 palTag, void *arg7); u8 AddScrollIndicatorArrowPairParameterized(u32 arrowType, s32 commonPos, s32 firstPos, s32 secondPos, s32 fullyDownThreshold, s32 tileTag, s32 palTag, u16 *currItemPtr);
void RemoveScrollIndicatorArrowPair(u8 taskId); void RemoveScrollIndicatorArrowPair(u8 taskId);
void Task_ScrollIndicatorArrowPairOnMainMenu(u8 taskId); void Task_ScrollIndicatorArrowPairOnMainMenu(u8 taskId);

View File

@ -24,16 +24,16 @@ struct PaletteFadeControl
u16 y:5; // blend coefficient u16 y:5; // blend coefficient
u16 targetY:5; // target blend coefficient u16 targetY:5; // target blend coefficient
u16 blendColor:15; u16 blendColor:15;
u16 active:1; bool16 active:1;
u16 multipurpose2:6; u16 multipurpose2:6;
u16 yDec:1; // whether blend coefficient is decreasing bool16 yDec:1; // whether blend coefficient is decreasing
u16 bufferTransferDisabled:1; bool16 bufferTransferDisabled:1;
u16 mode:2; u16 mode:2;
u16 shouldResetBlendRegisters:1; bool16 shouldResetBlendRegisters:1;
u16 hardwareFadeFinishing:1; bool16 hardwareFadeFinishing:1;
u16 softwareFadeFinishingCounter:5; u16 softwareFadeFinishingCounter:5;
u16 softwareFadeFinishing:1; bool16 softwareFadeFinishing:1;
u16 objPaletteToggle:1; bool16 objPaletteToggle:1;
u8 deltaY:4; // rate of change of blend coefficient u8 deltaY:4; // rate of change of blend coefficient
}; };

View File

@ -2,6 +2,7 @@
#define GUARD_SPRITE_H #define GUARD_SPRITE_H
#define MAX_SPRITES 64 #define MAX_SPRITES 64
#define SPRITE_INVALID_TAG 0xFFFF
struct SpriteSheet struct SpriteSheet
{ {
@ -186,29 +187,29 @@ struct Sprite
/*0x2A*/ u8 animNum; /*0x2A*/ u8 animNum;
/*0x2B*/ u8 animCmdIndex; /*0x2B*/ u8 animCmdIndex;
/*0x2C*/ u8 animDelayCounter:6; /*0x2C*/ u8 animDelayCounter:6;
u8 animPaused:1; bool8 animPaused:1;
u8 affineAnimPaused:1; bool8 affineAnimPaused:1;
/*0x2D*/ u8 animLoopCounter; /*0x2D*/ u8 animLoopCounter;
// general purpose data fields // general purpose data fields
/*0x2E*/ s16 data[8]; /*0x2E*/ s16 data[8];
/*0x3E*/ u16 inUse:1; //1 /*0x3E*/ bool16 inUse:1; //1
u16 coordOffsetEnabled:1; //2 bool16 coordOffsetEnabled:1; //2
u16 invisible:1; //4 bool16 invisible:1; //4
u16 flags_3:1; //8 bool16 flags_3:1; //8
u16 flags_4:1; //0x10 bool16 flags_4:1; //0x10
u16 flags_5:1; //0x20 bool16 flags_5:1; //0x20
u16 flags_6:1; //0x40 bool16 flags_6:1; //0x40
u16 flags_7:1; //0x80 bool16 flags_7:1; //0x80
/*0x3F*/ u16 hFlip:1; //1 /*0x3F*/ bool16 hFlip:1; //1
u16 vFlip:1; //2 bool16 vFlip:1; //2
u16 animBeginning:1; //4 bool16 animBeginning:1; //4
u16 affineAnimBeginning:1; //8 bool16 affineAnimBeginning:1; //8
u16 animEnded:1; //0x10 bool16 animEnded:1; //0x10
u16 affineAnimEnded:1; //0x20 bool16 affineAnimEnded:1; //0x20
u16 usingSheet:1; //0x40 bool16 usingSheet:1; //0x40
u16 flags_f:1; //0x80 bool16 flags_f:1; //0x80
/*0x40*/ u16 sheetTileStart; /*0x40*/ u16 sheetTileStart;

View File

@ -98,6 +98,17 @@
#define TEXT_SPEED_FF 0xFF #define TEXT_SPEED_FF 0xFF
enum {
FONTATTR_MAX_LETTER_WIDTH,
FONTATTR_MAX_LETTER_HEIGHT,
FONTATTR_LETTER_SPACING,
FONTATTR_LINE_SPACING,
FONTATTR_COLOR_LOWNIBBLE, // dunno what this is yet
FONTATTR_COLOR_FOREGROUND,
FONTATTR_COLOR_BACKGROUND,
FONTATTR_COLOR_SHADOW
};
struct TextPrinterSubStruct struct TextPrinterSubStruct
{ {
u8 font_type:4; // 0x14 u8 font_type:4; // 0x14

View File

@ -14,8 +14,8 @@ extern const u16 gTextWindowFrame1_Pal[];
const struct TilesPal* GetWindowFrameTilesPal(u8 id); const struct TilesPal* GetWindowFrameTilesPal(u8 id);
void copy_textbox_border_tile_patterns_to_vram(u8 windowId, u16 destOffset, u8 palOffset); void copy_textbox_border_tile_patterns_to_vram(u8 windowId, u16 destOffset, u8 palOffset);
void sub_809882C(u8 windowId, u16 destOffset, u8 palOffset); void LoadUserWindowBorderGfx(u8 windowId, u16 destOffset, u8 palOffset);
void sub_80987D4(u8 windowId, u8 frameId, u16 destOffset, u8 palOffset); void LoadWindowGfx(u8 windowId, u8 frameId, u16 destOffset, u8 palOffset);
void box_border_load_tiles_and_pal(u8 windowId, u16 destOffset, u8 palOffset); void box_border_load_tiles_and_pal(u8 windowId, u16 destOffset, u8 palOffset);
void sub_8098858(u8 windowId, u16 tileNum, u8 palNum); void sub_8098858(u8 windowId, u16 tileNum, u8 palNum);
void sub_80989E0(u8 windowId, u16 tileNum, u8 palNum); void sub_80989E0(u8 windowId, u16 tileNum, u8 palNum);

View File

@ -75,8 +75,8 @@ void sub_80356D0(void)
void ApplyPlayerChosenFrameToBattleMenu(void) void ApplyPlayerChosenFrameToBattleMenu(void)
{ {
sub_809882C(2, 0x12, 0x10); LoadUserWindowBorderGfx(2, 0x12, 0x10);
sub_809882C(2, 0x22, 0x10); LoadUserWindowBorderGfx(2, 0x22, 0x10);
LoadCompressedPalette(gUnknown_08D85600, 0x50, 0x20); LoadCompressedPalette(gUnknown_08D85600, 0x50, 0x20);
if (gBattleTypeFlags & BATTLE_TYPE_ARENA) if (gBattleTypeFlags & BATTLE_TYPE_ARENA)

View File

@ -2420,7 +2420,7 @@ static void PlayerHandleFaintAnimation(void)
static void PlayerHandlePaletteFade(void) static void PlayerHandlePaletteFade(void)
{ {
BeginNormalPaletteFade(-1, 2, 0, 16, 0); BeginNormalPaletteFade(0xFFFFFFFF, 2, 0, 16, 0);
PlayerBufferExecCompleted(); PlayerBufferExecCompleted();
} }
@ -2640,7 +2640,7 @@ static void PlayerHandleChooseItem(void)
{ {
s32 i; s32 i;
BeginNormalPaletteFade(-1, 0, 0, 0x10, 0); BeginNormalPaletteFade(0xFFFFFFFF, 0, 0, 0x10, 0);
gBattlerControllerFuncs[gActiveBattler] = OpenBagAndChooseItem; gBattlerControllerFuncs[gActiveBattler] = OpenBagAndChooseItem;
gBattlerInMenuId = gActiveBattler; gBattlerInMenuId = gActiveBattler;
@ -2667,7 +2667,7 @@ static void PlayerHandleChoosePokemon(void)
*(&gBattleStruct->field_49) = gBattleBufferA[gActiveBattler][1] >> 4; *(&gBattleStruct->field_49) = gBattleBufferA[gActiveBattler][1] >> 4;
*(&gBattleStruct->field_8B) = gBattleBufferA[gActiveBattler][2]; *(&gBattleStruct->field_8B) = gBattleBufferA[gActiveBattler][2];
*(&gBattleStruct->field_B0) = gBattleBufferA[gActiveBattler][3]; *(&gBattleStruct->field_B0) = gBattleBufferA[gActiveBattler][3];
BeginNormalPaletteFade(-1, 0, 0, 16, 0); BeginNormalPaletteFade(0xFFFFFFFF, 0, 0, 16, 0);
gBattlerControllerFuncs[gActiveBattler] = sub_80597CC; gBattlerControllerFuncs[gActiveBattler] = sub_80597CC;
gBattlerInMenuId = gActiveBattler; gBattlerInMenuId = gActiveBattler;
} }
@ -2676,7 +2676,7 @@ static void PlayerHandleChoosePokemon(void)
static void PlayerHandleCmd23(void) static void PlayerHandleCmd23(void)
{ {
BattleStopLowHpSound(); BattleStopLowHpSound();
BeginNormalPaletteFade(-1, 2, 0, 16, 0); BeginNormalPaletteFade(0xFFFFFFFF, 2, 0, 16, 0);
PlayerBufferExecCompleted(); PlayerBufferExecCompleted();
} }

View File

@ -478,7 +478,7 @@ static void SafariHandleChooseItem(void)
{ {
s32 i; s32 i;
BeginNormalPaletteFade(-1, 0, 0, 0x10, 0); BeginNormalPaletteFade(0xFFFFFFFF, 0, 0, 0x10, 0);
gBattlerControllerFuncs[gActiveBattler] = SafariOpenPokeblockCase; gBattlerControllerFuncs[gActiveBattler] = SafariOpenPokeblockCase;
gBattlerInMenuId = gActiveBattler; gBattlerInMenuId = gActiveBattler;
} }

View File

@ -1251,7 +1251,7 @@ static void WallyHandleChooseMove(void)
static void WallyHandleChooseItem(void) static void WallyHandleChooseItem(void)
{ {
BeginNormalPaletteFade(-1, 0, 0, 0x10, 0); BeginNormalPaletteFade(0xFFFFFFFF, 0, 0, 0x10, 0);
gBattlerControllerFuncs[gActiveBattler] = OpenBagAfterPaletteFade; gBattlerControllerFuncs[gActiveBattler] = OpenBagAfterPaletteFade;
gBattlerInMenuId = gActiveBattler; gBattlerInMenuId = gActiveBattler;
} }

View File

@ -1819,7 +1819,7 @@ void BattleMainCB2(void)
{ {
gSpecialVar_Result = gBattleOutcome = B_OUTCOME_PLAYER_TELEPORTED; gSpecialVar_Result = gBattleOutcome = B_OUTCOME_PLAYER_TELEPORTED;
ResetPaletteFadeControl(); ResetPaletteFadeControl();
BeginNormalPaletteFade(-1, 0, 0, 0x10, 0); BeginNormalPaletteFade(0xFFFFFFFF, 0, 0, 0x10, 0);
SetMainCallback2(CB2_QuitRecordedBattle); SetMainCallback2(CB2_QuitRecordedBattle);
} }
} }
@ -2255,7 +2255,7 @@ static void sub_8038F34(void)
case 1: case 1:
if (--gBattleCommunication[1] == 0) if (--gBattleCommunication[1] == 0)
{ {
BeginNormalPaletteFade(-1, 0, 0, 0x10, 0); BeginNormalPaletteFade(0xFFFFFFFF, 0, 0, 0x10, 0);
gBattleCommunication[MULTIUSE_STATE]++; gBattleCommunication[MULTIUSE_STATE]++;
} }
break; break;
@ -2312,7 +2312,7 @@ static void sub_8038F34(void)
for (i = 0; i < 2; i++) for (i = 0; i < 2; i++)
LoadChosenBattleElement(i); LoadChosenBattleElement(i);
BeginNormalPaletteFade(-1, 0, 0x10, 0, 0); BeginNormalPaletteFade(0xFFFFFFFF, 0, 0x10, 0, 0);
gBattleCommunication[MULTIUSE_STATE]++; gBattleCommunication[MULTIUSE_STATE]++;
break; break;
case 4: case 4:
@ -2417,7 +2417,7 @@ static void sub_80392A8(void)
gReservedSpritePaletteCount = 4; gReservedSpritePaletteCount = 4;
SetVBlankCallback(VBlankCB_Battle); SetVBlankCallback(VBlankCB_Battle);
SetMainCallback2(sub_803937C); SetMainCallback2(sub_803937C);
BeginNormalPaletteFade(-1, 0, 0x10, 0, 0); BeginNormalPaletteFade(0xFFFFFFFF, 0, 0x10, 0, 0);
gBattleCommunication[MULTIUSE_STATE] = 0; gBattleCommunication[MULTIUSE_STATE] = 0;
} }
@ -2577,7 +2577,7 @@ static void sub_803939C(void)
{ {
if (sub_800A520() == TRUE) if (sub_800A520() == TRUE)
{ {
BeginNormalPaletteFade(-1, 0, 0, 0x10, 0); BeginNormalPaletteFade(0xFFFFFFFF, 0, 0, 0x10, 0);
gBattleCommunication[1] = 0x20; gBattleCommunication[1] = 0x20;
gBattleCommunication[MULTIUSE_STATE] = 8; gBattleCommunication[MULTIUSE_STATE] = 8;
} }
@ -2585,7 +2585,7 @@ static void sub_803939C(void)
} }
else else
{ {
BeginNormalPaletteFade(-1, 0, 0, 0x10, 0); BeginNormalPaletteFade(0xFFFFFFFF, 0, 0, 0x10, 0);
gBattleCommunication[1] = 0x20; gBattleCommunication[1] = 0x20;
gBattleCommunication[MULTIUSE_STATE] = 8; gBattleCommunication[MULTIUSE_STATE] = 8;
} }

View File

@ -348,7 +348,7 @@ static void Task_CloseTrainerHillRecordsOnButton(u8 taskId)
static void Task_BeginPaletteFade(u8 taskId) static void Task_BeginPaletteFade(u8 taskId)
{ {
BeginNormalPaletteFade(-1, 0, 0, 0x10, 0); BeginNormalPaletteFade(0xFFFFFFFF, 0, 0, 0x10, 0);
gTasks[taskId].func = Task_ExitTrainerHillRecords; gTasks[taskId].func = Task_ExitTrainerHillRecords;
} }
@ -495,7 +495,7 @@ static void CB2_ShowTrainerHillRecords(void)
gMain.state++; gMain.state++;
break; break;
case 6: case 6:
BeginNormalPaletteFade(-1, 0, 0x10, 0, 0); BeginNormalPaletteFade(0xFFFFFFFF, 0, 0x10, 0, 0);
gMain.state++; gMain.state++;
break; break;
case 7: case 7:

View File

@ -5713,7 +5713,7 @@ static void atk5A_yesnoboxlearnmove(void)
if (gBattleCommunication[1] == 0) if (gBattleCommunication[1] == 0)
{ {
HandleBattleWindow(0x18, 0x8, 0x1D, 0xD, WINDOW_CLEAR); HandleBattleWindow(0x18, 0x8, 0x1D, 0xD, WINDOW_CLEAR);
BeginNormalPaletteFade(-1, 0, 0, 0x10, 0); BeginNormalPaletteFade(0xFFFFFFFF, 0, 0, 0x10, 0);
gBattleScripting.learnMoveState++; gBattleScripting.learnMoveState++;
} }
else else
@ -10288,7 +10288,7 @@ static void atkF2_displaydexinfo(void)
switch (gBattleCommunication[0]) switch (gBattleCommunication[0])
{ {
case 0: case 0:
BeginNormalPaletteFade(-1, 0, 0, 0x10, 0); BeginNormalPaletteFade(0xFFFFFFFF, 0, 0, 0x10, 0);
gBattleCommunication[0]++; gBattleCommunication[0]++;
break; break;
case 1: case 1:

View File

@ -1080,7 +1080,7 @@ static bool8 Phase2_Blur_Func2(struct Task *task)
{ {
task->tData1 = 4; task->tData1 = 4;
if (++task->tData2 == 10) if (++task->tData2 == 10)
BeginNormalPaletteFade(-1, -1, 0, 0x10, 0); BeginNormalPaletteFade(0xFFFFFFFF, -1, 0, 0x10, 0);
SetGpuReg(REG_OFFSET_MOSAIC, (task->tData2 & 15) * 17); SetGpuReg(REG_OFFSET_MOSAIC, (task->tData2 & 15) * 17);
if (task->tData2 > 14) if (task->tData2 > 14)
task->tState++; task->tState++;
@ -1107,7 +1107,7 @@ static bool8 Phase2_Swirl_Func1(struct Task *task)
{ {
sub_8149F08(); sub_8149F08();
ScanlineEffect_Clear(); ScanlineEffect_Clear();
BeginNormalPaletteFade(-1, 4, 0, 0x10, 0); BeginNormalPaletteFade(0xFFFFFFFF, 4, 0, 0x10, 0);
sub_8149F98(gScanlineEffectRegBuffers[1], sTransitionStructPtr->field_14, 0, 2, 0, 160); sub_8149F98(gScanlineEffectRegBuffers[1], sTransitionStructPtr->field_14, 0, 2, 0, 160);
SetVBlankCallback(VBlankCB_Phase2_Swirl); SetVBlankCallback(VBlankCB_Phase2_Swirl);
@ -1162,7 +1162,7 @@ static bool8 Phase2_Shuffle_Func1(struct Task *task)
sub_8149F08(); sub_8149F08();
ScanlineEffect_Clear(); ScanlineEffect_Clear();
BeginNormalPaletteFade(-1, 4, 0, 0x10, 0); BeginNormalPaletteFade(0xFFFFFFFF, 4, 0, 0x10, 0);
memset(gScanlineEffectRegBuffers[1], sTransitionStructPtr->field_16, 0x140); memset(gScanlineEffectRegBuffers[1], sTransitionStructPtr->field_16, 0x140);
SetVBlankCallback(VBlankCB_Phase2_Shuffle); SetVBlankCallback(VBlankCB_Phase2_Shuffle);
@ -1973,7 +1973,7 @@ static bool8 Phase2_Ripple_Func2(struct Task *task)
if (++task->tData3 == 81) if (++task->tData3 == 81)
{ {
task->tData4++; task->tData4++;
BeginNormalPaletteFade(-1, -2, 0, 0x10, 0); BeginNormalPaletteFade(0xFFFFFFFF, -2, 0, 0x10, 0);
} }
if (task->tData4 != 0 && !gPaletteFade.active) if (task->tData4 != 0 && !gPaletteFade.active)
@ -3982,7 +3982,7 @@ static bool8 Phase2_30_Func4(struct Task *task)
if (++task->tData3 == 101) if (++task->tData3 == 101)
{ {
task->tData4++; task->tData4++;
BeginNormalPaletteFade(-1, 0, 0, 0x10, 0); BeginNormalPaletteFade(0xFFFFFFFF, 0, 0, 0x10, 0);
} }
if (task->tData4 != 0 && !gPaletteFade.active) if (task->tData4 != 0 && !gPaletteFade.active)

View File

@ -153,7 +153,7 @@ extern const u8 gText_234Players[];
extern void sub_800A418(void); extern void sub_800A418(void);
extern u8 sub_800A9D8(void); extern u8 sub_800A9D8(void);
extern void sub_809882C(u8, u16, u8); extern void LoadUserWindowBorderGfx(u8, u16, u8);
extern void copy_textbox_border_tile_patterns_to_vram(u8, u16, u8); extern void copy_textbox_border_tile_patterns_to_vram(u8, u16, u8);
extern void sub_81AABF0(void (*callback)(void)); extern void sub_81AABF0(void (*callback)(void));
extern void sub_800B4C0(void); extern void sub_800B4C0(void);
@ -927,7 +927,7 @@ static void sub_807FAC8(void)
InitBgsFromTemplates(1, sBerryBlenderBgTemplates, ARRAY_COUNT(sBerryBlenderBgTemplates)); InitBgsFromTemplates(1, sBerryBlenderBgTemplates, ARRAY_COUNT(sBerryBlenderBgTemplates));
SetBgTilemapBuffer(1, sBerryBlenderData->tilemapBuffers[0]); SetBgTilemapBuffer(1, sBerryBlenderData->tilemapBuffers[0]);
SetBgTilemapBuffer(2, sBerryBlenderData->tilemapBuffers[1]); SetBgTilemapBuffer(2, sBerryBlenderData->tilemapBuffers[1]);
sub_809882C(0, 1, 0xD0); LoadUserWindowBorderGfx(0, 1, 0xD0);
copy_textbox_border_tile_patterns_to_vram(0, 0x14, 0xF0); copy_textbox_border_tile_patterns_to_vram(0, 0x14, 0xF0);
InitBerryBlenderWindows(); InitBerryBlenderWindows();
@ -959,7 +959,7 @@ static void sub_807FAC8(void)
} }
break; break;
case 2: case 2:
BeginNormalPaletteFade(-1, 0, 0x10, 0, 0); BeginNormalPaletteFade(0xFFFFFFFF, 0, 0x10, 0, 0);
sub_8082D28(); sub_8082D28();
sBerryBlenderData->mainState++; sBerryBlenderData->mainState++;
break; break;
@ -973,7 +973,7 @@ static void sub_807FAC8(void)
sBerryBlenderData->mainState++; sBerryBlenderData->mainState++;
break; break;
case 5: case 5:
BeginNormalPaletteFade(-1, 0, 0, 0x10, 0); BeginNormalPaletteFade(0xFFFFFFFF, 0, 0, 0x10, 0);
sBerryBlenderData->mainState++; sBerryBlenderData->mainState++;
break; break;
case 6: case 6:
@ -1163,7 +1163,7 @@ static void sub_8080018(void)
sBerryBlenderData->mainState++; sBerryBlenderData->mainState++;
break; break;
case 3: case 3:
BeginNormalPaletteFade(-1, 0, 0x10, 0, 0); BeginNormalPaletteFade(0xFFFFFFFF, 0, 0x10, 0, 0);
sBerryBlenderData->mainState++; sBerryBlenderData->mainState++;
break; break;
case 4: case 4:
@ -1331,7 +1331,7 @@ static void sub_8080588(void)
SetBgTilemapBuffer(1, sBerryBlenderData->tilemapBuffers[0]); SetBgTilemapBuffer(1, sBerryBlenderData->tilemapBuffers[0]);
SetBgTilemapBuffer(2, sBerryBlenderData->tilemapBuffers[1]); SetBgTilemapBuffer(2, sBerryBlenderData->tilemapBuffers[1]);
sub_809882C(0, 1, 0xD0); LoadUserWindowBorderGfx(0, 1, 0xD0);
copy_textbox_border_tile_patterns_to_vram(0, 0x14, 0xF0); copy_textbox_border_tile_patterns_to_vram(0, 0x14, 0xF0);
InitBerryBlenderWindows(); InitBerryBlenderWindows();
@ -1490,7 +1490,7 @@ static void sub_80808D4(void)
sBerryBlenderData->mainState++; sBerryBlenderData->mainState++;
break; break;
case 3: case 3:
BeginNormalPaletteFade(-1, 0, 0x10, 0, 0); BeginNormalPaletteFade(0xFFFFFFFF, 0, 0x10, 0, 0);
sBerryBlenderData->mainState++; sBerryBlenderData->mainState++;
sBerryBlenderData->framesToWait = 0; sBerryBlenderData->framesToWait = 0;
break; break;
@ -2656,7 +2656,7 @@ static void CB2_HandlePlayerLinkPlayAgainChoice(void)
case 9: case 9:
if (sub_800A520()) if (sub_800A520())
{ {
BeginNormalPaletteFade(-1, 0, 0, 0x10, 0); BeginNormalPaletteFade(0xFFFFFFFF, 0, 0, 0x10, 0);
sBerryBlenderData->gameEndState++; sBerryBlenderData->gameEndState++;
} }
break; break;

View File

@ -247,7 +247,7 @@ static bool8 InitBerryTagScreen(void)
gMain.state++; gMain.state++;
break; break;
case 15: case 15:
BeginNormalPaletteFade(-1, 0, 0x10, 0, 0); BeginNormalPaletteFade(0xFFFFFFFF, 0, 0x10, 0, 0);
gPaletteFade.bufferTransferDisabled = 0; gPaletteFade.bufferTransferDisabled = 0;
gMain.state++; gMain.state++;
break; break;
@ -481,7 +481,7 @@ static void DestroyFlavorCircleSprites(void)
static void PrepareToCloseBerryTagScreen(u8 taskId) static void PrepareToCloseBerryTagScreen(u8 taskId)
{ {
PlaySE(SE_SELECT); PlaySE(SE_SELECT);
BeginNormalPaletteFade(-1, 0, 0, 0x10, 0); BeginNormalPaletteFade(0xFFFFFFFF, 0, 0, 0x10, 0);
gTasks[taskId].func = Task_CloseBerryTagScreen; gTasks[taskId].func = Task_CloseBerryTagScreen;
} }

View File

@ -202,6 +202,6 @@ static void InitClearSaveDataScreenWindows(void)
InitWindows(sClearSaveTextWindow); InitWindows(sClearSaveTextWindow);
DeactivateAllTextPrinters(); DeactivateAllTextPrinters();
FillWindowPixelBuffer(0, 0); FillWindowPixelBuffer(0, 0);
sub_80987D4(0, 0, 2, 224); LoadWindowGfx(0, 0, 2, 224);
LoadPalette(gUnknown_0860F074, 0xF0, 0x20); LoadPalette(gUnknown_0860F074, 0xF0, 0x20);
} }

View File

@ -73,20 +73,20 @@ static const struct ListMenuItem sLevelMenuItems[] =
static const struct ListMenuTemplate sDaycareListMenuLevelTemplate = static const struct ListMenuTemplate sDaycareListMenuLevelTemplate =
{ {
.items = sLevelMenuItems, .items = sLevelMenuItems,
.moveCursorFunc = sub_81AF078, .moveCursorFunc = ListMenuDefaultCursorMoveFunc,
.unk_08 = DaycarePrintMonInfo, .itemPrintFunc = DaycarePrintMonInfo,
.totalItems = 3, .totalItems = 3,
.maxShowed = 3, .maxShowed = 3,
.windowId = 0, .windowId = 0,
.unk_11 = 0, .header_X = 0,
.unk_12 = 8, .item_X = 8,
.cursor_X = 0, .cursor_X = 0,
.upText_Y = 1, .upText_Y = 1,
.cursorPal = 2, .cursorPal = 2,
.fillValue = 1, .fillValue = 1,
.cursorShadowPal = 3, .cursorShadowPal = 3,
.lettersSpacing = 1, .lettersSpacing = 1,
.unk_16_3 = 0, .itemVerticalPadding = 0,
.scrollMultiple = LIST_NO_MULTIPLE_SCROLL, .scrollMultiple = LIST_NO_MULTIPLE_SCROLL,
.fontId = 1, .fontId = 1,
.cursorKind = 0 .cursorKind = 0

View File

@ -838,7 +838,7 @@ void sub_8127500(void)
{ {
if (sDecorPCBuffer->unk_522 == 0xFF) if (sDecorPCBuffer->unk_522 == 0xFF)
{ {
sDecorPCBuffer->unk_522 = AddScrollIndicatorArrowPairParametrized(0x02, 0x3c, 0x0c, 0x94, sDecorPCBuffer->unk_520 - sDecorPCBuffer->unk_521, 0x6e, 0x6e, &sSecretBasePCSelectDecorPageNo); sDecorPCBuffer->unk_522 = AddScrollIndicatorArrowPairParameterized(SCROLL_ARROW_UP, 0x3c, 0x0c, 0x94, sDecorPCBuffer->unk_520 - sDecorPCBuffer->unk_521, 0x6e, 0x6e, &sSecretBasePCSelectDecorPageNo);
} }
} }

View File

@ -89,7 +89,7 @@ void CB2_ShowDiploma(void)
CopyBgTilemapBufferToVram(1); CopyBgTilemapBufferToVram(1);
DisplayDiplomaText(); DisplayDiplomaText();
BlendPalettes(-1, 16, 0); BlendPalettes(-1, 16, 0);
BeginNormalPaletteFade(-1, 0, 16, 0, 0); BeginNormalPaletteFade(0xFFFFFFFF, 0, 16, 0, 0);
EnableInterrupts(1); EnableInterrupts(1);
SetVBlankCallback(VBlankCB); SetVBlankCallback(VBlankCB);
SetMainCallback2(MainCB2); SetMainCallback2(MainCB2);
@ -114,7 +114,7 @@ static void Task_DiplomaWaitForKeyPress(u8 taskId)
{ {
if (gMain.newKeys & (A_BUTTON | B_BUTTON)) if (gMain.newKeys & (A_BUTTON | B_BUTTON))
{ {
BeginNormalPaletteFade(-1, 0, 0, 16, 0); BeginNormalPaletteFade(0xFFFFFFFF, 0, 0, 16, 0);
gTasks[taskId].func = Task_DiplomaFadeOut; gTasks[taskId].func = Task_DiplomaFadeOut;
} }
} }

View File

@ -593,7 +593,7 @@ static void CB2_EggHatch_1(void)
switch (sEggHatchData->CB2_state) switch (sEggHatchData->CB2_state)
{ {
case 0: case 0:
BeginNormalPaletteFade(-1, 0, 0x10, 0, 0); BeginNormalPaletteFade(0xFFFFFFFF, 0, 0x10, 0, 0);
sEggHatchData->eggSpriteID = CreateSprite(&sSpriteTemplate_EggHatch, 120, 75, 5); sEggHatchData->eggSpriteID = CreateSprite(&sSpriteTemplate_EggHatch, 120, 75, 5);
ShowBg(0); ShowBg(0);
ShowBg(1); ShowBg(1);
@ -655,7 +655,7 @@ static void CB2_EggHatch_1(void)
case 9: case 9:
if (!IsTextPrinterActive(sEggHatchData->windowId)) if (!IsTextPrinterActive(sEggHatchData->windowId))
{ {
sub_809882C(sEggHatchData->windowId, 0x140, 0xE0); LoadUserWindowBorderGfx(sEggHatchData->windowId, 0x140, 0xE0);
CreateYesNoMenu(&sYesNoWinTemplate, 0x140, 0xE, 0); CreateYesNoMenu(&sYesNoWinTemplate, 0x140, 0xE, 0);
sEggHatchData->CB2_state++; sEggHatchData->CB2_state++;
} }
@ -676,7 +676,7 @@ static void CB2_EggHatch_1(void)
} }
break; break;
case 11: case 11:
BeginNormalPaletteFade(-1, 0, 0, 0x10, 0); BeginNormalPaletteFade(0xFFFFFFFF, 0, 0, 0x10, 0);
sEggHatchData->CB2_state++; sEggHatchData->CB2_state++;
break; break;
case 12: case 12:
@ -786,7 +786,7 @@ static void SpriteCB_Egg_4(struct Sprite* sprite)
{ {
s16 i; s16 i;
if (sprite->data[0] == 0) if (sprite->data[0] == 0)
BeginNormalPaletteFade(-1, -1, 0, 0x10, 0xFFFF); BeginNormalPaletteFade(0xFFFFFFFF, -1, 0, 0x10, 0xFFFF);
if (sprite->data[0] < 4u) if (sprite->data[0] < 4u)
{ {
for (i = 0; i <= 3; i++) for (i = 0; i <= 3; i++)
@ -810,7 +810,7 @@ static void SpriteCB_Egg_5(struct Sprite* sprite)
StartSpriteAffineAnim(&gSprites[sEggHatchData->pokeSpriteID], 1); StartSpriteAffineAnim(&gSprites[sEggHatchData->pokeSpriteID], 1);
} }
if (sprite->data[0] == 8) if (sprite->data[0] == 8)
BeginNormalPaletteFade(-1, -1, 0x10, 0, 0xFFFF); BeginNormalPaletteFade(0xFFFFFFFF, -1, 0x10, 0, 0xFFFF);
if (sprite->data[0] <= 9) if (sprite->data[0] <= 9)
gSprites[sEggHatchData->pokeSpriteID].pos1.y -= 1; gSprites[sEggHatchData->pokeSpriteID].pos1.y -= 1;
if (sprite->data[0] > 40) if (sprite->data[0] > 40)

View File

@ -1537,7 +1537,7 @@ u8 SpawnSpecialEventObject(struct EventObjectTemplate *eventObjectTemplate)
return TrySpawnEventObject(eventObjectTemplate, gSaveBlock1Ptr->location.mapNum, gSaveBlock1Ptr->location.mapGroup, cameraX, cameraY); return TrySpawnEventObject(eventObjectTemplate, gSaveBlock1Ptr->location.mapNum, gSaveBlock1Ptr->location.mapGroup, cameraX, cameraY);
} }
u8 SpawnSpecialEventObjectParametrized(u8 graphicsId, u8 movementBehavior, u8 localId, s16 x, s16 y, u8 z) u8 SpawnSpecialEventObjectParameterized(u8 graphicsId, u8 movementBehavior, u8 localId, s16 x, s16 y, u8 z)
{ {
struct EventObjectTemplate eventObjectTemplate; struct EventObjectTemplate eventObjectTemplate;

View File

@ -189,7 +189,7 @@ static void Task_BeginEvolutionScene(u8 taskID)
switch (gTasks[taskID].tState) switch (gTasks[taskID].tState)
{ {
case 0: case 0:
BeginNormalPaletteFade(-1, 0, 0, 0x10, 0); BeginNormalPaletteFade(0xFFFFFFFF, 0, 0, 0x10, 0);
gTasks[taskID].tState++; gTasks[taskID].tState++;
break; break;
case 1: case 1:
@ -386,7 +386,7 @@ static void CB2_EvolutionSceneLoadGraphics(void)
SetVBlankCallback(VBlankCB_EvolutionScene); SetVBlankCallback(VBlankCB_EvolutionScene);
SetMainCallback2(CB2_EvolutionSceneUpdate); SetMainCallback2(CB2_EvolutionSceneUpdate);
BeginNormalPaletteFade(-1, 0, 0x10, 0, 0); BeginNormalPaletteFade(0xFFFFFFFF, 0, 0x10, 0, 0);
ShowBg(0); ShowBg(0);
ShowBg(1); ShowBg(1);
@ -470,7 +470,7 @@ static void CB2_TradeEvolutionSceneLoadGraphics(void)
gMain.state++; gMain.state++;
break; break;
case 7: case 7:
BeginNormalPaletteFade(-1, 0, 0x10, 0, 0); BeginNormalPaletteFade(0xFFFFFFFF, 0, 0x10, 0, 0);
sub_807B140(); sub_807B140();
ShowBg(0); ShowBg(0);
ShowBg(1); ShowBg(1);
@ -623,7 +623,7 @@ static void Task_EvolutionScene(u8 taskID)
switch (gTasks[taskID].tState) switch (gTasks[taskID].tState)
{ {
case 0: case 0:
BeginNormalPaletteFade(-1, 0, 0x10, 0, 0); BeginNormalPaletteFade(0xFFFFFFFF, 0, 0x10, 0, 0);
gSprites[sEvoStructPtr->preEvoSpriteID].invisible = 0; gSprites[sEvoStructPtr->preEvoSpriteID].invisible = 0;
gTasks[taskID].tState++; gTasks[taskID].tState++;
ShowBg(0); ShowBg(0);
@ -771,7 +771,7 @@ static void Task_EvolutionScene(u8 taskID)
} }
else // no move to learn else // no move to learn
{ {
BeginNormalPaletteFade(-1, 0, 0, 0x10, 0); BeginNormalPaletteFade(0xFFFFFFFF, 0, 0, 0x10, 0);
gTasks[taskID].tState++; gTasks[taskID].tState++;
} }
} }
@ -905,7 +905,7 @@ static void Task_EvolutionScene(u8 taskID)
{ {
gTasks[taskID].tLearnMoveState = gTasks[taskID].tData7; gTasks[taskID].tLearnMoveState = gTasks[taskID].tData7;
if (gTasks[taskID].tLearnMoveState == 5) if (gTasks[taskID].tLearnMoveState == 5)
BeginNormalPaletteFade(-1, 0, 0, 0x10, 0); BeginNormalPaletteFade(0xFFFFFFFF, 0, 0, 0x10, 0);
} }
} }
if (gMain.newKeys & B_BUTTON) if (gMain.newKeys & B_BUTTON)
@ -1215,7 +1215,7 @@ static void Task_TradeEvolutionScene(u8 taskID)
case 3: case 3:
if (!IsTextPrinterActive(0) && !IsSEPlaying()) if (!IsTextPrinterActive(0) && !IsSEPlaying())
{ {
sub_809882C(0, 0xA8, 0xE0); LoadUserWindowBorderGfx(0, 0xA8, 0xE0);
CreateYesNoMenu(&gUnknown_0833900C, 0xA8, 0xE, 0); CreateYesNoMenu(&gUnknown_0833900C, 0xA8, 0xE, 0);
sEvoCursorPos = 0; sEvoCursorPos = 0;
gTasks[taskID].tLearnMoveState++; gTasks[taskID].tLearnMoveState++;
@ -1231,7 +1231,7 @@ static void Task_TradeEvolutionScene(u8 taskID)
sub_807F1A8(0, gDisplayedStringBattle, 1); sub_807F1A8(0, gDisplayedStringBattle, 1);
gTasks[taskID].tLearnMoveState = gTasks[taskID].tData7; gTasks[taskID].tLearnMoveState = gTasks[taskID].tData7;
if (gTasks[taskID].tLearnMoveState == 5) if (gTasks[taskID].tLearnMoveState == 5)
BeginNormalPaletteFade(-1, 0, 0, 0x10, 0); BeginNormalPaletteFade(0xFFFFFFFF, 0, 0, 0x10, 0);
break; break;
case 1: case 1:
case -1: case -1:

View File

@ -89,7 +89,7 @@ static void MCB2_InitRegionMapRegisters(void)
InitBgsFromTemplates(1, gUnknown_085E5068, 2); InitBgsFromTemplates(1, gUnknown_085E5068, 2);
InitWindows(gUnknown_085E5070); InitWindows(gUnknown_085E5070);
DeactivateAllTextPrinters(); DeactivateAllTextPrinters();
sub_809882C(0, 0x27, 0xd0); LoadUserWindowBorderGfx(0, 0x27, 0xd0);
clear_scheduled_bg_copies_to_vram(); clear_scheduled_bg_copies_to_vram();
SetMainCallback2(MCB2_FieldUpdateRegionMap); SetMainCallback2(MCB2_FieldUpdateRegionMap);
SetVBlankCallback(VBCB_FieldUpdateRegionMap); SetVBlankCallback(VBCB_FieldUpdateRegionMap);
@ -130,7 +130,7 @@ static void FieldUpdateRegionMap(void)
schedule_bg_copy_tilemap_to_vram(0); schedule_bg_copy_tilemap_to_vram(0);
SetWindowBorderStyle(0, 0, 0x27, 0xd); SetWindowBorderStyle(0, 0, 0x27, 0xd);
PrintRegionMapSecName(); PrintRegionMapSecName();
BeginNormalPaletteFade(-1, 0, 16, 0, 0); BeginNormalPaletteFade(0xFFFFFFFF, 0, 16, 0, 0);
sFieldRegionMapHandler->state++; sFieldRegionMapHandler->state++;
break; break;
case 2: case 2:
@ -158,7 +158,7 @@ static void FieldUpdateRegionMap(void)
} }
break; break;
case 5: case 5:
BeginNormalPaletteFade(-1, 0, 0, 16, 0); BeginNormalPaletteFade(0xFFFFFFFF, 0, 0, 16, 0);
sFieldRegionMapHandler->state++; sFieldRegionMapHandler->state++;
break; break;
case 6: case 6:

View File

@ -89,7 +89,7 @@ extern void sub_8197434(u8, u8);
extern u16 sub_818D97C(u8 playerGender, u8); extern u16 sub_818D97C(u8 playerGender, u8);
extern u16 sub_818D8AC(u16, u8, s16, s16, u8, u16); extern u16 sub_818D8AC(u16, u8, s16, s16, u8, u16);
extern const void* stdpal_get(u8); extern const void* stdpal_get(u8);
extern void sub_80987D4(u8, u8, u16, u8); extern void LoadWindowGfx(u8, u8, u16, u8);
extern u16 sub_818D820(u16); extern u16 sub_818D820(u16);
extern u16 sub_818D8F0(u16); extern u16 sub_818D8F0(u16);
extern u16 sub_818D7D8(u16 species, u32 trainerId, u32 personality, u8 arg3, s16 sp0, s16 sp1, u8 sp2, u16 sp3); extern u16 sub_818D7D8(u16 species, u32 trainerId, u32 personality, u8 arg3, s16 sp0, s16 sp1, u8 sp2, u16 sp3);
@ -414,7 +414,7 @@ static bool8 InitHallOfFameScreen(void)
if (!sub_8175024()) if (!sub_8175024())
{ {
SetVBlankCallback(VBlankCB_HallOfFame); SetVBlankCallback(VBlankCB_HallOfFame);
BeginNormalPaletteFade(-1, 0, 0x10, 0, 0); BeginNormalPaletteFade(0xFFFFFFFF, 0, 0x10, 0, 0);
gMain.state++; gMain.state++;
} }
break; break;
@ -725,7 +725,7 @@ static void sub_8173EE4(u8 taskId)
ShowBg(3); ShowBg(3);
gTasks[taskId].tPlayerSpriteID = sub_818D8AC(sub_818D97C(gSaveBlock2Ptr->playerGender, 1), 1, 120, 72, 6, 0xFFFF); gTasks[taskId].tPlayerSpriteID = sub_818D8AC(sub_818D97C(gSaveBlock2Ptr->playerGender, 1), 1, 120, 72, 6, 0xFFFF);
AddWindow(&sHof_WindowTemplate); AddWindow(&sHof_WindowTemplate);
sub_80987D4(1, gSaveBlock2Ptr->optionsWindowFrameType, 0x21D, 0xD0); LoadWindowGfx(1, gSaveBlock2Ptr->optionsWindowFrameType, 0x21D, 0xD0);
LoadPalette(stdpal_get(1), 0xE0, 0x20); LoadPalette(stdpal_get(1), 0xE0, 0x20);
gTasks[taskId].tFrameCount = 120; gTasks[taskId].tFrameCount = 120;
gTasks[taskId].func = Task_Hof_WaitAndPrintPlayerInfo; gTasks[taskId].func = Task_Hof_WaitAndPrintPlayerInfo;
@ -764,7 +764,7 @@ static void Task_Hof_ExitOnKeyPressed(u8 taskId)
static void Task_Hof_HandlePaletteOnExit(u8 taskId) static void Task_Hof_HandlePaletteOnExit(u8 taskId)
{ {
CpuCopy16(gPlttBufferFaded, gPlttBufferUnfaded, 0x400); CpuCopy16(gPlttBufferFaded, gPlttBufferUnfaded, 0x400);
BeginNormalPaletteFade(-1, 8, 0, 0x10, 0); BeginNormalPaletteFade(0xFFFFFFFF, 8, 0, 0x10, 0);
gTasks[taskId].func = Task_Hof_HandleExit; gTasks[taskId].func = Task_Hof_HandleExit;
} }

View File

@ -209,7 +209,7 @@ const struct YesNoFuncTable gUnknown_08614084 = {BagMenuActuallyToss, BagMenuCan
const struct YesNoFuncTable gUnknown_0861408C = {sub_81AD84C, sub_81AD6FC}; const struct YesNoFuncTable gUnknown_0861408C = {sub_81AD84C, sub_81AD6FC};
const struct ArrowStruct gUnknown_08614094 = {0, 0x1C, 16, 1, 100, 16, -1, -1, 0x6F, 0x6F, 0}; const struct ScrollArrowsTemplate gUnknown_08614094 = {SCROLL_ARROW_LEFT, 0x1C, 16, SCROLL_ARROW_RIGHT, 100, 16, -1, -1, 0x6F, 0x6F, 0};
const u8 gUnknown_086140A4[] = INCBIN_U8("graphics/interface/select_button.4bpp"); const u8 gUnknown_086140A4[] = INCBIN_U8("graphics/interface/select_button.4bpp");
@ -488,7 +488,7 @@ bool8 setup_bag_menu(void)
gMain.state++; gMain.state++;
break; break;
case 20: case 20:
BeginNormalPaletteFade(-1, 0, 16, 0, 0); BeginNormalPaletteFade(0xFFFFFFFF, 0, 16, 0, 0);
gPaletteFade.bufferTransferDisabled = FALSE; gPaletteFade.bufferTransferDisabled = FALSE;
gMain.state++; gMain.state++;
break; break;
@ -733,7 +733,7 @@ void bag_menu_print_cursor(u8 a, u8 b)
void bag_menu_add_pocket_scroll_arrow_indicators_maybe(void) void bag_menu_add_pocket_scroll_arrow_indicators_maybe(void)
{ {
if (gUnknown_0203CE54->unk81E == 0xFF) if (gUnknown_0203CE54->unk81E == 0xFF)
gUnknown_0203CE54->unk81E = AddScrollIndicatorArrowPairParametrized(2, 0xAC, 12, 0x94, gUnknown_0203CE54->unk829[gUnknown_0203CE58.pocket] - gUnknown_0203CE54->unk82E[gUnknown_0203CE58.pocket], 0x6E, 0x6E, &gUnknown_0203CE58.scrollPosition[gUnknown_0203CE58.pocket]); gUnknown_0203CE54->unk81E = AddScrollIndicatorArrowPairParameterized(SCROLL_ARROW_UP, 0xAC, 12, 0x94, gUnknown_0203CE54->unk829[gUnknown_0203CE58.pocket] - gUnknown_0203CE54->unk82E[gUnknown_0203CE58.pocket], 0x6E, 0x6E, &gUnknown_0203CE58.scrollPosition[gUnknown_0203CE58.pocket]);
} }
void sub_81AB824(void) void sub_81AB824(void)
@ -771,7 +771,7 @@ void free_bag_item_list_buffers(void)
void unknown_ItemMenu_Confirm(u8 taskId) void unknown_ItemMenu_Confirm(u8 taskId)
{ {
BeginNormalPaletteFade(-1, 0, 0, 16, 0); BeginNormalPaletteFade(0xFFFFFFFF, 0, 0, 16, 0);
gTasks[taskId].func = task_close_bag_menu_2; gTasks[taskId].func = task_close_bag_menu_2;
} }
@ -1114,7 +1114,7 @@ void bag_menu_swap_items(u8 taskId)
{ {
s16* data = gTasks[taskId].data; s16* data = gTasks[taskId].data;
sub_81AF15C(data[0], 16, 1); ListMenuSetUnkIndicatorsStructField(data[0], 16, 1);
data[1] = gUnknown_0203CE58.scrollPosition[gUnknown_0203CE58.pocket] + gUnknown_0203CE58.cursorPosition[gUnknown_0203CE58.pocket]; data[1] = gUnknown_0203CE58.scrollPosition[gUnknown_0203CE58.pocket] + gUnknown_0203CE58.cursorPosition[gUnknown_0203CE58.pocket];
gUnknown_0203CE54->unk81A = data[1]; gUnknown_0203CE54->unk81A = data[1];
CopyItemName(BagGetItemIdByPocketPosition(gUnknown_0203CE58.pocket + 1, data[1]), gStringVar1); CopyItemName(BagGetItemIdByPocketPosition(gUnknown_0203CE58.pocket + 1, data[1]), gStringVar1);
@ -2078,7 +2078,7 @@ void bag_menu_print_pocket_names(u8 *pocketName1, u8 *pocketName2)
offset = GetStringCenterAlignXOffset(1, pocketName2, 0x40); offset = GetStringCenterAlignXOffset(1, pocketName2, 0x40);
bag_menu_print(windowId, 1, pocketName2, offset + 0x40, 1, 0, 0, -1, 1); bag_menu_print(windowId, 1, pocketName2, offset + 0x40, 1, 0, 0, -1, 1);
} }
CpuCopy32((u8*)GetWindowAttribute(windowId, 7), gUnknown_0203CE54->unk844, 0x400); CpuCopy32((u8*)GetWindowAttribute(windowId, WINDOW_TILE_DATA), gUnknown_0203CE54->unk844, 0x400);
RemoveWindow(windowId); RemoveWindow(windowId);
} }
@ -2090,7 +2090,7 @@ void bag_menu_copy_pocket_name_to_window(u32 a)
if (a > 8) if (a > 8)
a = 8; a = 8;
r4 = &gUnknown_0203CE54->unk844; r4 = &gUnknown_0203CE54->unk844;
windowAttribute = (u8*)GetWindowAttribute(2, 7); windowAttribute = (u8*)GetWindowAttribute(2, WINDOW_TILE_DATA);
CpuCopy32(r4[0][a], windowAttribute, 0x100); CpuCopy32(r4[0][a], windowAttribute, 0x100);
b = a + 16; b = a + 16;
CpuCopy32(r4[0][b], windowAttribute + 0x100, 0x100); CpuCopy32(r4[0][b], windowAttribute + 0x100, 0x100);
@ -2103,7 +2103,7 @@ void setup_bag_menu_textboxes(void)
InitWindows(gUnknown_08614174); InitWindows(gUnknown_08614174);
DeactivateAllTextPrinters(); DeactivateAllTextPrinters();
sub_809882C(0, 1, -32); LoadUserWindowBorderGfx(0, 1, -32);
copy_textbox_border_tile_patterns_to_vram(0, 10, -48); copy_textbox_border_tile_patterns_to_vram(0, 10, -48);
sub_819A2BC(-64, 1); sub_819A2BC(-64, 1);
LoadPalette(&gUnknown_0860F074, 0xF0, 0x20); LoadPalette(&gUnknown_0860F074, 0xF0, 0x20);

View File

@ -219,7 +219,7 @@ const u8 gUnknown_082ED224[] = {
// .text // .text
bool8 sub_80093CC(void) bool8 IsWirelessAdapterConnected(void)
{ {
sub_800B488(); sub_800B488();
sub_800E700(); sub_800E700();
@ -444,7 +444,7 @@ static void LinkTestProcessKeyInput(void)
} }
if (gMain.newKeys & L_BUTTON) if (gMain.newKeys & L_BUTTON)
{ {
BeginNormalPaletteFade(-1, 0, 16, 0, 2); BeginNormalPaletteFade(0xFFFFFFFF, 0, 16, 0, 2);
} }
if (gMain.newKeys & START_BUTTON) if (gMain.newKeys & START_BUTTON)
{ {

File diff suppressed because it is too large Load Diff

View File

@ -417,7 +417,7 @@ static bool8 MailReadBuildGraphics(void)
ShowBg(0); ShowBg(0);
ShowBg(1); ShowBg(1);
ShowBg(2); ShowBg(2);
BeginNormalPaletteFade(-1, 0, 16, 0, 0); BeginNormalPaletteFade(0xFFFFFFFF, 0, 16, 0, 0);
gPaletteFade.bufferTransferDisabled = FALSE; gPaletteFade.bufferTransferDisabled = FALSE;
sMailRead->callback2 = CB2_WaitForPaletteExitOnKeyPress; sMailRead->callback2 = CB2_WaitForPaletteExitOnKeyPress;
return TRUE; return TRUE;
@ -526,7 +526,7 @@ static void CB2_ExitOnKeyPress(void)
{ {
if (gMain.newKeys & (A_BUTTON | B_BUTTON)) if (gMain.newKeys & (A_BUTTON | B_BUTTON))
{ {
BeginNormalPaletteFade(-1, 0, 0, 16, 0); BeginNormalPaletteFade(0xFFFFFFFF, 0, 0, 16, 0);
sMailRead->callback2 = CB2_ExitMailReadFreeVars; sMailRead->callback2 = CB2_ExitMailReadFreeVars;
} }
} }

View File

@ -44,10 +44,10 @@
// Static RAM declarations // Static RAM declarations
EWRAM_DATA u8 gUnknown_02022D04 = 0; static EWRAM_DATA u8 gUnknown_02022D04 = 0;
EWRAM_DATA u16 gUnknown_02022D06 = 0; static EWRAM_DATA u16 sCurrItemAndOptionMenuCheck = 0;
IWRAM_DATA u8 gUnknown_03000DD0; static IWRAM_DATA u8 gUnknown_03000DD0;
// Static ROM declarations // Static ROM declarations
@ -56,7 +56,7 @@ void Task_MainMenuCheckSaveFile(u8);
void Task_MainMenuCheckBattery(u8); void Task_MainMenuCheckBattery(u8);
void Task_WaitForSaveFileErrorWindow(u8); void Task_WaitForSaveFileErrorWindow(u8);
void CreateMainMenuErrorWindow(const u8*); void CreateMainMenuErrorWindow(const u8*);
void sub_8032250(const struct WindowTemplate*); static void ClearMainMenuWindowTilemap(const struct WindowTemplate*);
void Task_DisplayMainMenu(u8); void Task_DisplayMainMenu(u8);
void Task_WaitForBatteryDryErrorWindow(u8); void Task_WaitForBatteryDryErrorWindow(u8);
void fmt_savegame(void); void fmt_savegame(void);
@ -133,12 +133,12 @@ const u8 gUnknown_082FEEF0[] = INCBIN_U8("graphics/birch_speech/map.bin.lz");
const u16 gUnknown_082FF018[] = INCBIN_U16("graphics/birch_speech/bg2.gbapal"); const u16 gUnknown_082FF018[] = INCBIN_U16("graphics/birch_speech/bg2.gbapal");
const u16 gUnknown_082FF028[] = {0, 0, 0, 0, 0, 0, 0, 0}; const u16 gUnknown_082FF028[] = {0, 0, 0, 0, 0, 0, 0, 0};
const struct WindowTemplate gUnknown_082FF038[] = { const struct WindowTemplate sWindowTemplates_NoSavedGame[] = {
{0, 2, 1, 26, 2, 15, 1}, {0, 2, 1, 26, 2, 15, 1},
{0, 2, 5, 26, 2, 15, 0x35} {0, 2, 5, 26, 2, 15, 0x35}
}; };
const struct WindowTemplate gUnknown_082FF048[] = { const struct WindowTemplate sWindowTemplates_HasSavedGame[] = {
{0, 2, 1, 26, 6, 15, 1}, {0, 2, 1, 26, 6, 15, 1},
{0, 2, 9, 26, 2, 15, 0x9D}, {0, 2, 9, 26, 2, 15, 0x9D},
{0, 2, 13, 26, 2, 15, 0xD1}, {0, 2, 13, 26, 2, 15, 0xD1},
@ -146,7 +146,7 @@ const struct WindowTemplate gUnknown_082FF048[] = {
{0, 2, 21, 26, 2, 15, 0x139} {0, 2, 21, 26, 2, 15, 0x139}
}; };
const struct WindowTemplate gUnknown_082FF070[] = { const struct WindowTemplate sWindowTemplate_ErrorWindow[] = {
{0, 2, 15, 26, 4, 15, 0x16D}, {0, 2, 15, 26, 4, 15, 0x16D},
{0xFF, 0, 0, 0, 0, 0, 0} {0xFF, 0, 0, 0, 0, 0, 0}
}; };
@ -161,7 +161,7 @@ const struct WindowTemplate gUnknown_082FF080[] = {
const u16 gMainMenuBgPal[] = INCBIN_U16("graphics/misc/main_menu_bg.gbapal"); const u16 gMainMenuBgPal[] = INCBIN_U16("graphics/misc/main_menu_bg.gbapal");
const u16 gMainMenuTextPal[] = INCBIN_U16("graphics/misc/main_menu_text.gbapal"); const u16 gMainMenuTextPal[] = INCBIN_U16("graphics/misc/main_menu_text.gbapal");
const u8 gUnknown_082FF0E0[] = {10, 11, 12}; const u8 gTextColor_Headers[] = {10, 11, 12};
const u8 gUnknown_082FF0E3[] = {10, 1, 12}; const u8 gUnknown_082FF0E3[] = {10, 1, 12};
const struct BgTemplate gUnknown_082FF0E8[] = { const struct BgTemplate gUnknown_082FF0E8[] = {
@ -195,7 +195,7 @@ const struct BgTemplate gUnknown_082FF0F0 = {
.baseTile = 0 .baseTile = 0
}; };
const struct ArrowStruct gUnknown_082FF0F4 = {2, 0x78, 8, 3, 0x78, 0x98, 3, 4, 1, 1, 0}; const struct ScrollArrowsTemplate sScrollArrowsTemplate_MainMenu = {2, 0x78, 8, 3, 0x78, 0x98, 3, 4, 1, 1, 0};
const union AffineAnimCmd gUnknown_082FF104[] = { const union AffineAnimCmd gUnknown_082FF104[] = {
AFFINEANIMCMD_FRAME(-2, -2, 0, 0x30), AFFINEANIMCMD_FRAME(-2, -2, 0, 0x30),
@ -265,6 +265,16 @@ enum
HAS_MYSTERY_EVENTS, HAS_MYSTERY_EVENTS,
}; };
enum {
ACTION_NEW_GAME,
ACTION_CONTINUE,
ACTION_OPTIONS,
ACTION_MYSTERY_GIFT,
ACTION_MYSTERY_EVENTS,
ACTION_UNKNOWN, // TODO: change when rom_8011DC0 decompiled
ACTION_INVALID
};
#define MAIN_MENU_BORDER_TILE 0x1D5 #define MAIN_MENU_BORDER_TILE 0x1D5
void CB2_MainMenu(void) void CB2_MainMenu(void)
@ -319,16 +329,16 @@ u32 InitMainMenu(bool8 returningFromOptionsMenu)
ResetSpriteData(); ResetSpriteData();
FreeAllSpritePalettes(); FreeAllSpritePalettes();
if (returningFromOptionsMenu) if (returningFromOptionsMenu)
BeginNormalPaletteFade(-1, 0, 0x10, 0, 0x0000); // fade to black BeginNormalPaletteFade(0xFFFFFFFF, 0, 0x10, 0, 0x0000); // fade to black
else else
BeginNormalPaletteFade(-1, 0, 0x10, 0, 0xFFFF); // fade to white BeginNormalPaletteFade(0xFFFFFFFF, 0, 0x10, 0, 0xFFFF); // fade to white
ResetBgsAndClearDma3BusyFlags(0); ResetBgsAndClearDma3BusyFlags(0);
InitBgsFromTemplates(0, gUnknown_082FF0E8, 2); InitBgsFromTemplates(0, gUnknown_082FF0E8, 2);
ChangeBgX(0, 0, 0); ChangeBgX(0, 0, 0);
ChangeBgY(0, 0, 0); ChangeBgY(0, 0, 0);
ChangeBgX(1, 0, 0); ChangeBgX(1, 0, 0);
ChangeBgY(1, 0, 0); ChangeBgY(1, 0, 0);
InitWindows(gUnknown_082FF038); InitWindows(sWindowTemplates_NoSavedGame);
DeactivateAllTextPrinters(); DeactivateAllTextPrinters();
LoadMainMenuWindowFrameTiles(0, MAIN_MENU_BORDER_TILE); LoadMainMenuWindowFrameTiles(0, MAIN_MENU_BORDER_TILE);
@ -351,6 +361,15 @@ u32 InitMainMenu(bool8 returningFromOptionsMenu)
return 0; return 0;
} }
#define tMenuType data[0]
#define tCurrItem data[1]
#define tItemCount data[12]
#define tScrollArrowTaskId data[13]
#define tIsScrolled data[14]
#define tWirelessAdapterConnected data[15]
#define tArrowTaskIsScrolled data[15] // For scroll indicator arrow task
void Task_MainMenuCheckSaveFile(u8 taskId) void Task_MainMenuCheckSaveFile(u8 taskId)
{ {
s16* data = gTasks[taskId].data; s16* data = gTasks[taskId].data;
@ -359,64 +378,64 @@ void Task_MainMenuCheckSaveFile(u8 taskId)
{ {
SetGpuReg(REG_OFFSET_WIN0H, 0); SetGpuReg(REG_OFFSET_WIN0H, 0);
SetGpuReg(REG_OFFSET_WIN0V, 0); SetGpuReg(REG_OFFSET_WIN0V, 0);
SetGpuReg(REG_OFFSET_WININ, 17); SetGpuReg(REG_OFFSET_WININ, WININ_WIN0_BG0 | WININ_WIN0_OBJ);
SetGpuReg(REG_OFFSET_WINOUT, 0x31); SetGpuReg(REG_OFFSET_WINOUT, WINOUT_WIN01_BG0 | WINOUT_WIN01_OBJ | WINOUT_WIN01_CLR);
SetGpuReg(REG_OFFSET_BLDCNT, BLDCNT_EFFECT_DARKEN | BLDCNT_TGT1_BG0); SetGpuReg(REG_OFFSET_BLDCNT, BLDCNT_EFFECT_DARKEN | BLDCNT_TGT1_BG0);
SetGpuReg(REG_OFFSET_BLDALPHA, 0); SetGpuReg(REG_OFFSET_BLDALPHA, 0);
SetGpuReg(REG_OFFSET_BLDY, 7); SetGpuReg(REG_OFFSET_BLDY, 7);
if (sub_80093CC()) if (IsWirelessAdapterConnected())
data[15] = 1; tWirelessAdapterConnected = TRUE;
switch (gSaveFileStatus) switch (gSaveFileStatus)
{ {
case 1: case 1:
data[0] = HAS_SAVED_GAME; tMenuType = HAS_SAVED_GAME;
if (IsMysteryGiftEnabled()) if (IsMysteryGiftEnabled())
data[0]++; tMenuType++;
gTasks[taskId].func = Task_MainMenuCheckBattery; gTasks[taskId].func = Task_MainMenuCheckBattery;
break; break;
case 2: case 2:
CreateMainMenuErrorWindow(gText_SaveFileErased); CreateMainMenuErrorWindow(gText_SaveFileErased);
data[0] = 0; tMenuType = HAS_NO_SAVED_GAME;
gTasks[taskId].func = Task_WaitForSaveFileErrorWindow; gTasks[taskId].func = Task_WaitForSaveFileErrorWindow;
break; break;
case 0xFF: case 0xFF:
CreateMainMenuErrorWindow(gText_SaveFileCorrupted); CreateMainMenuErrorWindow(gText_SaveFileCorrupted);
gTasks[taskId].func = Task_WaitForSaveFileErrorWindow; gTasks[taskId].func = Task_WaitForSaveFileErrorWindow;
data[0] = HAS_SAVED_GAME; tMenuType = HAS_SAVED_GAME;
if (IsMysteryGiftEnabled() == TRUE) if (IsMysteryGiftEnabled() == TRUE)
data[0]++; tMenuType++;
break; break;
case 0: case 0:
default: default:
data[0] = HAS_NO_SAVED_GAME; tMenuType = HAS_NO_SAVED_GAME;
gTasks[taskId].func = Task_MainMenuCheckBattery; gTasks[taskId].func = Task_MainMenuCheckBattery;
break; break;
case 4: case 4:
CreateMainMenuErrorWindow(gJPText_No1MSubCircuit); CreateMainMenuErrorWindow(gJPText_No1MSubCircuit);
gTasks[taskId].data[0] = HAS_NO_SAVED_GAME; gTasks[taskId].tMenuType = HAS_NO_SAVED_GAME;
gTasks[taskId].func = Task_WaitForSaveFileErrorWindow; gTasks[taskId].func = Task_WaitForSaveFileErrorWindow;
break; break;
} }
if (gUnknown_02022D06 & 0x8000) if (sCurrItemAndOptionMenuCheck & 0x8000) // are we returning from the options menu?
{ {
switch (data[0]) switch (tMenuType) // if so, highlight the OPTIONS item
{ {
case HAS_NO_SAVED_GAME: case HAS_NO_SAVED_GAME:
case HAS_SAVED_GAME: case HAS_SAVED_GAME:
gUnknown_02022D06 = data[0] + 1; sCurrItemAndOptionMenuCheck = tMenuType + 1;
break; break;
case HAS_MYSTERY_GIFT: case HAS_MYSTERY_GIFT:
gUnknown_02022D06 = 3; sCurrItemAndOptionMenuCheck = 3;
break; break;
case 3: case HAS_MYSTERY_EVENTS:
gUnknown_02022D06 = 4; sCurrItemAndOptionMenuCheck = 4;
break; break;
} }
} }
gUnknown_02022D06 &= 0x7FFF; sCurrItemAndOptionMenuCheck &= 0x7FFF; // turn off the "returning from options menu" flag
data[1] = gUnknown_02022D06; tCurrItem = sCurrItemAndOptionMenuCheck;
data[12] = data[0] + 2; tItemCount = tMenuType + 2;
} }
} }
@ -426,7 +445,7 @@ void Task_WaitForSaveFileErrorWindow(u8 taskId)
if (!IsTextPrinterActive(7) && (gMain.newKeys & A_BUTTON)) if (!IsTextPrinterActive(7) && (gMain.newKeys & A_BUTTON))
{ {
ClearWindowTilemap(7); ClearWindowTilemap(7);
sub_8032250(gUnknown_082FF070); ClearMainMenuWindowTilemap(sWindowTemplate_ErrorWindow);
gTasks[taskId].func = Task_MainMenuCheckBattery; gTasks[taskId].func = Task_MainMenuCheckBattery;
} }
} }
@ -437,8 +456,8 @@ void Task_MainMenuCheckBattery(u8 taskId)
{ {
SetGpuReg(REG_OFFSET_WIN0H, 0); SetGpuReg(REG_OFFSET_WIN0H, 0);
SetGpuReg(REG_OFFSET_WIN0V, 0); SetGpuReg(REG_OFFSET_WIN0V, 0);
SetGpuReg(REG_OFFSET_WININ, 17); SetGpuReg(REG_OFFSET_WININ, WININ_WIN0_BG0 | WININ_WIN0_OBJ);
SetGpuReg(REG_OFFSET_WINOUT, 0x31); SetGpuReg(REG_OFFSET_WINOUT, WINOUT_WIN01_BG0 | WINOUT_WIN01_OBJ | WINOUT_WIN01_CLR);
SetGpuReg(REG_OFFSET_BLDCNT, BLDCNT_EFFECT_DARKEN | BLDCNT_TGT1_BG0); SetGpuReg(REG_OFFSET_BLDCNT, BLDCNT_EFFECT_DARKEN | BLDCNT_TGT1_BG0);
SetGpuReg(REG_OFFSET_BLDALPHA, 0); SetGpuReg(REG_OFFSET_BLDALPHA, 0);
SetGpuReg(REG_OFFSET_BLDY, 7); SetGpuReg(REG_OFFSET_BLDY, 7);
@ -461,7 +480,7 @@ void Task_WaitForBatteryDryErrorWindow(u8 taskId)
if (!IsTextPrinterActive(7) && (gMain.newKeys & A_BUTTON)) if (!IsTextPrinterActive(7) && (gMain.newKeys & A_BUTTON))
{ {
ClearWindowTilemap(7); ClearWindowTilemap(7);
sub_8032250(gUnknown_082FF070); ClearMainMenuWindowTilemap(sWindowTemplate_ErrorWindow);
gTasks[taskId].func = Task_DisplayMainMenu; gTasks[taskId].func = Task_DisplayMainMenu;
} }
} }
@ -475,8 +494,8 @@ void Task_DisplayMainMenu(u8 taskId)
{ {
SetGpuReg(REG_OFFSET_WIN0H, 0); SetGpuReg(REG_OFFSET_WIN0H, 0);
SetGpuReg(REG_OFFSET_WIN0V, 0); SetGpuReg(REG_OFFSET_WIN0V, 0);
SetGpuReg(REG_OFFSET_WININ, 17); SetGpuReg(REG_OFFSET_WININ, WININ_WIN0_BG0 | WININ_WIN0_OBJ);
SetGpuReg(REG_OFFSET_WINOUT, 0x31); SetGpuReg(REG_OFFSET_WINOUT, WINOUT_WIN01_BG0 | WINOUT_WIN01_OBJ | WINOUT_WIN01_CLR);
SetGpuReg(REG_OFFSET_BLDCNT, BLDCNT_EFFECT_DARKEN | BLDCNT_TGT1_BG0); SetGpuReg(REG_OFFSET_BLDCNT, BLDCNT_EFFECT_DARKEN | BLDCNT_TGT1_BG0);
SetGpuReg(REG_OFFSET_BLDALPHA, 0); SetGpuReg(REG_OFFSET_BLDALPHA, 0);
SetGpuReg(REG_OFFSET_BLDY, 7); SetGpuReg(REG_OFFSET_BLDY, 7);
@ -504,28 +523,28 @@ void Task_DisplayMainMenu(u8 taskId)
LoadPalette(&palette, 241, 2); LoadPalette(&palette, 241, 2);
} }
switch (gTasks[taskId].data[0]) switch (gTasks[taskId].tMenuType)
{ {
case HAS_NO_SAVED_GAME: case HAS_NO_SAVED_GAME:
default: default:
FillWindowPixelBuffer(0, 0xAA); FillWindowPixelBuffer(0, 0xAA);
FillWindowPixelBuffer(1, 0xAA); FillWindowPixelBuffer(1, 0xAA);
box_print(0, 1, 0, 1, gUnknown_082FF0E0, -1, gText_MainMenuNewGame); box_print(0, 1, 0, 1, gTextColor_Headers, -1, gText_MainMenuNewGame);
box_print(1, 1, 0, 1, gUnknown_082FF0E0, -1, gText_MainMenuOption); box_print(1, 1, 0, 1, gTextColor_Headers, -1, gText_MainMenuOption);
PutWindowTilemap(0); PutWindowTilemap(0);
PutWindowTilemap(1); PutWindowTilemap(1);
CopyWindowToVram(0, 2); CopyWindowToVram(0, 2);
CopyWindowToVram(1, 2); CopyWindowToVram(1, 2);
DrawMainMenuWindowBorder(gUnknown_082FF038, MAIN_MENU_BORDER_TILE); DrawMainMenuWindowBorder(&sWindowTemplates_NoSavedGame[0], MAIN_MENU_BORDER_TILE);
DrawMainMenuWindowBorder(&gUnknown_082FF038[1], MAIN_MENU_BORDER_TILE); DrawMainMenuWindowBorder(&sWindowTemplates_NoSavedGame[1], MAIN_MENU_BORDER_TILE);
break; break;
case HAS_SAVED_GAME: case HAS_SAVED_GAME:
FillWindowPixelBuffer(2, 0xAA); FillWindowPixelBuffer(2, 0xAA);
FillWindowPixelBuffer(3, 0xAA); FillWindowPixelBuffer(3, 0xAA);
FillWindowPixelBuffer(4, 0xAA); FillWindowPixelBuffer(4, 0xAA);
box_print(2, 1, 0, 1, gUnknown_082FF0E0, -1, gText_MainMenuContinue); box_print(2, 1, 0, 1, gTextColor_Headers, -1, gText_MainMenuContinue);
box_print(3, 1, 0, 1, gUnknown_082FF0E0, -1, gText_MainMenuNewGame); box_print(3, 1, 0, 1, gTextColor_Headers, -1, gText_MainMenuNewGame);
box_print(4, 1, 0, 1, gUnknown_082FF0E0, -1, gText_MainMenuOption); box_print(4, 1, 0, 1, gTextColor_Headers, -1, gText_MainMenuOption);
fmt_savegame(); fmt_savegame();
PutWindowTilemap(2); PutWindowTilemap(2);
PutWindowTilemap(3); PutWindowTilemap(3);
@ -533,19 +552,19 @@ void Task_DisplayMainMenu(u8 taskId)
CopyWindowToVram(2, 2); CopyWindowToVram(2, 2);
CopyWindowToVram(3, 2); CopyWindowToVram(3, 2);
CopyWindowToVram(4, 2); CopyWindowToVram(4, 2);
DrawMainMenuWindowBorder(gUnknown_082FF048, MAIN_MENU_BORDER_TILE); DrawMainMenuWindowBorder(&sWindowTemplates_HasSavedGame[0], MAIN_MENU_BORDER_TILE);
DrawMainMenuWindowBorder(&gUnknown_082FF048[1], MAIN_MENU_BORDER_TILE); DrawMainMenuWindowBorder(&sWindowTemplates_HasSavedGame[1], MAIN_MENU_BORDER_TILE);
DrawMainMenuWindowBorder(&gUnknown_082FF048[2], MAIN_MENU_BORDER_TILE); DrawMainMenuWindowBorder(&sWindowTemplates_HasSavedGame[2], MAIN_MENU_BORDER_TILE);
break; break;
case HAS_MYSTERY_GIFT: case HAS_MYSTERY_GIFT:
FillWindowPixelBuffer(2, 0xAA); FillWindowPixelBuffer(2, 0xAA);
FillWindowPixelBuffer(3, 0xAA); FillWindowPixelBuffer(3, 0xAA);
FillWindowPixelBuffer(4, 0xAA); FillWindowPixelBuffer(4, 0xAA);
FillWindowPixelBuffer(5, 0xAA); FillWindowPixelBuffer(5, 0xAA);
box_print(2, 1, 0, 1, gUnknown_082FF0E0, -1, gText_MainMenuContinue); box_print(2, 1, 0, 1, gTextColor_Headers, -1, gText_MainMenuContinue);
box_print(3, 1, 0, 1, gUnknown_082FF0E0, -1, gText_MainMenuNewGame); box_print(3, 1, 0, 1, gTextColor_Headers, -1, gText_MainMenuNewGame);
box_print(4, 1, 0, 1, gUnknown_082FF0E0, -1, gText_MainMenuMysteryGift); box_print(4, 1, 0, 1, gTextColor_Headers, -1, gText_MainMenuMysteryGift);
box_print(5, 1, 0, 1, gUnknown_082FF0E0, -1, gText_MainMenuOption); box_print(5, 1, 0, 1, gTextColor_Headers, -1, gText_MainMenuOption);
fmt_savegame(); fmt_savegame();
PutWindowTilemap(2); PutWindowTilemap(2);
PutWindowTilemap(3); PutWindowTilemap(3);
@ -555,10 +574,10 @@ void Task_DisplayMainMenu(u8 taskId)
CopyWindowToVram(3, 2); CopyWindowToVram(3, 2);
CopyWindowToVram(4, 2); CopyWindowToVram(4, 2);
CopyWindowToVram(5, 2); CopyWindowToVram(5, 2);
DrawMainMenuWindowBorder(gUnknown_082FF048, MAIN_MENU_BORDER_TILE); DrawMainMenuWindowBorder(sWindowTemplates_HasSavedGame, MAIN_MENU_BORDER_TILE);
DrawMainMenuWindowBorder(&gUnknown_082FF048[1], MAIN_MENU_BORDER_TILE); DrawMainMenuWindowBorder(&sWindowTemplates_HasSavedGame[1], MAIN_MENU_BORDER_TILE);
DrawMainMenuWindowBorder(&gUnknown_082FF048[2], MAIN_MENU_BORDER_TILE); DrawMainMenuWindowBorder(&sWindowTemplates_HasSavedGame[2], MAIN_MENU_BORDER_TILE);
DrawMainMenuWindowBorder(&gUnknown_082FF048[3], MAIN_MENU_BORDER_TILE); DrawMainMenuWindowBorder(&sWindowTemplates_HasSavedGame[3], MAIN_MENU_BORDER_TILE);
break; break;
case HAS_MYSTERY_EVENTS: case HAS_MYSTERY_EVENTS:
FillWindowPixelBuffer(2, 0xAA); FillWindowPixelBuffer(2, 0xAA);
@ -566,11 +585,11 @@ void Task_DisplayMainMenu(u8 taskId)
FillWindowPixelBuffer(4, 0xAA); FillWindowPixelBuffer(4, 0xAA);
FillWindowPixelBuffer(5, 0xAA); FillWindowPixelBuffer(5, 0xAA);
FillWindowPixelBuffer(6, 0xAA); FillWindowPixelBuffer(6, 0xAA);
box_print(2, 1, 0, 1, gUnknown_082FF0E0, -1, gText_MainMenuContinue); box_print(2, 1, 0, 1, gTextColor_Headers, -1, gText_MainMenuContinue);
box_print(3, 1, 0, 1, gUnknown_082FF0E0, -1, gText_MainMenuNewGame); box_print(3, 1, 0, 1, gTextColor_Headers, -1, gText_MainMenuNewGame);
box_print(4, 1, 0, 1, gUnknown_082FF0E0, -1, gText_MainMenuMysteryGift2); box_print(4, 1, 0, 1, gTextColor_Headers, -1, gText_MainMenuMysteryGift2);
box_print(5, 1, 0, 1, gUnknown_082FF0E0, -1, gText_MainMenuMysteryEvents); box_print(5, 1, 0, 1, gTextColor_Headers, -1, gText_MainMenuMysteryEvents);
box_print(6, 1, 0, 1, gUnknown_082FF0E0, -1, gText_MainMenuOption); box_print(6, 1, 0, 1, gTextColor_Headers, -1, gText_MainMenuOption);
fmt_savegame(); fmt_savegame();
PutWindowTilemap(2); PutWindowTilemap(2);
PutWindowTilemap(3); PutWindowTilemap(3);
@ -582,19 +601,19 @@ void Task_DisplayMainMenu(u8 taskId)
CopyWindowToVram(4, 2); CopyWindowToVram(4, 2);
CopyWindowToVram(5, 2); CopyWindowToVram(5, 2);
CopyWindowToVram(6, 2); CopyWindowToVram(6, 2);
DrawMainMenuWindowBorder(gUnknown_082FF048, MAIN_MENU_BORDER_TILE); DrawMainMenuWindowBorder(&sWindowTemplates_HasSavedGame[0], MAIN_MENU_BORDER_TILE);
DrawMainMenuWindowBorder(&gUnknown_082FF048[1], MAIN_MENU_BORDER_TILE); DrawMainMenuWindowBorder(&sWindowTemplates_HasSavedGame[1], MAIN_MENU_BORDER_TILE);
DrawMainMenuWindowBorder(&gUnknown_082FF048[2], MAIN_MENU_BORDER_TILE); DrawMainMenuWindowBorder(&sWindowTemplates_HasSavedGame[2], MAIN_MENU_BORDER_TILE);
DrawMainMenuWindowBorder(&gUnknown_082FF048[3], MAIN_MENU_BORDER_TILE); DrawMainMenuWindowBorder(&sWindowTemplates_HasSavedGame[3], MAIN_MENU_BORDER_TILE);
DrawMainMenuWindowBorder(&gUnknown_082FF048[4], MAIN_MENU_BORDER_TILE); DrawMainMenuWindowBorder(&sWindowTemplates_HasSavedGame[4], MAIN_MENU_BORDER_TILE);
data[13] = AddScrollIndicatorArrowPair(&gUnknown_082FF0F4, &gUnknown_02022D06); tScrollArrowTaskId = AddScrollIndicatorArrowPair(&sScrollArrowsTemplate_MainMenu, &sCurrItemAndOptionMenuCheck);
gTasks[data[13]].func = Task_ScrollIndicatorArrowPairOnMainMenu; gTasks[tScrollArrowTaskId].func = Task_ScrollIndicatorArrowPairOnMainMenu;
if (gUnknown_02022D06 == 4) if (sCurrItemAndOptionMenuCheck == 4)
{ {
ChangeBgY(0, 0x2000, 1); ChangeBgY(0, 0x2000, 1);
ChangeBgY(1, 0x2000, 1); ChangeBgY(1, 0x2000, 1);
data[14] = 1; tIsScrolled = TRUE;
gTasks[data[13]].data[15] = 1; gTasks[tScrollArrowTaskId].tArrowTaskIsScrolled = TRUE;
} }
break; break;
} }
@ -604,7 +623,7 @@ void Task_DisplayMainMenu(u8 taskId)
void Task_HighlightSelectedMainMenuItem(u8 taskId) void Task_HighlightSelectedMainMenuItem(u8 taskId)
{ {
HighlightSelectedMainMenuItem(gTasks[taskId].data[0], gTasks[taskId].data[1], gTasks[taskId].data[14]); HighlightSelectedMainMenuItem(gTasks[taskId].tMenuType, gTasks[taskId].tCurrItem, gTasks[taskId].tIsScrolled);
gTasks[taskId].func = Task_HandleMainMenuInput; gTasks[taskId].func = Task_HandleMainMenuInput;
} }
@ -615,40 +634,40 @@ bool8 HandleMainMenuInput(u8 taskId)
if (gMain.newKeys & A_BUTTON) if (gMain.newKeys & A_BUTTON)
{ {
PlaySE(SE_SELECT); PlaySE(SE_SELECT);
sub_80093CC(); IsWirelessAdapterConnected(); // why bother calling this here? debug? Task_HandleMainMenuAPressed will check too
BeginNormalPaletteFade(-1, 0, 0, 0x10, RGB_BLACK); BeginNormalPaletteFade(0xFFFFFFFF, 0, 0, 0x10, RGB_BLACK);
gTasks[taskId].func = Task_HandleMainMenuAPressed; gTasks[taskId].func = Task_HandleMainMenuAPressed;
} }
else if (gMain.newKeys & B_BUTTON) else if (gMain.newKeys & B_BUTTON)
{ {
PlaySE(SE_SELECT); PlaySE(SE_SELECT);
BeginNormalPaletteFade(-1, 0, 0, 0x10, RGB_WHITEALPHA); BeginNormalPaletteFade(0xFFFFFFFF, 0, 0, 0x10, RGB_WHITEALPHA);
SetGpuReg(REG_OFFSET_WIN0H, 0xF0); SetGpuReg(REG_OFFSET_WIN0H, 0xF0);
SetGpuReg(REG_OFFSET_WIN0V, 0xA0); SetGpuReg(REG_OFFSET_WIN0V, 0xA0);
gTasks[taskId].func = Task_HandleMainMenuBPressed; gTasks[taskId].func = Task_HandleMainMenuBPressed;
} }
else if ((gMain.newKeys & DPAD_UP) && data[1] > 0) else if ((gMain.newKeys & DPAD_UP) && tCurrItem > 0)
{ {
if (data[0] == 3 && data[14] == 1 && data[1] == 1) if (tMenuType == HAS_MYSTERY_EVENTS && tIsScrolled == TRUE && tCurrItem == 1)
{ {
ChangeBgY(0, 0x2000, 2); ChangeBgY(0, 0x2000, 2);
ChangeBgY(1, 0x2000, 2); ChangeBgY(1, 0x2000, 2);
gTasks[data[13]].data[15] = data[14] = 0; gTasks[tScrollArrowTaskId].tArrowTaskIsScrolled = tIsScrolled = FALSE;
} }
data[1]--; tCurrItem--;
gUnknown_02022D06 = data[1]; sCurrItemAndOptionMenuCheck = tCurrItem;
return TRUE; return TRUE;
} }
else if ((gMain.newKeys & DPAD_DOWN) && data[1] < data[12] - 1) else if ((gMain.newKeys & DPAD_DOWN) && tCurrItem < tItemCount - 1)
{ {
if (data[0] == 3 && data[1] == 3 && data[14] == 0) if (tMenuType == HAS_MYSTERY_EVENTS && tCurrItem == 3 && tIsScrolled == FALSE)
{ {
ChangeBgY(0, 0x2000, 1); ChangeBgY(0, 0x2000, 1);
ChangeBgY(1, 0x2000, 1); ChangeBgY(1, 0x2000, 1);
gTasks[data[13]].data[15] = data[14] = 1; gTasks[tScrollArrowTaskId].tArrowTaskIsScrolled = tIsScrolled = TRUE;
} }
data[1]++; tCurrItem++;
gUnknown_02022D06 = data[1]; sCurrItemAndOptionMenuCheck = tCurrItem;
return TRUE; return TRUE;
} }
return FALSE; return FALSE;
@ -662,13 +681,13 @@ void Task_HandleMainMenuInput(u8 taskId)
void Task_HandleMainMenuAPressed(u8 taskId) void Task_HandleMainMenuAPressed(u8 taskId)
{ {
bool8 r2; bool8 wirelessAdapterConnected;
u8 action; u8 action;
if (!gPaletteFade.active) if (!gPaletteFade.active)
{ {
if (gTasks[taskId].data[0] == 3) if (gTasks[taskId].tMenuType == HAS_MYSTERY_EVENTS)
RemoveScrollIndicatorArrowPair(gTasks[taskId].data[13]); RemoveScrollIndicatorArrowPair(gTasks[taskId].tScrollArrowTaskId);
sub_819746C(0, 1); sub_819746C(0, 1);
sub_819746C(1, 1); sub_819746C(1, 1);
sub_819746C(2, 1); sub_819746C(2, 1);
@ -677,103 +696,103 @@ void Task_HandleMainMenuAPressed(u8 taskId)
sub_819746C(5, 1); sub_819746C(5, 1);
sub_819746C(6, 1); sub_819746C(6, 1);
sub_819746C(7, 1); sub_819746C(7, 1);
r2 = sub_80093CC(); wirelessAdapterConnected = IsWirelessAdapterConnected();
switch (gTasks[taskId].data[0]) switch (gTasks[taskId].tMenuType)
{ {
case HAS_NO_SAVED_GAME: case HAS_NO_SAVED_GAME:
default: default:
switch (gTasks[taskId].data[1]) switch (gTasks[taskId].tCurrItem)
{ {
case 0: case 0:
default: default:
action = 0; action = ACTION_NEW_GAME;
break; break;
case 1: case 1:
action = 2; action = ACTION_OPTIONS;
break; break;
} }
break; break;
case HAS_SAVED_GAME: case HAS_SAVED_GAME:
switch (gTasks[taskId].data[1]) switch (gTasks[taskId].tCurrItem)
{ {
case 0: case 0:
default: default:
action = 1; action = ACTION_CONTINUE;
break; break;
case 1: case 1:
action = 0; action = ACTION_NEW_GAME;
break; break;
case 2: case 2:
action = 2; action = ACTION_OPTIONS;
break; break;
} }
break; break;
case HAS_MYSTERY_GIFT: case HAS_MYSTERY_GIFT:
switch (gTasks[taskId].data[1]) switch (gTasks[taskId].tCurrItem)
{ {
case 0: case 0:
default: default:
action = 1; action = ACTION_CONTINUE;
break; break;
case 1: case 1:
action = 0; action = ACTION_NEW_GAME;
break; break;
case 2: case 2:
action = 3; action = ACTION_MYSTERY_GIFT;
if (r2 == FALSE) if (!wirelessAdapterConnected)
{ {
action = 6; action = ACTION_INVALID;
gTasks[taskId].data[0] = 0; gTasks[taskId].tMenuType = 0;
} }
break; break;
case 3: case 3:
action = 2; action = ACTION_OPTIONS;
break; break;
} }
break; break;
case HAS_MYSTERY_EVENTS: case HAS_MYSTERY_EVENTS:
switch (gTasks[taskId].data[1]) switch (gTasks[taskId].tCurrItem)
{ {
case 0: case 0:
default: default:
action = 1; action = ACTION_CONTINUE;
break; break;
case 1: case 1:
action = 0; action = ACTION_NEW_GAME;
break; break;
case 2: case 2:
if (gTasks[taskId].data[15]) if (gTasks[taskId].tWirelessAdapterConnected)
{ {
action = 3; action = ACTION_MYSTERY_GIFT;
if (r2 == FALSE) if (!wirelessAdapterConnected)
{ {
action = 6; action = ACTION_INVALID;
gTasks[taskId].data[0] = 0; gTasks[taskId].tMenuType = 0;
} }
} }
else if (r2) else if (wirelessAdapterConnected)
{ {
action = 6; action = ACTION_INVALID;
gTasks[taskId].data[0] = 1; gTasks[taskId].tMenuType = 1;
} }
else else
{ {
action = 5; action = ACTION_UNKNOWN;
} }
break; break;
case 3: case 3:
if (r2) if (wirelessAdapterConnected)
{ {
action = 6; action = ACTION_INVALID;
gTasks[taskId].data[0] = 2; gTasks[taskId].tMenuType = 2;
} }
else else
{ {
action = 4; action = ACTION_MYSTERY_EVENTS;
} }
break; break;
case 4: case 4:
action = 2; action = ACTION_OPTIONS;
break; break;
} }
break; break;
@ -782,37 +801,37 @@ void Task_HandleMainMenuAPressed(u8 taskId)
ChangeBgY(1, 0, 0); ChangeBgY(1, 0, 0);
switch (action) switch (action)
{ {
case 0: case ACTION_NEW_GAME:
default: default:
gPlttBufferUnfaded[0] = RGB_BLACK; gPlttBufferUnfaded[0] = RGB_BLACK;
gPlttBufferFaded[0] = RGB_BLACK; gPlttBufferFaded[0] = RGB_BLACK;
gTasks[taskId].func = task_new_game_prof_birch_speech_1; gTasks[taskId].func = task_new_game_prof_birch_speech_1;
break; break;
case 1: case ACTION_CONTINUE:
gPlttBufferUnfaded[0] = RGB_BLACK; gPlttBufferUnfaded[0] = RGB_BLACK;
gPlttBufferFaded[0] = RGB_BLACK; gPlttBufferFaded[0] = RGB_BLACK;
SetMainCallback2(CB2_ContinueSavedGame); SetMainCallback2(CB2_ContinueSavedGame);
DestroyTask(taskId); DestroyTask(taskId);
break; break;
case 2: case ACTION_OPTIONS:
gMain.savedCallback = CB2_ReinitMainMenu; gMain.savedCallback = CB2_ReinitMainMenu;
SetMainCallback2(CB2_InitOptionMenu); SetMainCallback2(CB2_InitOptionMenu);
DestroyTask(taskId); DestroyTask(taskId);
break; break;
case 3: case ACTION_MYSTERY_GIFT:
SetMainCallback2(c2_mystery_gift); SetMainCallback2(c2_mystery_gift);
DestroyTask(taskId); DestroyTask(taskId);
break; break;
case 4: case ACTION_MYSTERY_EVENTS:
SetMainCallback2(CB2_InitMysteryEventMenu); SetMainCallback2(CB2_InitMysteryEventMenu);
DestroyTask(taskId); DestroyTask(taskId);
break; break;
case 5: case ACTION_UNKNOWN:
SetMainCallback2(sub_801867C); SetMainCallback2(sub_801867C);
DestroyTask(taskId); DestroyTask(taskId);
break; break;
case 6: case ACTION_INVALID:
gTasks[taskId].data[1] = 0; gTasks[taskId].tCurrItem = 0;
gTasks[taskId].func = Task_DisplayMainMenuInvalidActionError; gTasks[taskId].func = Task_DisplayMainMenuInvalidActionError;
gPlttBufferUnfaded[0xF1] = RGB_WHITE; gPlttBufferUnfaded[0xF1] = RGB_WHITE;
gPlttBufferFaded[0xF1] = RGB_WHITE; gPlttBufferFaded[0xF1] = RGB_WHITE;
@ -822,14 +841,14 @@ void Task_HandleMainMenuAPressed(u8 taskId)
SetGpuReg(REG_OFFSET_BG1VOFS, 0); SetGpuReg(REG_OFFSET_BG1VOFS, 0);
SetGpuReg(REG_OFFSET_BG0HOFS, 0); SetGpuReg(REG_OFFSET_BG0HOFS, 0);
SetGpuReg(REG_OFFSET_BG0VOFS, 0); SetGpuReg(REG_OFFSET_BG0VOFS, 0);
BeginNormalPaletteFade(-1, 0, 16, 0, 0); BeginNormalPaletteFade(0xFFFFFFFF, 0, 16, 0, 0);
return; return;
} }
FreeAllWindowBuffers(); FreeAllWindowBuffers();
if (action != 2) if (action != ACTION_OPTIONS)
gUnknown_02022D06 = 0; sCurrItemAndOptionMenuCheck = 0;
else else
gUnknown_02022D06 |= 0x8000; sCurrItemAndOptionMenuCheck |= 0x8000; // entering the options menu
} }
} }
@ -837,9 +856,9 @@ void Task_HandleMainMenuBPressed(u8 taskId)
{ {
if (!gPaletteFade.active) if (!gPaletteFade.active)
{ {
if (gTasks[taskId].data[0] == 3) if (gTasks[taskId].tMenuType == 3)
RemoveScrollIndicatorArrowPair(gTasks[taskId].data[13]); RemoveScrollIndicatorArrowPair(gTasks[taskId].tScrollArrowTaskId);
gUnknown_02022D06 = 0; sCurrItemAndOptionMenuCheck = 0;
FreeAllWindowBuffers(); FreeAllWindowBuffers();
SetMainCallback2(CB2_InitTitleScreen); SetMainCallback2(CB2_InitTitleScreen);
DestroyTask(taskId); DestroyTask(taskId);
@ -848,11 +867,11 @@ void Task_HandleMainMenuBPressed(u8 taskId)
void Task_DisplayMainMenuInvalidActionError(u8 taskId) void Task_DisplayMainMenuInvalidActionError(u8 taskId)
{ {
switch (gTasks[taskId].data[1]) switch (gTasks[taskId].tCurrItem)
{ {
case 0: case 0:
FillBgTilemapBufferRect_Palette0(0, 0, 0, 0, 30, 20); FillBgTilemapBufferRect_Palette0(0, 0, 0, 0, 30, 20);
switch (gTasks[taskId].data[0]) switch (gTasks[taskId].tMenuType)
{ {
case 0: case 0:
CreateMainMenuErrorWindow(gText_WirelessNotConnected); CreateMainMenuErrorWindow(gText_WirelessNotConnected);
@ -864,30 +883,39 @@ void Task_DisplayMainMenuInvalidActionError(u8 taskId)
CreateMainMenuErrorWindow(gText_MysteryEventsCantUse); CreateMainMenuErrorWindow(gText_MysteryEventsCantUse);
break; break;
} }
gTasks[taskId].data[1]++; gTasks[taskId].tCurrItem++;
break; break;
case 1: case 1:
if (!gPaletteFade.active) if (!gPaletteFade.active)
gTasks[taskId].data[1]++; gTasks[taskId].tCurrItem++;
break; break;
case 2: case 2:
RunTextPrinters(); RunTextPrinters();
if (!IsTextPrinterActive(7)) if (!IsTextPrinterActive(7))
gTasks[taskId].data[1]++; gTasks[taskId].tCurrItem++;
break; break;
case 3: case 3:
if (gMain.newKeys & (A_BUTTON | B_BUTTON)) if (gMain.newKeys & (A_BUTTON | B_BUTTON))
{ {
PlaySE(SE_SELECT); PlaySE(SE_SELECT);
BeginNormalPaletteFade(-1, 0, 0, 16, RGB_BLACK); BeginNormalPaletteFade(0xFFFFFFFF, 0, 0, 16, RGB_BLACK);
gTasks[taskId].func = Task_HandleMainMenuBPressed; gTasks[taskId].func = Task_HandleMainMenuBPressed;
} }
} }
} }
void HighlightSelectedMainMenuItem(u8 menuType, u8 selectedMenuItem, s16 a) #undef tMenuType
#undef tCurrItem
#undef tItemCount
#undef tScrollArrowTaskId
#undef tIsScrolled
#undef tWirelessAdapterConnected
#undef tArrowTaskIsScrolled
void HighlightSelectedMainMenuItem(u8 menuType, u8 selectedMenuItem, s16 isScrolled)
{ {
SetGpuReg(REG_OFFSET_WIN0H, 0x9E7); SetGpuReg(REG_OFFSET_WIN0H, WINHV_COORDS(9, 231));
switch (menuType) switch (menuType)
{ {
@ -897,10 +925,10 @@ void HighlightSelectedMainMenuItem(u8 menuType, u8 selectedMenuItem, s16 a)
{ {
case 0: case 0:
default: default:
SetGpuReg(REG_OFFSET_WIN0V, 0x11F); SetGpuReg(REG_OFFSET_WIN0V, WINHV_COORDS(1, 31));
break; break;
case 1: case 1:
SetGpuReg(REG_OFFSET_WIN0V, 0x213F); SetGpuReg(REG_OFFSET_WIN0V, WINHV_COORDS(33, 63));
break; break;
} }
break; break;
@ -909,13 +937,13 @@ void HighlightSelectedMainMenuItem(u8 menuType, u8 selectedMenuItem, s16 a)
{ {
case 0: case 0:
default: default:
SetGpuReg(REG_OFFSET_WIN0V, 0x13F); SetGpuReg(REG_OFFSET_WIN0V, WINHV_COORDS(1, 63));
break; break;
case 1: case 1:
SetGpuReg(REG_OFFSET_WIN0V, 0x415F); SetGpuReg(REG_OFFSET_WIN0V, WINHV_COORDS(65, 95));
break; break;
case 2: case 2:
SetGpuReg(REG_OFFSET_WIN0V, 0x617F); SetGpuReg(REG_OFFSET_WIN0V, WINHV_COORDS(97, 127));
break; break;
} }
break; break;
@ -924,16 +952,16 @@ void HighlightSelectedMainMenuItem(u8 menuType, u8 selectedMenuItem, s16 a)
{ {
case 0: case 0:
default: default:
SetGpuReg(REG_OFFSET_WIN0V, 0x13F); SetGpuReg(REG_OFFSET_WIN0V, WINHV_COORDS(1, 63));
break; break;
case 1: case 1:
SetGpuReg(REG_OFFSET_WIN0V, 0x415F); SetGpuReg(REG_OFFSET_WIN0V, WINHV_COORDS(65, 95));
break; break;
case 2: case 2:
SetGpuReg(REG_OFFSET_WIN0V, 0x617F); SetGpuReg(REG_OFFSET_WIN0V, WINHV_COORDS(97, 127));
break; break;
case 3: case 3:
SetGpuReg(REG_OFFSET_WIN0V, 0x819F); SetGpuReg(REG_OFFSET_WIN0V, WINHV_COORDS(129, 159));
break; break;
} }
break; break;
@ -942,28 +970,28 @@ void HighlightSelectedMainMenuItem(u8 menuType, u8 selectedMenuItem, s16 a)
{ {
case 0: case 0:
default: default:
SetGpuReg(REG_OFFSET_WIN0V, 0x13F); SetGpuReg(REG_OFFSET_WIN0V, WINHV_COORDS(1, 63));
break; break;
case 1: case 1:
if (a) if (isScrolled)
SetGpuReg(REG_OFFSET_WIN0V, 0x213F); SetGpuReg(REG_OFFSET_WIN0V, WINHV_COORDS(33, 63));
else else
SetGpuReg(REG_OFFSET_WIN0V, 0x415F); SetGpuReg(REG_OFFSET_WIN0V, WINHV_COORDS(65, 95));
break; break;
case 2: case 2:
if (a) if (isScrolled)
SetGpuReg(REG_OFFSET_WIN0V, 0x415F); SetGpuReg(REG_OFFSET_WIN0V, WINHV_COORDS(65, 95));
else else
SetGpuReg(REG_OFFSET_WIN0V, 0x617F); SetGpuReg(REG_OFFSET_WIN0V, WINHV_COORDS(97, 127));
break; break;
case 3: case 3:
if (a) if (isScrolled)
SetGpuReg(REG_OFFSET_WIN0V, 0x617F); SetGpuReg(REG_OFFSET_WIN0V, WINHV_COORDS(97, 127));
else else
SetGpuReg(REG_OFFSET_WIN0V, 0x819F); SetGpuReg(REG_OFFSET_WIN0V, WINHV_COORDS(129, 159));
break; break;
case 4: case 4:
SetGpuReg(REG_OFFSET_WIN0V, 0x819F); SetGpuReg(REG_OFFSET_WIN0V, WINHV_COORDS(129, 159));
break; break;
} }
break; break;
@ -992,7 +1020,7 @@ void task_new_game_prof_birch_speech_1(u8 taskId)
FreeAllSpritePalettes(); FreeAllSpritePalettes();
dp13_810BB8C(); dp13_810BB8C();
AddBirchSpeechObjects(taskId); AddBirchSpeechObjects(taskId);
BeginNormalPaletteFade(-1, 0, 16, 0, 0); BeginNormalPaletteFade(0xFFFFFFFF, 0, 16, 0, 0);
gTasks[taskId].data[4] = 0; gTasks[taskId].data[4] = 0;
gTasks[taskId].func = task_new_game_prof_birch_speech_2; gTasks[taskId].func = task_new_game_prof_birch_speech_2;
gTasks[taskId].data[2] = 0xFF; gTasks[taskId].data[2] = 0xFF;
@ -1298,7 +1326,7 @@ void task_new_game_prof_birch_speech_16(u8 taskId)
{ {
if ((gMain.newKeys & A_BUTTON) || (gMain.newKeys & B_BUTTON)) if ((gMain.newKeys & A_BUTTON) || (gMain.newKeys & B_BUTTON))
{ {
BeginNormalPaletteFade(-1, 0, 0, 16, RGB_BLACK); BeginNormalPaletteFade(0xFFFFFFFF, 0, 0, 16, RGB_BLACK);
gTasks[taskId].func = task_new_game_prof_birch_speech_17; gTasks[taskId].func = task_new_game_prof_birch_speech_17;
} }
} }
@ -1547,7 +1575,7 @@ void new_game_prof_birch_speech_part2_start(void)
gSprites[spriteId].invisible = 0; gSprites[spriteId].invisible = 0;
gTasks[taskId].data[2] = spriteId; gTasks[taskId].data[2] = spriteId;
SetGpuReg(REG_OFFSET_BG1HOFS, -60); SetGpuReg(REG_OFFSET_BG1HOFS, -60);
BeginNormalPaletteFade(-1, 0, 16, 0, 0); BeginNormalPaletteFade(0xFFFFFFFF, 0, 16, 0, 0);
SetGpuReg(REG_OFFSET_WIN0H, 0); SetGpuReg(REG_OFFSET_WIN0H, 0);
SetGpuReg(REG_OFFSET_WIN0V, 0); SetGpuReg(REG_OFFSET_WIN0V, 0);
SetGpuReg(REG_OFFSET_WININ, 0); SetGpuReg(REG_OFFSET_WININ, 0);
@ -1797,7 +1825,7 @@ void CreateMainMenuErrorWindow(const u8* str)
PrintTextOnWindow(7, 1, str, 0, 1, 2, 0); PrintTextOnWindow(7, 1, str, 0, 1, 2, 0);
PutWindowTilemap(7); PutWindowTilemap(7);
CopyWindowToVram(7, 2); CopyWindowToVram(7, 2);
DrawMainMenuWindowBorder(gUnknown_082FF070, MAIN_MENU_BORDER_TILE); DrawMainMenuWindowBorder(sWindowTemplate_ErrorWindow, MAIN_MENU_BORDER_TILE);
SetGpuReg(REG_OFFSET_WIN0H, 0x9E7); SetGpuReg(REG_OFFSET_WIN0H, 0x9E7);
SetGpuReg(REG_OFFSET_WIN0V, 0x719F); SetGpuReg(REG_OFFSET_WIN0V, 0x719F);
} }
@ -1892,7 +1920,7 @@ void DrawMainMenuWindowBorder(const struct WindowTemplate *template, u16 baseTil
CopyBgTilemapBufferToVram(template->priority); CopyBgTilemapBufferToVram(template->priority);
} }
void sub_8032250(const struct WindowTemplate *template) static void ClearMainMenuWindowTilemap(const struct WindowTemplate *template)
{ {
FillBgTilemapBufferRect(template->priority, 0, template->tilemapLeft - 1, template->tilemapTop - 1, template->tilemapLeft + template->width + 1, template->tilemapTop + template->height + 1, 2); FillBgTilemapBufferRect(template->priority, 0, template->tilemapLeft - 1, template->tilemapTop - 1, template->tilemapLeft + template->width + 1, template->tilemapTop + template->height + 1, 2);
CopyBgTilemapBufferToVram(template->priority); CopyBgTilemapBufferToVram(template->priority);
@ -1914,11 +1942,11 @@ void sub_80322E0(u8 windowId, u8 a)
void sub_8032318(u8 a) void sub_8032318(u8 a)
{ {
u8 fontAttribute = GetFontAttribute(1, 6); u8 fontAttribute = GetFontAttribute(1, FONTATTR_COLOR_BACKGROUND);
u8 fontAttribute2 = GetFontAttribute(1, 0); u8 fontAttribute2 = GetFontAttribute(1, FONTATTR_MAX_LETTER_WIDTH);
u8 fontAttribute3 = GetFontAttribute(1, 1); u8 fontAttribute3 = GetFontAttribute(1, FONTATTR_MAX_LETTER_HEIGHT);
u8 windowAttribute = GetWindowAttribute(a, 3); u8 windowAttribute = GetWindowAttribute(a, WINDOW_WIDTH);
u8 windowAttribute2 = GetWindowAttribute(a, 4); u8 windowAttribute2 = GetWindowAttribute(a, WINDOW_HEIGHT);
FillWindowPixelRect(a, fontAttribute, 0, 0, fontAttribute2 * windowAttribute, fontAttribute3 * windowAttribute2); FillWindowPixelRect(a, fontAttribute, 0, 0, fontAttribute2 * windowAttribute, fontAttribute3 * windowAttribute2);
CopyWindowToVram(a, 2); CopyWindowToVram(a, 2);

View File

@ -463,7 +463,7 @@ static void LoadMapNamePopUpWindowBg(void)
} }
popUpThemeId = gRegionMapSectionId_To_PopUpThemeIdMapping[regionMapSectionId]; popUpThemeId = gRegionMapSectionId_To_PopUpThemeIdMapping[regionMapSectionId];
LoadBgTiles(GetWindowAttribute(popupWindowId, 0), &(gMapPopUp_Outline_Table[popUpThemeId][0]), 0x400, 0x21D); LoadBgTiles(GetWindowAttribute(popupWindowId, WINDOW_PRIORITY), &(gMapPopUp_Outline_Table[popUpThemeId][0]), 0x400, 0x21D);
CallWindowFunction(popupWindowId, sub_80D4A78); CallWindowFunction(popupWindowId, sub_80D4A78);
PutWindowTilemap(popupWindowId); PutWindowTilemap(popupWindowId);
if(gMapHeader.weather == WEATHER_BUBBLES) if(gMapHeader.weather == WEATHER_BUBBLES)

View File

@ -194,7 +194,7 @@ void AddTextPrinterWithCustomSpeedForMessage(bool8 allowSkippingDelayWithButtonP
void sub_81973A4(void) void sub_81973A4(void)
{ {
copy_textbox_border_tile_patterns_to_vram(0, DLG_WINDOW_BASE_TILE_NUM, DLG_WINDOW_PALETTE_NUM * 0x10); copy_textbox_border_tile_patterns_to_vram(0, DLG_WINDOW_BASE_TILE_NUM, DLG_WINDOW_PALETTE_NUM * 0x10);
sub_809882C(0, STD_WINDOW_BASE_TILE_NUM, STD_WINDOW_PALETTE_NUM * 0x10); LoadUserWindowBorderGfx(0, STD_WINDOW_BASE_TILE_NUM, STD_WINDOW_PALETTE_NUM * 0x10);
} }
void NewMenuHelpers_DrawDialogueFrame(u8 windowId, bool8 copyToVram) void NewMenuHelpers_DrawDialogueFrame(u8 windowId, bool8 copyToVram)
@ -1107,12 +1107,12 @@ void AddItemMenuActionTextPrinters(u8 windowId, u8 fontId, u8 left, u8 top, u8 l
printer.windowId = windowId; printer.windowId = windowId;
printer.fontId = fontId; printer.fontId = fontId;
printer.fgColor = GetFontAttribute(fontId, 5); printer.fgColor = GetFontAttribute(fontId, FONTATTR_COLOR_FOREGROUND);
printer.bgColor = GetFontAttribute(fontId, 6); printer.bgColor = GetFontAttribute(fontId, FONTATTR_COLOR_BACKGROUND);
printer.shadowColor = GetFontAttribute(fontId, 7); printer.shadowColor = GetFontAttribute(fontId, FONTATTR_COLOR_SHADOW);
printer.fontColor_l = GetFontAttribute(fontId, 4); printer.fontColor_l = GetFontAttribute(fontId, FONTATTR_COLOR_LOWNIBBLE);
printer.letterSpacing = letterSpacing; printer.letterSpacing = letterSpacing;
printer.lineSpacing = GetFontAttribute(fontId, 3); printer.lineSpacing = GetFontAttribute(fontId, FONTATTR_LINE_SPACING);
printer.x = left; printer.x = left;
printer.currentX = left; printer.currentX = left;
@ -1129,7 +1129,7 @@ void AddItemMenuActionTextPrinters(u8 windowId, u8 fontId, u8 left, u8 top, u8 l
void sub_81989B8(u8 windowId, u8 fontId, u8 lineHeight, u8 itemCount, const struct MenuAction *strs, const u8 *a5) void sub_81989B8(u8 windowId, u8 fontId, u8 lineHeight, u8 itemCount, const struct MenuAction *strs, const u8 *a5)
{ {
AddItemMenuActionTextPrinters(windowId, fontId, GetFontAttribute(fontId, 0), 1, GetFontAttribute(fontId, 2), lineHeight, itemCount, strs, a5); AddItemMenuActionTextPrinters(windowId, fontId, GetFontAttribute(fontId, FONTATTR_MAX_LETTER_WIDTH), 1, GetFontAttribute(fontId, FONTATTR_LETTER_SPACING), lineHeight, itemCount, strs, a5);
} }
void SetWindowTemplateFields(struct WindowTemplate *template, u8 bg, u8 left, u8 top, u8 width, u8 height, u8 paletteNum, u16 baseBlock) void SetWindowTemplateFields(struct WindowTemplate *template, u8 bg, u8 left, u8 top, u8 width, u8 height, u8 paletteNum, u16 baseBlock)
@ -1167,20 +1167,20 @@ void sub_8198AF8(const struct WindowTemplate *window, u8 fontId, u8 left, u8 top
printer.current_text_offset = gText_YesNo; printer.current_text_offset = gText_YesNo;
printer.windowId = gUnknown_0203CD9F; printer.windowId = gUnknown_0203CD9F;
printer.fontId = fontId; printer.fontId = fontId;
printer.x = GetFontAttribute(fontId, 0) + left; printer.x = GetFontAttribute(fontId, FONTATTR_MAX_LETTER_WIDTH) + left;
printer.y = top; printer.y = top;
printer.currentX = printer.x; printer.currentX = printer.x;
printer.currentY = printer.y; printer.currentY = printer.y;
printer.fgColor = GetFontAttribute(fontId, 5); printer.fgColor = GetFontAttribute(fontId, FONTATTR_COLOR_FOREGROUND);
printer.bgColor = GetFontAttribute(fontId, 6); printer.bgColor = GetFontAttribute(fontId, FONTATTR_COLOR_BACKGROUND);
printer.shadowColor = GetFontAttribute(fontId, 7); printer.shadowColor = GetFontAttribute(fontId, FONTATTR_COLOR_SHADOW);
printer.fontColor_l = GetFontAttribute(fontId, 4); printer.fontColor_l = GetFontAttribute(fontId, FONTATTR_COLOR_LOWNIBBLE);
printer.letterSpacing = GetFontAttribute(fontId, 2); printer.letterSpacing = GetFontAttribute(fontId, FONTATTR_LETTER_SPACING);
printer.lineSpacing = GetFontAttribute(fontId, 3); printer.lineSpacing = GetFontAttribute(fontId, FONTATTR_LINE_SPACING);
AddTextPrinter(&printer, 0xFF, NULL); AddTextPrinter(&printer, 0xFF, NULL);
sub_81983AC(gUnknown_0203CD9F, fontId, left, top, GetFontAttribute(fontId, 1), 2, initialCursorPos); sub_81983AC(gUnknown_0203CD9F, fontId, left, top, GetFontAttribute(fontId, FONTATTR_MAX_LETTER_HEIGHT), 2, initialCursorPos);
} }
void sub_8198C34(const struct WindowTemplate *window, u8 fontId, u16 baseTileNum, u8 paletteNum) void sub_8198C34(const struct WindowTemplate *window, u8 fontId, u16 baseTileNum, u8 paletteNum)

View File

@ -77,7 +77,7 @@ void CB2_InitMysteryEventMenu(void)
FillWindowPixelBuffer(i, 0); FillWindowPixelBuffer(i, 0);
FillBgTilemapBufferRect_Palette0(0, 0, 0, 0, 0x1E, 0x14); FillBgTilemapBufferRect_Palette0(0, 0, 0, 0, 0x1E, 0x14);
sub_809882C(0, 1u, 0xD0u); LoadUserWindowBorderGfx(0, 1u, 0xD0u);
sub_81978B0(0xE0); sub_81978B0(0xE0);
SetGpuReg(REG_OFFSET_DISPCNT, DISPCNT_MODE_0 | DISPCNT_OBJ_1D_MAP | DISPCNT_BG0_ON); SetGpuReg(REG_OFFSET_DISPCNT, DISPCNT_MODE_0 | DISPCNT_OBJ_1D_MAP | DISPCNT_BG0_ON);
SetGpuReg(REG_OFFSET_BLDCNT, 0); SetGpuReg(REG_OFFSET_BLDCNT, 0);
@ -121,7 +121,7 @@ static void CB2_MysteryEventMenu(void)
PutWindowTilemap(0); PutWindowTilemap(0);
CopyWindowToVram(0, 3); CopyWindowToVram(0, 3);
ShowBg(0); ShowBg(0);
BeginNormalPaletteFade(-1, 0, 0x10, 0, 0); BeginNormalPaletteFade(0xFFFFFFFF, 0, 0x10, 0, 0);
gMain.state++; gMain.state++;
break; break;
case 1: case 1:
@ -264,7 +264,7 @@ static void CB2_MysteryEventMenu(void)
} }
break; break;
case 15: case 15:
BeginNormalPaletteFade(-1, 0, 0, 0x10, 0); BeginNormalPaletteFade(0xFFFFFFFF, 0, 0, 0x10, 0);
gMain.state++; gMain.state++;
break; break;
case 16: case 16:

View File

@ -235,7 +235,7 @@ void CB2_InitOptionMenu(void)
break; break;
} }
case 11: case 11:
BeginNormalPaletteFade(-1, 0, 0x10, 0, 0); BeginNormalPaletteFade(0xFFFFFFFF, 0, 0x10, 0, 0);
SetVBlankCallback(VBlankCB); SetVBlankCallback(VBlankCB);
SetMainCallback2(MainCB2); SetMainCallback2(MainCB2);
return; return;
@ -344,7 +344,7 @@ static void Task_OptionMenuSave(u8 taskId)
gSaveBlock2Ptr->optionsButtonMode = gTasks[taskId].data[TD_BUTTONMODE]; gSaveBlock2Ptr->optionsButtonMode = gTasks[taskId].data[TD_BUTTONMODE];
gSaveBlock2Ptr->optionsWindowFrameType = gTasks[taskId].data[TD_FRAMETYPE]; gSaveBlock2Ptr->optionsWindowFrameType = gTasks[taskId].data[TD_FRAMETYPE];
BeginNormalPaletteFade(-1, 0, 0, 0x10, 0); BeginNormalPaletteFade(0xFFFFFFFF, 0, 0, 0x10, 0);
gTasks[taskId].func = Task_OptionMenuFadeOut; gTasks[taskId].func = Task_OptionMenuFadeOut;
} }

View File

@ -903,7 +903,7 @@ static void sub_816BEF0(s32 id)
static void ItemStorage_StartScrollIndicator(void) static void ItemStorage_StartScrollIndicator(void)
{ {
if(playerPCItemPageInfo.scrollIndicatorId == 0xFF) if(playerPCItemPageInfo.scrollIndicatorId == 0xFF)
playerPCItemPageInfo.scrollIndicatorId = AddScrollIndicatorArrowPairParametrized(0x2, 0xB0, 0xC, 0x94, playerPCItemPageInfo.count - playerPCItemPageInfo.pageItems, 0x13F8, 0x13F8, &(playerPCItemPageInfo.itemsAbove)); playerPCItemPageInfo.scrollIndicatorId = AddScrollIndicatorArrowPairParameterized(SCROLL_ARROW_UP, 0xB0, 0xC, 0x94, playerPCItemPageInfo.count - playerPCItemPageInfo.pageItems, 0x13F8, 0x13F8, &(playerPCItemPageInfo.itemsAbove));
} }
static void ItemStorage_RemoveScrollIndicator(void) static void ItemStorage_RemoveScrollIndicator(void)
@ -1116,7 +1116,7 @@ static void ItemStorage_ItemSwapChoosePrompt(u8 taskId)
s16 *data; s16 *data;
data = gTasks[taskId].data; data = gTasks[taskId].data;
sub_81AF15C(data[5], 16, 1); ListMenuSetUnkIndicatorsStructField(data[5], 16, 1);
gUnknown_0203BCC4->unk666 = (playerPCItemPageInfo.itemsAbove + playerPCItemPageInfo.cursorPos); gUnknown_0203BCC4->unk666 = (playerPCItemPageInfo.itemsAbove + playerPCItemPageInfo.cursorPos);
sub_816BFB8(data[5], 0, 0); sub_816BFB8(data[5], 0, 0);
sub_816C690(gUnknown_0203BCC4->unk666); sub_816C690(gUnknown_0203BCC4->unk666);

View File

@ -75,7 +75,7 @@ extern const u16 gUnknown_0860F074[];
extern void CB2_ReturnToField(void); extern void CB2_ReturnToField(void);
extern bool8 sub_81221EC(void); extern bool8 sub_81221EC(void);
extern void sub_809882C(u8, u16, u8); extern void LoadUserWindowBorderGfx(u8, u16, u8);
extern void copy_textbox_border_tile_patterns_to_vram(u8, u16, u8); extern void copy_textbox_border_tile_patterns_to_vram(u8, u16, u8);
extern void sub_80AF168(void); extern void sub_80AF168(void);
@ -315,19 +315,19 @@ static const struct ListMenuTemplate sPokeblockListMenuTemplate =
{ {
.items = NULL, .items = NULL,
.moveCursorFunc = MovePokeblockMenuCursor, .moveCursorFunc = MovePokeblockMenuCursor,
.unk_08 = NULL, .itemPrintFunc = NULL,
.totalItems = 0, .totalItems = 0,
.maxShowed = 0, .maxShowed = 0,
.windowId = 1, .windowId = 1,
.unk_11 = 0, .header_X = 0,
.unk_12 = 1, .item_X = 1,
.cursor_X = 0, .cursor_X = 0,
.upText_Y = 1, .upText_Y = 1,
.cursorPal = 2, .cursorPal = 2,
.fillValue = 0, .fillValue = 0,
.cursorShadowPal = 3, .cursorShadowPal = 3,
.lettersSpacing = 0, .lettersSpacing = 0,
.unk_16_3 = 0, .itemVerticalPadding = 0,
.scrollMultiple = LIST_MULTIPLE_SCROLL_DPAD, .scrollMultiple = LIST_MULTIPLE_SCROLL_DPAD,
.fontId = 1, .fontId = 1,
.cursorKind = 1 .cursorKind = 1
@ -492,7 +492,7 @@ static bool8 InitPokeblockMenu(void)
gMain.state++; gMain.state++;
break; break;
case 18: case 18:
BeginNormalPaletteFade(-1, 0, 0x10, 0, 0); BeginNormalPaletteFade(0xFFFFFFFF, 0, 0x10, 0, 0);
gPaletteFade.bufferTransferDisabled = 0; gPaletteFade.bufferTransferDisabled = 0;
gMain.state++; gMain.state++;
break; break;
@ -566,7 +566,7 @@ static void HandleInitWindows(void)
InitWindows(sWindowTemplatesForPokeblockMenu); InitWindows(sWindowTemplatesForPokeblockMenu);
DeactivateAllTextPrinters(); DeactivateAllTextPrinters();
sub_809882C(0, 1, 0xE0); LoadUserWindowBorderGfx(0, 1, 0xE0);
copy_textbox_border_tile_patterns_to_vram(0, 0xA, 0xD0); copy_textbox_border_tile_patterns_to_vram(0, 0xA, 0xD0);
LoadPalette(gUnknown_0860F074, 0xF0, 0x20); LoadPalette(gUnknown_0860F074, 0xF0, 0x20);
@ -807,7 +807,7 @@ static void sub_81363BC(void)
{ {
if (sPokeblockMenu->unkTaskId == 0xFF) if (sPokeblockMenu->unkTaskId == 0xFF)
{ {
sPokeblockMenu->unkTaskId = AddScrollIndicatorArrowPairParametrized(2, 0xB0, 8, 0x98, sPokeblockMenu->itemsNo - sPokeblockMenu->maxShowed, sPokeblockMenu->unkTaskId = AddScrollIndicatorArrowPairParameterized(SCROLL_ARROW_UP, 0xB0, 8, 0x98, sPokeblockMenu->itemsNo - sPokeblockMenu->maxShowed,
0x456, 0x456, &sSavedPokeblockData.lastItemPage); 0x456, 0x456, &sSavedPokeblockData.lastItemPage);
} }
} }
@ -855,7 +855,7 @@ static void sub_8136470(struct Sprite *sprite)
static void FadePaletteAndSetTaskToClosePokeblockCase(u8 taskId) static void FadePaletteAndSetTaskToClosePokeblockCase(u8 taskId)
{ {
BeginNormalPaletteFade(-1, 0, 0, 0x10, 0); BeginNormalPaletteFade(0xFFFFFFFF, 0, 0, 0x10, 0);
gTasks[taskId].func = Task_FreeDataAndExitPokeblockCase; gTasks[taskId].func = Task_FreeDataAndExitPokeblockCase;
} }

View File

@ -59,7 +59,7 @@ extern const u16 gUnknown_0860F074[];
extern bool8 sub_81221EC(void); extern bool8 sub_81221EC(void);
extern void sub_806A068(u16, u8); extern void sub_806A068(u16, u8);
extern void sub_809882C(u8, u16, u8); extern void LoadUserWindowBorderGfx(u8, u16, u8);
// this file's functions // this file's functions
static void HandleInitBackgrounds(void); static void HandleInitBackgrounds(void);
@ -597,7 +597,7 @@ static bool8 TransitionToPokeblockFeedScene(void)
gMain.state++; gMain.state++;
break; break;
case 13: case 13:
BeginNormalPaletteFade(-1, 0, 0x10, 0, 0); BeginNormalPaletteFade(0xFFFFFFFF, 0, 0x10, 0, 0);
gPaletteFade.bufferTransferDisabled = 0; gPaletteFade.bufferTransferDisabled = 0;
gMain.state++; gMain.state++;
break; break;
@ -706,7 +706,7 @@ static void HandleInitWindows(void)
{ {
InitWindows(sWindowTemplates); InitWindows(sWindowTemplates);
DeactivateAllTextPrinters(); DeactivateAllTextPrinters();
sub_809882C(0, 1, 0xE0); LoadUserWindowBorderGfx(0, 1, 0xE0);
LoadPalette(gUnknown_0860F074, 0xF0, 0x20); LoadPalette(gUnknown_0860F074, 0xF0, 0x20);
FillWindowPixelBuffer(0, 0); FillWindowPixelBuffer(0, 0);
PutWindowTilemap(0); PutWindowTilemap(0);
@ -811,7 +811,7 @@ static void Task_ReturnAfterPaletteFade(u8 taskId)
static void Task_PaletteFadeToReturn(u8 taskId) static void Task_PaletteFadeToReturn(u8 taskId)
{ {
BeginNormalPaletteFade(-1, 0, 0, 0x10, 0); BeginNormalPaletteFade(0xFFFFFFFF, 0, 0, 0x10, 0);
gTasks[taskId].func = Task_ReturnAfterPaletteFade; gTasks[taskId].func = Task_ReturnAfterPaletteFade;
} }

View File

@ -541,7 +541,7 @@ bool8 sub_81BFB10(void)
gMain.state++; gMain.state++;
break; break;
case 24: case 24:
BeginNormalPaletteFade(-1, 0, 16, 0, 0); BeginNormalPaletteFade(0xFFFFFFFF, 0, 16, 0, 0);
gPaletteFade.bufferTransferDisabled = 0; gPaletteFade.bufferTransferDisabled = 0;
gMain.state++; gMain.state++;
break; break;
@ -761,7 +761,7 @@ void sub_81C0434()
void sub_81C044C(u8 taskId) void sub_81C044C(u8 taskId)
{ {
BeginNormalPaletteFade(-1, 0, 0, 16, 0); BeginNormalPaletteFade(0xFFFFFFFF, 0, 0, 16, 0);
gTasks[taskId].func = sub_81C0484; gTasks[taskId].func = sub_81C0484;
} }

View File

@ -1563,7 +1563,7 @@ static void Task_DuoFightAnim(u8 taskId)
} }
BlendPalettes(-1, 0x10, 0); BlendPalettes(-1, 0x10, 0);
BeginNormalPaletteFade(-1, 0, 0x10, 0, 0); BeginNormalPaletteFade(0xFFFFFFFF, 0, 0x10, 0, 0);
SetVBlankCallback(VBlankCB_DuoFight); SetVBlankCallback(VBlankCB_DuoFight);
PlaySE(SE_T_OOAME); PlaySE(SE_T_OOAME);
} }
@ -1715,7 +1715,7 @@ static void sub_81D752C(u8 taskId)
static void DuoFightEnd(u8 taskId, s8 palDelay) static void DuoFightEnd(u8 taskId, s8 palDelay)
{ {
PlaySE(SE_T_OOAME_E); PlaySE(SE_T_OOAME_E);
BeginNormalPaletteFade(-1, palDelay, 0, 0x10, 0); BeginNormalPaletteFade(0xFFFFFFFF, palDelay, 0, 0x10, 0);
gTasks[taskId].func = Task_DuoFightEnd; gTasks[taskId].func = Task_DuoFightEnd;
} }
@ -1971,7 +1971,7 @@ static void Task_HandleRayTakesFlight(u8 taskId)
case 0: case 0:
if (data[1] == 8) if (data[1] == 8)
{ {
BeginNormalPaletteFade(-1, 0, 0x10, 0, 0); BeginNormalPaletteFade(0xFFFFFFFF, 0, 0x10, 0, 0);
data[2] = 0; data[2] = 0;
data[3] = 30; data[3] = 30;
data[4] = 0; data[4] = 0;
@ -2012,7 +2012,7 @@ static void Task_HandleRayTakesFlight(u8 taskId)
if (data[1] > 295) if (data[1] > 295)
{ {
data[0]++; data[0]++;
BeginNormalPaletteFade(-1, 6, 0, 0x10, 0); BeginNormalPaletteFade(0xFFFFFFFF, 6, 0, 0x10, 0);
} }
} }
break; break;
@ -2174,7 +2174,7 @@ static void Task_HandleRayDescends(u8 taskId)
case 0: case 0:
if (data[1] == 8) if (data[1] == 8)
{ {
BeginNormalPaletteFade(-1, 0, 0x10, 0, 0); BeginNormalPaletteFade(0xFFFFFFFF, 0, 0x10, 0, 0);
data[1] = 0; data[1] = 0;
data[0]++; data[0]++;
} }
@ -2219,7 +2219,7 @@ static void Task_HandleRayDescends(u8 taskId)
} }
break; break;
case 4: case 4:
BeginNormalPaletteFade(-1, 0, 0, 0x10, 0); BeginNormalPaletteFade(0xFFFFFFFF, 0, 0, 0x10, 0);
gTasks[taskId].func = Task_RayDescendsEnd; gTasks[taskId].func = Task_RayDescendsEnd;
break; break;
} }
@ -2366,7 +2366,7 @@ static void Task_HandleRayCharges(u8 taskId)
case 0: case 0:
if (data[1] == 8) if (data[1] == 8)
{ {
BeginNormalPaletteFade(-1, 0, 0x10, 0, 0); BeginNormalPaletteFade(0xFFFFFFFF, 0, 0x10, 0, 0);
data[1] = 0; data[1] = 0;
data[0]++; data[0]++;
} }
@ -2399,7 +2399,7 @@ static void Task_HandleRayCharges(u8 taskId)
} }
break; break;
case 3: case 3:
BeginNormalPaletteFade(-1, 0, 0, 0x10, 0); BeginNormalPaletteFade(0xFFFFFFFF, 0, 0, 0x10, 0);
gTasks[taskId].func = Task_RayChargesEnd; gTasks[taskId].func = Task_RayChargesEnd;
break; break;
} }
@ -2532,7 +2532,7 @@ static void Task_HandleRayChasesAway(u8 taskId)
if (data[1] == 8) if (data[1] == 8)
{ {
sub_81D90A8(taskId); sub_81D90A8(taskId);
BeginNormalPaletteFade(-1, 0, 0x10, 0, 0); BeginNormalPaletteFade(0xFFFFFFFF, 0, 0x10, 0, 0);
data[1] = 0; data[1] = 0;
data[0]++; data[0]++;
} }
@ -2574,7 +2574,7 @@ static void Task_HandleRayChasesAway(u8 taskId)
} }
break; break;
case 3: case 3:
BeginNormalPaletteFade(-1, 4, 0, 0x10, 0); BeginNormalPaletteFade(0xFFFFFFFF, 4, 0, 0x10, 0);
gTasks[taskId].func = Task_RayChasesAwayEnd; gTasks[taskId].func = Task_RayChasesAwayEnd;
break; break;
} }

View File

@ -219,7 +219,7 @@ u8 RecordedBattle_GetBattlerAction(u8 battlerId)
{ {
gSpecialVar_Result = gBattleOutcome = B_OUTCOME_PLAYER_TELEPORTED; // hah gSpecialVar_Result = gBattleOutcome = B_OUTCOME_PLAYER_TELEPORTED; // hah
ResetPaletteFadeControl(); ResetPaletteFadeControl();
BeginNormalPaletteFade(-1, 0, 0, 0x10, 0); BeginNormalPaletteFade(0xFFFFFFFF, 0, 0, 0x10, 0);
SetMainCallback2(CB2_QuitRecordedBattle); SetMainCallback2(CB2_QuitRecordedBattle);
return -1; return -1;
} }

View File

@ -1603,7 +1603,7 @@ void MCB2_FlyMap(void)
gMain.state++; gMain.state++;
break; break;
case 3: case 3:
sub_809882C(0, 0x65, 0xd0); LoadUserWindowBorderGfx(0, 0x65, 0xd0);
clear_scheduled_bg_copies_to_vram(); clear_scheduled_bg_copies_to_vram();
gMain.state++; gMain.state++;
break; break;
@ -1849,7 +1849,7 @@ static void sub_8124D14(void)
switch (gUnknown_0203A148->unk_004) switch (gUnknown_0203A148->unk_004)
{ {
case 0: case 0:
BeginNormalPaletteFade(-1, 0, 16, 0, 0); BeginNormalPaletteFade(0xFFFFFFFF, 0, 16, 0, 0);
gUnknown_0203A148->unk_004++; gUnknown_0203A148->unk_004++;
break; break;
case 1: case 1:
@ -1896,7 +1896,7 @@ static void sub_8124E0C(void)
switch (gUnknown_0203A148->unk_004) switch (gUnknown_0203A148->unk_004)
{ {
case 0: case 0:
BeginNormalPaletteFade(-1, 0, 0, 16, 0); BeginNormalPaletteFade(0xFFFFFFFF, 0, 0, 16, 0);
gUnknown_0203A148->unk_004++; gUnknown_0203A148->unk_004++;
break; break;
case 1: case 1:

View File

@ -552,7 +552,7 @@ static void Task_ResetRtcScreen(u8 taskId)
switch (data[0]) switch (data[0])
{ {
case 0: case 0:
BeginNormalPaletteFade(-1, 1, 0x10, 0, 0xFFFF); BeginNormalPaletteFade(0xFFFFFFFF, 1, 0x10, 0, 0xFFFF);
data[0] = 1; data[0] = 1;
break; break;
case 1: case 1:
@ -621,7 +621,7 @@ static void Task_ResetRtcScreen(u8 taskId)
case 5: case 5:
if (gMain.newKeys & A_BUTTON) if (gMain.newKeys & A_BUTTON)
{ {
BeginNormalPaletteFade(-1, 1, 0, 0x10, 0xFFFF); BeginNormalPaletteFade(0xFFFFFFFF, 1, 0, 0x10, 0xFFFF);
data[0] = 6; data[0] = 6;
} }
else else

View File

@ -1517,7 +1517,7 @@ bool8 ScrCmd_braillemessage(struct ScriptContext *ctx)
winTemplate = sub_8198A50(0, xWindow, yWindow + 1, width, height, 0xF, 0x1); winTemplate = sub_8198A50(0, xWindow, yWindow + 1, width, height, 0xF, 0x1);
gUnknown_03000F30 = AddWindow(&winTemplate); gUnknown_03000F30 = AddWindow(&winTemplate);
sub_809882C(gUnknown_03000F30, 0x214, 0xE0); LoadUserWindowBorderGfx(gUnknown_03000F30, 0x214, 0xE0);
NewMenuHelpers_DrawStdWindowFrame(gUnknown_03000F30, 0); NewMenuHelpers_DrawStdWindowFrame(gUnknown_03000F30, 0);
PutWindowTilemap(gUnknown_03000F30); PutWindowTilemap(gUnknown_03000F30);
FillWindowPixelBuffer(gUnknown_03000F30, 0x11); FillWindowPixelBuffer(gUnknown_03000F30, 0x11);

View File

@ -940,7 +940,7 @@ void sub_80E9E44(u8 taskId)
s16 *data; s16 *data;
data = gTasks[taskId].data; data = gTasks[taskId].data;
data[8] = AddScrollIndicatorArrowPairParametrized(0x02, 0xbc, 0x0c, 0x94, data[0] - data[3], 0x13f8, 0x13f8, &data[2]); data[8] = AddScrollIndicatorArrowPairParameterized(SCROLL_ARROW_UP, 0xbc, 0x0c, 0x94, data[0] - data[3], 0x13f8, 0x13f8, &data[2]);
} }
void sub_80E9E90(u8 taskId) void sub_80E9E90(u8 taskId)

View File

@ -1261,7 +1261,7 @@ static void sub_80A0550(u8 taskId)
sub_8098858(0, 8, 14); sub_8098858(0, 8, 14);
PutWindowTilemap(0); PutWindowTilemap(0);
CopyWindowToVram(0, 3); CopyWindowToVram(0, 3);
BeginNormalPaletteFade(-1, 0, 16, 0, 0); BeginNormalPaletteFade(0xFFFFFFFF, 0, 16, 0, 0);
if (gWirelessCommType != 0 && InUnionRoom()) if (gWirelessCommType != 0 && InUnionRoom())
{ {
@ -1294,7 +1294,7 @@ static void sub_80A0550(u8 taskId)
} }
break; break;
case 3: case 3:
BeginNormalPaletteFade(-1, 0, 0, 16, 0); BeginNormalPaletteFade(0xFFFFFFFF, 0, 0, 16, 0);
*step = 4; *step = 4;
break; break;
case 4: case 4:

View File

@ -46,7 +46,7 @@ extern const u8 gStarterChoose_LabelCoords[][2];
extern const u8 gUnknown_085B1E0C[]; extern const u8 gUnknown_085B1E0C[];
extern const u8 gUnknown_085B1E28[][2]; extern const u8 gUnknown_085B1E28[][2];
extern void sub_809882C(u8, u16, u8); extern void LoadUserWindowBorderGfx(u8, u16, u8);
extern void ScanlineEffect_Stop(void); extern void ScanlineEffect_Stop(void);
extern void clear_scheduled_bg_copies_to_vram(void); extern void clear_scheduled_bg_copies_to_vram(void);
extern void dp13_810BB8C(void); extern void dp13_810BB8C(void);
@ -126,7 +126,7 @@ void CB2_ChooseStarter(void)
InitWindows(gUnknown_085B1DCC); InitWindows(gUnknown_085B1DCC);
DeactivateAllTextPrinters(); DeactivateAllTextPrinters();
sub_809882C(0, 0x2A8, 0xD0); LoadUserWindowBorderGfx(0, 0x2A8, 0xD0);
clear_scheduled_bg_copies_to_vram(); clear_scheduled_bg_copies_to_vram();
ScanlineEffect_Stop(); ScanlineEffect_Stop();
ResetTasks(); ResetTasks();
@ -140,7 +140,7 @@ void CB2_ChooseStarter(void)
LoadCompressedObjectPic(&gUnknown_085B1ED8[0]); LoadCompressedObjectPic(&gUnknown_085B1ED8[0]);
LoadCompressedObjectPic(&gUnknown_085B1EE8[0]); LoadCompressedObjectPic(&gUnknown_085B1EE8[0]);
LoadSpritePalettes(gUnknown_085B1EF8); LoadSpritePalettes(gUnknown_085B1EF8);
BeginNormalPaletteFade(-1, 0, 0x10, 0, 0); BeginNormalPaletteFade(0xFFFFFFFF, 0, 0x10, 0, 0);
EnableInterrupts(DISPSTAT_VBLANK); EnableInterrupts(DISPSTAT_VBLANK);
SetVBlankCallback(VblankCB_StarterChoose); SetVBlankCallback(VblankCB_StarterChoose);

View File

@ -3157,7 +3157,7 @@ u32 GetStringWidthFixedWidthFont(const u8 *str, u8 fontId, u8 letterSpacing)
width = lineWidths[strPos]; width = lineWidths[strPos];
} }
return (u8)(GetFontAttribute(fontId, 0) + letterSpacing) * width; return (u8)(GetFontAttribute(fontId, FONTATTR_MAX_LETTER_WIDTH) + letterSpacing) * width;
} }
u32 (*GetFontWidthFunc(u8 glyphId))(u16, bool32) u32 (*GetFontWidthFunc(u8 glyphId))(u16, bool32)
@ -3193,7 +3193,7 @@ u32 GetStringWidth(u8 fontId, const u8 *str, s16 letterSpacing)
return 0; return 0;
if (letterSpacing == -1) if (letterSpacing == -1)
localLetterSpacing = GetFontAttribute(fontId, 2); localLetterSpacing = GetFontAttribute(fontId, FONTATTR_LETTER_SPACING);
else else
localLetterSpacing = letterSpacing; localLetterSpacing = letterSpacing;
@ -3269,7 +3269,7 @@ u32 GetStringWidth(u8 fontId, const u8 *str, s16 letterSpacing)
if (func == NULL) if (func == NULL)
return 0; return 0;
if (letterSpacing == -1) if (letterSpacing == -1)
localLetterSpacing = GetFontAttribute(*str, 2); localLetterSpacing = GetFontAttribute(*str, FONTATTR_LETTER_SPACING);
break; break;
case 0x11: case 0x11:
glyphWidth = *++str; glyphWidth = *++str;
@ -3497,28 +3497,28 @@ u8 GetFontAttribute(u8 fontId, u8 attributeId)
int result = 0; int result = 0;
switch (attributeId) switch (attributeId)
{ {
case 0: case FONTATTR_MAX_LETTER_WIDTH:
result = gFontInfos[fontId].maxLetterWidth; result = gFontInfos[fontId].maxLetterWidth;
break; break;
case 1: case FONTATTR_MAX_LETTER_HEIGHT:
result = gFontInfos[fontId].maxLetterHeight; result = gFontInfos[fontId].maxLetterHeight;
break; break;
case 2: case FONTATTR_LETTER_SPACING:
result = gFontInfos[fontId].letterSpacing; result = gFontInfos[fontId].letterSpacing;
break; break;
case 3: case FONTATTR_LINE_SPACING:
result = gFontInfos[fontId].lineSpacing; result = gFontInfos[fontId].lineSpacing;
break; break;
case 4: case FONTATTR_COLOR_LOWNIBBLE:
result = gFontInfos[fontId].fontColor_l; result = gFontInfos[fontId].fontColor_l;
break; break;
case 5: case FONTATTR_COLOR_FOREGROUND:
result = gFontInfos[fontId].fgColor; result = gFontInfos[fontId].fgColor;
break; break;
case 6: case FONTATTR_COLOR_BACKGROUND:
result = gFontInfos[fontId].bgColor; result = gFontInfos[fontId].bgColor;
break; break;
case 7: case FONTATTR_COLOR_SHADOW:
result = gFontInfos[fontId].shadowColor; result = gFontInfos[fontId].shadowColor;
break; break;
} }

View File

@ -99,18 +99,18 @@ void copy_textbox_border_tile_patterns_to_vram(u8 windowId, u16 destOffset, u8 p
void box_border_load_tiles_and_pal(u8 windowId, u16 destOffset, u8 palOffset) void box_border_load_tiles_and_pal(u8 windowId, u16 destOffset, u8 palOffset)
{ {
sub_809882C(windowId, destOffset, palOffset); LoadUserWindowBorderGfx(windowId, destOffset, palOffset);
} }
void sub_80987D4(u8 windowId, u8 frameId, u16 destOffset, u8 palOffset) void LoadWindowGfx(u8 windowId, u8 frameId, u16 destOffset, u8 palOffset)
{ {
LoadBgTiles(GetWindowAttribute(windowId, WINDOW_PRIORITY), sWindowFrames[frameId].tiles, 0x120, destOffset); LoadBgTiles(GetWindowAttribute(windowId, WINDOW_PRIORITY), sWindowFrames[frameId].tiles, 0x120, destOffset);
LoadPalette(sWindowFrames[frameId].pal, palOffset, 0x20); LoadPalette(sWindowFrames[frameId].pal, palOffset, 0x20);
} }
void sub_809882C(u8 windowId, u16 destOffset, u8 palOffset) void LoadUserWindowBorderGfx(u8 windowId, u16 destOffset, u8 palOffset)
{ {
sub_80987D4(windowId, gSaveBlock2Ptr->optionsWindowFrameType, destOffset, palOffset); LoadWindowGfx(windowId, gSaveBlock2Ptr->optionsWindowFrameType, destOffset, palOffset);
} }
void sub_8098858(u8 windowId, u16 tileNum, u8 palNum) void sub_8098858(u8 windowId, u16 tileNum, u8 palNum)

View File

@ -546,7 +546,7 @@ void CB2_InitTitleScreen(void)
break; break;
} }
case 3: case 3:
BeginNormalPaletteFade(-1, 1, 0x10, 0, 0xFFFF); BeginNormalPaletteFade(0xFFFFFFFF, 1, 0x10, 0, 0xFFFF);
SetVBlankCallback(VBlankCB); SetVBlankCallback(VBlankCB);
gMain.state = 4; gMain.state = 4;
break; break;
@ -696,7 +696,7 @@ static void Task_TitleScreenPhase3(u8 taskId)
if ((gMain.newKeys & A_BUTTON) || (gMain.newKeys & START_BUTTON)) if ((gMain.newKeys & A_BUTTON) || (gMain.newKeys & START_BUTTON))
{ {
FadeOutBGM(4); FadeOutBGM(4);
BeginNormalPaletteFade(-1, 0, 0, 0x10, 0xFFFF); BeginNormalPaletteFade(0xFFFFFFFF, 0, 0, 0x10, 0xFFFF);
SetMainCallback2(CB2_GoToMainMenu); SetMainCallback2(CB2_GoToMainMenu);
} }
else if ((gMain.heldKeys & CLEAR_SAVE_BUTTON_COMBO) == CLEAR_SAVE_BUTTON_COMBO) else if ((gMain.heldKeys & CLEAR_SAVE_BUTTON_COMBO) == CLEAR_SAVE_BUTTON_COMBO)
@ -707,13 +707,13 @@ static void Task_TitleScreenPhase3(u8 taskId)
&& CanResetRTC() == TRUE) && CanResetRTC() == TRUE)
{ {
FadeOutBGM(4); FadeOutBGM(4);
BeginNormalPaletteFade(-1, 0, 0, 0x10, 0); BeginNormalPaletteFade(0xFFFFFFFF, 0, 0, 0x10, 0);
SetMainCallback2(CB2_GoToResetRtcScreen); SetMainCallback2(CB2_GoToResetRtcScreen);
} }
else if ((gMain.heldKeys & BERRY_UPDATE_BUTTON_COMBO) == BERRY_UPDATE_BUTTON_COMBO) else if ((gMain.heldKeys & BERRY_UPDATE_BUTTON_COMBO) == BERRY_UPDATE_BUTTON_COMBO)
{ {
FadeOutBGM(4); FadeOutBGM(4);
BeginNormalPaletteFade(-1, 0, 0, 0x10, 0); BeginNormalPaletteFade(0xFFFFFFFF, 0, 0, 0x10, 0);
SetMainCallback2(CB2_GoToBerryFixScreen); SetMainCallback2(CB2_GoToBerryFixScreen);
} }
else else
@ -730,7 +730,7 @@ static void Task_TitleScreenPhase3(u8 taskId)
UpdateLegendaryMarkingColor(gTasks[taskId].tCounter); UpdateLegendaryMarkingColor(gTasks[taskId].tCounter);
if ((gMPlayInfo_BGM.status & 0xFFFF) == 0) if ((gMPlayInfo_BGM.status & 0xFFFF) == 0)
{ {
BeginNormalPaletteFade(-1, 0, 0, 0x10, 0xFFFF); BeginNormalPaletteFade(0xFFFFFFFF, 0, 0, 0x10, 0xFFFF);
SetMainCallback2(CB2_GoToCopyrightScreen); SetMainCallback2(CB2_GoToCopyrightScreen);
} }
} }

View File

@ -356,7 +356,7 @@ static bool8 sub_81DAB4C(struct Task *task)
{ {
if (task->data[3] == 31) if (task->data[3] == 31)
{ {
BeginNormalPaletteFade(-1, -1, 0, 0x10, 0); BeginNormalPaletteFade(0xFFFFFFFF, -1, 0, 0x10, 0);
task->tState++; task->tState++;
} }
else else

View File

@ -164,7 +164,7 @@ void sub_8166380(void)
InitBgsFromTemplates(0, gUnknown_085DFCCC, ARRAY_COUNT(gUnknown_085DFCCC)); InitBgsFromTemplates(0, gUnknown_085DFCCC, ARRAY_COUNT(gUnknown_085DFCCC));
InitWindows(gUnknown_085DFCDC); InitWindows(gUnknown_085DFCDC);
DeactivateAllTextPrinters(); DeactivateAllTextPrinters();
sub_809882C(0, 0x97, 0xE0); LoadUserWindowBorderGfx(0, 0x97, 0xE0);
gUnknown_0203BC90->field_50++; gUnknown_0203BC90->field_50++;
break; break;
case 4: case 4:

View File

@ -576,7 +576,7 @@ static void LoadWallClockGraphics(void)
InitBgsFromTemplates(0, gUnknown_085B21FC, 3); InitBgsFromTemplates(0, gUnknown_085B21FC, 3);
InitWindows(gUnknown_085B21DC); InitWindows(gUnknown_085B21DC);
DeactivateAllTextPrinters(); DeactivateAllTextPrinters();
sub_809882C(0, 0x250, 0xd0); LoadUserWindowBorderGfx(0, 0x250, 0xd0);
clear_scheduled_bg_copies_to_vram(); clear_scheduled_bg_copies_to_vram();
ScanlineEffect_Stop(); ScanlineEffect_Stop();
ResetTasks(); ResetTasks();
@ -589,7 +589,7 @@ static void LoadWallClockGraphics(void)
static void WallClockInit(void) static void WallClockInit(void)
{ {
BeginNormalPaletteFade(-1, 0, 16, 0, 0); BeginNormalPaletteFade(0xFFFFFFFF, 0, 16, 0, 0);
EnableInterrupts(INTR_FLAG_VBLANK); EnableInterrupts(INTR_FLAG_VBLANK);
SetVBlankCallback(WallClockVblankCallback); SetVBlankCallback(WallClockVblankCallback);
SetMainCallback2(WallClockMainCallback); SetMainCallback2(WallClockMainCallback);
@ -782,7 +782,7 @@ static void Task_SetClock4(u8 taskId)
static void Task_SetClock5(u8 taskId) static void Task_SetClock5(u8 taskId)
{ {
RtcInitLocalTimeOffset(gTasks[taskId].tHours, gTasks[taskId].tMinutes); RtcInitLocalTimeOffset(gTasks[taskId].tHours, gTasks[taskId].tMinutes);
BeginNormalPaletteFade(-1, 0, 0, 16, 0); BeginNormalPaletteFade(0xFFFFFFFF, 0, 0, 16, 0);
gTasks[taskId].func = Task_SetClock6; gTasks[taskId].func = Task_SetClock6;
} }
@ -814,7 +814,7 @@ static void Task_ViewClock2(u8 taskId)
static void Task_ViewClock3(u8 taskId) static void Task_ViewClock3(u8 taskId)
{ {
BeginNormalPaletteFade(-1, 0, 0, 16, 0); BeginNormalPaletteFade(0xFFFFFFFF, 0, 0, 16, 0);
gTasks[taskId].func = Task_ViewClock4; gTasks[taskId].func = Task_ViewClock4;
} }