@@ -1,964 +0,0 @@
|
||||
.include "asm/macros.inc"
|
||||
.include "constants/constants.inc"
|
||||
|
||||
.syntax unified
|
||||
|
||||
.text
|
||||
|
||||
thumb_func_start SetUpFieldMove_Flash
|
||||
SetUpFieldMove_Flash: @ 80C9B2C
|
||||
push {lr}
|
||||
ldr r0, _080C9B54 @ =gMapHeader
|
||||
ldrb r0, [r0, 0x15]
|
||||
cmp r0, 0x1
|
||||
bne _080C9B6C
|
||||
ldr r0, _080C9B58 @ =0x00000806
|
||||
bl FlagGet
|
||||
lsls r0, 24
|
||||
cmp r0, 0
|
||||
bne _080C9B6C
|
||||
ldr r1, _080C9B5C @ =gFieldCallback2
|
||||
ldr r0, _080C9B60 @ =FieldCallback_PrepareFadeInFromMenu
|
||||
str r0, [r1]
|
||||
ldr r1, _080C9B64 @ =gPostMenuFieldCallback
|
||||
ldr r0, _080C9B68 @ =sub_80C9B74
|
||||
str r0, [r1]
|
||||
movs r0, 0x1
|
||||
b _080C9B6E
|
||||
.align 2, 0
|
||||
_080C9B54: .4byte gMapHeader
|
||||
_080C9B58: .4byte 0x00000806
|
||||
_080C9B5C: .4byte gFieldCallback2
|
||||
_080C9B60: .4byte FieldCallback_PrepareFadeInFromMenu
|
||||
_080C9B64: .4byte gPostMenuFieldCallback
|
||||
_080C9B68: .4byte sub_80C9B74
|
||||
_080C9B6C:
|
||||
movs r0, 0
|
||||
_080C9B6E:
|
||||
pop {r1}
|
||||
bx r1
|
||||
thumb_func_end SetUpFieldMove_Flash
|
||||
|
||||
thumb_func_start sub_80C9B74
|
||||
sub_80C9B74: @ 80C9B74
|
||||
push {r4,lr}
|
||||
bl CreateFieldEffectShowMon
|
||||
adds r4, r0, 0
|
||||
lsls r4, 24
|
||||
lsrs r4, 24
|
||||
bl GetCursorSelectionMonId
|
||||
ldr r1, _080C9BA4 @ =gFieldEffectArguments
|
||||
lsls r0, 24
|
||||
lsrs r0, 24
|
||||
str r0, [r1]
|
||||
ldr r1, _080C9BA8 @ =gTasks
|
||||
lsls r0, r4, 2
|
||||
adds r0, r4
|
||||
lsls r0, 3
|
||||
adds r0, r1
|
||||
ldr r2, _080C9BAC @ =sub_80C9BB0
|
||||
lsrs r1, r2, 16
|
||||
strh r1, [r0, 0x18]
|
||||
strh r2, [r0, 0x1A]
|
||||
pop {r4}
|
||||
pop {r0}
|
||||
bx r0
|
||||
.align 2, 0
|
||||
_080C9BA4: .4byte gFieldEffectArguments
|
||||
_080C9BA8: .4byte gTasks
|
||||
_080C9BAC: .4byte sub_80C9BB0
|
||||
thumb_func_end sub_80C9B74
|
||||
|
||||
thumb_func_start sub_80C9BB0
|
||||
sub_80C9BB0: @ 80C9BB0
|
||||
push {lr}
|
||||
movs r0, 0xC8
|
||||
bl PlaySE
|
||||
ldr r0, _080C9BC8 @ =0x00000806
|
||||
bl FlagSet
|
||||
ldr r0, _080C9BCC @ =EventScript_FldEffFlash
|
||||
bl ScriptContext1_SetupScript
|
||||
pop {r0}
|
||||
bx r0
|
||||
.align 2, 0
|
||||
_080C9BC8: .4byte 0x00000806
|
||||
_080C9BCC: .4byte EventScript_FldEffFlash
|
||||
thumb_func_end sub_80C9BB0
|
||||
|
||||
thumb_func_start sub_80C9BD0
|
||||
sub_80C9BD0: @ 80C9BD0
|
||||
push {lr}
|
||||
bl RunTasks
|
||||
bl AnimateSprites
|
||||
bl BuildOamBuffer
|
||||
bl UpdatePaletteFade
|
||||
pop {r0}
|
||||
bx r0
|
||||
thumb_func_end sub_80C9BD0
|
||||
|
||||
thumb_func_start sub_80C9BE8
|
||||
sub_80C9BE8: @ 80C9BE8
|
||||
push {lr}
|
||||
bl LoadOam
|
||||
bl ProcessSpriteCopyRequests
|
||||
bl TransferPlttBuffer
|
||||
pop {r0}
|
||||
bx r0
|
||||
thumb_func_end sub_80C9BE8
|
||||
|
||||
thumb_func_start sub_80C9BFC
|
||||
sub_80C9BFC: @ 80C9BFC
|
||||
push {lr}
|
||||
sub sp, 0x8
|
||||
movs r0, 0
|
||||
bl SetVBlankCallback
|
||||
movs r0, 0
|
||||
movs r1, 0
|
||||
bl SetGpuReg
|
||||
movs r0, 0xC
|
||||
movs r1, 0
|
||||
bl SetGpuReg
|
||||
movs r0, 0xA
|
||||
movs r1, 0
|
||||
bl SetGpuReg
|
||||
movs r0, 0x8
|
||||
movs r1, 0
|
||||
bl SetGpuReg
|
||||
movs r0, 0x18
|
||||
movs r1, 0
|
||||
bl SetGpuReg
|
||||
movs r0, 0x1A
|
||||
movs r1, 0
|
||||
bl SetGpuReg
|
||||
movs r0, 0x14
|
||||
movs r1, 0
|
||||
bl SetGpuReg
|
||||
movs r0, 0x16
|
||||
movs r1, 0
|
||||
bl SetGpuReg
|
||||
movs r0, 0x10
|
||||
movs r1, 0
|
||||
bl SetGpuReg
|
||||
movs r0, 0x12
|
||||
movs r1, 0
|
||||
bl SetGpuReg
|
||||
mov r1, sp
|
||||
movs r0, 0
|
||||
strh r0, [r1]
|
||||
ldr r1, _080C9CC8 @ =0x040000d4
|
||||
mov r0, sp
|
||||
str r0, [r1]
|
||||
movs r0, 0xC0
|
||||
lsls r0, 19
|
||||
str r0, [r1, 0x4]
|
||||
ldr r0, _080C9CCC @ =0x8100c000
|
||||
str r0, [r1, 0x8]
|
||||
ldr r0, [r1, 0x8]
|
||||
movs r2, 0
|
||||
str r2, [sp, 0x4]
|
||||
add r0, sp, 0x4
|
||||
str r0, [r1]
|
||||
movs r0, 0xE0
|
||||
lsls r0, 19
|
||||
str r0, [r1, 0x4]
|
||||
ldr r0, _080C9CD0 @ =0x85000100
|
||||
str r0, [r1, 0x8]
|
||||
ldr r0, [r1, 0x8]
|
||||
mov r0, sp
|
||||
strh r2, [r0]
|
||||
str r0, [r1]
|
||||
ldr r0, _080C9CD4 @ =0x05000002
|
||||
str r0, [r1, 0x4]
|
||||
ldr r0, _080C9CD8 @ =0x810001ff
|
||||
str r0, [r1, 0x8]
|
||||
ldr r0, [r1, 0x8]
|
||||
bl ResetPaletteFade
|
||||
bl ResetTasks
|
||||
bl ResetSpriteData
|
||||
movs r0, 0x1
|
||||
bl EnableInterrupts
|
||||
ldr r0, _080C9CDC @ =sub_80C9BE8
|
||||
bl SetVBlankCallback
|
||||
ldr r0, _080C9CE0 @ =sub_80C9BD0
|
||||
bl SetMainCallback2
|
||||
bl sub_80C9CE8
|
||||
lsls r0, 24
|
||||
cmp r0, 0
|
||||
bne _080C9CC2
|
||||
ldr r0, _080C9CE4 @ =gMain
|
||||
ldr r0, [r0, 0x8]
|
||||
bl SetMainCallback2
|
||||
_080C9CC2:
|
||||
add sp, 0x8
|
||||
pop {r0}
|
||||
bx r0
|
||||
.align 2, 0
|
||||
_080C9CC8: .4byte 0x040000d4
|
||||
_080C9CCC: .4byte 0x8100c000
|
||||
_080C9CD0: .4byte 0x85000100
|
||||
_080C9CD4: .4byte 0x05000002
|
||||
_080C9CD8: .4byte 0x810001ff
|
||||
_080C9CDC: .4byte sub_80C9BE8
|
||||
_080C9CE0: .4byte sub_80C9BD0
|
||||
_080C9CE4: .4byte gMain
|
||||
thumb_func_end sub_80C9BFC
|
||||
|
||||
thumb_func_start sub_80C9CE8
|
||||
sub_80C9CE8: @ 80C9CE8
|
||||
push {r4-r7,lr}
|
||||
bl get_map_light_from_warp0
|
||||
lsls r0, 24
|
||||
lsrs r7, r0, 24
|
||||
bl GetCurrentMapType
|
||||
lsls r0, 24
|
||||
lsrs r6, r0, 24
|
||||
movs r4, 0
|
||||
bl sub_80561B4
|
||||
ldr r5, _080C9D24 @ =gMapHeader
|
||||
lsls r0, 24
|
||||
lsrs r0, 24
|
||||
ldrb r1, [r5, 0x14]
|
||||
cmp r0, r1
|
||||
beq _080C9D36
|
||||
ldrb r0, [r5, 0x14]
|
||||
movs r1, 0
|
||||
bl sub_80F8154
|
||||
cmp r0, 0x1
|
||||
bne _080C9D36
|
||||
ldrb r0, [r5, 0x14]
|
||||
bl sub_80CA160
|
||||
movs r0, 0x1
|
||||
b _080C9D70
|
||||
.align 2, 0
|
||||
_080C9D24: .4byte gMapHeader
|
||||
_080C9D28:
|
||||
adds r0, r3, 0x4
|
||||
adds r0, r2, r0
|
||||
ldr r0, [r0]
|
||||
bl _call_via_r0
|
||||
movs r0, 0x1
|
||||
b _080C9D70
|
||||
_080C9D36:
|
||||
ldr r5, _080C9D78 @ =gUnknown_83F5738
|
||||
lsls r1, r4, 1
|
||||
adds r0, r1, r4
|
||||
lsls r0, 2
|
||||
adds r0, r5
|
||||
ldrb r0, [r0]
|
||||
cmp r0, 0
|
||||
beq _080C9D6E
|
||||
adds r3, r5, 0
|
||||
_080C9D48:
|
||||
adds r0, r1, r4
|
||||
lsls r2, r0, 2
|
||||
adds r1, r2, r3
|
||||
ldrb r0, [r1]
|
||||
cmp r0, r7
|
||||
bne _080C9D5A
|
||||
ldrb r0, [r1, 0x1]
|
||||
cmp r0, r6
|
||||
beq _080C9D28
|
||||
_080C9D5A:
|
||||
adds r0, r4, 0x1
|
||||
lsls r0, 24
|
||||
lsrs r4, r0, 24
|
||||
lsls r1, r4, 1
|
||||
adds r0, r1, r4
|
||||
lsls r0, 2
|
||||
adds r0, r5
|
||||
ldrb r0, [r0]
|
||||
cmp r0, 0
|
||||
bne _080C9D48
|
||||
_080C9D6E:
|
||||
movs r0, 0
|
||||
_080C9D70:
|
||||
pop {r4-r7}
|
||||
pop {r1}
|
||||
bx r1
|
||||
.align 2, 0
|
||||
_080C9D78: .4byte gUnknown_83F5738
|
||||
thumb_func_end sub_80C9CE8
|
||||
|
||||
thumb_func_start sub_80C9D7C
|
||||
sub_80C9D7C: @ 80C9D7C
|
||||
push {r4-r6,lr}
|
||||
lsls r0, 24
|
||||
lsls r1, 24
|
||||
lsrs r5, r0, 24
|
||||
lsrs r4, r1, 24
|
||||
movs r3, 0
|
||||
ldr r1, _080C9DAC @ =gUnknown_83F5738
|
||||
ldrb r0, [r1]
|
||||
cmp r0, 0
|
||||
beq _080C9DC4
|
||||
adds r6, r1, 0
|
||||
_080C9D92:
|
||||
lsls r0, r3, 1
|
||||
adds r0, r3
|
||||
lsls r0, 2
|
||||
adds r2, r0, r6
|
||||
ldrb r0, [r2]
|
||||
cmp r0, r5
|
||||
bne _080C9DB0
|
||||
ldrb r0, [r2, 0x1]
|
||||
cmp r0, r4
|
||||
bne _080C9DB0
|
||||
ldrb r0, [r2, 0x2]
|
||||
b _080C9DC6
|
||||
.align 2, 0
|
||||
_080C9DAC: .4byte gUnknown_83F5738
|
||||
_080C9DB0:
|
||||
adds r0, r3, 0x1
|
||||
lsls r0, 24
|
||||
lsrs r3, r0, 24
|
||||
lsls r0, r3, 1
|
||||
adds r0, r3
|
||||
lsls r0, 2
|
||||
adds r0, r1
|
||||
ldrb r0, [r0]
|
||||
cmp r0, 0
|
||||
bne _080C9D92
|
||||
_080C9DC4:
|
||||
movs r0, 0
|
||||
_080C9DC6:
|
||||
pop {r4-r6}
|
||||
pop {r1}
|
||||
bx r1
|
||||
thumb_func_end sub_80C9D7C
|
||||
|
||||
thumb_func_start sub_80C9DCC
|
||||
sub_80C9DCC: @ 80C9DCC
|
||||
push {r4-r6,lr}
|
||||
lsls r0, 24
|
||||
lsls r1, 24
|
||||
lsrs r5, r0, 24
|
||||
lsrs r4, r1, 24
|
||||
movs r3, 0
|
||||
ldr r1, _080C9DFC @ =gUnknown_83F5738
|
||||
ldrb r0, [r1]
|
||||
cmp r0, 0
|
||||
beq _080C9E14
|
||||
adds r6, r1, 0
|
||||
_080C9DE2:
|
||||
lsls r0, r3, 1
|
||||
adds r0, r3
|
||||
lsls r0, 2
|
||||
adds r2, r0, r6
|
||||
ldrb r0, [r2]
|
||||
cmp r0, r5
|
||||
bne _080C9E00
|
||||
ldrb r0, [r2, 0x1]
|
||||
cmp r0, r4
|
||||
bne _080C9E00
|
||||
ldrb r0, [r2, 0x3]
|
||||
b _080C9E16
|
||||
.align 2, 0
|
||||
_080C9DFC: .4byte gUnknown_83F5738
|
||||
_080C9E00:
|
||||
adds r0, r3, 0x1
|
||||
lsls r0, 24
|
||||
lsrs r3, r0, 24
|
||||
lsls r0, r3, 1
|
||||
adds r0, r3
|
||||
lsls r0, 2
|
||||
adds r0, r1
|
||||
ldrb r0, [r0]
|
||||
cmp r0, 0
|
||||
bne _080C9DE2
|
||||
_080C9E14:
|
||||
movs r0, 0
|
||||
_080C9E16:
|
||||
pop {r4-r6}
|
||||
pop {r1}
|
||||
bx r1
|
||||
thumb_func_end sub_80C9DCC
|
||||
|
||||
thumb_func_start sub_80C9E1C
|
||||
sub_80C9E1C: @ 80C9E1C
|
||||
push {lr}
|
||||
ldr r0, _080C9E2C @ =sub_80C9E30
|
||||
movs r1, 0
|
||||
bl CreateTask
|
||||
pop {r0}
|
||||
bx r0
|
||||
.align 2, 0
|
||||
_080C9E2C: .4byte sub_80C9E30
|
||||
thumb_func_end sub_80C9E1C
|
||||
|
||||
thumb_func_start sub_80C9E30
|
||||
sub_80C9E30: @ 80C9E30
|
||||
lsls r0, 24
|
||||
lsrs r0, 24
|
||||
ldr r2, _080C9E44 @ =gTasks
|
||||
lsls r1, r0, 2
|
||||
adds r1, r0
|
||||
lsls r1, 3
|
||||
adds r1, r2
|
||||
ldr r0, _080C9E48 @ =sub_80C9E4C
|
||||
str r0, [r1]
|
||||
bx lr
|
||||
.align 2, 0
|
||||
_080C9E44: .4byte gTasks
|
||||
_080C9E48: .4byte sub_80C9E4C
|
||||
thumb_func_end sub_80C9E30
|
||||
|
||||
thumb_func_start sub_80C9E4C
|
||||
sub_80C9E4C: @ 80C9E4C
|
||||
push {r4,lr}
|
||||
adds r4, r0, 0
|
||||
lsls r4, 24
|
||||
lsrs r4, 24
|
||||
movs r0, 0
|
||||
movs r1, 0
|
||||
bl SetGpuReg
|
||||
ldr r0, _080C9EC8 @ =gUnknown_83F5A44
|
||||
ldr r1, _080C9ECC @ =0x0600c000
|
||||
bl LZ77UnCompVram
|
||||
ldr r0, _080C9ED0 @ =gUnknown_83F5864
|
||||
ldr r1, _080C9ED4 @ =0x0600f800
|
||||
bl LZ77UnCompVram
|
||||
ldr r0, _080C9ED8 @ =gUnknown_83F5804
|
||||
movs r1, 0xE0
|
||||
movs r2, 0x20
|
||||
bl LoadPalette
|
||||
ldr r0, _080C9EDC @ =gUnknown_83F5844 + 0x10
|
||||
movs r1, 0xE0
|
||||
movs r2, 0x10
|
||||
bl LoadPalette
|
||||
ldr r1, _080C9EE0 @ =0x00003e41
|
||||
movs r0, 0x50
|
||||
bl SetGpuReg
|
||||
movs r0, 0x52
|
||||
movs r1, 0
|
||||
bl SetGpuReg
|
||||
movs r0, 0x54
|
||||
movs r1, 0
|
||||
bl SetGpuReg
|
||||
ldr r1, _080C9EE4 @ =0x00001f0c =BGCNT_PRIORITY(0) | BGCNT_CHARBASE(3) | BGCNT_SCREENBASE(31)
|
||||
movs r0, 0x8
|
||||
bl SetGpuReg
|
||||
movs r1, 0x8A
|
||||
lsls r1, 5
|
||||
movs r0, 0
|
||||
bl SetGpuReg
|
||||
ldr r1, _080C9EE8 @ =gTasks
|
||||
lsls r0, r4, 2
|
||||
adds r0, r4
|
||||
lsls r0, 3
|
||||
adds r0, r1
|
||||
ldr r1, _080C9EEC @ =sub_80C9EF0
|
||||
str r1, [r0]
|
||||
movs r2, 0
|
||||
movs r1, 0x10
|
||||
strh r1, [r0, 0x8]
|
||||
strh r2, [r0, 0xA]
|
||||
pop {r4}
|
||||
pop {r0}
|
||||
bx r0
|
||||
.align 2, 0
|
||||
_080C9EC8: .4byte gUnknown_83F5A44
|
||||
_080C9ECC: .4byte 0x0600c000
|
||||
_080C9ED0: .4byte gUnknown_83F5864
|
||||
_080C9ED4: .4byte 0x0600f800
|
||||
_080C9ED8: .4byte gUnknown_83F5804
|
||||
_080C9EDC: .4byte gUnknown_83F5844 + 0x10
|
||||
_080C9EE0: .4byte 0x00003e41
|
||||
_080C9EE4: .4byte 0x00001f0c
|
||||
_080C9EE8: .4byte gTasks
|
||||
_080C9EEC: .4byte sub_80C9EF0
|
||||
thumb_func_end sub_80C9E4C
|
||||
|
||||
thumb_func_start sub_80C9EF0
|
||||
sub_80C9EF0: @ 80C9EF0
|
||||
push {r4,r5,lr}
|
||||
lsls r0, 24
|
||||
lsrs r0, 24
|
||||
ldr r2, _080C9F20 @ =gTasks
|
||||
lsls r1, r0, 2
|
||||
adds r1, r0
|
||||
lsls r1, 3
|
||||
adds r5, r1, r2
|
||||
ldrh r4, [r5, 0xA]
|
||||
movs r0, 0x80
|
||||
lsls r0, 5
|
||||
adds r1, r4, r0
|
||||
lsls r1, 16
|
||||
lsrs r1, 16
|
||||
movs r0, 0x52
|
||||
bl SetGpuReg
|
||||
cmp r4, 0x10
|
||||
bhi _080C9F24
|
||||
ldrh r0, [r5, 0xA]
|
||||
adds r0, 0x1
|
||||
strh r0, [r5, 0xA]
|
||||
b _080C9F2C
|
||||
.align 2, 0
|
||||
_080C9F20: .4byte gTasks
|
||||
_080C9F24:
|
||||
movs r0, 0
|
||||
strh r0, [r5, 0xC]
|
||||
ldr r0, _080C9F34 @ =sub_80C9F38
|
||||
str r0, [r5]
|
||||
_080C9F2C:
|
||||
pop {r4,r5}
|
||||
pop {r0}
|
||||
bx r0
|
||||
.align 2, 0
|
||||
_080C9F34: .4byte sub_80C9F38
|
||||
thumb_func_end sub_80C9EF0
|
||||
|
||||
thumb_func_start sub_80C9F38
|
||||
sub_80C9F38: @ 80C9F38
|
||||
push {r4,lr}
|
||||
adds r4, r0, 0
|
||||
lsls r4, 24
|
||||
lsrs r4, 24
|
||||
ldr r1, _080C9F74 @ =0x00001010
|
||||
movs r0, 0x52
|
||||
bl SetGpuReg
|
||||
ldr r1, _080C9F78 @ =gTasks
|
||||
lsls r0, r4, 2
|
||||
adds r0, r4
|
||||
lsls r0, 3
|
||||
adds r4, r0, r1
|
||||
ldrh r1, [r4, 0xC]
|
||||
cmp r1, 0x7
|
||||
bhi _080C9F80
|
||||
adds r0, r1, 0x1
|
||||
strh r0, [r4, 0xC]
|
||||
lsls r1, 1
|
||||
ldr r0, _080C9F7C @ =gUnknown_83F5844 + 0x10
|
||||
adds r0, r1, r0
|
||||
movs r2, 0x10
|
||||
subs r2, r1
|
||||
lsls r2, 16
|
||||
lsrs r2, 16
|
||||
movs r1, 0xE0
|
||||
bl LoadPalette
|
||||
b _080C9F92
|
||||
.align 2, 0
|
||||
_080C9F74: .4byte 0x00001010
|
||||
_080C9F78: .4byte gTasks
|
||||
_080C9F7C: .4byte gUnknown_83F5844 + 0x10
|
||||
_080C9F80:
|
||||
ldr r0, _080C9F98 @ =gUnknown_83F5804
|
||||
movs r1, 0
|
||||
movs r2, 0x20
|
||||
bl LoadPalette
|
||||
ldr r0, _080C9F9C @ =sub_80C9FA0
|
||||
str r0, [r4]
|
||||
movs r0, 0x8
|
||||
strh r0, [r4, 0xC]
|
||||
_080C9F92:
|
||||
pop {r4}
|
||||
pop {r0}
|
||||
bx r0
|
||||
.align 2, 0
|
||||
_080C9F98: .4byte gUnknown_83F5804
|
||||
_080C9F9C: .4byte sub_80C9FA0
|
||||
thumb_func_end sub_80C9F38
|
||||
|
||||
thumb_func_start sub_80C9FA0
|
||||
sub_80C9FA0: @ 80C9FA0
|
||||
push {lr}
|
||||
lsls r0, 24
|
||||
lsrs r0, 24
|
||||
ldr r2, _080C9FC0 @ =gTasks
|
||||
lsls r1, r0, 2
|
||||
adds r1, r0
|
||||
lsls r1, 3
|
||||
adds r1, r2
|
||||
ldrh r2, [r1, 0xC]
|
||||
movs r3, 0xC
|
||||
ldrsh r0, [r1, r3]
|
||||
cmp r0, 0
|
||||
beq _080C9FC4
|
||||
subs r0, r2, 0x1
|
||||
strh r0, [r1, 0xC]
|
||||
b _080C9FCC
|
||||
.align 2, 0
|
||||
_080C9FC0: .4byte gTasks
|
||||
_080C9FC4:
|
||||
ldr r0, _080C9FD0 @ =gMain
|
||||
ldr r0, [r0, 0x8]
|
||||
bl SetMainCallback2
|
||||
_080C9FCC:
|
||||
pop {r0}
|
||||
bx r0
|
||||
.align 2, 0
|
||||
_080C9FD0: .4byte gMain
|
||||
thumb_func_end sub_80C9FA0
|
||||
|
||||
thumb_func_start sub_80C9FD4
|
||||
sub_80C9FD4: @ 80C9FD4
|
||||
push {lr}
|
||||
ldr r0, _080C9FE4 @ =sub_80C9FE8
|
||||
movs r1, 0
|
||||
bl CreateTask
|
||||
pop {r0}
|
||||
bx r0
|
||||
.align 2, 0
|
||||
_080C9FE4: .4byte sub_80C9FE8
|
||||
thumb_func_end sub_80C9FD4
|
||||
|
||||
thumb_func_start sub_80C9FE8
|
||||
sub_80C9FE8: @ 80C9FE8
|
||||
lsls r0, 24
|
||||
lsrs r0, 24
|
||||
ldr r2, _080C9FFC @ =gTasks
|
||||
lsls r1, r0, 2
|
||||
adds r1, r0
|
||||
lsls r1, 3
|
||||
adds r1, r2
|
||||
ldr r0, _080CA000 @ =sub_80CA004
|
||||
str r0, [r1]
|
||||
bx lr
|
||||
.align 2, 0
|
||||
_080C9FFC: .4byte gTasks
|
||||
_080CA000: .4byte sub_80CA004
|
||||
thumb_func_end sub_80C9FE8
|
||||
|
||||
thumb_func_start sub_80CA004
|
||||
sub_80CA004: @ 80CA004
|
||||
push {r4,lr}
|
||||
adds r4, r0, 0
|
||||
lsls r4, 24
|
||||
lsrs r4, 24
|
||||
movs r0, 0
|
||||
movs r1, 0
|
||||
bl SetGpuReg
|
||||
ldr r0, _080CA080 @ =gUnknown_83F5A44
|
||||
ldr r1, _080CA084 @ =0x0600c000
|
||||
bl LZ77UnCompVram
|
||||
ldr r0, _080CA088 @ =gUnknown_83F5864
|
||||
ldr r1, _080CA08C @ =0x0600f800
|
||||
bl LZ77UnCompVram
|
||||
movs r0, 0x50
|
||||
movs r1, 0
|
||||
bl SetGpuReg
|
||||
movs r0, 0x52
|
||||
movs r1, 0
|
||||
bl SetGpuReg
|
||||
movs r0, 0x54
|
||||
movs r1, 0
|
||||
bl SetGpuReg
|
||||
ldr r1, _080CA090 @ =0x00001f0c
|
||||
movs r0, 0x8
|
||||
bl SetGpuReg
|
||||
movs r1, 0x8A
|
||||
lsls r1, 5
|
||||
movs r0, 0
|
||||
bl SetGpuReg
|
||||
ldr r0, _080CA094 @ =gUnknown_83F5804
|
||||
movs r1, 0xE0
|
||||
movs r2, 0x20
|
||||
bl LoadPalette
|
||||
ldr r0, _080CA098 @ =gUnknown_83F5824
|
||||
movs r1, 0
|
||||
movs r2, 0x20
|
||||
bl LoadPalette
|
||||
ldr r1, _080CA09C @ =gTasks
|
||||
lsls r0, r4, 2
|
||||
adds r0, r4
|
||||
lsls r0, 3
|
||||
adds r0, r1
|
||||
ldr r1, _080CA0A0 @ =sub_80CA0A4
|
||||
str r1, [r0]
|
||||
movs r2, 0
|
||||
movs r1, 0x10
|
||||
strh r1, [r0, 0x8]
|
||||
strh r2, [r0, 0xA]
|
||||
strh r2, [r0, 0xC]
|
||||
pop {r4}
|
||||
pop {r0}
|
||||
bx r0
|
||||
.align 2, 0
|
||||
_080CA080: .4byte gUnknown_83F5A44
|
||||
_080CA084: .4byte 0x0600c000
|
||||
_080CA088: .4byte gUnknown_83F5864
|
||||
_080CA08C: .4byte 0x0600f800
|
||||
_080CA090: .4byte 0x00001f0c
|
||||
_080CA094: .4byte gUnknown_83F5804
|
||||
_080CA098: .4byte gUnknown_83F5824
|
||||
_080CA09C: .4byte gTasks
|
||||
_080CA0A0: .4byte sub_80CA0A4
|
||||
thumb_func_end sub_80CA004
|
||||
|
||||
thumb_func_start sub_80CA0A4
|
||||
sub_80CA0A4: @ 80CA0A4
|
||||
push {r4,lr}
|
||||
lsls r0, 24
|
||||
lsrs r0, 24
|
||||
ldr r2, _080CA0D8 @ =gTasks
|
||||
lsls r1, r0, 2
|
||||
adds r1, r0
|
||||
lsls r1, 3
|
||||
adds r4, r1, r2
|
||||
ldrh r1, [r4, 0xC]
|
||||
cmp r1, 0xF
|
||||
bhi _080CA0E0
|
||||
adds r2, r1, 0x1
|
||||
adds r0, r2, 0x1
|
||||
strh r0, [r4, 0xC]
|
||||
movs r0, 0xF
|
||||
subs r0, r1
|
||||
lsls r0, 1
|
||||
ldr r1, _080CA0DC @ =gUnknown_83F5844
|
||||
adds r0, r1
|
||||
lsls r2, 17
|
||||
lsrs r2, 16
|
||||
movs r1, 0xE0
|
||||
bl LoadPalette
|
||||
b _080CA0F4
|
||||
.align 2, 0
|
||||
_080CA0D8: .4byte gTasks
|
||||
_080CA0DC: .4byte gUnknown_83F5844
|
||||
_080CA0E0:
|
||||
ldr r1, _080CA0FC @ =0x00001010
|
||||
movs r0, 0x52
|
||||
bl SetGpuReg
|
||||
ldr r1, _080CA100 @ =0x00003e41
|
||||
movs r0, 0x50
|
||||
bl SetGpuReg
|
||||
ldr r0, _080CA104 @ =sub_80CA108
|
||||
str r0, [r4]
|
||||
_080CA0F4:
|
||||
pop {r4}
|
||||
pop {r0}
|
||||
bx r0
|
||||
.align 2, 0
|
||||
_080CA0FC: .4byte 0x00001010
|
||||
_080CA100: .4byte 0x00003e41
|
||||
_080CA104: .4byte sub_80CA108
|
||||
thumb_func_end sub_80CA0A4
|
||||
|
||||
thumb_func_start sub_80CA108
|
||||
sub_80CA108: @ 80CA108
|
||||
push {r4,r5,lr}
|
||||
lsls r0, 24
|
||||
lsrs r0, 24
|
||||
ldr r2, _080CA13C @ =gTasks
|
||||
lsls r1, r0, 2
|
||||
adds r1, r0
|
||||
lsls r1, 3
|
||||
adds r5, r1, r2
|
||||
ldrh r0, [r5, 0xA]
|
||||
movs r1, 0x10
|
||||
subs r1, r0
|
||||
lsls r1, 16
|
||||
lsrs r4, r1, 16
|
||||
movs r0, 0x80
|
||||
lsls r0, 21
|
||||
adds r1, r0
|
||||
lsrs r1, 16
|
||||
movs r0, 0x52
|
||||
bl SetGpuReg
|
||||
cmp r4, 0
|
||||
beq _080CA140
|
||||
ldrh r0, [r5, 0xA]
|
||||
adds r0, 0x1
|
||||
strh r0, [r5, 0xA]
|
||||
b _080CA152
|
||||
.align 2, 0
|
||||
_080CA13C: .4byte gTasks
|
||||
_080CA140:
|
||||
ldr r0, _080CA158 @ =gUnknown_83F5824
|
||||
movs r1, 0
|
||||
movs r2, 0x20
|
||||
bl LoadPalette
|
||||
ldr r0, _080CA15C @ =gMain
|
||||
ldr r0, [r0, 0x8]
|
||||
bl SetMainCallback2
|
||||
_080CA152:
|
||||
pop {r4,r5}
|
||||
pop {r0}
|
||||
bx r0
|
||||
.align 2, 0
|
||||
_080CA158: .4byte gUnknown_83F5824
|
||||
_080CA15C: .4byte gMain
|
||||
thumb_func_end sub_80CA108
|
||||
|
||||
thumb_func_start sub_80CA160
|
||||
sub_80CA160: @ 80CA160
|
||||
push {r4,lr}
|
||||
adds r4, r0, 0
|
||||
lsls r4, 24
|
||||
lsrs r4, 24
|
||||
ldr r0, _080CA188 @ =sub_80CA190
|
||||
movs r1, 0
|
||||
bl CreateTask
|
||||
lsls r0, 24
|
||||
lsrs r0, 24
|
||||
ldr r2, _080CA18C @ =gTasks
|
||||
lsls r1, r0, 2
|
||||
adds r1, r0
|
||||
lsls r1, 3
|
||||
adds r1, r2
|
||||
strh r4, [r1, 0xE]
|
||||
pop {r4}
|
||||
pop {r0}
|
||||
bx r0
|
||||
.align 2, 0
|
||||
_080CA188: .4byte sub_80CA190
|
||||
_080CA18C: .4byte gTasks
|
||||
thumb_func_end sub_80CA160
|
||||
|
||||
thumb_func_start sub_80CA190
|
||||
sub_80CA190: @ 80CA190
|
||||
push {r4-r6,lr}
|
||||
sub sp, 0x4
|
||||
lsls r0, 24
|
||||
lsrs r5, r0, 24
|
||||
lsls r0, r5, 2
|
||||
adds r0, r5
|
||||
lsls r0, 3
|
||||
ldr r1, _080CA1B8 @ =gTasks+0x8
|
||||
adds r4, r0, r1
|
||||
movs r1, 0
|
||||
ldrsh r0, [r4, r1]
|
||||
cmp r0, 0x5
|
||||
bls _080CA1AC
|
||||
b _080CA2D2
|
||||
_080CA1AC:
|
||||
lsls r0, 2
|
||||
ldr r1, _080CA1BC @ =_080CA1C0
|
||||
adds r0, r1
|
||||
ldr r0, [r0]
|
||||
mov pc, r0
|
||||
.align 2, 0
|
||||
_080CA1B8: .4byte gTasks+0x8
|
||||
_080CA1BC: .4byte _080CA1C0
|
||||
.align 2, 0
|
||||
_080CA1C0:
|
||||
.4byte _080CA1D8
|
||||
.4byte _080CA208
|
||||
.4byte _080CA224
|
||||
.4byte _080CA24E
|
||||
.4byte _080CA262
|
||||
.4byte _080CA2A4
|
||||
_080CA1D8:
|
||||
ldr r0, _080CA204 @ =gMain
|
||||
ldr r2, [r0, 0xC]
|
||||
adds r0, r5, 0
|
||||
movs r1, 0x5
|
||||
bl SetWordTaskArg
|
||||
movs r0, 0
|
||||
bl SetVBlankCallback
|
||||
bl sub_80F8180
|
||||
ldrb r0, [r4, 0x6]
|
||||
bl sub_80F819C
|
||||
movs r0, 0x1
|
||||
negs r0, r0
|
||||
movs r1, 0x10
|
||||
movs r2, 0
|
||||
bl BlendPalettes
|
||||
b _080CA294
|
||||
.align 2, 0
|
||||
_080CA204: .4byte gMain
|
||||
_080CA208:
|
||||
bl sub_80F8258
|
||||
cmp r0, 0
|
||||
bne _080CA2D2
|
||||
ldrb r0, [r4, 0x6]
|
||||
bl sub_80F8318
|
||||
strh r0, [r4, 0x8]
|
||||
lsls r0, 24
|
||||
lsrs r0, 24
|
||||
movs r1, 0x3
|
||||
bl CopyWindowToVram
|
||||
b _080CA294
|
||||
_080CA224:
|
||||
bl IsDma3ManagerBusyWithBgCopy
|
||||
lsls r0, 24
|
||||
lsrs r0, 24
|
||||
cmp r0, 0
|
||||
bne _080CA2D2
|
||||
movs r1, 0x1
|
||||
negs r1, r1
|
||||
str r0, [sp]
|
||||
adds r0, r1, 0
|
||||
movs r2, 0x10
|
||||
movs r3, 0
|
||||
bl BeginNormalPaletteFade
|
||||
adds r0, r5, 0
|
||||
movs r1, 0x5
|
||||
bl GetWordTaskArg
|
||||
bl SetVBlankCallback
|
||||
b _080CA294
|
||||
_080CA24E:
|
||||
bl UpdatePaletteFade
|
||||
lsls r0, 24
|
||||
cmp r0, 0
|
||||
bne _080CA2D2
|
||||
ldrb r0, [r4, 0x6]
|
||||
bl sub_80F856C
|
||||
strh r0, [r4, 0x4]
|
||||
b _080CA294
|
||||
_080CA262:
|
||||
ldrh r0, [r4, 0x2]
|
||||
adds r0, 0x1
|
||||
strh r0, [r4, 0x2]
|
||||
lsls r0, 16
|
||||
asrs r0, 16
|
||||
movs r2, 0x4
|
||||
ldrsh r1, [r4, r2]
|
||||
cmp r0, r1
|
||||
bgt _080CA280
|
||||
ldr r0, _080CA29C @ =gMain
|
||||
ldrh r1, [r0, 0x2C]
|
||||
movs r0, 0x2
|
||||
ands r0, r1
|
||||
cmp r0, 0
|
||||
beq _080CA2D2
|
||||
_080CA280:
|
||||
movs r0, 0x1
|
||||
negs r0, r0
|
||||
movs r1, 0x2
|
||||
negs r1, r1
|
||||
ldr r2, _080CA2A0 @ =0x00007fff
|
||||
str r2, [sp]
|
||||
movs r2, 0
|
||||
movs r3, 0x10
|
||||
bl BeginNormalPaletteFade
|
||||
_080CA294:
|
||||
ldrh r0, [r4]
|
||||
adds r0, 0x1
|
||||
strh r0, [r4]
|
||||
b _080CA2D2
|
||||
.align 2, 0
|
||||
_080CA29C: .4byte gMain
|
||||
_080CA2A0: .4byte 0x00007fff
|
||||
_080CA2A4:
|
||||
bl UpdatePaletteFade
|
||||
lsls r0, 24
|
||||
cmp r0, 0
|
||||
bne _080CA2D2
|
||||
lsls r6, r5, 2
|
||||
movs r1, 0
|
||||
adds r0, r4, 0
|
||||
adds r0, 0x1E
|
||||
_080CA2B6:
|
||||
strh r1, [r0]
|
||||
subs r0, 0x2
|
||||
cmp r0, r4
|
||||
bge _080CA2B6
|
||||
movs r1, 0x8
|
||||
ldrsh r0, [r4, r1]
|
||||
bl sub_80F8234
|
||||
ldr r1, _080CA2DC @ =gTasks
|
||||
adds r0, r6, r5
|
||||
lsls r0, 3
|
||||
adds r0, r1
|
||||
ldr r1, _080CA2E0 @ =sub_80CA004
|
||||
str r1, [r0]
|
||||
_080CA2D2:
|
||||
add sp, 0x4
|
||||
pop {r4-r6}
|
||||
pop {r0}
|
||||
bx r0
|
||||
.align 2, 0
|
||||
_080CA2DC: .4byte gTasks
|
||||
_080CA2E0: .4byte sub_80CA004
|
||||
thumb_func_end sub_80CA190
|
||||
|
||||
.align 2, 0 @ Don't pad with nop.
|
||||
+15
-15
@@ -1739,7 +1739,7 @@ _080558D4:
|
||||
bl DoCurrentWeather
|
||||
bl ResetFieldTasksArgs
|
||||
bl mapheader_run_script_with_tag_x5
|
||||
bl sub_80561B4
|
||||
bl GetLastUsedWarpMapSectionId
|
||||
ldr r1, _0805591C @ =gMapHeader
|
||||
lsls r0, 24
|
||||
lsrs r0, 24
|
||||
@@ -2899,8 +2899,8 @@ GetCurrentMapType: @ 8056188
|
||||
_0805619C: .4byte gSaveBlock1Ptr
|
||||
thumb_func_end GetCurrentMapType
|
||||
|
||||
thumb_func_start get_map_light_from_warp0
|
||||
get_map_light_from_warp0: @ 80561A0
|
||||
thumb_func_start GetLastUsedWarpMapType
|
||||
GetLastUsedWarpMapType: @ 80561A0
|
||||
push {lr}
|
||||
ldr r0, _080561B0 @ =gUnknown_2031DB4
|
||||
bl get_map_light_level_from_warp
|
||||
@@ -2910,10 +2910,10 @@ get_map_light_from_warp0: @ 80561A0
|
||||
bx r1
|
||||
.align 2, 0
|
||||
_080561B0: .4byte gUnknown_2031DB4
|
||||
thumb_func_end get_map_light_from_warp0
|
||||
thumb_func_end GetLastUsedWarpMapType
|
||||
|
||||
thumb_func_start sub_80561B4
|
||||
sub_80561B4: @ 80561B4
|
||||
thumb_func_start GetLastUsedWarpMapSectionId
|
||||
GetLastUsedWarpMapSectionId: @ 80561B4
|
||||
push {lr}
|
||||
ldr r1, _080561D4 @ =gUnknown_2031DB4
|
||||
movs r0, 0
|
||||
@@ -2931,7 +2931,7 @@ sub_80561B4: @ 80561B4
|
||||
bx r1
|
||||
.align 2, 0
|
||||
_080561D4: .4byte gUnknown_2031DB4
|
||||
thumb_func_end sub_80561B4
|
||||
thumb_func_end GetLastUsedWarpMapSectionId
|
||||
|
||||
thumb_func_start IsMapTypeOutdoors
|
||||
IsMapTypeOutdoors: @ 80561D8
|
||||
@@ -3579,7 +3579,7 @@ CB2_LoadMap: @ 805671C
|
||||
bl ScriptContext2_Disable
|
||||
movs r0, 0
|
||||
bl SetMainCallback1
|
||||
ldr r0, _08056740 @ =sub_80C9BFC
|
||||
ldr r0, _08056740 @ =CB2_DoChangeMap
|
||||
bl SetMainCallback2
|
||||
ldr r1, _08056744 @ =gMain
|
||||
ldr r0, _08056748 @ =sub_805674C
|
||||
@@ -3587,7 +3587,7 @@ CB2_LoadMap: @ 805671C
|
||||
pop {r0}
|
||||
bx r0
|
||||
.align 2, 0
|
||||
_08056740: .4byte sub_80C9BFC
|
||||
_08056740: .4byte CB2_DoChangeMap
|
||||
_08056744: .4byte gMain
|
||||
_08056748: .4byte sub_805674C
|
||||
thumb_func_end CB2_LoadMap
|
||||
@@ -4196,7 +4196,7 @@ _08056C72:
|
||||
bl InitTilesetAnimations
|
||||
b _08056CCA
|
||||
_08056C78:
|
||||
bl sub_80561B4
|
||||
bl GetLastUsedWarpMapSectionId
|
||||
ldr r5, _08056CA4 @ =gMapHeader
|
||||
lsls r0, 24
|
||||
lsrs r0, 24
|
||||
@@ -4205,13 +4205,13 @@ _08056C78:
|
||||
beq _08056CA8
|
||||
ldrb r0, [r5, 0x14]
|
||||
movs r1, 0x1
|
||||
bl sub_80F8154
|
||||
bl MapHasPreviewScreen_HandleQLState2
|
||||
cmp r0, 0x1
|
||||
bne _08056CA8
|
||||
ldrb r0, [r5, 0x14]
|
||||
bl sub_80F819C
|
||||
bl MapPreview_LoadGfx
|
||||
ldrb r0, [r5, 0x14]
|
||||
bl sub_80F8268
|
||||
bl MapPreview_StartForestTransition
|
||||
b _08056CCA
|
||||
.align 2, 0
|
||||
_08056CA4: .4byte gMapHeader
|
||||
@@ -4922,7 +4922,7 @@ sub_805726C: @ 805726C
|
||||
bl ScriptContext2_Disable
|
||||
movs r0, 0
|
||||
bl SetMainCallback1
|
||||
ldr r0, _0805729C @ =sub_80C9BFC
|
||||
ldr r0, _0805729C @ =CB2_DoChangeMap
|
||||
bl SetMainCallback2
|
||||
ldr r1, _080572A0 @ =gMain
|
||||
ldr r0, _080572A4 @ =sub_80572D8
|
||||
@@ -4931,7 +4931,7 @@ sub_805726C: @ 805726C
|
||||
bx r0
|
||||
.align 2, 0
|
||||
_08057298: .4byte gUnknown_2036E28
|
||||
_0805729C: .4byte sub_80C9BFC
|
||||
_0805729C: .4byte CB2_DoChangeMap
|
||||
_080572A0: .4byte gMain
|
||||
_080572A4: .4byte sub_80572D8
|
||||
thumb_func_end sub_805726C
|
||||
|
||||
@@ -1,74 +0,0 @@
|
||||
#include "constants/species.h"
|
||||
#include "constants/items.h"
|
||||
.include "asm/macros.inc"
|
||||
.include "constants/constants.inc"
|
||||
.section .rodata
|
||||
.align 2
|
||||
|
||||
gUnknown_83F5738:: @ 83F5738
|
||||
.byte 1, 4, 1, 0
|
||||
.4byte sub_80C9FD4
|
||||
.4byte sub_80CA160
|
||||
.byte 2, 4, 1, 0
|
||||
.4byte sub_80C9FD4
|
||||
.4byte sub_80CA160
|
||||
.byte 3, 4, 1, 0
|
||||
.4byte sub_80C9FD4
|
||||
.4byte sub_80CA160
|
||||
.byte 5, 4, 1, 0
|
||||
.4byte sub_80C9FD4
|
||||
.4byte sub_80CA160
|
||||
.byte 6, 4, 1, 0
|
||||
.4byte sub_80C9FD4
|
||||
.4byte sub_80CA160
|
||||
.byte 7, 4, 1, 0
|
||||
.4byte sub_80C9FD4
|
||||
.4byte sub_80CA160
|
||||
.byte 8, 4, 1, 0
|
||||
.4byte sub_80C9FD4
|
||||
.4byte sub_80CA160
|
||||
.byte 9, 4, 1, 0
|
||||
.4byte sub_80C9FD4
|
||||
.4byte sub_80CA160
|
||||
.byte 4, 1, 0, 1
|
||||
.4byte sub_80C9E1C
|
||||
.4byte sub_80CA160
|
||||
.byte 4, 2, 0, 1
|
||||
.4byte sub_80C9E1C
|
||||
.4byte sub_80CA160
|
||||
.byte 4, 3, 0, 1
|
||||
.4byte sub_80C9E1C
|
||||
.4byte sub_80CA160
|
||||
.byte 4, 5, 0, 1
|
||||
.4byte sub_80C9E1C
|
||||
.4byte sub_80CA160
|
||||
.byte 4, 6, 0, 1
|
||||
.4byte sub_80C9E1C
|
||||
.4byte sub_80CA160
|
||||
.byte 4, 7, 0, 1
|
||||
.4byte sub_80C9E1C
|
||||
.4byte sub_80CA160
|
||||
.byte 4, 8, 0, 1
|
||||
.4byte sub_80C9E1C
|
||||
.4byte sub_80CA160
|
||||
.byte 4, 9, 0, 1
|
||||
.4byte sub_80C9E1C
|
||||
.4byte sub_80CA160
|
||||
.byte 0, 0, 0, 0
|
||||
.4byte NULL
|
||||
.4byte NULL
|
||||
|
||||
gUnknown_83F5804:: @ 83F5804
|
||||
.incbin "graphics/field_effects/flash_white.gbapal"
|
||||
|
||||
gUnknown_83F5824:: @ 83F5824
|
||||
.incbin "graphics/field_effects/flash_black.gbapal"
|
||||
|
||||
gUnknown_83F5844:: @ 83F5844
|
||||
.incbin "graphics/field_effects/flash_gradient.gbapal"
|
||||
|
||||
gUnknown_83F5864:: @ 83F5864
|
||||
.incbin "graphics/field_effects/flash_effect_map.bin.lz"
|
||||
|
||||
gUnknown_83F5A44:: @ 83F5A44
|
||||
.incbin "graphics/field_effects/flash_effect_tiles.4bpp.lz"
|
||||
@@ -1209,4 +1209,7 @@ extern const u8 CableClub_Text_AwaitingLinkupBCancel[];
|
||||
extern const u8 CableClub_Text_StartLinkWithXPlayersAConfirmBCancel[];
|
||||
extern const u8 CableClub_Text_PleaseWaitBCancel[];
|
||||
|
||||
// fldeff_flash
|
||||
extern const u8 EventScript_FldEffFlash[];
|
||||
|
||||
#endif //GUARD_EVENT_SCRIPTS_H
|
||||
|
||||
@@ -3,7 +3,7 @@
|
||||
|
||||
#include "global.h"
|
||||
|
||||
void FadeScreen(u8, s8);
|
||||
void FadeScreen(u8 mode, s8 delay);
|
||||
|
||||
void SetSav1Weather(u32);
|
||||
u8 GetSav1Weather(void);
|
||||
|
||||
+2
-2
@@ -13,8 +13,8 @@ bool8 CheckObjectGraphicsInFrontOfPlayer(u8 graphicsId);
|
||||
u8 CreateFieldEffectShowMon(void);
|
||||
|
||||
// flash
|
||||
u8 sub_80C9DCC(u8 lightLevel, u8 mapType);
|
||||
u8 sub_80C9D7C(u8 mapType1, u8 mapType2);
|
||||
u8 MapTransitionIsExit(u8 lightLevel, u8 mapType);
|
||||
u8 MapTransitionIsEnter(u8 mapType1, u8 mapType2);
|
||||
bool8 SetUpFieldMove_Flash(void);
|
||||
|
||||
// cut
|
||||
|
||||
@@ -34,21 +34,30 @@ enum MapPreviewScreenId
|
||||
MPS_COUNT
|
||||
};
|
||||
|
||||
#define MPS_TYPE_CAVE 0
|
||||
#define MPS_TYPE_FOREST 1
|
||||
#define MPS_TYPE_ANY 2
|
||||
|
||||
struct MapPreviewScreen
|
||||
{
|
||||
u8 mapsec;
|
||||
bool8 forceFirstTime;
|
||||
u8 type;
|
||||
u16 flagId;
|
||||
const void * tilesptr;
|
||||
const void * tilemapptr;
|
||||
const void * palptr;
|
||||
};
|
||||
|
||||
u16 sub_80F8318(u8 id);
|
||||
void sub_80F85BC(u16 a0);
|
||||
u16 sub_80F856C(u8 id);
|
||||
bool8 sub_80F8110(u8 mapsec, bool8 forceFirstTime);
|
||||
bool32 sub_80F83B0(void);
|
||||
u16 MapPreview_CreateMapNameWindow(u8 id);
|
||||
void MapPreview_SetFlag(u16 a0);
|
||||
u16 MapPreview_GetDuration(u8 id);
|
||||
bool8 MapHasPreviewScreen(u8 mapsec, u8 type);
|
||||
bool32 ForestMapPreviewScreenIsRunning(void);
|
||||
const struct MapPreviewScreen * GetDungeonMapPreviewScreenInfo(u8 mapsec);
|
||||
bool32 MapHasPreviewScreen_HandleQLState2(u8 mapsec, u8 type);
|
||||
void MapPreview_InitBgs(void);
|
||||
void MapPreview_LoadGfx(u8 mapsec);
|
||||
bool32 MapPreview_IsGfxLoadFinished(void);
|
||||
void MapPreview_Unload(s32 windowId);
|
||||
|
||||
#endif //GUARD_MAP_PREVIEW_SCREEN_H
|
||||
|
||||
+2
-1
@@ -157,7 +157,7 @@ void Overworld_ResetStateAfterDigEscRope(void);
|
||||
bool32 sub_8058244(void);
|
||||
u8 GetCurrentMapType(void);
|
||||
|
||||
u8 get_map_light_from_warp0(void);
|
||||
u8 GetLastUsedWarpMapType(void);
|
||||
const struct MapHeader *warp1_get_mapheader(void);
|
||||
void TryFadeOutOldMapMusic(void);
|
||||
void CB2_ReturnToFieldCableClub(void);
|
||||
@@ -192,6 +192,7 @@ void sub_8057F48(void);
|
||||
void SetMainCallback1(MainCallback cb);
|
||||
void CB1_Overworld(void);
|
||||
void sub_80568C4(void);
|
||||
u8 GetLastUsedWarpMapSectionId(void);
|
||||
|
||||
extern u16 gHeldKeyCodeToSend;
|
||||
|
||||
|
||||
+1
-1
@@ -26,7 +26,7 @@ extern const u16 gUnknown_84566A8[];
|
||||
void sub_8112720(u8);
|
||||
void SetQuestLogEvent(u16, const u16 *);
|
||||
void sub_811539C(void);
|
||||
void sub_8115748(u16);
|
||||
void QuestLog_RecordEnteredMap(u16);
|
||||
u8 sub_8112CAC(void);
|
||||
bool8 QuestLog_SchedulePlaybackCB(void (*func)(void));
|
||||
void sub_8111F38(u16 offset, u16 idx);
|
||||
|
||||
+2
-2
@@ -183,7 +183,7 @@ SECTIONS {
|
||||
src/battle_ai_script_commands.o(.text);
|
||||
src/fldeff_rocksmash.o(.text);
|
||||
src/fldeff_dig.o(.text);
|
||||
asm/fldeff_flash.o(.text);
|
||||
src/fldeff_flash.o(.text);
|
||||
src/post_battle_event_funcs.o(.text);
|
||||
src/prof_pc.o(.text);
|
||||
src/hof_pc.o(.text);
|
||||
@@ -489,7 +489,7 @@ SECTIONS {
|
||||
src/region_map.o(.rodata);
|
||||
src/image_processing_effects.o(.rodata);
|
||||
src/battle_ai_script_commands.o(.rodata);
|
||||
data/fldeff_flash.o(.rodata);
|
||||
src/fldeff_flash.o(.rodata);
|
||||
src/field_specials.o(.rodata);
|
||||
src/battle_records.o(.rodata);
|
||||
src/evolution_scene.o(.rodata);
|
||||
|
||||
+2
-1
@@ -15,6 +15,7 @@
|
||||
#include "sound.h"
|
||||
#include "constants/species.h"
|
||||
#include "constants/maps.h"
|
||||
#include "constants/field_weather.h"
|
||||
|
||||
#if defined(FIRERED)
|
||||
#define TITLE_TEXT gString_PokemonFireRed_Staff
|
||||
@@ -918,7 +919,7 @@ static s32 RollCredits(void)
|
||||
case CREDITSSCRCMD_MON:
|
||||
sCreditsMgr->mainseqno = CREDITSSCENE_MON_DESTROY_ASSETS;
|
||||
sCreditsMgr->whichMon = sCreditsScript[sCreditsMgr->scrcmdidx].param;
|
||||
FadeScreen(1, 0);
|
||||
FadeScreen(FADE_TO_BLACK, 0);
|
||||
break;
|
||||
case CREDITSSCRCMD_THEENDGFX:
|
||||
sCreditsMgr->mainseqno = CREDITSSCENE_THEEND_DESTROY_ASSETS;
|
||||
|
||||
+23
-22
@@ -23,6 +23,7 @@
|
||||
#include "start_menu.h"
|
||||
#include "constants/songs.h"
|
||||
#include "constants/event_object_movement.h"
|
||||
#include "constants/field_weather.h"
|
||||
|
||||
static void sub_807DF4C(u8 a0);
|
||||
static void sub_807DFBC(u8 taskId);
|
||||
@@ -52,16 +53,16 @@ void palette_bg_faded_fill_black(void)
|
||||
|
||||
void WarpFadeInScreen(void)
|
||||
{
|
||||
switch (sub_80C9DCC(get_map_light_from_warp0(), GetCurrentMapType()))
|
||||
switch (MapTransitionIsExit(GetLastUsedWarpMapType(), GetCurrentMapType()))
|
||||
{
|
||||
case 0:
|
||||
palette_bg_faded_fill_black();
|
||||
FadeScreen(0, 0);
|
||||
FadeScreen(FADE_FROM_BLACK, 0);
|
||||
palette_bg_faded_fill_black();
|
||||
break;
|
||||
case 1:
|
||||
palette_bg_faded_fill_white();
|
||||
FadeScreen(2, 0);
|
||||
FadeScreen(FADE_FROM_WHITE, 0);
|
||||
palette_bg_faded_fill_white();
|
||||
break;
|
||||
}
|
||||
@@ -69,16 +70,16 @@ void WarpFadeInScreen(void)
|
||||
|
||||
static void sub_807DBAC(void)
|
||||
{
|
||||
switch (sub_80C9DCC(get_map_light_from_warp0(), GetCurrentMapType()))
|
||||
switch (MapTransitionIsExit(GetLastUsedWarpMapType(), GetCurrentMapType()))
|
||||
{
|
||||
case 0:
|
||||
palette_bg_faded_fill_black();
|
||||
FadeScreen(0, 3);
|
||||
FadeScreen(FADE_FROM_BLACK, 3);
|
||||
palette_bg_faded_fill_black();
|
||||
break;
|
||||
case 1:
|
||||
palette_bg_faded_fill_white();
|
||||
FadeScreen(2, 3);
|
||||
FadeScreen(FADE_FROM_WHITE, 3);
|
||||
palette_bg_faded_fill_white();
|
||||
break;
|
||||
}
|
||||
@@ -87,24 +88,24 @@ static void sub_807DBAC(void)
|
||||
void FadeInFromBlack(void)
|
||||
{
|
||||
palette_bg_faded_fill_black();
|
||||
FadeScreen(0, 0);
|
||||
FadeScreen(FADE_FROM_BLACK, 0);
|
||||
palette_bg_faded_fill_black();
|
||||
}
|
||||
|
||||
void WarpFadeOutScreen(void)
|
||||
{
|
||||
const struct MapHeader *header = warp1_get_mapheader();
|
||||
if (header->regionMapSectionId != gMapHeader.regionMapSectionId && sub_80F8110(header->regionMapSectionId, FALSE))
|
||||
FadeScreen(1, 0);
|
||||
if (header->regionMapSectionId != gMapHeader.regionMapSectionId && MapHasPreviewScreen(header->regionMapSectionId, MPS_TYPE_CAVE))
|
||||
FadeScreen(FADE_TO_BLACK, 0);
|
||||
else
|
||||
{
|
||||
switch (sub_80C9D7C(GetCurrentMapType(), header->mapType))
|
||||
switch (MapTransitionIsEnter(GetCurrentMapType(), header->mapType))
|
||||
{
|
||||
case 0:
|
||||
FadeScreen(1, 0);
|
||||
case FALSE:
|
||||
FadeScreen(FADE_TO_BLACK, 0);
|
||||
break;
|
||||
case 1:
|
||||
FadeScreen(3, 0);
|
||||
case TRUE:
|
||||
FadeScreen(FADE_TO_WHITE, 0);
|
||||
break;
|
||||
}
|
||||
}
|
||||
@@ -112,13 +113,13 @@ void WarpFadeOutScreen(void)
|
||||
|
||||
static void sub_807DC70(void)
|
||||
{
|
||||
switch (sub_80C9D7C(GetCurrentMapType(), warp1_get_mapheader()->mapType))
|
||||
switch (MapTransitionIsEnter(GetCurrentMapType(), warp1_get_mapheader()->mapType))
|
||||
{
|
||||
case 0:
|
||||
FadeScreen(1, 3);
|
||||
case FALSE:
|
||||
FadeScreen(FADE_TO_BLACK, 3);
|
||||
break;
|
||||
case 1:
|
||||
FadeScreen(3, 3);
|
||||
case TRUE:
|
||||
FadeScreen(FADE_TO_WHITE, 3);
|
||||
break;
|
||||
}
|
||||
}
|
||||
@@ -246,7 +247,7 @@ static void sub_807DE78(bool8 a0)
|
||||
if (MetatileBehavior_IsWarpDoor_2(behavior) == TRUE)
|
||||
{
|
||||
func = sub_807DFBC;
|
||||
switch (sub_80C9DCC(get_map_light_from_warp0(), GetCurrentMapType()))
|
||||
switch (MapTransitionIsExit(GetLastUsedWarpMapType(), GetCurrentMapType()))
|
||||
{
|
||||
case 0:
|
||||
palette_bg_faded_fill_black();
|
||||
@@ -521,7 +522,7 @@ static bool32 sub_807E40C(void)
|
||||
|
||||
bool32 sub_807E418(void)
|
||||
{
|
||||
if (IsWeatherNotFadingIn() == TRUE && sub_80F83B0())
|
||||
if (IsWeatherNotFadingIn() == TRUE && ForestMapPreviewScreenIsRunning())
|
||||
return TRUE;
|
||||
else
|
||||
return FALSE;
|
||||
@@ -654,7 +655,7 @@ static void sub_807E678(u8 taskId)
|
||||
{
|
||||
case 0:
|
||||
ClearLinkCallback_2();
|
||||
FadeScreen(1, 0);
|
||||
FadeScreen(FADE_TO_BLACK, 0);
|
||||
TryFadeOutOldMapMusic();
|
||||
PlaySE(SE_KAIDAN);
|
||||
data[0]++;
|
||||
|
||||
@@ -0,0 +1,479 @@
|
||||
#include "global.h"
|
||||
#include "gflib.h"
|
||||
#include "event_data.h"
|
||||
#include "event_scripts.h"
|
||||
#include "fldeff.h"
|
||||
#include "field_effect.h"
|
||||
#include "map_preview_screen.h"
|
||||
#include "overworld.h"
|
||||
#include "party_menu.h"
|
||||
#include "script.h"
|
||||
#include "constants/songs.h"
|
||||
#include "constants/map_types.h"
|
||||
|
||||
struct FlashStruct
|
||||
{
|
||||
u8 fromType;
|
||||
u8 toType;
|
||||
bool8 isEnter;
|
||||
bool8 isExit;
|
||||
void (*func1)(void);
|
||||
void (*func2)(u8 mapSecId);
|
||||
};
|
||||
|
||||
static void FieldCallback_Flash(void);
|
||||
static void FldEff_UseFlash(void);
|
||||
static bool8 TryDoMapTransition(void);
|
||||
static void FlashTransition_Exit(void);
|
||||
static void Task_FlashTransition_Exit_0(u8 taskId);
|
||||
static void Task_FlashTransition_Exit_1(u8 taskId);
|
||||
static void Task_FlashTransition_Exit_2(u8 taskId);
|
||||
static void Task_FlashTransition_Exit_3(u8 taskId);
|
||||
static void Task_FlashTransition_Exit_4(u8 taskId);
|
||||
static void FlashTransition_Enter(void);
|
||||
static void Task_FlashTransition_Enter_0(u8 taskId);
|
||||
static void Task_FlashTransition_Enter_1(u8 taskId);
|
||||
static void Task_FlashTransition_Enter_2(u8 taskId);
|
||||
static void Task_FlashTransition_Enter_3(u8 taskId);
|
||||
static void RunMapPreviewScreen(u8 mapsecId);
|
||||
static void Task_MapPreviewScreen_0(u8 taskId);
|
||||
|
||||
static const struct FlashStruct sTransitionTypes[] = {
|
||||
{
|
||||
.fromType = MAP_TYPE_TOWN,
|
||||
.toType = MAP_TYPE_UNDERGROUND,
|
||||
.isEnter = TRUE,
|
||||
.isExit = FALSE,
|
||||
.func1 = FlashTransition_Enter,
|
||||
.func2 = RunMapPreviewScreen
|
||||
}, {
|
||||
.fromType = MAP_TYPE_CITY,
|
||||
.toType = MAP_TYPE_UNDERGROUND,
|
||||
.isEnter = TRUE,
|
||||
.isExit = FALSE,
|
||||
.func1 = FlashTransition_Enter,
|
||||
.func2 = RunMapPreviewScreen
|
||||
}, {
|
||||
.fromType = MAP_TYPE_ROUTE,
|
||||
.toType = MAP_TYPE_UNDERGROUND,
|
||||
.isEnter = TRUE,
|
||||
.isExit = FALSE,
|
||||
.func1 = FlashTransition_Enter,
|
||||
.func2 = RunMapPreviewScreen
|
||||
}, {
|
||||
.fromType = MAP_TYPE_UNDERWATER,
|
||||
.toType = MAP_TYPE_UNDERGROUND,
|
||||
.isEnter = TRUE,
|
||||
.isExit = FALSE,
|
||||
.func1 = FlashTransition_Enter,
|
||||
.func2 = RunMapPreviewScreen
|
||||
}, {
|
||||
.fromType = MAP_TYPE_OCEAN_ROUTE,
|
||||
.toType = MAP_TYPE_UNDERGROUND,
|
||||
.isEnter = TRUE,
|
||||
.isExit = FALSE,
|
||||
.func1 = FlashTransition_Enter,
|
||||
.func2 = RunMapPreviewScreen
|
||||
}, {
|
||||
.fromType = MAP_TYPE_UNKNOWN,
|
||||
.toType = MAP_TYPE_UNDERGROUND,
|
||||
.isEnter = TRUE,
|
||||
.isExit = FALSE,
|
||||
.func1 = FlashTransition_Enter,
|
||||
.func2 = RunMapPreviewScreen
|
||||
}, {
|
||||
.fromType = MAP_TYPE_INDOOR,
|
||||
.toType = MAP_TYPE_UNDERGROUND,
|
||||
.isEnter = TRUE,
|
||||
.isExit = FALSE,
|
||||
.func1 = FlashTransition_Enter,
|
||||
.func2 = RunMapPreviewScreen
|
||||
}, {
|
||||
.fromType = MAP_TYPE_SECRET_BASE,
|
||||
.toType = MAP_TYPE_UNDERGROUND,
|
||||
.isEnter = TRUE,
|
||||
.isExit = FALSE,
|
||||
.func1 = FlashTransition_Enter,
|
||||
.func2 = RunMapPreviewScreen
|
||||
}, {
|
||||
.fromType = MAP_TYPE_UNDERGROUND,
|
||||
.toType = MAP_TYPE_TOWN,
|
||||
.isEnter = FALSE,
|
||||
.isExit = TRUE,
|
||||
.func1 = FlashTransition_Exit,
|
||||
.func2 = RunMapPreviewScreen
|
||||
}, {
|
||||
.fromType = MAP_TYPE_UNDERGROUND,
|
||||
.toType = MAP_TYPE_CITY,
|
||||
.isEnter = FALSE,
|
||||
.isExit = TRUE,
|
||||
.func1 = FlashTransition_Exit,
|
||||
.func2 = RunMapPreviewScreen
|
||||
}, {
|
||||
.fromType = MAP_TYPE_UNDERGROUND,
|
||||
.toType = MAP_TYPE_ROUTE,
|
||||
.isEnter = FALSE,
|
||||
.isExit = TRUE,
|
||||
.func1 = FlashTransition_Exit,
|
||||
.func2 = RunMapPreviewScreen
|
||||
}, {
|
||||
.fromType = MAP_TYPE_UNDERGROUND,
|
||||
.toType = MAP_TYPE_UNDERWATER,
|
||||
.isEnter = FALSE,
|
||||
.isExit = TRUE,
|
||||
.func1 = FlashTransition_Exit,
|
||||
.func2 = RunMapPreviewScreen
|
||||
}, {
|
||||
.fromType = MAP_TYPE_UNDERGROUND,
|
||||
.toType = MAP_TYPE_OCEAN_ROUTE,
|
||||
.isEnter = FALSE,
|
||||
.isExit = TRUE,
|
||||
.func1 = FlashTransition_Exit,
|
||||
.func2 = RunMapPreviewScreen
|
||||
}, {
|
||||
.fromType = MAP_TYPE_UNDERGROUND,
|
||||
.toType = MAP_TYPE_UNKNOWN,
|
||||
.isEnter = FALSE,
|
||||
.isExit = TRUE,
|
||||
.func1 = FlashTransition_Exit,
|
||||
.func2 = RunMapPreviewScreen
|
||||
}, {
|
||||
.fromType = MAP_TYPE_UNDERGROUND,
|
||||
.toType = MAP_TYPE_INDOOR,
|
||||
.isEnter = FALSE,
|
||||
.isExit = TRUE,
|
||||
.func1 = FlashTransition_Exit,
|
||||
.func2 = RunMapPreviewScreen
|
||||
}, {
|
||||
.fromType = MAP_TYPE_UNDERGROUND,
|
||||
.toType = MAP_TYPE_SECRET_BASE,
|
||||
.isEnter = FALSE,
|
||||
.isExit = TRUE,
|
||||
.func1 = FlashTransition_Exit,
|
||||
.func2 = RunMapPreviewScreen
|
||||
}, {0}
|
||||
};
|
||||
|
||||
static const u16 sCaveTransitionPalette_White[] = INCBIN_U16("graphics/field_effects/flash_white.gbapal");
|
||||
static const u16 sCaveTransitionPalette_Black[] = INCBIN_U16("graphics/field_effects/flash_black.gbapal");
|
||||
static const u16 sCaveTransitionPalette_Gradient[] = INCBIN_U16("graphics/field_effects/flash_gradient.gbapal");
|
||||
static const u32 sCaveTransitionTilemap[] = INCBIN_U32("graphics/field_effects/flash_effect_map.bin.lz");
|
||||
static const u32 sCaveTransitionTiles[] = INCBIN_U32("graphics/field_effects/flash_effect_tiles.4bpp.lz");
|
||||
|
||||
bool8 SetUpFieldMove_Flash(void)
|
||||
{
|
||||
if (gMapHeader.cave != TRUE)
|
||||
return FALSE;
|
||||
|
||||
if (FlagGet(FLAG_SYS_FLASH_ACTIVE))
|
||||
return FALSE;
|
||||
|
||||
gFieldCallback2 = FieldCallback_PrepareFadeInFromMenu;
|
||||
gPostMenuFieldCallback = FieldCallback_Flash;
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
static void FieldCallback_Flash(void)
|
||||
{
|
||||
u8 taskId = CreateFieldEffectShowMon();
|
||||
gFieldEffectArguments[0] = GetCursorSelectionMonId();
|
||||
gTasks[taskId].data[8] = ((uintptr_t)FldEff_UseFlash) >> 16;
|
||||
gTasks[taskId].data[9] = ((uintptr_t)FldEff_UseFlash);
|
||||
}
|
||||
|
||||
static void FldEff_UseFlash(void)
|
||||
{
|
||||
PlaySE(SE_W115);
|
||||
FlagSet(FLAG_SYS_FLASH_ACTIVE);
|
||||
ScriptContext1_SetupScript(EventScript_FldEffFlash);
|
||||
}
|
||||
|
||||
// Map transition animatics
|
||||
|
||||
static void CB2_ChangeMapMain(void)
|
||||
{
|
||||
RunTasks();
|
||||
AnimateSprites();
|
||||
BuildOamBuffer();
|
||||
UpdatePaletteFade();
|
||||
}
|
||||
|
||||
static void VBC_ChangeMapVBlank(void)
|
||||
{
|
||||
LoadOam();
|
||||
ProcessSpriteCopyRequests();
|
||||
TransferPlttBuffer();
|
||||
}
|
||||
|
||||
void CB2_DoChangeMap(void)
|
||||
{
|
||||
SetVBlankCallback(NULL);
|
||||
|
||||
SetGpuReg(REG_OFFSET_DISPCNT, 0);
|
||||
SetGpuReg(REG_OFFSET_BG2CNT, 0);
|
||||
SetGpuReg(REG_OFFSET_BG1CNT, 0);
|
||||
SetGpuReg(REG_OFFSET_BG0CNT, 0);
|
||||
SetGpuReg(REG_OFFSET_BG2HOFS, 0);
|
||||
SetGpuReg(REG_OFFSET_BG2VOFS, 0);
|
||||
SetGpuReg(REG_OFFSET_BG1HOFS, 0);
|
||||
SetGpuReg(REG_OFFSET_BG1VOFS, 0);
|
||||
SetGpuReg(REG_OFFSET_BG0HOFS, 0);
|
||||
SetGpuReg(REG_OFFSET_BG0VOFS, 0);
|
||||
|
||||
DmaFill16(3, 0, (void *)VRAM, VRAM_SIZE);
|
||||
DmaFill32(3, 0, (void *)OAM, OAM_SIZE);
|
||||
DmaFill16(3, 0, (void *)(PLTT + 2), PLTT_SIZE - 2);
|
||||
ResetPaletteFade();
|
||||
ResetTasks();
|
||||
ResetSpriteData();
|
||||
EnableInterrupts(INTR_FLAG_VBLANK);
|
||||
SetVBlankCallback(VBC_ChangeMapVBlank);
|
||||
SetMainCallback2(CB2_ChangeMapMain);
|
||||
if (!TryDoMapTransition())
|
||||
SetMainCallback2(gMain.savedCallback);
|
||||
}
|
||||
|
||||
static bool8 TryDoMapTransition(void)
|
||||
{
|
||||
u8 fromType = GetLastUsedWarpMapType();
|
||||
u8 toType = GetCurrentMapType();
|
||||
u8 i = 0;
|
||||
if (GetLastUsedWarpMapSectionId() != gMapHeader.regionMapSectionId && MapHasPreviewScreen_HandleQLState2(gMapHeader.regionMapSectionId, MPS_TYPE_CAVE) == TRUE)
|
||||
{
|
||||
RunMapPreviewScreen(gMapHeader.regionMapSectionId);
|
||||
return TRUE;
|
||||
}
|
||||
for (; sTransitionTypes[i].fromType != 0; i++)
|
||||
{
|
||||
if (sTransitionTypes[i].fromType == fromType && sTransitionTypes[i].toType == toType)
|
||||
{
|
||||
sTransitionTypes[i].func1();
|
||||
return TRUE;
|
||||
}
|
||||
}
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
bool8 MapTransitionIsEnter(u8 _fromType, u8 _toType)
|
||||
{
|
||||
u8 fromType = _fromType;
|
||||
u8 toType = _toType;
|
||||
u8 i = 0;
|
||||
for (; sTransitionTypes[i].fromType != 0; i++)
|
||||
{
|
||||
if (sTransitionTypes[i].fromType == fromType && sTransitionTypes[i].toType == toType)
|
||||
{
|
||||
return sTransitionTypes[i].isEnter;
|
||||
}
|
||||
}
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
bool8 MapTransitionIsExit(u8 _fromType, u8 _toType)
|
||||
{
|
||||
u8 fromType = _fromType;
|
||||
u8 toType = _toType;
|
||||
u8 i = 0;
|
||||
for (; sTransitionTypes[i].fromType != 0; i++)
|
||||
{
|
||||
if (sTransitionTypes[i].fromType == fromType && sTransitionTypes[i].toType == toType)
|
||||
{
|
||||
return sTransitionTypes[i].isExit;
|
||||
}
|
||||
}
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
static void FlashTransition_Exit(void)
|
||||
{
|
||||
CreateTask(Task_FlashTransition_Exit_0, 0);
|
||||
}
|
||||
|
||||
static void Task_FlashTransition_Exit_0(u8 taskId)
|
||||
{
|
||||
gTasks[taskId].func = Task_FlashTransition_Exit_1;
|
||||
}
|
||||
|
||||
static void Task_FlashTransition_Exit_1(u8 taskId)
|
||||
{
|
||||
SetGpuReg(REG_OFFSET_DISPCNT, 0);
|
||||
LZ77UnCompVram(sCaveTransitionTiles, (void *)BG_CHAR_ADDR(3));
|
||||
LZ77UnCompVram(sCaveTransitionTilemap, (void *)BG_SCREEN_ADDR(31));
|
||||
LoadPalette(sCaveTransitionPalette_White, 0xE0, 0x20);
|
||||
LoadPalette(sCaveTransitionPalette_Gradient + 8, 0xE0, 0x10);
|
||||
SetGpuReg(REG_OFFSET_BLDCNT, BLDCNT_TGT1_BG0 | BLDCNT_EFFECT_BLEND | BLDCNT_TGT2_BG1 | BLDCNT_TGT2_BG2 | BLDCNT_TGT2_BG3 | BLDCNT_TGT2_OBJ | BLDCNT_TGT2_BD);
|
||||
SetGpuReg(REG_OFFSET_BLDALPHA, 0);
|
||||
SetGpuReg(REG_OFFSET_BLDY, 0);
|
||||
SetGpuReg(REG_OFFSET_BG0CNT, BGCNT_PRIORITY(0) | BGCNT_CHARBASE(3) | BGCNT_SCREENBASE(31));
|
||||
SetGpuReg(REG_OFFSET_DISPCNT, DISPCNT_MODE_0 | DISPCNT_OBJ_1D_MAP | DISPCNT_BG0_ON | DISPCNT_OBJ_ON);
|
||||
gTasks[taskId].func = Task_FlashTransition_Exit_2;
|
||||
gTasks[taskId].data[0] = 16;
|
||||
gTasks[taskId].data[1] = 0;
|
||||
}
|
||||
|
||||
static void Task_FlashTransition_Exit_2(u8 taskId)
|
||||
{
|
||||
u16 r4 = gTasks[taskId].data[1];
|
||||
SetGpuReg(REG_OFFSET_BLDALPHA, (16 << 8) + r4);
|
||||
if (r4 <= 16)
|
||||
{
|
||||
gTasks[taskId].data[1]++;
|
||||
}
|
||||
else
|
||||
{
|
||||
gTasks[taskId].data[2] = 0;
|
||||
gTasks[taskId].func = Task_FlashTransition_Exit_3;
|
||||
}
|
||||
}
|
||||
|
||||
static void Task_FlashTransition_Exit_3(u8 taskId)
|
||||
{
|
||||
u16 r4;
|
||||
SetGpuReg(REG_OFFSET_BLDALPHA, (16 << 8) + 16);
|
||||
r4 = gTasks[taskId].data[2];
|
||||
if (r4 < 8)
|
||||
{
|
||||
gTasks[taskId].data[2]++;
|
||||
LoadPalette(sCaveTransitionPalette_Gradient + 8 + r4, 0xE0, 0x10 - 2 * r4);
|
||||
}
|
||||
else
|
||||
{
|
||||
LoadPalette(sCaveTransitionPalette_White, 0x00, 0x20);
|
||||
gTasks[taskId].func = Task_FlashTransition_Exit_4;
|
||||
gTasks[taskId].data[2] = 8;
|
||||
}
|
||||
}
|
||||
|
||||
static void Task_FlashTransition_Exit_4(u8 taskId)
|
||||
{
|
||||
if (gTasks[taskId].data[2] != 0)
|
||||
gTasks[taskId].data[2]--;
|
||||
else
|
||||
SetMainCallback2(gMain.savedCallback);
|
||||
}
|
||||
|
||||
static void FlashTransition_Enter(void)
|
||||
{
|
||||
CreateTask(Task_FlashTransition_Enter_0, 0);
|
||||
}
|
||||
|
||||
static void Task_FlashTransition_Enter_0(u8 taskId)
|
||||
{
|
||||
gTasks[taskId].func = Task_FlashTransition_Enter_1;
|
||||
}
|
||||
|
||||
static void Task_FlashTransition_Enter_1(u8 taskId)
|
||||
{
|
||||
SetGpuReg(REG_OFFSET_DISPCNT, 0);
|
||||
LZ77UnCompVram(sCaveTransitionTiles, (void *)BG_CHAR_ADDR(3));
|
||||
LZ77UnCompVram(sCaveTransitionTilemap, (void *)BG_SCREEN_ADDR(31));
|
||||
SetGpuReg(REG_OFFSET_BLDCNT, 0);
|
||||
SetGpuReg(REG_OFFSET_BLDALPHA, 0);
|
||||
SetGpuReg(REG_OFFSET_BLDY, 0);
|
||||
SetGpuReg(REG_OFFSET_BG0CNT, BGCNT_PRIORITY(0) | BGCNT_CHARBASE(3) | BGCNT_SCREENBASE(31));
|
||||
SetGpuReg(REG_OFFSET_DISPCNT, DISPCNT_MODE_0 | DISPCNT_OBJ_1D_MAP | DISPCNT_BG0_ON | DISPCNT_OBJ_ON);
|
||||
LoadPalette(sCaveTransitionPalette_White, 0xE0, 0x20);
|
||||
LoadPalette(sCaveTransitionPalette_Black, 0, 0x20);
|
||||
gTasks[taskId].func = Task_FlashTransition_Enter_2;
|
||||
gTasks[taskId].data[0] = 16;
|
||||
gTasks[taskId].data[1] = 0;
|
||||
gTasks[taskId].data[2] = 0;
|
||||
}
|
||||
|
||||
static void Task_FlashTransition_Enter_2(u8 taskId)
|
||||
{
|
||||
u16 r4;
|
||||
r4 = gTasks[taskId].data[2];
|
||||
if (r4 < 16)
|
||||
{
|
||||
gTasks[taskId].data[2]++;
|
||||
gTasks[taskId].data[2]++;
|
||||
LoadPalette(&sCaveTransitionPalette_Gradient[16 - (r4 + 1)], 0xE0, 2 * (r4 + 1));
|
||||
}
|
||||
else
|
||||
{
|
||||
SetGpuReg(REG_OFFSET_BLDALPHA, (16 << 8) + 16);
|
||||
SetGpuReg(REG_OFFSET_BLDCNT, BLDCNT_TGT1_BG0 | BLDCNT_EFFECT_BLEND | BLDCNT_TGT2_BG1 | BLDCNT_TGT2_BG2 | BLDCNT_TGT2_BG3 | BLDCNT_TGT2_OBJ | BLDCNT_TGT2_BD);
|
||||
gTasks[taskId].func = Task_FlashTransition_Enter_3;
|
||||
}
|
||||
}
|
||||
|
||||
static void Task_FlashTransition_Enter_3(u8 taskId)
|
||||
{
|
||||
u16 r4 = 16 - gTasks[taskId].data[1];
|
||||
SetGpuReg(REG_OFFSET_BLDALPHA, (16 << 8) + r4);
|
||||
if (r4 != 0)
|
||||
{
|
||||
gTasks[taskId].data[1]++;
|
||||
}
|
||||
else
|
||||
{
|
||||
LoadPalette(sCaveTransitionPalette_Black, 0x00, 0x20);
|
||||
SetMainCallback2(gMain.savedCallback);
|
||||
}
|
||||
}
|
||||
|
||||
static void RunMapPreviewScreen(u8 mapSecId)
|
||||
{
|
||||
u8 taskId = CreateTask(Task_MapPreviewScreen_0, 0);
|
||||
gTasks[taskId].data[3] = mapSecId;
|
||||
}
|
||||
|
||||
static void Task_MapPreviewScreen_0(u8 taskId)
|
||||
{
|
||||
s16 *data = gTasks[taskId].data;
|
||||
switch (data[0])
|
||||
{
|
||||
case 0:
|
||||
SetWordTaskArg(taskId, 5, (uintptr_t)gMain.vblankCallback);
|
||||
SetVBlankCallback(NULL);
|
||||
MapPreview_InitBgs();
|
||||
MapPreview_LoadGfx(data[3]);
|
||||
BlendPalettes(0xFFFFFFFF, 0x10, RGB_BLACK);
|
||||
data[0]++;
|
||||
break;
|
||||
case 1:
|
||||
if (!MapPreview_IsGfxLoadFinished())
|
||||
{
|
||||
data[4] = MapPreview_CreateMapNameWindow(data[3]);
|
||||
CopyWindowToVram(data[4], 3);
|
||||
data[0]++;
|
||||
}
|
||||
break;
|
||||
case 2:
|
||||
if (!IsDma3ManagerBusyWithBgCopy())
|
||||
{
|
||||
BeginNormalPaletteFade(0xFFFFFFFF, -1, 16, 0, RGB_BLACK);
|
||||
SetVBlankCallback((IntrCallback)GetWordTaskArg(taskId, 5));
|
||||
data[0]++;
|
||||
}
|
||||
break;
|
||||
case 3:
|
||||
if (!UpdatePaletteFade())
|
||||
{
|
||||
data[2] = MapPreview_GetDuration(data[3]);
|
||||
data[0]++;
|
||||
}
|
||||
break;
|
||||
case 4:
|
||||
data[1]++;
|
||||
if (data[1] > data[2] || JOY_HELD(B_BUTTON))
|
||||
{
|
||||
BeginNormalPaletteFade(0xFFFFFFFF, -2, 0, 16, RGB_WHITE);
|
||||
data[0]++;
|
||||
}
|
||||
break;
|
||||
case 5:
|
||||
if (!UpdatePaletteFade())
|
||||
{
|
||||
int i;
|
||||
for (i = 0; i < 16; i++)
|
||||
{
|
||||
data[i] = 0;
|
||||
}
|
||||
MapPreview_Unload(data[4]);
|
||||
gTasks[taskId].func = Task_FlashTransition_Enter_1;
|
||||
}
|
||||
break;
|
||||
}
|
||||
}
|
||||
+6
-5
@@ -41,6 +41,7 @@
|
||||
#include "constants/maps.h"
|
||||
#include "constants/moves.h"
|
||||
#include "constants/songs.h"
|
||||
#include "constants/field_weather.h"
|
||||
|
||||
static EWRAM_DATA void (*sItemUseOnFieldCB)(u8 taskId) = NULL;
|
||||
|
||||
@@ -456,7 +457,7 @@ void FieldUseFunc_TmCase(u8 taskId)
|
||||
else
|
||||
{
|
||||
StopPokemonLeagueLightingEffectTask();
|
||||
FadeScreen(1, 0);
|
||||
FadeScreen(FADE_TO_BLACK, 0);
|
||||
gTasks[taskId].func = Task_InitTMCaseFromField;
|
||||
}
|
||||
}
|
||||
@@ -487,7 +488,7 @@ void FieldUseFunc_BerryPouch(u8 taskId)
|
||||
else
|
||||
{
|
||||
StopPokemonLeagueLightingEffectTask();
|
||||
FadeScreen(1, 0);
|
||||
FadeScreen(FADE_TO_BLACK, 0);
|
||||
gTasks[taskId].func = Task_InitBerryPouchFromField;
|
||||
}
|
||||
}
|
||||
@@ -530,7 +531,7 @@ void FieldUseFunc_TeachyTv(u8 taskId)
|
||||
else
|
||||
{
|
||||
StopPokemonLeagueLightingEffectTask();
|
||||
FadeScreen(1, 0);
|
||||
FadeScreen(FADE_TO_BLACK, 0);
|
||||
gTasks[taskId].func = Task_InitTeachyTvFromField;
|
||||
}
|
||||
}
|
||||
@@ -660,7 +661,7 @@ void FieldUseFunc_TownMap(u8 taskId)
|
||||
else
|
||||
{
|
||||
StopPokemonLeagueLightingEffectTask();
|
||||
FadeScreen(1, 0);
|
||||
FadeScreen(FADE_TO_BLACK, 0);
|
||||
gTasks[taskId].func = sub_80A1CC0;
|
||||
}
|
||||
}
|
||||
@@ -692,7 +693,7 @@ void FieldUseFunc_FameChecker(u8 taskId)
|
||||
else
|
||||
{
|
||||
StopPokemonLeagueLightingEffectTask();
|
||||
FadeScreen(1, 0);
|
||||
FadeScreen(FADE_TO_BLACK, 0);
|
||||
gTasks[taskId].func = sub_80A1D68;
|
||||
}
|
||||
}
|
||||
|
||||
+70
-70
@@ -16,10 +16,10 @@
|
||||
#include "map_preview_screen.h"
|
||||
#include "constants/region_map.h"
|
||||
|
||||
static EWRAM_DATA bool8 gUnknown_203ABEC = FALSE;
|
||||
static EWRAM_DATA bool8 gUnknown_203ABED = FALSE;
|
||||
static EWRAM_DATA bool8 sHasVisitedMapBefore = FALSE;
|
||||
static EWRAM_DATA bool8 sAllocedBg0TilemapBuffer = FALSE;
|
||||
|
||||
static void sub_80F83D0(u8 taskId);
|
||||
static void Task_RunMapPreviewScreenForest(u8 taskId);
|
||||
|
||||
static const u8 gViridianForestMapPreviewPalette[] = INCBIN_U8("data/map_preview/viridian_forest_pal.gbapal");
|
||||
static const u8 gViridianForestMapPreviewTiles[] = INCBIN_U8("data/map_preview/viridian_forest_tiles.4bpp.lz");
|
||||
@@ -88,7 +88,7 @@ static const u8 gAlteringCaveMapPreviewTilemap[] = INCBIN_U8("data/map_preview/a
|
||||
static const struct MapPreviewScreen sMapPreviewScreenData[MPS_COUNT] = {
|
||||
[MPS_VIRIDIAN_FOREST] = {
|
||||
.mapsec = MAPSEC_VIRIDIAN_FOREST,
|
||||
.forceFirstTime = TRUE,
|
||||
.type = MPS_TYPE_FOREST,
|
||||
.flagId = FLAG_WORLD_MAP_VIRIDIAN_FOREST,
|
||||
.tilesptr = gViridianForestMapPreviewTiles,
|
||||
.tilemapptr = gViridianForestMapPreviewTilemap,
|
||||
@@ -96,7 +96,7 @@ static const struct MapPreviewScreen sMapPreviewScreenData[MPS_COUNT] = {
|
||||
},
|
||||
[MPS_MT_MOON] = {
|
||||
.mapsec = MAPSEC_MT_MOON,
|
||||
.forceFirstTime = FALSE,
|
||||
.type = MPS_TYPE_CAVE,
|
||||
.flagId = FLAG_WORLD_MAP_MT_MOON_1F,
|
||||
.tilesptr = gMtMoonMapPreviewTiles,
|
||||
.tilemapptr = gMtMoonMapPreviewTilemap,
|
||||
@@ -104,7 +104,7 @@ static const struct MapPreviewScreen sMapPreviewScreenData[MPS_COUNT] = {
|
||||
},
|
||||
[MPS_DIGLETTS_CAVE] = {
|
||||
.mapsec = MAPSEC_DIGLETTS_CAVE,
|
||||
.forceFirstTime = FALSE,
|
||||
.type = MPS_TYPE_CAVE,
|
||||
.flagId = FLAG_WORLD_MAP_DIGLETTS_CAVE_B1F,
|
||||
.tilesptr = gDiglettsCaveMapPreviewTiles,
|
||||
.tilemapptr = gDiglettsCaveMapPreviewTilemap,
|
||||
@@ -112,7 +112,7 @@ static const struct MapPreviewScreen sMapPreviewScreenData[MPS_COUNT] = {
|
||||
},
|
||||
[MPS_ROCK_TUNNEL] = {
|
||||
.mapsec = MAPSEC_ROCK_TUNNEL,
|
||||
.forceFirstTime = FALSE,
|
||||
.type = MPS_TYPE_CAVE,
|
||||
.flagId = FLAG_WORLD_MAP_ROCK_TUNNEL_1F,
|
||||
.tilesptr = gRockTunnelMapPreviewTiles,
|
||||
.tilemapptr = gRockTunnelMapPreviewTilemap,
|
||||
@@ -120,7 +120,7 @@ static const struct MapPreviewScreen sMapPreviewScreenData[MPS_COUNT] = {
|
||||
},
|
||||
[MPS_POKEMON_TOWER] = {
|
||||
.mapsec = MAPSEC_POKEMON_TOWER,
|
||||
.forceFirstTime = FALSE,
|
||||
.type = MPS_TYPE_CAVE,
|
||||
.flagId = FLAG_WORLD_MAP_POKEMON_TOWER_1F,
|
||||
.tilesptr = gPokemonTowerMapPreviewTiles,
|
||||
.tilemapptr = gPokemonTowerMapPreviewTilemap,
|
||||
@@ -128,7 +128,7 @@ static const struct MapPreviewScreen sMapPreviewScreenData[MPS_COUNT] = {
|
||||
},
|
||||
[MPS_SAFARI_ZONE] = {
|
||||
.mapsec = MAPSEC_KANTO_SAFARI_ZONE,
|
||||
.forceFirstTime = TRUE,
|
||||
.type = MPS_TYPE_FOREST,
|
||||
.flagId = FLAG_WORLD_MAP_SAFARI_ZONE_CENTER,
|
||||
.tilesptr = gKantoSafariZoneMapPreviewTiles,
|
||||
.tilemapptr = gKantoSafariZoneMapPreviewTilemap,
|
||||
@@ -136,7 +136,7 @@ static const struct MapPreviewScreen sMapPreviewScreenData[MPS_COUNT] = {
|
||||
},
|
||||
[MPS_SEAFOAM_ISLANDS] = {
|
||||
.mapsec = MAPSEC_SEAFOAM_ISLANDS,
|
||||
.forceFirstTime = FALSE,
|
||||
.type = MPS_TYPE_CAVE,
|
||||
.flagId = FLAG_WORLD_MAP_SEAFOAM_ISLANDS_1F,
|
||||
.tilesptr = gSeafoamIslandsMapPreviewTiles,
|
||||
.tilemapptr = gSeafoamIslandsMapPreviewTilemap,
|
||||
@@ -144,7 +144,7 @@ static const struct MapPreviewScreen sMapPreviewScreenData[MPS_COUNT] = {
|
||||
},
|
||||
[MPS_POKEMON_MANSION] = {
|
||||
.mapsec = MAPSEC_POKEMON_MANSION,
|
||||
.forceFirstTime = TRUE,
|
||||
.type = MPS_TYPE_FOREST,
|
||||
.flagId = FLAG_WORLD_MAP_POKEMON_MANSION_1F,
|
||||
.tilesptr = gPokemonMansionMapPreviewTiles,
|
||||
.tilemapptr = gPokemonMansionMapPreviewTilemap,
|
||||
@@ -152,7 +152,7 @@ static const struct MapPreviewScreen sMapPreviewScreenData[MPS_COUNT] = {
|
||||
},
|
||||
[MPS_ROCKET_HIDEOUT] = {
|
||||
.mapsec = MAPSEC_ROCKET_HIDEOUT,
|
||||
.forceFirstTime = TRUE,
|
||||
.type = MPS_TYPE_FOREST,
|
||||
.flagId = FLAG_WORLD_MAP_ROCKET_HIDEOUT_B1F,
|
||||
.tilesptr = gRocketHideoutMapPreviewTiles,
|
||||
.tilemapptr = gRocketHideoutMapPreviewTilemap,
|
||||
@@ -160,7 +160,7 @@ static const struct MapPreviewScreen sMapPreviewScreenData[MPS_COUNT] = {
|
||||
},
|
||||
[MPS_SILPH_CO] = {
|
||||
.mapsec = MAPSEC_SILPH_CO,
|
||||
.forceFirstTime = FALSE,
|
||||
.type = MPS_TYPE_CAVE,
|
||||
.flagId = FLAG_WORLD_MAP_SILPH_CO_1F,
|
||||
.tilesptr = gSilphCoMapPreviewTiles,
|
||||
.tilemapptr = gSilphCoMapPreviewTilemap,
|
||||
@@ -168,7 +168,7 @@ static const struct MapPreviewScreen sMapPreviewScreenData[MPS_COUNT] = {
|
||||
},
|
||||
[MPS_VICTORY_ROAD] = {
|
||||
.mapsec = MAPSEC_KANTO_VICTORY_ROAD,
|
||||
.forceFirstTime = FALSE,
|
||||
.type = MPS_TYPE_CAVE,
|
||||
.flagId = FLAG_WORLD_MAP_VICTORY_ROAD_1F,
|
||||
.tilesptr = gKantoVictoryRoadMapPreviewTiles,
|
||||
.tilemapptr = gKantoVictoryRoadMapPreviewTilemap,
|
||||
@@ -176,7 +176,7 @@ static const struct MapPreviewScreen sMapPreviewScreenData[MPS_COUNT] = {
|
||||
},
|
||||
[MPS_CERULEAN_CAVE] = {
|
||||
.mapsec = MAPSEC_CERULEAN_CAVE,
|
||||
.forceFirstTime = FALSE,
|
||||
.type = MPS_TYPE_CAVE,
|
||||
.flagId = FLAG_WORLD_MAP_CERULEAN_CAVE_1F,
|
||||
.tilesptr = gCeruleanCaveMapPreviewTiles,
|
||||
.tilemapptr = gCeruleanCaveMapPreviewTilemap,
|
||||
@@ -184,7 +184,7 @@ static const struct MapPreviewScreen sMapPreviewScreenData[MPS_COUNT] = {
|
||||
},
|
||||
[MPS_POWER_PLANT] = {
|
||||
.mapsec = MAPSEC_POWER_PLANT,
|
||||
.forceFirstTime = TRUE,
|
||||
.type = MPS_TYPE_FOREST,
|
||||
.flagId = FLAG_WORLD_MAP_POWER_PLANT,
|
||||
.tilesptr = gPowerPlantMapPreviewTiles,
|
||||
.tilemapptr = gPowerPlantMapPreviewTilemap,
|
||||
@@ -192,7 +192,7 @@ static const struct MapPreviewScreen sMapPreviewScreenData[MPS_COUNT] = {
|
||||
},
|
||||
[MPS_MT_EMBER] = {
|
||||
.mapsec = MAPSEC_MT_EMBER,
|
||||
.forceFirstTime = FALSE,
|
||||
.type = MPS_TYPE_CAVE,
|
||||
.flagId = FLAG_WORLD_MAP_MT_EMBER_EXTERIOR,
|
||||
.tilesptr = gMtEmberMapPreviewTiles,
|
||||
.tilemapptr = gMtEmberMapPreviewTilemap,
|
||||
@@ -200,7 +200,7 @@ static const struct MapPreviewScreen sMapPreviewScreenData[MPS_COUNT] = {
|
||||
},
|
||||
[MPS_ROCKET_WAREHOUSE] = {
|
||||
.mapsec = MAPSEC_ROCKET_WAREHOUSE,
|
||||
.forceFirstTime = TRUE,
|
||||
.type = MPS_TYPE_FOREST,
|
||||
.flagId = FLAG_WORLD_MAP_THREE_ISLAND_BERRY_FOREST,
|
||||
.tilesptr = gRocketWarehouseMapPreviewTiles,
|
||||
.tilemapptr = gRocketWarehouseMapPreviewTilemap,
|
||||
@@ -208,7 +208,7 @@ static const struct MapPreviewScreen sMapPreviewScreenData[MPS_COUNT] = {
|
||||
},
|
||||
[MPS_MONEAN_CHAMBER] = {
|
||||
.mapsec = MAPSEC_MONEAN_CHAMBER,
|
||||
.forceFirstTime = FALSE,
|
||||
.type = MPS_TYPE_CAVE,
|
||||
.flagId = FLAG_WORLD_MAP_SEVEN_ISLAND_TANOBY_RUINS_MONEAN_CHAMBER,
|
||||
.tilesptr = gMoneanChamberMapPreviewTiles,
|
||||
.tilemapptr = gMoneanChamberMapPreviewTilemap,
|
||||
@@ -216,7 +216,7 @@ static const struct MapPreviewScreen sMapPreviewScreenData[MPS_COUNT] = {
|
||||
},
|
||||
[MPS_DOTTED_HOLE] = {
|
||||
.mapsec = MAPSEC_DOTTED_HOLE,
|
||||
.forceFirstTime = FALSE,
|
||||
.type = MPS_TYPE_CAVE,
|
||||
.flagId = FLAG_WORLD_MAP_SIX_ISLAND_DOTTED_HOLE_1F,
|
||||
.tilesptr = gDottedHoleMapPreviewTiles,
|
||||
.tilemapptr = gDottedHoleMapPreviewTilemap,
|
||||
@@ -224,7 +224,7 @@ static const struct MapPreviewScreen sMapPreviewScreenData[MPS_COUNT] = {
|
||||
},
|
||||
[MPS_BERRY_FOREST] = {
|
||||
.mapsec = MAPSEC_BERRY_FOREST,
|
||||
.forceFirstTime = TRUE,
|
||||
.type = MPS_TYPE_FOREST,
|
||||
.flagId = FLAG_WORLD_MAP_THREE_ISLAND_BERRY_FOREST,
|
||||
.tilesptr = gBerryForestMapPreviewTiles,
|
||||
.tilemapptr = gBerryForestMapPreviewTilemap,
|
||||
@@ -232,7 +232,7 @@ static const struct MapPreviewScreen sMapPreviewScreenData[MPS_COUNT] = {
|
||||
},
|
||||
[MPS_ICEFALL_CAVE] = {
|
||||
.mapsec = MAPSEC_ICEFALL_CAVE,
|
||||
.forceFirstTime = FALSE,
|
||||
.type = MPS_TYPE_CAVE,
|
||||
.flagId = FLAG_WORLD_MAP_FOUR_ISLAND_ICEFALL_CAVE_ENTRANCE,
|
||||
.tilesptr = gIcefallCaveMapPreviewTiles,
|
||||
.tilemapptr = gIcefallCaveMapPreviewTilemap,
|
||||
@@ -240,7 +240,7 @@ static const struct MapPreviewScreen sMapPreviewScreenData[MPS_COUNT] = {
|
||||
},
|
||||
[MPS_LOST_CAVE] = {
|
||||
.mapsec = MAPSEC_LOST_CAVE,
|
||||
.forceFirstTime = FALSE,
|
||||
.type = MPS_TYPE_CAVE,
|
||||
.flagId = FLAG_WORLD_MAP_FIVE_ISLAND_LOST_CAVE_ENTRANCE,
|
||||
.tilesptr = gLostCaveMapPreviewTiles,
|
||||
.tilemapptr = gLostCaveMapPreviewTilemap,
|
||||
@@ -248,7 +248,7 @@ static const struct MapPreviewScreen sMapPreviewScreenData[MPS_COUNT] = {
|
||||
},
|
||||
[MPS_ALTERING_CAVE] = {
|
||||
.mapsec = MAPSEC_ALTERING_CAVE,
|
||||
.forceFirstTime = FALSE,
|
||||
.type = MPS_TYPE_CAVE,
|
||||
.flagId = FLAG_WORLD_MAP_SIX_ISLAND_ALTERING_CAVE,
|
||||
.tilesptr = gAlteringCaveMapPreviewTiles,
|
||||
.tilemapptr = gAlteringCaveMapPreviewTilemap,
|
||||
@@ -256,7 +256,7 @@ static const struct MapPreviewScreen sMapPreviewScreenData[MPS_COUNT] = {
|
||||
},
|
||||
[MPS_PATTERN_BUSH] = {
|
||||
.mapsec = MAPSEC_PATTERN_BUSH,
|
||||
.forceFirstTime = TRUE,
|
||||
.type = MPS_TYPE_FOREST,
|
||||
.flagId = FLAG_WORLD_MAP_SIX_ISLAND_PATTERN_BUSH,
|
||||
.tilesptr = gViridianForestMapPreviewTiles,
|
||||
.tilemapptr = gViridianForestMapPreviewTilemap,
|
||||
@@ -264,7 +264,7 @@ static const struct MapPreviewScreen sMapPreviewScreenData[MPS_COUNT] = {
|
||||
},
|
||||
[MPS_LIPTOO_CHAMBER] = {
|
||||
.mapsec = MAPSEC_LIPTOO_CHAMBER,
|
||||
.forceFirstTime = FALSE,
|
||||
.type = MPS_TYPE_CAVE,
|
||||
.flagId = FLAG_WORLD_MAP_SEVEN_ISLAND_TANOBY_RUINS_MONEAN_CHAMBER,
|
||||
.tilesptr = gMoneanChamberMapPreviewTiles,
|
||||
.tilemapptr = gMoneanChamberMapPreviewTilemap,
|
||||
@@ -272,7 +272,7 @@ static const struct MapPreviewScreen sMapPreviewScreenData[MPS_COUNT] = {
|
||||
},
|
||||
[MPS_WEEPTH_CHAMBER] = {
|
||||
.mapsec = MAPSEC_WEEPTH_CHAMBER,
|
||||
.forceFirstTime = FALSE,
|
||||
.type = MPS_TYPE_CAVE,
|
||||
.flagId = FLAG_WORLD_MAP_SEVEN_ISLAND_TANOBY_RUINS_MONEAN_CHAMBER,
|
||||
.tilesptr = gMoneanChamberMapPreviewTiles,
|
||||
.tilemapptr = gMoneanChamberMapPreviewTilemap,
|
||||
@@ -280,7 +280,7 @@ static const struct MapPreviewScreen sMapPreviewScreenData[MPS_COUNT] = {
|
||||
},
|
||||
[MPS_TDILFORD_CHAMBER] = {
|
||||
.mapsec = MAPSEC_DILFORD_CHAMBER,
|
||||
.forceFirstTime = FALSE,
|
||||
.type = MPS_TYPE_CAVE,
|
||||
.flagId = FLAG_WORLD_MAP_SEVEN_ISLAND_TANOBY_RUINS_MONEAN_CHAMBER,
|
||||
.tilesptr = gMoneanChamberMapPreviewTiles,
|
||||
.tilemapptr = gMoneanChamberMapPreviewTilemap,
|
||||
@@ -288,7 +288,7 @@ static const struct MapPreviewScreen sMapPreviewScreenData[MPS_COUNT] = {
|
||||
},
|
||||
[MPS_SCUFIB_CHAMBER] = {
|
||||
.mapsec = MAPSEC_SCUFIB_CHAMBER,
|
||||
.forceFirstTime = FALSE,
|
||||
.type = MPS_TYPE_CAVE,
|
||||
.flagId = FLAG_WORLD_MAP_SEVEN_ISLAND_TANOBY_RUINS_MONEAN_CHAMBER,
|
||||
.tilesptr = gMoneanChamberMapPreviewTiles,
|
||||
.tilemapptr = gMoneanChamberMapPreviewTilemap,
|
||||
@@ -296,7 +296,7 @@ static const struct MapPreviewScreen sMapPreviewScreenData[MPS_COUNT] = {
|
||||
},
|
||||
[MPS_RIXY_CHAMBER] = {
|
||||
.mapsec = MAPSEC_RIXY_CHAMBER,
|
||||
.forceFirstTime = FALSE,
|
||||
.type = MPS_TYPE_CAVE,
|
||||
.flagId = FLAG_WORLD_MAP_SEVEN_ISLAND_TANOBY_RUINS_MONEAN_CHAMBER,
|
||||
.tilesptr = gMoneanChamberMapPreviewTiles,
|
||||
.tilemapptr = gMoneanChamberMapPreviewTilemap,
|
||||
@@ -304,7 +304,7 @@ static const struct MapPreviewScreen sMapPreviewScreenData[MPS_COUNT] = {
|
||||
},
|
||||
[MPS_VIAPOIS_CHAMBER] = {
|
||||
.mapsec = MAPSEC_VIAPOIS_CHAMBER,
|
||||
.forceFirstTime = FALSE,
|
||||
.type = MPS_TYPE_CAVE,
|
||||
.flagId = FLAG_WORLD_MAP_SEVEN_ISLAND_TANOBY_RUINS_MONEAN_CHAMBER,
|
||||
.tilesptr = gMoneanChamberMapPreviewTiles,
|
||||
.tilemapptr = gMoneanChamberMapPreviewTilemap,
|
||||
@@ -328,7 +328,7 @@ static const struct BgTemplate sMapPreviewBgTemplate[1] = {
|
||||
}
|
||||
};
|
||||
|
||||
static u8 sub_80F80E4(u8 mapsec)
|
||||
static u8 GetMapPreviewScreenIdx(u8 mapsec)
|
||||
{
|
||||
s32 i;
|
||||
|
||||
@@ -342,20 +342,20 @@ static u8 sub_80F80E4(u8 mapsec)
|
||||
return MPS_COUNT;
|
||||
}
|
||||
|
||||
bool8 sub_80F8110(u8 mapsec, u8 forceFirstTime)
|
||||
bool8 MapHasPreviewScreen(u8 mapsec, u8 type)
|
||||
{
|
||||
u8 idx;
|
||||
|
||||
idx = sub_80F80E4(mapsec);
|
||||
idx = GetMapPreviewScreenIdx(mapsec);
|
||||
if (idx != MPS_COUNT)
|
||||
{
|
||||
if (forceFirstTime == 2)
|
||||
if (type == MPS_TYPE_ANY)
|
||||
{
|
||||
return TRUE;
|
||||
}
|
||||
else
|
||||
{
|
||||
return sMapPreviewScreenData[idx].forceFirstTime == forceFirstTime ? TRUE : FALSE;
|
||||
return sMapPreviewScreenData[idx].type == type ? TRUE : FALSE;
|
||||
}
|
||||
}
|
||||
else
|
||||
@@ -364,29 +364,29 @@ bool8 sub_80F8110(u8 mapsec, u8 forceFirstTime)
|
||||
}
|
||||
}
|
||||
|
||||
bool8 sub_80F8154(u8 mapsec, u8 forceFirstTime)
|
||||
bool32 MapHasPreviewScreen_HandleQLState2(u8 mapsec, u8 type)
|
||||
{
|
||||
if (gQuestLogState == 2)
|
||||
if (gQuestLogState == QL_STATE_2)
|
||||
{
|
||||
return FALSE;
|
||||
}
|
||||
else
|
||||
{
|
||||
return sub_80F8110(mapsec, forceFirstTime);
|
||||
return MapHasPreviewScreen(mapsec, type);
|
||||
}
|
||||
}
|
||||
|
||||
void sub_80F8180(void)
|
||||
void MapPreview_InitBgs(void)
|
||||
{
|
||||
InitBgsFromTemplates(0, sMapPreviewBgTemplate, NELEMS(sMapPreviewBgTemplate));
|
||||
ShowBg(0);
|
||||
}
|
||||
|
||||
void sub_80F819C(u8 mapsec)
|
||||
void MapPreview_LoadGfx(u8 mapsec)
|
||||
{
|
||||
u8 idx;
|
||||
|
||||
idx = sub_80F80E4(mapsec);
|
||||
idx = GetMapPreviewScreenIdx(mapsec);
|
||||
if (idx != MPS_COUNT)
|
||||
{
|
||||
ResetTempTileDataBuffers();
|
||||
@@ -395,55 +395,55 @@ void sub_80F819C(u8 mapsec)
|
||||
if (GetBgTilemapBuffer(0) == NULL)
|
||||
{
|
||||
SetBgTilemapBuffer(0, Alloc(BG_SCREEN_SIZE));
|
||||
gUnknown_203ABED = TRUE;
|
||||
sAllocedBg0TilemapBuffer = TRUE;
|
||||
}
|
||||
else
|
||||
{
|
||||
gUnknown_203ABED = FALSE;
|
||||
sAllocedBg0TilemapBuffer = FALSE;
|
||||
}
|
||||
CopyToBgTilemapBuffer(0, sMapPreviewScreenData[idx].tilemapptr, 0, 0x000);
|
||||
CopyBgTilemapBufferToVram(0);
|
||||
}
|
||||
}
|
||||
|
||||
void sub_80F8234(s32 windowId)
|
||||
void MapPreview_Unload(s32 windowId)
|
||||
{
|
||||
RemoveWindow(windowId);
|
||||
if (gUnknown_203ABED)
|
||||
if (sAllocedBg0TilemapBuffer)
|
||||
{
|
||||
Free(GetBgTilemapBuffer(0));
|
||||
}
|
||||
}
|
||||
|
||||
bool32 sub_80F8258(void)
|
||||
bool32 MapPreview_IsGfxLoadFinished(void)
|
||||
{
|
||||
return FreeTempTileDataBuffersIfPossible();
|
||||
}
|
||||
|
||||
void sub_80F8268(u8 mapsec)
|
||||
void MapPreview_StartForestTransition(u8 mapsec)
|
||||
{
|
||||
u8 taskId;
|
||||
|
||||
taskId = CreateTask(sub_80F83D0, 0);
|
||||
taskId = CreateTask(Task_RunMapPreviewScreenForest, 0);
|
||||
gTasks[taskId].data[2] = GetBgAttribute(0, BG_ATTR_PRIORITY);
|
||||
gTasks[taskId].data[4] = GetGpuReg(REG_OFFSET_BLDCNT);
|
||||
gTasks[taskId].data[5] = GetGpuReg(REG_OFFSET_BLDALPHA);
|
||||
gTasks[taskId].data[3] = GetGpuReg(REG_OFFSET_DISPCNT);
|
||||
gTasks[taskId].data[6] = GetGpuReg(REG_OFFSET_WININ);
|
||||
gTasks[taskId].data[7] = GetGpuReg(REG_OFFSET_WINOUT);
|
||||
gTasks[taskId].data[10] = sub_80F856C(mapsec);
|
||||
gTasks[taskId].data[10] = MapPreview_GetDuration(mapsec);
|
||||
gTasks[taskId].data[8] = 16;
|
||||
gTasks[taskId].data[9] = 0;
|
||||
SetBgAttribute(0, BG_ATTR_PRIORITY, 0);
|
||||
SetGpuReg(REG_OFFSET_BLDCNT, BLDCNT_TGT1_BG0 | BLDCNT_EFFECT_BLEND | BLDCNT_TGT2_BG1 | BLDCNT_TGT2_BG2 | BLDCNT_TGT2_BG3 | BLDCNT_TGT2_OBJ | BLDCNT_TGT2_BD);
|
||||
SetGpuReg(REG_OFFSET_BLDALPHA, BLDALPHA_BLEND(16, 0));
|
||||
SetGpuRegBits(REG_OFFSET_WININ, 0x2020);
|
||||
SetGpuRegBits(REG_OFFSET_WINOUT, 0x0020);
|
||||
gTasks[taskId].data[11] = sub_80F8318(mapsec);
|
||||
SetGpuRegBits(REG_OFFSET_WININ, WININ_WIN0_CLR | WININ_WIN1_CLR);
|
||||
SetGpuRegBits(REG_OFFSET_WINOUT, WINOUT_WIN01_CLR);
|
||||
gTasks[taskId].data[11] = MapPreview_CreateMapNameWindow(mapsec);
|
||||
ScriptContext2_Enable();
|
||||
}
|
||||
|
||||
u16 sub_80F8318(u8 mapsec)
|
||||
u16 MapPreview_CreateMapNameWindow(u8 mapsec)
|
||||
{
|
||||
u16 windowId;
|
||||
u32 xctr;
|
||||
@@ -452,18 +452,18 @@ u16 sub_80F8318(u8 mapsec)
|
||||
windowId = AddWindow(&sMapNameWindow);
|
||||
FillWindowPixelBuffer(windowId, PIXEL_FILL(1));
|
||||
PutWindowTilemap(windowId);
|
||||
color[0] = 1; // Access violation
|
||||
color[1] = 4; // Access violation
|
||||
color[2] = 3; // Access violation
|
||||
color[0] = TEXT_COLOR_WHITE; // Access violation
|
||||
color[1] = TEXT_COLOR_RED; // Access violation
|
||||
color[2] = TEXT_COLOR_LIGHT_GREY; // Access violation
|
||||
GetMapName(gStringVar4, mapsec, 0);
|
||||
xctr = 104 - GetStringWidth(2, gStringVar4, 0);
|
||||
AddTextPrinterParameterized4(windowId, 2, xctr / 2, 2, 0, 0, color/* Access violation */, -1, gStringVar4);
|
||||
return windowId;
|
||||
}
|
||||
|
||||
bool32 sub_80F83B0(void)
|
||||
bool32 ForestMapPreviewScreenIsRunning(void)
|
||||
{
|
||||
if (FuncIsActiveTask(sub_80F83D0) == TRUE)
|
||||
if (FuncIsActiveTask(Task_RunMapPreviewScreenForest) == TRUE)
|
||||
{
|
||||
return FALSE;
|
||||
}
|
||||
@@ -473,7 +473,7 @@ bool32 sub_80F83B0(void)
|
||||
}
|
||||
}
|
||||
|
||||
static void sub_80F83D0(u8 taskId)
|
||||
static void Task_RunMapPreviewScreenForest(u8 taskId)
|
||||
{
|
||||
s16 * data;
|
||||
|
||||
@@ -481,7 +481,7 @@ static void sub_80F83D0(u8 taskId)
|
||||
switch (data[0])
|
||||
{
|
||||
case 0:
|
||||
if (!sub_80F8258() && !IsDma3ManagerBusyWithBgCopy())
|
||||
if (!MapPreview_IsGfxLoadFinished() && !IsDma3ManagerBusyWithBgCopy())
|
||||
{
|
||||
CopyWindowToVram(data[11], 3);
|
||||
data[0]++;
|
||||
@@ -539,7 +539,7 @@ static void sub_80F83D0(u8 taskId)
|
||||
case 5:
|
||||
if (!IsDma3ManagerBusyWithBgCopy())
|
||||
{
|
||||
sub_80F8234(data[11]);
|
||||
MapPreview_Unload(data[11]);
|
||||
SetBgAttribute(0, BG_ATTR_PRIORITY, data[2]);
|
||||
SetGpuReg(REG_OFFSET_DISPCNT, data[3]);
|
||||
SetGpuReg(REG_OFFSET_BLDCNT, data[4]);
|
||||
@@ -556,7 +556,7 @@ const struct MapPreviewScreen * GetDungeonMapPreviewScreenInfo(u8 mapsec)
|
||||
{
|
||||
u8 idx;
|
||||
|
||||
idx = sub_80F80E4(mapsec);
|
||||
idx = GetMapPreviewScreenIdx(mapsec);
|
||||
if (idx == MPS_COUNT)
|
||||
{
|
||||
return NULL;
|
||||
@@ -567,18 +567,18 @@ const struct MapPreviewScreen * GetDungeonMapPreviewScreenInfo(u8 mapsec)
|
||||
}
|
||||
}
|
||||
|
||||
u16 sub_80F856C(u8 mapsec)
|
||||
u16 MapPreview_GetDuration(u8 mapsec)
|
||||
{
|
||||
u8 idx;
|
||||
u16 flagId;
|
||||
|
||||
idx = sub_80F80E4(mapsec);
|
||||
idx = GetMapPreviewScreenIdx(mapsec);
|
||||
if (idx == MPS_COUNT)
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
flagId = sMapPreviewScreenData[idx].flagId;
|
||||
if (!sMapPreviewScreenData[idx].forceFirstTime)
|
||||
if (sMapPreviewScreenData[idx].type == MPS_TYPE_CAVE)
|
||||
{
|
||||
if (!FlagGet(flagId))
|
||||
{
|
||||
@@ -590,7 +590,7 @@ u16 sub_80F856C(u8 mapsec)
|
||||
}
|
||||
}
|
||||
else {
|
||||
if (gUnknown_203ABEC)
|
||||
if (sHasVisitedMapBefore)
|
||||
{
|
||||
return 120;
|
||||
}
|
||||
@@ -601,15 +601,15 @@ u16 sub_80F856C(u8 mapsec)
|
||||
}
|
||||
}
|
||||
|
||||
void sub_80F85BC(u16 flagId)
|
||||
void MapPreview_SetFlag(u16 flagId)
|
||||
{
|
||||
if (!FlagGet(flagId))
|
||||
{
|
||||
gUnknown_203ABEC = TRUE;
|
||||
sHasVisitedMapBefore = TRUE;
|
||||
}
|
||||
else
|
||||
{
|
||||
gUnknown_203ABEC = FALSE;
|
||||
sHasVisitedMapBefore = FALSE;
|
||||
}
|
||||
FlagSet(flagId);
|
||||
}
|
||||
|
||||
+5
-4
@@ -23,6 +23,7 @@
|
||||
#include "party_menu.h"
|
||||
#include "constants/items.h"
|
||||
#include "constants/songs.h"
|
||||
#include "constants/field_weather.h"
|
||||
|
||||
#define PC_ITEM_ID 0
|
||||
#define PC_QUANTITY 1
|
||||
@@ -331,7 +332,7 @@ static void Task_DepositItem_WaitFadeAndGoToBag(u8 taskId)
|
||||
static void Task_PlayerPcDepositItem(u8 taskId)
|
||||
{
|
||||
gTasks[taskId].func = Task_DepositItem_WaitFadeAndGoToBag;
|
||||
FadeScreen(1, 0);
|
||||
FadeScreen(FADE_TO_BLACK, 0);
|
||||
}
|
||||
|
||||
static void Task_ReturnToItemStorageSubmenu(u8 taskId)
|
||||
@@ -394,7 +395,7 @@ static void Task_WithdrawItemBeginFade(u8 taskId)
|
||||
{
|
||||
gTasks[taskId].func = Task_WithdrawItem_WaitFadeAndGoToItemStorage;
|
||||
ItemPc_SetInitializedFlag(0);
|
||||
FadeScreen(1, 0);
|
||||
FadeScreen(FADE_TO_BLACK, 0);
|
||||
}
|
||||
|
||||
static void Task_PlayerPcCancel(u8 taskId)
|
||||
@@ -556,7 +557,7 @@ static void Task_MailSubmenuHandleInput(u8 taskId)
|
||||
|
||||
static void Task_PlayerPcReadMail(u8 taskId)
|
||||
{
|
||||
FadeScreen(1, 0);
|
||||
FadeScreen(FADE_TO_BLACK, 0);
|
||||
gTasks[taskId].func = Task_WaitFadeAndReadSelectedMail;
|
||||
}
|
||||
|
||||
@@ -663,7 +664,7 @@ static void Task_PlayerPcGiveMailToMon(u8 taskId)
|
||||
}
|
||||
else
|
||||
{
|
||||
FadeScreen(1, 0);
|
||||
FadeScreen(FADE_TO_BLACK, 0);
|
||||
gTasks[taskId].func = Task_WaitFadeAndGoToPartyMenu;
|
||||
}
|
||||
}
|
||||
|
||||
+6
-5
@@ -42,6 +42,7 @@
|
||||
#include "constants/trainer_classes.h"
|
||||
#include "constants/species.h"
|
||||
#include "constants/items.h"
|
||||
#include "constants/field_weather.h"
|
||||
|
||||
u8 gUnknown_3005E88;
|
||||
|
||||
@@ -152,7 +153,7 @@ static u8 sub_8111BD4(void);
|
||||
static void DrawQuestLogSceneDescription(void);
|
||||
static void sub_8111D90(u8);
|
||||
static void QuestLog_CloseTextWindow(void);
|
||||
static void QuestLog_SkipToEndOfPlayback(s8);
|
||||
static void QuestLog_SkipToEndOfPlayback(s8 delay);
|
||||
static void QuestLog_WaitFadeAndCancelPlayback(void);
|
||||
static bool8 sub_8111F60(void);
|
||||
static void sub_8111F8C(u8);
|
||||
@@ -920,7 +921,7 @@ static void sub_811175C(u8 sceneNum, struct UnkStruct_203AE98 * a1)
|
||||
|
||||
static void sub_81118F4(s8 a0)
|
||||
{
|
||||
FadeScreen(1, a0);
|
||||
FadeScreen(FADE_TO_BLACK, a0);
|
||||
sQuestLogCB = QuestLog_AdvancePlayhead;
|
||||
}
|
||||
|
||||
@@ -1178,9 +1179,9 @@ static void QuestLog_CloseTextWindow(void)
|
||||
CopyWindowToVram(gUnknown_203ADFE[1], 1);
|
||||
}
|
||||
|
||||
static void QuestLog_SkipToEndOfPlayback(s8 a0)
|
||||
static void QuestLog_SkipToEndOfPlayback(s8 delay)
|
||||
{
|
||||
FadeScreen(1, a0);
|
||||
FadeScreen(FADE_TO_BLACK, delay);
|
||||
sQuestLogCB = QuestLog_WaitFadeAndCancelPlayback;
|
||||
}
|
||||
|
||||
@@ -4294,7 +4295,7 @@ static const u16 sQuestLogWorldMapFlags[] =
|
||||
FLAG_WORLD_MAP_SIX_ISLAND
|
||||
};
|
||||
|
||||
void sub_8115748(u16 worldMapFlag)
|
||||
void QuestLog_RecordEnteredMap(u16 worldMapFlag)
|
||||
{
|
||||
s32 i;
|
||||
|
||||
|
||||
+2
-2
@@ -598,8 +598,8 @@ bool8 ScrCmd_comparestattoword(struct ScriptContext * ctx)
|
||||
bool8 ScrCmd_setworldmapflag(struct ScriptContext * ctx)
|
||||
{
|
||||
u16 value = ScriptReadHalfword(ctx);
|
||||
sub_8115748(value);
|
||||
sub_80F85BC(value);
|
||||
QuestLog_RecordEnteredMap(value);
|
||||
MapPreview_SetFlag(value);
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
|
||||
+3
-2
@@ -36,6 +36,7 @@
|
||||
#include "constants/songs.h"
|
||||
#include "constants/items.h"
|
||||
#include "constants/game_stat.h"
|
||||
#include "constants/field_weather.h"
|
||||
|
||||
#define tItemCount data[1]
|
||||
#define tItemId data[5]
|
||||
@@ -292,14 +293,14 @@ static void Task_ShopMenu(u8 taskId)
|
||||
static void Task_HandleShopMenuBuy(u8 taskId)
|
||||
{
|
||||
SetWordTaskArg(taskId, 0xE, (u32)CB2_InitBuyMenu);
|
||||
FadeScreen(1, 0);
|
||||
FadeScreen(FADE_TO_BLACK, 0);
|
||||
gTasks[taskId].func = Task_GoToBuyOrSellMenu;
|
||||
}
|
||||
|
||||
static void Task_HandleShopMenuSell(u8 taskId)
|
||||
{
|
||||
SetWordTaskArg(taskId, 0xE, (u32)CB2_GoToSellMenu);
|
||||
FadeScreen(1, 0);
|
||||
FadeScreen(FADE_TO_BLACK, 0);
|
||||
gTasks[taskId].func = Task_GoToBuyOrSellMenu;
|
||||
}
|
||||
|
||||
|
||||
+2
-1
@@ -39,6 +39,7 @@
|
||||
#include "help_system.h"
|
||||
#include "constants/songs.h"
|
||||
#include "constants/flags.h"
|
||||
#include "constants/field_weather.h"
|
||||
|
||||
enum StartMenuOption
|
||||
{
|
||||
@@ -446,7 +447,7 @@ static void StartMenu_FadeScreenIfLeavingOverworld(void)
|
||||
&& sStartMenuCallback != StartMenuSafariZoneRetireCallback)
|
||||
{
|
||||
StopPokemonLeagueLightingEffectTask();
|
||||
FadeScreen(1, 0);
|
||||
FadeScreen(FADE_TO_BLACK, 0);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user