mirror of
https://github.com/pret/pokeruby.git
synced 2024-12-12 07:05:49 +00:00
decompile mystery_event_menu.c
This commit is contained in:
parent
6b12bb0b52
commit
9eceeb2a37
@ -1,581 +0,0 @@
|
||||
.include "constants/gba_constants.inc"
|
||||
.include "constants/species_constants.inc"
|
||||
.include "asm/macros.inc"
|
||||
|
||||
.syntax unified
|
||||
|
||||
.text
|
||||
|
||||
thumb_func_start sub_8146900
|
||||
sub_8146900: @ 8146900
|
||||
push {lr}
|
||||
bl LoadOam
|
||||
bl ProcessSpriteCopyRequests
|
||||
bl TransferPlttBuffer
|
||||
pop {r0}
|
||||
bx r0
|
||||
thumb_func_end sub_8146900
|
||||
|
||||
thumb_func_start sub_8146914
|
||||
sub_8146914: @ 8146914
|
||||
push {lr}
|
||||
movs r2, 0
|
||||
ldr r1, _0814692C @ =gLinkPlayers
|
||||
ldrh r0, [r1, 0x1A]
|
||||
ldrh r1, [r1, 0x36]
|
||||
cmp r0, r1
|
||||
bne _08146924
|
||||
movs r2, 0x1
|
||||
_08146924:
|
||||
adds r0, r2, 0
|
||||
pop {r1}
|
||||
bx r1
|
||||
.align 2, 0
|
||||
_0814692C: .4byte gLinkPlayers
|
||||
thumb_func_end sub_8146914
|
||||
|
||||
thumb_func_start CB2_InitMysteryEventMenu
|
||||
CB2_InitMysteryEventMenu: @ 8146930
|
||||
push {r4,lr}
|
||||
bl ResetSpriteData
|
||||
bl FreeAllSpritePalettes
|
||||
bl ResetTasks
|
||||
ldr r0, _0814699C @ =sub_8146900
|
||||
bl SetVBlankCallback
|
||||
ldr r4, _081469A0 @ =gWindowConfig_81E6CE4
|
||||
adds r0, r4, 0
|
||||
bl SetUpWindowConfig
|
||||
adds r0, r4, 0
|
||||
bl InitMenuWindow
|
||||
bl MenuZeroFillScreen
|
||||
movs r1, 0x80
|
||||
lsls r1, 19
|
||||
movs r2, 0xA0
|
||||
lsls r2, 1
|
||||
adds r0, r2, 0
|
||||
strh r0, [r1]
|
||||
adds r1, 0x50
|
||||
movs r0, 0
|
||||
strh r0, [r1]
|
||||
ldr r0, _081469A4 @ =Task_DestroySelf
|
||||
movs r1, 0
|
||||
bl CreateTask
|
||||
bl StopMapMusic
|
||||
bl RunTasks
|
||||
bl AnimateSprites
|
||||
bl BuildOamBuffer
|
||||
bl UpdatePaletteFade
|
||||
movs r0, 0
|
||||
movs r1, 0
|
||||
movs r2, 0x2
|
||||
bl FillPalette
|
||||
ldr r0, _081469A8 @ =sub_81469E4
|
||||
bl SetMainCallback2
|
||||
pop {r4}
|
||||
pop {r0}
|
||||
bx r0
|
||||
.align 2, 0
|
||||
_0814699C: .4byte sub_8146900
|
||||
_081469A0: .4byte gWindowConfig_81E6CE4
|
||||
_081469A4: .4byte Task_DestroySelf
|
||||
_081469A8: .4byte sub_81469E4
|
||||
thumb_func_end CB2_InitMysteryEventMenu
|
||||
|
||||
thumb_func_start sub_81469AC
|
||||
sub_81469AC: @ 81469AC
|
||||
push {r4-r6,lr}
|
||||
adds r6, r0, 0
|
||||
adds r4, r1, 0
|
||||
movs r5, 0x1
|
||||
cmp r4, 0
|
||||
bne _081469C0
|
||||
ldr r1, _081469DC @ =gSystemText_EventLoadSuccess
|
||||
bl StringCopy
|
||||
movs r5, 0
|
||||
_081469C0:
|
||||
cmp r4, 0x2
|
||||
bne _081469C6
|
||||
movs r5, 0
|
||||
_081469C6:
|
||||
cmp r4, 0x1
|
||||
bne _081469D2
|
||||
ldr r1, _081469E0 @ =gSystemText_LoadingError
|
||||
adds r0, r6, 0
|
||||
bl StringCopy
|
||||
_081469D2:
|
||||
adds r0, r5, 0
|
||||
pop {r4-r6}
|
||||
pop {r1}
|
||||
bx r1
|
||||
.align 2, 0
|
||||
_081469DC: .4byte gSystemText_EventLoadSuccess
|
||||
_081469E0: .4byte gSystemText_LoadingError
|
||||
thumb_func_end sub_81469AC
|
||||
|
||||
thumb_func_start sub_81469E4
|
||||
sub_81469E4: @ 81469E4
|
||||
push {r4-r6,lr}
|
||||
sub sp, 0x8
|
||||
ldr r1, _08146A04 @ =gMain
|
||||
ldr r2, _08146A08 @ =0x0000043c
|
||||
adds r0, r1, r2
|
||||
ldrb r0, [r0]
|
||||
adds r4, r1, 0
|
||||
cmp r0, 0x10
|
||||
bls _081469F8
|
||||
b _08146DA4
|
||||
_081469F8:
|
||||
lsls r0, 2
|
||||
ldr r1, _08146A0C @ =_08146A10
|
||||
adds r0, r1
|
||||
ldr r0, [r0]
|
||||
mov pc, r0
|
||||
.align 2, 0
|
||||
_08146A04: .4byte gMain
|
||||
_08146A08: .4byte 0x0000043c
|
||||
_08146A0C: .4byte _08146A10
|
||||
.align 2, 0
|
||||
_08146A10:
|
||||
.4byte _08146A54
|
||||
.4byte _08146A6E
|
||||
.4byte _08146A9C
|
||||
.4byte _08146AD4
|
||||
.4byte _08146B18
|
||||
.4byte _08146B26
|
||||
.4byte _08146B90
|
||||
.4byte _08146C64
|
||||
.4byte _08146C72
|
||||
.4byte _08146C94
|
||||
.4byte _08146CA0
|
||||
.4byte _08146CB4
|
||||
.4byte _08146CFC
|
||||
.4byte _08146D18
|
||||
.4byte _08146D50
|
||||
.4byte _08146D6C
|
||||
.4byte _08146D94
|
||||
_08146A54:
|
||||
movs r0, 0
|
||||
movs r1, 0xE
|
||||
movs r2, 0x1D
|
||||
movs r3, 0x13
|
||||
bl MenuDrawTextWindow
|
||||
movs r0, 0x1
|
||||
negs r0, r0
|
||||
movs r1, 0
|
||||
str r1, [sp]
|
||||
movs r2, 0x10
|
||||
movs r3, 0
|
||||
b _08146D78
|
||||
_08146A6E:
|
||||
ldr r0, _08146A8C @ =gPaletteFade
|
||||
ldrb r1, [r0, 0x7]
|
||||
movs r0, 0x80
|
||||
ands r0, r1
|
||||
cmp r0, 0
|
||||
beq _08146A7C
|
||||
b _08146DA4
|
||||
_08146A7C:
|
||||
ldr r0, _08146A90 @ =gSystemText_LinkStandby
|
||||
bl sub_8072044
|
||||
ldr r1, _08146A94 @ =gMain
|
||||
ldr r2, _08146A98 @ =0x0000043c
|
||||
adds r1, r2
|
||||
b _08146D82
|
||||
.align 2, 0
|
||||
_08146A8C: .4byte gPaletteFade
|
||||
_08146A90: .4byte gSystemText_LinkStandby
|
||||
_08146A94: .4byte gMain
|
||||
_08146A98: .4byte 0x0000043c
|
||||
_08146A9C:
|
||||
bl MenuUpdateWindowText
|
||||
lsls r0, 24
|
||||
cmp r0, 0
|
||||
bne _08146AA8
|
||||
b _08146DA4
|
||||
_08146AA8:
|
||||
ldr r1, _08146AC4 @ =gMain
|
||||
ldr r0, _08146AC8 @ =0x0000043c
|
||||
adds r1, r0
|
||||
ldrb r0, [r1]
|
||||
adds r0, 0x1
|
||||
strb r0, [r1]
|
||||
ldr r1, _08146ACC @ =gLinkType
|
||||
ldr r2, _08146AD0 @ =0x00005501
|
||||
adds r0, r2, 0
|
||||
strh r0, [r1]
|
||||
bl OpenLink
|
||||
b _08146DA4
|
||||
.align 2, 0
|
||||
_08146AC4: .4byte gMain
|
||||
_08146AC8: .4byte 0x0000043c
|
||||
_08146ACC: .4byte gLinkType
|
||||
_08146AD0: .4byte 0x00005501
|
||||
_08146AD4:
|
||||
ldr r0, _08146B08 @ =gLinkStatus
|
||||
ldr r1, [r0]
|
||||
movs r0, 0x20
|
||||
ands r0, r1
|
||||
cmp r0, 0
|
||||
bne _08146AE2
|
||||
b _08146C38
|
||||
_08146AE2:
|
||||
movs r0, 0x1C
|
||||
ands r1, r0
|
||||
cmp r1, 0x4
|
||||
bhi _08146AEC
|
||||
b _08146C38
|
||||
_08146AEC:
|
||||
movs r0, 0x15
|
||||
bl PlaySE
|
||||
ldr r0, _08146B0C @ =gSystemText_LoadEventPressA
|
||||
bl sub_8072044
|
||||
ldr r1, _08146B10 @ =gMain
|
||||
ldr r0, _08146B14 @ =0x0000043c
|
||||
adds r1, r0
|
||||
ldrb r0, [r1]
|
||||
adds r0, 0x1
|
||||
strb r0, [r1]
|
||||
b _08146C38
|
||||
.align 2, 0
|
||||
_08146B08: .4byte gLinkStatus
|
||||
_08146B0C: .4byte gSystemText_LoadEventPressA
|
||||
_08146B10: .4byte gMain
|
||||
_08146B14: .4byte 0x0000043c
|
||||
_08146B18:
|
||||
bl MenuUpdateWindowText
|
||||
lsls r0, 24
|
||||
cmp r0, 0
|
||||
bne _08146B24
|
||||
b _08146DA4
|
||||
_08146B24:
|
||||
b _08146D7C
|
||||
_08146B26:
|
||||
bl GetLinkPlayerCount_2
|
||||
lsls r0, 24
|
||||
lsrs r2, r0, 24
|
||||
cmp r2, 0x2
|
||||
bne _08146C10
|
||||
ldr r4, _08146B64 @ =gMain
|
||||
ldrh r1, [r4, 0x2E]
|
||||
movs r0, 0x1
|
||||
ands r0, r1
|
||||
cmp r0, 0
|
||||
beq _08146B70
|
||||
movs r0, 0x5
|
||||
bl PlaySE
|
||||
bl sub_8007F4C
|
||||
movs r0, 0x6
|
||||
movs r1, 0x5
|
||||
movs r2, 0x17
|
||||
movs r3, 0x8
|
||||
bl MenuDrawTextWindow
|
||||
ldr r0, _08146B68 @ =gSystemText_LoadingEvent
|
||||
movs r1, 0x7
|
||||
movs r2, 0x6
|
||||
bl MenuPrint
|
||||
ldr r2, _08146B6C @ =0x0000043c
|
||||
adds r1, r4, r2
|
||||
b _08146D82
|
||||
.align 2, 0
|
||||
_08146B64: .4byte gMain
|
||||
_08146B68: .4byte gSystemText_LoadingEvent
|
||||
_08146B6C: .4byte 0x0000043c
|
||||
_08146B70:
|
||||
adds r0, r2, 0
|
||||
ands r0, r1
|
||||
cmp r0, 0
|
||||
bne _08146B7A
|
||||
b _08146DA4
|
||||
_08146B7A:
|
||||
movs r0, 0x5
|
||||
bl PlaySE
|
||||
bl CloseLink
|
||||
ldr r0, _08146B8C @ =0x0000043c
|
||||
adds r1, r4, r0
|
||||
b _08146C54
|
||||
.align 2, 0
|
||||
_08146B8C: .4byte 0x0000043c
|
||||
_08146B90:
|
||||
bl IsLinkConnectionEstablished
|
||||
lsls r0, 24
|
||||
cmp r0, 0
|
||||
beq _08146C38
|
||||
ldr r0, _08146BD8 @ =gReceivedRemoteLinkPlayers
|
||||
ldrb r0, [r0]
|
||||
cmp r0, 0
|
||||
bne _08146BA4
|
||||
b _08146DA4
|
||||
_08146BA4:
|
||||
bl GetLinkPlayerDataExchangeStatusTimed
|
||||
lsls r0, 24
|
||||
lsrs r0, 24
|
||||
cmp r0, 0x3
|
||||
bne _08146BE8
|
||||
bl sub_800832C
|
||||
movs r0, 0x6
|
||||
movs r1, 0x5
|
||||
movs r2, 0x17
|
||||
movs r3, 0x8
|
||||
bl MenuZeroFillWindowRect
|
||||
ldr r4, _08146BDC @ =gStringVar4
|
||||
adds r0, r4, 0
|
||||
movs r1, 0x1
|
||||
bl sub_81469AC
|
||||
adds r0, r4, 0
|
||||
bl sub_8072044
|
||||
ldr r0, _08146BE0 @ =gMain
|
||||
ldr r2, _08146BE4 @ =0x0000043c
|
||||
adds r0, r2
|
||||
b _08146C26
|
||||
.align 2, 0
|
||||
_08146BD8: .4byte gReceivedRemoteLinkPlayers
|
||||
_08146BDC: .4byte gStringVar4
|
||||
_08146BE0: .4byte gMain
|
||||
_08146BE4: .4byte 0x0000043c
|
||||
_08146BE8:
|
||||
bl sub_8146914
|
||||
lsls r0, 24
|
||||
cmp r0, 0
|
||||
beq _08146C00
|
||||
ldr r0, _08146BFC @ =gSystemText_DontCutLink
|
||||
bl sub_8072044
|
||||
b _08146D7C
|
||||
.align 2, 0
|
||||
_08146BFC: .4byte gSystemText_DontCutLink
|
||||
_08146C00:
|
||||
bl CloseLink
|
||||
movs r0, 0x6
|
||||
movs r1, 0x5
|
||||
movs r2, 0x17
|
||||
movs r3, 0x8
|
||||
bl MenuZeroFillWindowRect
|
||||
_08146C10:
|
||||
ldr r4, _08146C2C @ =gStringVar4
|
||||
adds r0, r4, 0
|
||||
movs r1, 0x1
|
||||
bl sub_81469AC
|
||||
adds r0, r4, 0
|
||||
bl sub_8072044
|
||||
ldr r0, _08146C30 @ =gMain
|
||||
ldr r1, _08146C34 @ =0x0000043c
|
||||
adds r0, r1
|
||||
_08146C26:
|
||||
movs r1, 0xD
|
||||
strb r1, [r0]
|
||||
b _08146DA4
|
||||
.align 2, 0
|
||||
_08146C2C: .4byte gStringVar4
|
||||
_08146C30: .4byte gMain
|
||||
_08146C34: .4byte 0x0000043c
|
||||
_08146C38:
|
||||
ldr r4, _08146C5C @ =gMain
|
||||
ldrh r1, [r4, 0x2E]
|
||||
movs r0, 0x2
|
||||
ands r0, r1
|
||||
cmp r0, 0
|
||||
bne _08146C46
|
||||
b _08146DA4
|
||||
_08146C46:
|
||||
movs r0, 0x5
|
||||
bl PlaySE
|
||||
bl CloseLink
|
||||
ldr r2, _08146C60 @ =0x0000043c
|
||||
adds r1, r4, r2
|
||||
_08146C54:
|
||||
movs r0, 0xF
|
||||
strb r0, [r1]
|
||||
b _08146DA4
|
||||
.align 2, 0
|
||||
_08146C5C: .4byte gMain
|
||||
_08146C60: .4byte 0x0000043c
|
||||
_08146C64:
|
||||
bl MenuUpdateWindowText
|
||||
lsls r0, 24
|
||||
cmp r0, 0
|
||||
bne _08146C70
|
||||
b _08146DA4
|
||||
_08146C70:
|
||||
b _08146D7C
|
||||
_08146C72:
|
||||
bl GetBlockReceivedStatus
|
||||
lsls r0, 24
|
||||
cmp r0, 0
|
||||
bne _08146C7E
|
||||
b _08146DA4
|
||||
_08146C7E:
|
||||
bl ResetBlockReceivedFlags
|
||||
ldr r1, _08146C8C @ =gMain
|
||||
ldr r2, _08146C90 @ =0x0000043c
|
||||
adds r1, r2
|
||||
b _08146D82
|
||||
.align 2, 0
|
||||
_08146C8C: .4byte gMain
|
||||
_08146C90: .4byte 0x0000043c
|
||||
_08146C94:
|
||||
ldr r0, _08146C9C @ =0x0000043c
|
||||
adds r1, r4, r0
|
||||
b _08146D82
|
||||
.align 2, 0
|
||||
_08146C9C: .4byte 0x0000043c
|
||||
_08146CA0:
|
||||
bl sub_800832C
|
||||
ldr r1, _08146CAC @ =gMain
|
||||
ldr r2, _08146CB0 @ =0x0000043c
|
||||
adds r1, r2
|
||||
b _08146D82
|
||||
.align 2, 0
|
||||
_08146CAC: .4byte gMain
|
||||
_08146CB0: .4byte 0x0000043c
|
||||
_08146CB4:
|
||||
ldr r0, _08146CEC @ =gReceivedRemoteLinkPlayers
|
||||
ldrb r6, [r0]
|
||||
cmp r6, 0
|
||||
bne _08146DA4
|
||||
ldr r5, _08146CF0 @ =0x02000000
|
||||
adds r0, r5, 0
|
||||
bl sub_812613C
|
||||
adds r4, r0, 0
|
||||
lsls r4, 16
|
||||
lsrs r4, 16
|
||||
str r6, [sp, 0x4]
|
||||
ldr r2, _08146CF4 @ =0x050001f5
|
||||
add r0, sp, 0x4
|
||||
adds r1, r5, 0
|
||||
bl CpuSet
|
||||
ldr r0, _08146CF8 @ =gStringVar4
|
||||
adds r1, r4, 0
|
||||
bl sub_81469AC
|
||||
lsls r0, 24
|
||||
cmp r0, 0
|
||||
bne _08146D7C
|
||||
movs r0, 0
|
||||
bl sub_8125D44
|
||||
b _08146D7C
|
||||
.align 2, 0
|
||||
_08146CEC: .4byte gReceivedRemoteLinkPlayers
|
||||
_08146CF0: .4byte 0x02000000
|
||||
_08146CF4: .4byte 0x050001f5
|
||||
_08146CF8: .4byte gStringVar4
|
||||
_08146CFC:
|
||||
ldr r0, _08146D0C @ =gStringVar4
|
||||
bl sub_8072044
|
||||
ldr r1, _08146D10 @ =gMain
|
||||
ldr r2, _08146D14 @ =0x0000043c
|
||||
adds r1, r2
|
||||
b _08146D82
|
||||
.align 2, 0
|
||||
_08146D0C: .4byte gStringVar4
|
||||
_08146D10: .4byte gMain
|
||||
_08146D14: .4byte 0x0000043c
|
||||
_08146D18:
|
||||
movs r0, 0x6
|
||||
movs r1, 0x5
|
||||
movs r2, 0x17
|
||||
movs r3, 0x8
|
||||
bl MenuZeroFillWindowRect
|
||||
bl MenuUpdateWindowText
|
||||
lsls r0, 24
|
||||
cmp r0, 0
|
||||
beq _08146DA4
|
||||
ldr r1, _08146D44 @ =gMain
|
||||
ldr r0, _08146D48 @ =0x0000043c
|
||||
adds r1, r0
|
||||
ldrb r0, [r1]
|
||||
adds r0, 0x1
|
||||
movs r2, 0
|
||||
strb r0, [r1]
|
||||
ldr r0, _08146D4C @ =gUnknown_02039338
|
||||
strb r2, [r0]
|
||||
b _08146DA4
|
||||
.align 2, 0
|
||||
_08146D44: .4byte gMain
|
||||
_08146D48: .4byte 0x0000043c
|
||||
_08146D4C: .4byte gUnknown_02039338
|
||||
_08146D50:
|
||||
ldrh r1, [r4, 0x2E]
|
||||
movs r0, 0x1
|
||||
ands r0, r1
|
||||
cmp r0, 0
|
||||
beq _08146DA4
|
||||
movs r0, 0x5
|
||||
bl PlaySE
|
||||
ldr r2, _08146D68 @ =0x0000043c
|
||||
adds r1, r4, r2
|
||||
b _08146D82
|
||||
.align 2, 0
|
||||
_08146D68: .4byte 0x0000043c
|
||||
_08146D6C:
|
||||
movs r0, 0x1
|
||||
negs r0, r0
|
||||
movs r1, 0
|
||||
str r1, [sp]
|
||||
movs r2, 0
|
||||
movs r3, 0x10
|
||||
_08146D78:
|
||||
bl BeginNormalPaletteFade
|
||||
_08146D7C:
|
||||
ldr r1, _08146D8C @ =gMain
|
||||
ldr r0, _08146D90 @ =0x0000043c
|
||||
adds r1, r0
|
||||
_08146D82:
|
||||
ldrb r0, [r1]
|
||||
adds r0, 0x1
|
||||
strb r0, [r1]
|
||||
b _08146DA4
|
||||
.align 2, 0
|
||||
_08146D8C: .4byte gMain
|
||||
_08146D90: .4byte 0x0000043c
|
||||
_08146D94:
|
||||
ldr r0, _08146DFC @ =gPaletteFade
|
||||
ldrb r1, [r0, 0x7]
|
||||
movs r0, 0x80
|
||||
ands r0, r1
|
||||
cmp r0, 0
|
||||
bne _08146DA4
|
||||
bl DoSoftReset
|
||||
_08146DA4:
|
||||
ldr r0, _08146E00 @ =gLinkStatus
|
||||
ldr r0, [r0]
|
||||
movs r1, 0x40
|
||||
ands r0, r1
|
||||
cmp r0, 0
|
||||
beq _08146DE4
|
||||
bl IsLinkMaster
|
||||
lsls r0, 24
|
||||
cmp r0, 0
|
||||
bne _08146DE4
|
||||
bl CloseLink
|
||||
movs r0, 0x6
|
||||
movs r1, 0x5
|
||||
movs r2, 0x17
|
||||
movs r3, 0x8
|
||||
bl MenuZeroFillWindowRect
|
||||
ldr r4, _08146E04 @ =gStringVar4
|
||||
adds r0, r4, 0
|
||||
movs r1, 0x1
|
||||
bl sub_81469AC
|
||||
adds r0, r4, 0
|
||||
bl sub_8072044
|
||||
ldr r0, _08146E08 @ =gMain
|
||||
ldr r1, _08146E0C @ =0x0000043c
|
||||
adds r0, r1
|
||||
movs r1, 0xD
|
||||
strb r1, [r0]
|
||||
_08146DE4:
|
||||
bl RunTasks
|
||||
bl AnimateSprites
|
||||
bl BuildOamBuffer
|
||||
bl UpdatePaletteFade
|
||||
add sp, 0x8
|
||||
pop {r4-r6}
|
||||
pop {r0}
|
||||
bx r0
|
||||
.align 2, 0
|
||||
_08146DFC: .4byte gPaletteFade
|
||||
_08146E00: .4byte gLinkStatus
|
||||
_08146E04: .4byte gStringVar4
|
||||
_08146E08: .4byte gMain
|
||||
_08146E0C: .4byte 0x0000043c
|
||||
thumb_func_end sub_81469E4
|
||||
|
||||
.align 2, 0 @ Don't pad with nop.
|
@ -397,6 +397,7 @@ void sub_811AAD8(u8);
|
||||
u8 sub_811AAE8(void);
|
||||
|
||||
// asm/mystery_event_script.o
|
||||
u32 sub_812613C(u8 *);
|
||||
void sub_8126160(u8);
|
||||
u16 sub_8126338(void);
|
||||
|
||||
|
@ -124,11 +124,13 @@ struct Link
|
||||
|
||||
extern struct Link gLink;
|
||||
extern u16 gRecvCmds[CMD_LENGTH][MAX_LINK_PLAYERS];
|
||||
extern u16 gLinkType;
|
||||
extern u32 gLinkStatus;
|
||||
extern u16 gSendCmd[CMD_LENGTH];
|
||||
extern u8 gShouldAdvanceLinkState;
|
||||
extern struct LinkPlayer gLinkPlayers[];
|
||||
extern u16 word_3002910[];
|
||||
extern bool8 gReceivedRemoteLinkPlayers;
|
||||
|
||||
void Task_DestroySelf(u8);
|
||||
void sub_8007270(u8);
|
||||
|
@ -197,7 +197,7 @@ SECTIONS {
|
||||
src/lottery_corner.o(.text);
|
||||
src/diploma.o(.text);
|
||||
src/berry_tag_screen.o(.text);
|
||||
asm/mystery_event_menu.o(.text);
|
||||
src/mystery_event_menu.o(.text);
|
||||
src/save_failed_screen.o(.text);
|
||||
asm/rom_81473B8.o(.text);
|
||||
src/clear_save_data_menu.o(.text);
|
||||
|
277
src/mystery_event_menu.c
Normal file
277
src/mystery_event_menu.c
Normal file
@ -0,0 +1,277 @@
|
||||
#include "global.h"
|
||||
#include "sprite.h"
|
||||
#include "menu.h"
|
||||
#include "link.h"
|
||||
#include "text.h"
|
||||
#include "main.h"
|
||||
#include "palette.h"
|
||||
#include "task.h"
|
||||
#include "string_util.h"
|
||||
#include "songs.h"
|
||||
#include "sound.h"
|
||||
#include "save.h"
|
||||
#include "asm.h"
|
||||
|
||||
extern u8 unk_2000000[];
|
||||
extern u8 gUnknown_02039338;
|
||||
|
||||
extern u8 gSystemText_LinkStandby[];
|
||||
extern u8 gSystemText_LoadEventPressA[];
|
||||
extern u8 gSystemText_LoadingEvent[];
|
||||
extern u8 gSystemText_DontCutLink[];
|
||||
extern u8 gSystemText_EventLoadSuccess[];
|
||||
extern u8 gSystemText_LoadingError[];
|
||||
|
||||
void sub_81469E4(void);
|
||||
|
||||
static void VBlankCB(void)
|
||||
{
|
||||
LoadOam();
|
||||
ProcessSpriteCopyRequests();
|
||||
TransferPlttBuffer();
|
||||
}
|
||||
|
||||
bool8 sub_8146914(void)
|
||||
{
|
||||
bool8 val = FALSE;
|
||||
|
||||
if (gLinkPlayers[0].language == gLinkPlayers[1].language)
|
||||
val = TRUE;
|
||||
|
||||
return val;
|
||||
}
|
||||
|
||||
void CB2_InitMysteryEventMenu(void)
|
||||
{
|
||||
ResetSpriteData();
|
||||
FreeAllSpritePalettes();
|
||||
ResetTasks();
|
||||
SetVBlankCallback(VBlankCB);
|
||||
SetUpWindowConfig(&gWindowConfig_81E6CE4);
|
||||
InitMenuWindow(&gWindowConfig_81E6CE4);
|
||||
MenuZeroFillScreen();
|
||||
REG_DISPCNT = 320;
|
||||
REG_BLDCNT = 0;
|
||||
CreateTask(Task_DestroySelf, 0);
|
||||
StopMapMusic();
|
||||
RunTasks();
|
||||
AnimateSprites();
|
||||
BuildOamBuffer();
|
||||
UpdatePaletteFade();
|
||||
FillPalette(0, 0, 2);
|
||||
SetMainCallback2(sub_81469E4);
|
||||
}
|
||||
|
||||
bool8 sub_81469AC(u8 *dest, u32 a2)
|
||||
{
|
||||
bool8 retVal = 1;
|
||||
|
||||
if (a2 == 0)
|
||||
{
|
||||
StringCopy(dest, gSystemText_EventLoadSuccess);
|
||||
retVal = 0;
|
||||
}
|
||||
|
||||
if (a2 == 2)
|
||||
retVal = 0;
|
||||
|
||||
if (a2 == 1)
|
||||
StringCopy(dest, gSystemText_LoadingError);
|
||||
|
||||
return retVal;
|
||||
}
|
||||
|
||||
void sub_81469E4(void)
|
||||
{
|
||||
u16 unkVal;
|
||||
|
||||
switch (gMain.state)
|
||||
{
|
||||
case 0:
|
||||
MenuDrawTextWindow(0, 14, 29, 19);
|
||||
BeginNormalPaletteFade(0xFFFFFFFF, 0, 0x10, 0, 0);
|
||||
gMain.state++;
|
||||
break;
|
||||
case 1:
|
||||
if (gPaletteFade.active)
|
||||
break;
|
||||
sub_8072044(gSystemText_LinkStandby);
|
||||
gMain.state++;
|
||||
break;
|
||||
case 2:
|
||||
if (MenuUpdateWindowText())
|
||||
{
|
||||
gMain.state++;
|
||||
gLinkType = 21761;
|
||||
OpenLink();
|
||||
}
|
||||
break;
|
||||
case 3:
|
||||
if ((gLinkStatus & 0x20) && (gLinkStatus & 0x1C) > 4)
|
||||
{
|
||||
PlaySE(SE_PIN);
|
||||
sub_8072044(gSystemText_LoadEventPressA);
|
||||
gMain.state++;
|
||||
}
|
||||
if (gMain.newKeys & B_BUTTON)
|
||||
{
|
||||
PlaySE(SE_SELECT);
|
||||
CloseLink();
|
||||
gMain.state = 15;
|
||||
}
|
||||
break;
|
||||
case 4:
|
||||
if (MenuUpdateWindowText())
|
||||
gMain.state++;
|
||||
break;
|
||||
case 5:
|
||||
if (GetLinkPlayerCount_2() != 2)
|
||||
{
|
||||
goto label;
|
||||
}
|
||||
if (gMain.newKeys & A_BUTTON)
|
||||
{
|
||||
PlaySE(SE_SELECT);
|
||||
sub_8007F4C();
|
||||
MenuDrawTextWindow(6, 5, 23, 8);
|
||||
MenuPrint(gSystemText_LoadingEvent, 7, 6);
|
||||
gMain.state++;
|
||||
}
|
||||
else if (gMain.newKeys & B_BUTTON)
|
||||
{
|
||||
PlaySE(SE_SELECT);
|
||||
CloseLink();
|
||||
gMain.state = 15;
|
||||
}
|
||||
break;
|
||||
case 6:
|
||||
if (IsLinkConnectionEstablished())
|
||||
{
|
||||
register u8 *ptr asm("r0");
|
||||
register u32 offset1 asm("r2");
|
||||
register u32 offset2 asm("r1");
|
||||
|
||||
if (!gReceivedRemoteLinkPlayers)
|
||||
break;
|
||||
|
||||
if (GetLinkPlayerDataExchangeStatusTimed() == 3)
|
||||
{
|
||||
sub_800832C();
|
||||
MenuZeroFillWindowRect(6, 5, 23, 8);
|
||||
sub_81469AC(gStringVar4, 1);
|
||||
sub_8072044(gStringVar4);
|
||||
ptr = (u8 *)&gMain;
|
||||
offset1 = offsetof(struct Main, state);
|
||||
asm("" ::: "r1");
|
||||
ptr += offset1;
|
||||
*ptr = 13;
|
||||
}
|
||||
else if (sub_8146914())
|
||||
{
|
||||
register u8 *ptr2 asm("r1");
|
||||
register int offset3 asm("r0");
|
||||
register int dummy asm("r2");
|
||||
sub_8072044(gSystemText_DontCutLink);
|
||||
ptr2 = (u8 *)&gMain;
|
||||
offset3 = offsetof(struct Main, state);
|
||||
if (dummy)
|
||||
dummy++;
|
||||
ptr2 += offset3;
|
||||
(*ptr2)++;
|
||||
break;
|
||||
}
|
||||
else
|
||||
{
|
||||
CloseLink();
|
||||
MenuZeroFillWindowRect(6, 5, 23, 8);
|
||||
label:
|
||||
sub_81469AC(gStringVar4, 1);
|
||||
sub_8072044(gStringVar4);
|
||||
ptr = (u8 *)&gMain;
|
||||
offset2 = offsetof(struct Main, state);
|
||||
ptr += offset2;
|
||||
*ptr = 13;
|
||||
}
|
||||
break;
|
||||
}
|
||||
if (gMain.newKeys & B_BUTTON)
|
||||
{
|
||||
PlaySE(SE_SELECT);
|
||||
CloseLink();
|
||||
gMain.state = 15;
|
||||
break;
|
||||
}
|
||||
break;
|
||||
case 7:
|
||||
if (MenuUpdateWindowText())
|
||||
gMain.state++;
|
||||
break;
|
||||
case 8:
|
||||
if (GetBlockReceivedStatus())
|
||||
{
|
||||
ResetBlockReceivedFlags();
|
||||
gMain.state++;
|
||||
}
|
||||
break;
|
||||
case 9:
|
||||
gMain.state++;
|
||||
break;
|
||||
case 10:
|
||||
sub_800832C();
|
||||
gMain.state++;
|
||||
break;
|
||||
case 11:
|
||||
if (gReceivedRemoteLinkPlayers)
|
||||
break;
|
||||
unkVal = sub_812613C(unk_2000000);
|
||||
CpuFill32(0, unk_2000000, 0x7D4);
|
||||
if (!sub_81469AC(gStringVar4, unkVal))
|
||||
sub_8125D44(0);
|
||||
gMain.state++;
|
||||
break;
|
||||
case 12:
|
||||
sub_8072044(gStringVar4);
|
||||
gMain.state++;
|
||||
break;
|
||||
case 13:
|
||||
MenuZeroFillWindowRect(6, 5, 23, 8);
|
||||
if (MenuUpdateWindowText())
|
||||
{
|
||||
gMain.state++;
|
||||
gUnknown_02039338 = 0;
|
||||
}
|
||||
break;
|
||||
case 14:
|
||||
if (gMain.newKeys & A_BUTTON)
|
||||
{
|
||||
PlaySE(SE_SELECT);
|
||||
gMain.state++;
|
||||
}
|
||||
break;
|
||||
case 15:
|
||||
BeginNormalPaletteFade(0xFFFFFFFF, 0, 0, 0x10, 0);
|
||||
gMain.state++;
|
||||
break;
|
||||
case 16:
|
||||
if (!gPaletteFade.active)
|
||||
DoSoftReset();
|
||||
break;
|
||||
}
|
||||
|
||||
if (gLinkStatus & 0x40)
|
||||
{
|
||||
if (!IsLinkMaster())
|
||||
{
|
||||
CloseLink();
|
||||
MenuZeroFillWindowRect(6, 5, 23, 8);
|
||||
sub_81469AC(gStringVar4, 1);
|
||||
sub_8072044(gStringVar4);
|
||||
gMain.state = 13;
|
||||
}
|
||||
}
|
||||
|
||||
RunTasks();
|
||||
AnimateSprites();
|
||||
BuildOamBuffer();
|
||||
UpdatePaletteFade();
|
||||
}
|
Loading…
Reference in New Issue
Block a user