diff options
author | PikalaxALT <pikalaxalt@gmail.com> | 2020-01-24 13:07:41 -0500 |
---|---|---|
committer | PikalaxALT <pikalaxalt@gmail.com> | 2020-01-24 13:07:41 -0500 |
commit | 14b7ed7a5f21e2a0c81373f6861ebd0d4c6eb78c (patch) | |
tree | 138fd81d99292ac192f5d83da913a411efc9f25e | |
parent | 4ff5769f4286212d6ca50f82647cdd3849e1a361 (diff) |
through sub_8128FB8
-rw-r--r-- | asm/union_room_chat.s | 1140 | ||||
-rw-r--r-- | data/data_8479668.s | 60 | ||||
-rw-r--r-- | data/union_room_chat.s | 60 | ||||
-rw-r--r-- | include/data_8479668.h | 35 | ||||
-rw-r--r-- | include/link_rfu.h | 1 | ||||
-rw-r--r-- | src/union_room_chat.c | 457 |
6 files changed, 550 insertions, 1203 deletions
diff --git a/asm/union_room_chat.s b/asm/union_room_chat.s index 6f68a333f..47512f4c2 100644 --- a/asm/union_room_chat.s +++ b/asm/union_room_chat.s @@ -5,1146 +5,6 @@ .text - thumb_func_start sub_81288D4 -sub_81288D4: @ 81288D4 - push {r4,lr} - ldr r0, _081288EC @ =gUnknown_203B0E0 - ldr r0, [r0] - ldrh r0, [r0, 0x6] - cmp r0, 0xA - bls _081288E2 - b _08128A94 -_081288E2: - lsls r0, 2 - ldr r1, _081288F0 @ =_081288F4 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_081288EC: .4byte gUnknown_203B0E0 -_081288F0: .4byte _081288F4 - .align 2, 0 -_081288F4: - .4byte _08128920 - .4byte _08128938 - .4byte _08128954 - .4byte _0812899C - .4byte _08128A44 - .4byte _08128A86 - .4byte _08128A94 - .4byte _08128A94 - .4byte _081289F0 - .4byte _081289B0 - .4byte _081289D4 -_08128920: - movs r0, 0x6 - movs r1, 0 - bl sub_8129C34 - ldr r0, _08128934 @ =gUnknown_203B0E0 - ldr r1, [r0] - movs r0, 0x1 - strh r0, [r1, 0x6] - b _08128A94 - .align 2, 0 -_08128934: .4byte gUnknown_203B0E0 -_08128938: - movs r0, 0 - bl sub_8129C8C - lsls r0, 24 - cmp r0, 0 - beq _08128946 - b _08128A94 -_08128946: - ldr r0, _08128950 @ =gUnknown_203B0E0 - ldr r1, [r0] - movs r0, 0x2 - strh r0, [r1, 0x6] - b _08128A94 - .align 2, 0 -_08128950: .4byte gUnknown_203B0E0 -_08128954: - bl sub_812A568 - lsls r0, 24 - asrs r1, r0, 24 - cmp r1, 0 - beq _08128966 - cmp r1, 0 - ble _08128A00 - b _08128A0A -_08128966: - ldr r4, _0812898C @ =gUnknown_203B0E0 - ldr r1, [r4] - ldrb r0, [r1, 0x13] - cmp r0, 0 - bne _08128990 - movs r2, 0xC8 - lsls r2, 1 - adds r0, r1, r2 - bl sub_8129614 - movs r0, 0x7 - movs r1, 0 - bl sub_8129C34 - ldr r1, [r4] - movs r0, 0x9 - strh r0, [r1, 0x6] - b _08128A94 - .align 2, 0 -_0812898C: .4byte gUnknown_203B0E0 -_08128990: - movs r2, 0xC8 - lsls r2, 1 - adds r0, r1, r2 - bl sub_81295C0 - b _08128A36 -_0812899C: - movs r0, 0 - bl sub_8129C8C - lsls r0, 24 - cmp r0, 0 - bne _08128A94 - movs r0, 0x1 - bl sub_8129218 - b _08128A94 -_081289B0: - movs r0, 0 - bl sub_8129C8C - lsls r0, 24 - cmp r0, 0 - bne _08128A94 - movs r0, 0x14 - movs r1, 0 - bl sub_8129C34 - ldr r0, _081289D0 @ =gUnknown_203B0E0 - ldr r1, [r0] - movs r0, 0xA - strh r0, [r1, 0x6] - b _08128A94 - .align 2, 0 -_081289D0: .4byte gUnknown_203B0E0 -_081289D4: - movs r0, 0 - bl sub_8129C8C - lsls r0, 24 - cmp r0, 0 - bne _08128A94 - ldr r0, _081289EC @ =gUnknown_203B0E0 - ldr r1, [r0] - movs r0, 0x8 - strh r0, [r1, 0x6] - b _08128A94 - .align 2, 0 -_081289EC: .4byte gUnknown_203B0E0 -_081289F0: - bl sub_812A568 - lsls r0, 24 - asrs r1, r0, 24 - cmp r1, 0 - beq _08128A24 - cmp r1, 0 - bgt _08128A0A -_08128A00: - movs r0, 0x1 - negs r0, r0 - cmp r1, r0 - beq _08128A0E - b _08128A94 -_08128A0A: - cmp r1, 0x1 - bne _08128A94 -_08128A0E: - movs r0, 0x7 - movs r1, 0 - bl sub_8129C34 - ldr r0, _08128A20 @ =gUnknown_203B0E0 - ldr r1, [r0] - movs r0, 0x3 - strh r0, [r1, 0x6] - b _08128A94 - .align 2, 0 -_08128A20: .4byte gUnknown_203B0E0 -_08128A24: - bl sub_80FA4A8 - ldr r4, _08128A40 @ =gUnknown_203B0E0 - ldr r0, [r4] - movs r1, 0xC8 - lsls r1, 1 - adds r0, r1 - bl sub_8129614 -_08128A36: - ldr r1, [r4] - movs r0, 0x4 - strh r0, [r1, 0x6] - b _08128A94 - .align 2, 0 -_08128A40: .4byte gUnknown_203B0E0 -_08128A44: - bl IsLinkTaskFinished - lsls r0, 24 - cmp r0, 0 - beq _08128A94 - bl sub_80FBA1C - cmp r0, 0 - bne _08128A94 - ldr r4, _08128A7C @ =gUnknown_203B0E0 - ldr r1, [r4] - movs r2, 0xC8 - lsls r2, 1 - adds r1, r2 - movs r0, 0 - movs r2, 0x28 - bl SendBlock - lsls r0, 24 - cmp r0, 0 - beq _08128A94 - ldr r1, [r4] - ldrb r0, [r1, 0x13] - cmp r0, 0 - bne _08128A80 - movs r0, 0x6 - strh r0, [r1, 0x6] - b _08128A94 - .align 2, 0 -_08128A7C: .4byte gUnknown_203B0E0 -_08128A80: - movs r0, 0x5 - strh r0, [r1, 0x6] - b _08128A94 -_08128A86: - ldr r0, _08128A9C @ =gReceivedRemoteLinkPlayers - ldrb r0, [r0] - cmp r0, 0 - bne _08128A94 - movs r0, 0x9 - bl sub_8129218 -_08128A94: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08128A9C: .4byte gReceivedRemoteLinkPlayers - thumb_func_end sub_81288D4 - - thumb_func_start sub_8128AA0 -sub_8128AA0: @ 8128AA0 - push {r4,lr} - ldr r1, _08128ABC @ =gUnknown_203B0E0 - ldr r0, [r1] - ldrh r0, [r0, 0x6] - adds r2, r1, 0 - cmp r0, 0x7 - bls _08128AB0 - b _08128BFC -_08128AB0: - lsls r0, 2 - ldr r1, _08128AC0 @ =_08128AC4 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_08128ABC: .4byte gUnknown_203B0E0 -_08128AC0: .4byte _08128AC4 - .align 2, 0 -_08128AC4: - .4byte _08128AE4 - .4byte _08128B08 - .4byte _08128B28 - .4byte _08128B4C - .4byte _08128B80 - .4byte _08128BA0 - .4byte _08128BC4 - .4byte _08128BE8 -_08128AE4: - ldr r0, _08128B00 @ =sub_81298F8 - bl FuncIsActiveTask - lsls r0, 24 - cmp r0, 0 - beq _08128AF2 - b _08128BFC -_08128AF2: - movs r0, 0x7 - movs r1, 0 - bl sub_8129C34 - ldr r0, _08128B04 @ =gUnknown_203B0E0 - ldr r1, [r0] - b _08128BDA - .align 2, 0 -_08128B00: .4byte sub_81298F8 -_08128B04: .4byte gUnknown_203B0E0 -_08128B08: - movs r0, 0 - bl sub_8129C8C - lsls r0, 24 - cmp r0, 0 - bne _08128BFC - movs r0, 0x12 - movs r1, 0 - bl sub_8129C34 - ldr r0, _08128B24 @ =gUnknown_203B0E0 - ldr r1, [r0] - b _08128BDA - .align 2, 0 -_08128B24: .4byte gUnknown_203B0E0 -_08128B28: - movs r0, 0 - bl sub_8129C8C - lsls r0, 24 - cmp r0, 0 - bne _08128BFC - ldr r4, _08128B48 @ =gUnknown_203B0E0 - ldr r0, [r4] - movs r1, 0xC8 - lsls r1, 1 - adds r0, r1 - bl sub_81295EC - ldr r1, [r4] - b _08128BDA - .align 2, 0 -_08128B48: .4byte gUnknown_203B0E0 -_08128B4C: - bl IsLinkTaskFinished - lsls r0, 24 - cmp r0, 0 - beq _08128BFC - bl sub_80FBA1C - cmp r0, 0 - bne _08128BFC - ldr r4, _08128B7C @ =gUnknown_203B0E0 - ldr r1, [r4] - movs r0, 0xC8 - lsls r0, 1 - adds r1, r0 - movs r0, 0 - movs r2, 0x28 - bl SendBlock - lsls r0, 24 - cmp r0, 0 - beq _08128BFC - ldr r1, [r4] - b _08128BDA - .align 2, 0 -_08128B7C: .4byte gUnknown_203B0E0 -_08128B80: - bl GetBlockReceivedStatus - movs r1, 0x1 - ands r1, r0 - cmp r1, 0 - beq _08128BFC - bl sub_80FBA1C - cmp r0, 0 - bne _08128BFC - ldr r0, _08128B9C @ =gUnknown_203B0E0 - ldr r1, [r0] - b _08128BDA - .align 2, 0 -_08128B9C: .4byte gUnknown_203B0E0 -_08128BA0: - bl IsLinkTaskFinished - lsls r0, 24 - cmp r0, 0 - beq _08128BFC - bl sub_80FBA1C - adds r4, r0, 0 - cmp r4, 0 - bne _08128BFC - bl sub_800AAC0 - ldr r0, _08128BC0 @ =gUnknown_203B0E0 - ldr r1, [r0] - strh r4, [r1, 0xA] - b _08128BDA - .align 2, 0 -_08128BC0: .4byte gUnknown_203B0E0 -_08128BC4: - ldr r1, [r2] - ldrh r0, [r1, 0xA] - cmp r0, 0x95 - bhi _08128BD0 - adds r0, 0x1 - strh r0, [r1, 0xA] -_08128BD0: - ldr r0, _08128BE4 @ =gReceivedRemoteLinkPlayers - ldrb r0, [r0] - cmp r0, 0 - bne _08128BFC - ldr r1, [r2] -_08128BDA: - ldrh r0, [r1, 0x6] - adds r0, 0x1 - strh r0, [r1, 0x6] - b _08128BFC - .align 2, 0 -_08128BE4: .4byte gReceivedRemoteLinkPlayers -_08128BE8: - ldr r1, [r2] - ldrh r0, [r1, 0xA] - cmp r0, 0x95 - bls _08128BF8 - movs r0, 0x9 - bl sub_8129218 - b _08128BFC -_08128BF8: - adds r0, 0x1 - strh r0, [r1, 0xA] -_08128BFC: - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_8128AA0 - - thumb_func_start sub_8128C04 -sub_8128C04: @ 8128C04 - push {r4,r5,lr} - ldr r5, _08128C1C @ =gUnknown_203B0E0 - ldr r1, [r5] - ldrh r0, [r1, 0x6] - cmp r0, 0x1 - beq _08128C44 - cmp r0, 0x1 - bgt _08128C20 - cmp r0, 0 - beq _08128C2A - b _08128CA2 - .align 2, 0 -_08128C1C: .4byte gUnknown_203B0E0 -_08128C20: - cmp r0, 0x2 - beq _08128C6E - cmp r0, 0x3 - beq _08128C90 - b _08128CA2 -_08128C2A: - ldr r0, _08128C40 @ =sub_81298F8 - bl FuncIsActiveTask - lsls r0, 24 - cmp r0, 0 - bne _08128CA2 - movs r0, 0x7 - movs r1, 0 - bl sub_8129C34 - b _08128C80 - .align 2, 0 -_08128C40: .4byte sub_81298F8 -_08128C44: - movs r0, 0 - bl sub_8129C8C - lsls r0, 24 - cmp r0, 0 - bne _08128CA2 - bl IsLinkTaskFinished - lsls r0, 24 - cmp r0, 0 - beq _08128CA2 - bl sub_80FBA1C - adds r4, r0, 0 - cmp r4, 0 - bne _08128CA2 - bl sub_800AAC0 - ldr r1, [r5] - strh r4, [r1, 0xA] - b _08128C82 -_08128C6E: - ldrh r0, [r1, 0xA] - cmp r0, 0x95 - bhi _08128C78 - adds r0, 0x1 - strh r0, [r1, 0xA] -_08128C78: - ldr r0, _08128C8C @ =gReceivedRemoteLinkPlayers - ldrb r0, [r0] - cmp r0, 0 - bne _08128CA2 -_08128C80: - ldr r1, [r5] -_08128C82: - ldrh r0, [r1, 0x6] - adds r0, 0x1 - strh r0, [r1, 0x6] - b _08128CA2 - .align 2, 0 -_08128C8C: .4byte gReceivedRemoteLinkPlayers -_08128C90: - ldrh r0, [r1, 0xA] - cmp r0, 0x95 - bls _08128C9E - movs r0, 0x9 - bl sub_8129218 - b _08128CA2 -_08128C9E: - adds r0, 0x1 - strh r0, [r1, 0xA] -_08128CA2: - pop {r4,r5} - pop {r0} - bx r0 - thumb_func_end sub_8128C04 - - thumb_func_start sub_8128CA8 -sub_8128CA8: @ 8128CA8 - push {r4,lr} - ldr r1, _08128CC0 @ =gUnknown_203B0E0 - ldr r0, [r1] - ldrh r0, [r0, 0x6] - adds r2, r1, 0 - cmp r0, 0x4 - bhi _08128D9C - lsls r0, 2 - ldr r1, _08128CC4 @ =_08128CC8 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_08128CC0: .4byte gUnknown_203B0E0 -_08128CC4: .4byte _08128CC8 - .align 2, 0 -_08128CC8: - .4byte _08128CDC - .4byte _08128D08 - .4byte _08128D30 - .4byte _08128D64 - .4byte _08128D88 -_08128CDC: - ldr r0, _08128D00 @ =sub_81298F8 - bl FuncIsActiveTask - lsls r0, 24 - cmp r0, 0 - bne _08128D9C - ldr r4, _08128D04 @ =gUnknown_203B0E0 - ldr r0, [r4] - ldrb r0, [r0, 0x13] - cmp r0, 0 - beq _08128CFA - movs r0, 0x7 - movs r1, 0 - bl sub_8129C34 -_08128CFA: - ldr r1, [r4] - b _08128D7A - .align 2, 0 -_08128D00: .4byte sub_81298F8 -_08128D04: .4byte gUnknown_203B0E0 -_08128D08: - movs r0, 0 - bl sub_8129C8C - lsls r0, 24 - cmp r0, 0 - bne _08128D9C - ldr r4, _08128D2C @ =gUnknown_203B0E0 - ldr r0, [r4] - ldrb r0, [r0, 0x13] - cmp r0, 0 - beq _08128D26 - movs r0, 0x13 - movs r1, 0 - bl sub_8129C34 -_08128D26: - ldr r1, [r4] - b _08128D7A - .align 2, 0 -_08128D2C: .4byte gUnknown_203B0E0 -_08128D30: - movs r0, 0 - bl sub_8129C8C - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - beq _08128D9C - bl IsLinkTaskFinished - lsls r0, 24 - cmp r0, 0 - beq _08128D9C - bl sub_80FBA1C - adds r4, r0, 0 - cmp r4, 0 - bne _08128D9C - bl sub_800AAC0 - ldr r0, _08128D60 @ =gUnknown_203B0E0 - ldr r1, [r0] - strh r4, [r1, 0xA] - b _08128D7A - .align 2, 0 -_08128D60: .4byte gUnknown_203B0E0 -_08128D64: - ldr r1, [r2] - ldrh r0, [r1, 0xA] - cmp r0, 0x95 - bhi _08128D70 - adds r0, 0x1 - strh r0, [r1, 0xA] -_08128D70: - ldr r0, _08128D84 @ =gReceivedRemoteLinkPlayers - ldrb r0, [r0] - cmp r0, 0 - bne _08128D9C - ldr r1, [r2] -_08128D7A: - ldrh r0, [r1, 0x6] - adds r0, 0x1 - strh r0, [r1, 0x6] - b _08128D9C - .align 2, 0 -_08128D84: .4byte gReceivedRemoteLinkPlayers -_08128D88: - ldr r1, [r2] - ldrh r0, [r1, 0xA] - cmp r0, 0x95 - bls _08128D98 - movs r0, 0x9 - bl sub_8129218 - b _08128D9C -_08128D98: - adds r0, 0x1 - strh r0, [r1, 0xA] -_08128D9C: - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_8128CA8 - - thumb_func_start sub_8128DA4 -sub_8128DA4: @ 8128DA4 - push {r4,lr} - ldr r1, _08128DBC @ =gUnknown_203B0E0 - ldr r0, [r1] - ldrh r0, [r0, 0x6] - adds r4, r1, 0 - cmp r0, 0x4 - bhi _08128E70 - lsls r0, 2 - ldr r1, _08128DC0 @ =_08128DC4 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_08128DBC: .4byte gUnknown_203B0E0 -_08128DC0: .4byte _08128DC4 - .align 2, 0 -_08128DC4: - .4byte _08128DD8 - .4byte _08128E00 - .4byte _08128E34 - .4byte _08128E42 - .4byte _08128E60 -_08128DD8: - ldr r0, _08128DE8 @ =gReceivedRemoteLinkPlayers - ldrb r0, [r0] - cmp r0, 0 - bne _08128DEC - movs r0, 0x1 - bl sub_8129218 - b _08128E70 - .align 2, 0 -_08128DE8: .4byte gReceivedRemoteLinkPlayers -_08128DEC: - ldr r0, [r4] - movs r1, 0xC8 - lsls r1, 1 - adds r0, r1 - bl sub_8129590 - ldr r1, [r4] - ldrh r0, [r1, 0x6] - adds r0, 0x1 - strh r0, [r1, 0x6] -_08128E00: - bl IsLinkTaskFinished - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bne _08128E70 - bl sub_80FBA1C - cmp r0, 0 - bne _08128E70 - ldr r4, _08128E30 @ =gUnknown_203B0E0 - ldr r1, [r4] - movs r0, 0xC8 - lsls r0, 1 - adds r1, r0 - movs r0, 0 - movs r2, 0x28 - bl SendBlock - lsls r0, 24 - cmp r0, 0 - beq _08128E70 - ldr r1, [r4] - b _08128E52 - .align 2, 0 -_08128E30: .4byte gUnknown_203B0E0 -_08128E34: - bl sub_8129454 - movs r0, 0x8 - movs r1, 0 - bl sub_8129C34 - b _08128E4E -_08128E42: - movs r0, 0 - bl sub_8129C8C - lsls r0, 24 - cmp r0, 0 - bne _08128E70 -_08128E4E: - ldr r0, _08128E5C @ =gUnknown_203B0E0 - ldr r1, [r0] -_08128E52: - ldrh r0, [r1, 0x6] - adds r0, 0x1 - strh r0, [r1, 0x6] - b _08128E70 - .align 2, 0 -_08128E5C: .4byte gUnknown_203B0E0 -_08128E60: - bl IsLinkTaskFinished - lsls r0, 24 - cmp r0, 0 - beq _08128E70 - movs r0, 0x1 - bl sub_8129218 -_08128E70: - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_8128DA4 - - thumb_func_start sub_8128E78 -sub_8128E78: @ 8128E78 - push {r4,lr} - ldr r0, _08128E90 @ =gUnknown_203B0E0 - ldr r0, [r0] - ldrh r0, [r0, 0x6] - cmp r0, 0x6 - bls _08128E86 - b _08128FA8 -_08128E86: - lsls r0, 2 - ldr r1, _08128E94 @ =_08128E98 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_08128E90: .4byte gUnknown_203B0E0 -_08128E94: .4byte _08128E98 - .align 2, 0 -_08128E98: - .4byte _08128EB4 - .4byte _08128EE4 - .4byte _08128F38 - .4byte _08128F50 - .4byte _08128F60 - .4byte _08128F74 - .4byte _08128F8C -_08128EB4: - bl sub_8129408 - cmp r0, 0 - beq _08128ED0 - movs r0, 0x9 - movs r1, 0 - bl sub_8129C34 - ldr r0, _08128ECC @ =gUnknown_203B0E0 - ldr r1, [r0] - movs r0, 0x2 - b _08128FA6 - .align 2, 0 -_08128ECC: .4byte gUnknown_203B0E0 -_08128ED0: - movs r0, 0xD - movs r1, 0 - bl sub_8129C34 - ldr r0, _08128EE0 @ =gUnknown_203B0E0 - ldr r1, [r0] - movs r0, 0x5 - b _08128FA6 - .align 2, 0 -_08128EE0: .4byte gUnknown_203B0E0 -_08128EE4: - ldr r0, _08128F04 @ =gMain - ldrh r1, [r0, 0x2E] - movs r0, 0x1 - ands r0, r1 - cmp r0, 0 - beq _08128F0C - bl sub_8129424 - movs r0, 0xB - movs r1, 0 - bl sub_8129C34 - ldr r0, _08128F08 @ =gUnknown_203B0E0 - ldr r1, [r0] - movs r0, 0x3 - b _08128FA6 - .align 2, 0 -_08128F04: .4byte gMain -_08128F08: .4byte gUnknown_203B0E0 -_08128F0C: - movs r4, 0x2 - adds r0, r4, 0 - ands r0, r1 - cmp r0, 0 - beq _08128F1A - movs r0, 0xA - b _08128F9A -_08128F1A: - bl sub_8129228 - cmp r0, 0 - beq _08128FA8 - movs r0, 0x1 - movs r1, 0 - bl sub_8129C34 - ldr r0, _08128F34 @ =gUnknown_203B0E0 - ldr r0, [r0] - strh r4, [r0, 0x6] - b _08128FA8 - .align 2, 0 -_08128F34: .4byte gUnknown_203B0E0 -_08128F38: - movs r0, 0 - bl sub_8129C8C - lsls r0, 24 - cmp r0, 0 - bne _08128FA8 - ldr r0, _08128F4C @ =gUnknown_203B0E0 - ldr r1, [r0] - movs r0, 0x1 - b _08128FA6 - .align 2, 0 -_08128F4C: .4byte gUnknown_203B0E0 -_08128F50: - movs r0, 0 - bl sub_8129C8C - lsls r0, 24 - cmp r0, 0 - bne _08128FA8 - movs r0, 0xA - b _08128F9A -_08128F60: - movs r0, 0 - bl sub_8129C8C - lsls r0, 24 - cmp r0, 0 - bne _08128FA8 - movs r0, 0x1 - bl sub_8129218 - b _08128FA8 -_08128F74: - movs r0, 0 - bl sub_8129C8C - lsls r0, 24 - cmp r0, 0 - bne _08128FA8 - ldr r0, _08128F88 @ =gUnknown_203B0E0 - ldr r1, [r0] - movs r0, 0x6 - b _08128FA6 - .align 2, 0 -_08128F88: .4byte gUnknown_203B0E0 -_08128F8C: - ldr r0, _08128FB0 @ =gMain - ldrh r1, [r0, 0x2E] - movs r0, 0x3 - ands r0, r1 - cmp r0, 0 - beq _08128FA8 - movs r0, 0x7 -_08128F9A: - movs r1, 0 - bl sub_8129C34 - ldr r0, _08128FB4 @ =gUnknown_203B0E0 - ldr r1, [r0] - movs r0, 0x4 -_08128FA6: - strh r0, [r1, 0x6] -_08128FA8: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08128FB0: .4byte gMain -_08128FB4: .4byte gUnknown_203B0E0 - thumb_func_end sub_8128E78 - - thumb_func_start sub_8128FB8 -sub_8128FB8: @ 8128FB8 - push {r4,lr} - sub sp, 0x4 - ldr r1, _08128FD4 @ =gUnknown_203B0E0 - ldr r0, [r1] - ldrh r0, [r0, 0x6] - adds r4, r1, 0 - cmp r0, 0xD - bls _08128FCA - b _08129206 -_08128FCA: - lsls r0, 2 - ldr r1, _08128FD8 @ =_08128FDC - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_08128FD4: .4byte gUnknown_203B0E0 -_08128FD8: .4byte _08128FDC - .align 2, 0 -_08128FDC: - .4byte _08129014 - .4byte _0812902E - .4byte _08129054 - .4byte _08129098 - .4byte _081290BC - .4byte _081290D8 - .4byte _0812911C - .4byte _08129144 - .4byte _08129168 - .4byte _08129180 - .4byte _081291A4 - .4byte _081291B2 - .4byte _081291C8 - .4byte _081291E8 -_08129014: - ldr r1, [r4] - ldrb r0, [r1, 0x18] - cmp r0, 0 - bne _0812901E - b _081291C2 -_0812901E: - movs r0, 0x7 - movs r1, 0 - bl sub_8129C34 - ldr r1, [r4] - movs r0, 0x1 - strh r0, [r1, 0x6] - b _08129206 -_0812902E: - movs r0, 0 - bl sub_8129C8C - lsls r0, 24 - cmp r0, 0 - beq _0812903C - b _08129206 -_0812903C: - movs r0, 0xE - movs r1, 0 - bl sub_8129C34 - ldr r0, _08129050 @ =gUnknown_203B0E0 - ldr r1, [r0] - movs r0, 0x2 - strh r0, [r1, 0x6] - b _08129206 - .align 2, 0 -_08129050: .4byte gUnknown_203B0E0 -_08129054: - bl sub_812A568 - lsls r0, 24 - asrs r1, r0, 24 - cmp r1, 0 - beq _08129080 - cmp r1, 0 - bgt _0812906E - movs r0, 0x1 - negs r0, r0 - cmp r1, r0 - beq _08129074 - b _08129206 -_0812906E: - cmp r1, 0x1 - beq _08129074 - b _08129206 -_08129074: - ldr r0, _0812907C @ =gUnknown_203B0E0 - ldr r1, [r0] - b _081291C2 - .align 2, 0 -_0812907C: .4byte gUnknown_203B0E0 -_08129080: - movs r0, 0x7 - movs r1, 0 - bl sub_8129C34 - ldr r0, _08129094 @ =gUnknown_203B0E0 - ldr r1, [r0] - movs r0, 0x3 - strh r0, [r1, 0x6] - b _08129206 - .align 2, 0 -_08129094: .4byte gUnknown_203B0E0 -_08129098: - movs r0, 0 - bl sub_8129C8C - lsls r0, 24 - cmp r0, 0 - beq _081290A6 - b _08129206 -_081290A6: - movs r0, 0xF - movs r1, 0 - bl sub_8129C34 - ldr r0, _081290B8 @ =gUnknown_203B0E0 - ldr r1, [r0] - movs r0, 0x4 - strh r0, [r1, 0x6] - b _08129206 - .align 2, 0 -_081290B8: .4byte gUnknown_203B0E0 -_081290BC: - movs r0, 0 - bl sub_8129C8C - lsls r0, 24 - cmp r0, 0 - beq _081290CA - b _08129206 -_081290CA: - ldr r0, _081290D4 @ =gUnknown_203B0E0 - ldr r1, [r0] - movs r0, 0x5 - strh r0, [r1, 0x6] - b _08129206 - .align 2, 0 -_081290D4: .4byte gUnknown_203B0E0 -_081290D8: - bl sub_812A568 - lsls r0, 24 - asrs r1, r0, 24 - cmp r1, 0 - beq _08129104 - cmp r1, 0 - bgt _081290F2 - movs r0, 0x1 - negs r0, r0 - cmp r1, r0 - beq _081290F8 - b _08129206 -_081290F2: - cmp r1, 0x1 - beq _081290F8 - b _08129206 -_081290F8: - ldr r0, _08129100 @ =gUnknown_203B0E0 - ldr r1, [r0] - b _081291C2 - .align 2, 0 -_08129100: .4byte gUnknown_203B0E0 -_08129104: - movs r0, 0x7 - movs r1, 0 - bl sub_8129C34 - ldr r0, _08129118 @ =gUnknown_203B0E0 - ldr r1, [r0] - movs r0, 0x6 - strh r0, [r1, 0x6] - b _08129206 - .align 2, 0 -_08129118: .4byte gUnknown_203B0E0 -_0812911C: - movs r0, 0 - bl sub_8129C8C - lsls r0, 24 - cmp r0, 0 - bne _08129206 - movs r0, 0x10 - movs r1, 0 - bl sub_8129C34 - bl sub_8129470 - ldr r0, _08129140 @ =gUnknown_203B0E0 - ldr r1, [r0] - movs r0, 0x7 - strh r0, [r1, 0x6] - b _08129206 - .align 2, 0 -_08129140: .4byte gUnknown_203B0E0 -_08129144: - movs r0, 0 - bl sub_8129C8C - lsls r0, 24 - cmp r0, 0 - bne _08129206 - bl SetContinueGameWarpStatusToDynamicWarp - movs r0, 0 - bl TrySavingData - ldr r0, _08129164 @ =gUnknown_203B0E0 - ldr r1, [r0] - movs r0, 0x8 - strh r0, [r1, 0x6] - b _08129206 - .align 2, 0 -_08129164: .4byte gUnknown_203B0E0 -_08129168: - movs r0, 0x11 - movs r1, 0 - bl sub_8129C34 - ldr r0, _0812917C @ =gUnknown_203B0E0 - ldr r1, [r0] - movs r0, 0x9 - strh r0, [r1, 0x6] - b _08129206 - .align 2, 0 -_0812917C: .4byte gUnknown_203B0E0 -_08129180: - movs r0, 0 - bl sub_8129C8C - lsls r0, 24 - cmp r0, 0 - bne _08129206 - movs r0, 0x30 - bl PlaySE - bl ClearContinueGameWarpStatus2 - ldr r0, _081291A0 @ =gUnknown_203B0E0 - ldr r1, [r0] - movs r0, 0xA - strh r0, [r1, 0x6] - b _08129206 - .align 2, 0 -_081291A0: .4byte gUnknown_203B0E0 -_081291A4: - ldr r1, [r4] - movs r0, 0 - strb r0, [r1, 0x19] - ldr r1, [r4] - movs r0, 0xB - strh r0, [r1, 0x6] - b _08129206 -_081291B2: - ldr r0, [r4] - ldrb r1, [r0, 0x19] - adds r1, 0x1 - strb r1, [r0, 0x19] - ldr r1, [r4] - ldrb r0, [r1, 0x19] - cmp r0, 0x78 - bls _08129206 -_081291C2: - movs r0, 0xC - strh r0, [r1, 0x6] - b _08129206 -_081291C8: - movs r1, 0x1 - negs r1, r1 - movs r0, 0 - str r0, [sp] - adds r0, r1, 0 - movs r2, 0 - movs r3, 0x10 - bl BeginNormalPaletteFade - ldr r0, _081291E4 @ =gUnknown_203B0E0 - ldr r1, [r0] - movs r0, 0xD - strh r0, [r1, 0x6] - b _08129206 - .align 2, 0 -_081291E4: .4byte gUnknown_203B0E0 -_081291E8: - ldr r0, _08129210 @ =gPaletteFade - ldrb r1, [r0, 0x7] - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - bne _08129206 - bl sub_812B4B8 - bl sub_8129B88 - bl sub_81284BC - ldr r0, _08129214 @ =CB2_ReturnToField - bl SetMainCallback2 -_08129206: - add sp, 0x4 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08129210: .4byte gPaletteFade -_08129214: .4byte CB2_ReturnToField - thumb_func_end sub_8128FB8 - thumb_func_start sub_8129218 sub_8129218: @ 8129218 ldr r1, _08129224 @ =gUnknown_203B0E0 diff --git a/data/data_8479668.s b/data/data_8479668.s index 8527b4f09..393a5cc44 100644 --- a/data/data_8479668.s +++ b/data/data_8479668.s @@ -75,64 +75,64 @@ gUnknown_847AA8F:: gUnknown_847AAA8:: .string "{CLEAR 11}…{CLEAR 16}“{CLEAR 16}”{CLEAR 18}‘{CLEAR 18}'{CLEAR 18} $" -gUnknown_847AAC1:: +gText_UnionRoomChatKeyboard_ABCDE:: .string "ABCDE$" -gUnknown_847AAC7:: +gText_UnionRoomChatKeyboard_FGHIJ:: .string "FGHIJ$" -gUnknown_847AACD:: +gText_UnionRoomChatKeyboard_KLMNO:: .string "KLMNO$" -gUnknown_847AAD3:: +gText_UnionRoomChatKeyboard_PQRST:: .string "PQRST$" -gUnknown_847AAD9:: +gText_UnionRoomChatKeyboard_UVWXY:: .string "UVWXY$" -gUnknown_847AADF:: +gText_UnionRoomChatKeyboard_Z:: .string "Z $" -gUnknown_847AAE5:: +gText_UnionRoomChatKeyboard_01234Upper:: .string "01234$" -gUnknown_847AAEB:: +gText_UnionRoomChatKeyboard_56789Upper:: .string "56789$" -gUnknown_847AAF1:: +gText_UnionRoomChatKeyboard_PunctuationUpper:: .string ".,!? $" -gUnknown_847AAF7:: +gText_UnionRoomChatKeyboard_SymbolsUpper:: .string "-/&… $" -gUnknown_847AAFD:: +gText_UnionRoomChatKeyboard_abcde:: .string "abcde$" -gUnknown_847AB03:: +gText_UnionRoomChatKeyboard_fghij:: .string "fghij$" -gUnknown_847AB09:: +gText_UnionRoomChatKeyboard_klmno:: .string "klmno$" -gUnknown_847AB0F:: +gText_UnionRoomChatKeyboard_pqrst:: .string "pqrst$" -gUnknown_847AB15:: +gText_UnionRoomChatKeyboard_uvwxy:: .string "uvwxy$" -gUnknown_847AB1B:: +gText_UnionRoomChatKeyboard_z:: .string "z $" -gUnknown_847AB21:: +gText_UnionRoomChatKeyboard_01234Lower:: .string "01234$" -gUnknown_847AB27:: +gText_UnionRoomChatKeyboard_56789Lower:: .string "56789$" -gUnknown_847AB2D:: +gText_UnionRoomChatKeyboard_PunctuationLower:: .string ".,!? $" -gUnknown_847AB33:: +gText_UnionRoomChatKeyboard_SymbolsLower:: .string "-/&… $" .string "$" @@ -144,34 +144,34 @@ gUnknown_847AB33:: .string "$" .string "$" -gUnknown_847AB41:: +gText_UnionRoomChatKeyboard_Emoji1:: .string "{EXTRA 245}{EXTRA 246}{EXTRA 247}{EXTRA 248}{EXTRA 254}$" -gUnknown_847AB4C:: +gText_UnionRoomChatKeyboard_Emoji2:: .string "{EXTRA 249}{EXTRA 250}{EXTRA 252}{EXTRA 251}{EXTRA 253}$" -gUnknown_847AB57:: +gText_UnionRoomChatKeyboard_Emoji3:: .string "{EXTRA 236}{EXTRA 237}{EXTRA 238}{EXTRA 235}{EXTRA 234}$" -gUnknown_847AB62:: +gText_UnionRoomChatKeyboard_Emoji4:: .string "♂♀{EXTRA 212}{EXTRA 213}{EXTRA 211}$" -gUnknown_847AB6B:: +gText_UnionRoomChatKeyboard_Emoji5:: .string "{EXTRA 216}{EXTRA 217}{EXTRA 242}{EXTRA 243}{EXTRA 244}$" -gUnknown_847AB76:: +gText_UnionRoomChatKeyboard_Emoji6:: .string "{EXTRA 218}{EXTRA 241}{EXTRA 224}{EXTRA 226}{EXTRA 227}$" -gUnknown_847AB81:: +gText_UnionRoomChatKeyboard_Emoji7:: .string "{EXTRA 240}{EXTRA 239}{EXTRA 225}{EXTRA 214}{EXTRA 215}$" -gUnknown_847AB8C:: +gText_UnionRoomChatKeyboard_Emoji8:: .string "{EXTRA 228}{EXTRA 229}{EXTRA 230}{EXTRA 231}{EXTRA 232}$" -gUnknown_847AB97:: +gText_UnionRoomChatKeyboard_Emoji9:: .string "{EXTRA 233}{EXTRA 220}{EXTRA 221}{EXTRA 222}{EXTRA 209}$" -gUnknown_847ABA2:: +gText_UnionRoomChatKeyboard_Emoji10:: .string "{EXTRA 210}{EXTRA 208}ょ: $" // trainer_tower (again?) diff --git a/data/union_room_chat.s b/data/union_room_chat.s index 84f9d9c39..9c23697ee 100644 --- a/data/union_room_chat.s +++ b/data/union_room_chat.s @@ -44,36 +44,36 @@ gUnknown_845A8AC:: @ 845A8AC .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 gUnknown_845A9AC:: @ 845A9AC - .4byte gUnknown_847AAC1 - .4byte gUnknown_847AAC7 - .4byte gUnknown_847AACD - .4byte gUnknown_847AAD3 - .4byte gUnknown_847AAD9 - .4byte gUnknown_847AADF - .4byte gUnknown_847AAE5 - .4byte gUnknown_847AAEB - .4byte gUnknown_847AAF1 - .4byte gUnknown_847AAF7 - .4byte gUnknown_847AAFD - .4byte gUnknown_847AB03 - .4byte gUnknown_847AB09 - .4byte gUnknown_847AB0F - .4byte gUnknown_847AB15 - .4byte gUnknown_847AB1B - .4byte gUnknown_847AB21 - .4byte gUnknown_847AB27 - .4byte gUnknown_847AB2D - .4byte gUnknown_847AB33 - .4byte gUnknown_847AB41 - .4byte gUnknown_847AB4C - .4byte gUnknown_847AB57 - .4byte gUnknown_847AB62 - .4byte gUnknown_847AB6B - .4byte gUnknown_847AB76 - .4byte gUnknown_847AB81 - .4byte gUnknown_847AB8C - .4byte gUnknown_847AB97 - .4byte gUnknown_847ABA2 + .4byte gText_UnionRoomChatKeyboard_ABCDE + .4byte gText_UnionRoomChatKeyboard_FGHIJ + .4byte gText_UnionRoomChatKeyboard_KLMNO + .4byte gText_UnionRoomChatKeyboard_PQRST + .4byte gText_UnionRoomChatKeyboard_UVWXY + .4byte gText_UnionRoomChatKeyboard_Z + .4byte gText_UnionRoomChatKeyboard_01234Upper + .4byte gText_UnionRoomChatKeyboard_56789Upper + .4byte gText_UnionRoomChatKeyboard_PunctuationUpper + .4byte gText_UnionRoomChatKeyboard_SymbolsUpper + .4byte gText_UnionRoomChatKeyboard_abcde + .4byte gText_UnionRoomChatKeyboard_fghij + .4byte gText_UnionRoomChatKeyboard_klmno + .4byte gText_UnionRoomChatKeyboard_pqrst + .4byte gText_UnionRoomChatKeyboard_uvwxy + .4byte gText_UnionRoomChatKeyboard_z + .4byte gText_UnionRoomChatKeyboard_01234Lower + .4byte gText_UnionRoomChatKeyboard_56789Lower + .4byte gText_UnionRoomChatKeyboard_PunctuationLower + .4byte gText_UnionRoomChatKeyboard_SymbolsLower + .4byte gText_UnionRoomChatKeyboard_Emoji1 + .4byte gText_UnionRoomChatKeyboard_Emoji2 + .4byte gText_UnionRoomChatKeyboard_Emoji3 + .4byte gText_UnionRoomChatKeyboard_Emoji4 + .4byte gText_UnionRoomChatKeyboard_Emoji5 + .4byte gText_UnionRoomChatKeyboard_Emoji6 + .4byte gText_UnionRoomChatKeyboard_Emoji7 + .4byte gText_UnionRoomChatKeyboard_Emoji8 + .4byte gText_UnionRoomChatKeyboard_Emoji9 + .4byte gText_UnionRoomChatKeyboard_Emoji10 gUnknown_845AA24:: @ 845AA24 .incbin "graphics/union_room_chat/unk_845AA24.gbapal" diff --git a/include/data_8479668.h b/include/data_8479668.h new file mode 100644 index 000000000..1a1f44267 --- /dev/null +++ b/include/data_8479668.h @@ -0,0 +1,35 @@ +#ifndef GUARD_DATA_8479668_H +#define GUARD_DATA_8479668_H + +extern const u8 gText_UnionRoomChatKeyboard_ABCDE[]; +extern const u8 gText_UnionRoomChatKeyboard_FGHIJ[]; +extern const u8 gText_UnionRoomChatKeyboard_KLMNO[]; +extern const u8 gText_UnionRoomChatKeyboard_PQRST[]; +extern const u8 gText_UnionRoomChatKeyboard_UVWXY[]; +extern const u8 gText_UnionRoomChatKeyboard_Z[]; +extern const u8 gText_UnionRoomChatKeyboard_01234Upper[]; +extern const u8 gText_UnionRoomChatKeyboard_56789Upper[]; +extern const u8 gText_UnionRoomChatKeyboard_PunctuationUpper[]; +extern const u8 gText_UnionRoomChatKeyboard_SymbolsUpper[]; +extern const u8 gText_UnionRoomChatKeyboard_abcde[]; +extern const u8 gText_UnionRoomChatKeyboard_fghij[]; +extern const u8 gText_UnionRoomChatKeyboard_klmno[]; +extern const u8 gText_UnionRoomChatKeyboard_pqrst[]; +extern const u8 gText_UnionRoomChatKeyboard_uvwxy[]; +extern const u8 gText_UnionRoomChatKeyboard_z[]; +extern const u8 gText_UnionRoomChatKeyboard_01234Lower[]; +extern const u8 gText_UnionRoomChatKeyboard_56789Lower[]; +extern const u8 gText_UnionRoomChatKeyboard_PunctuationLower[]; +extern const u8 gText_UnionRoomChatKeyboard_SymbolsLower[]; +extern const u8 gText_UnionRoomChatKeyboard_Emoji1[]; +extern const u8 gText_UnionRoomChatKeyboard_Emoji2[]; +extern const u8 gText_UnionRoomChatKeyboard_Emoji3[]; +extern const u8 gText_UnionRoomChatKeyboard_Emoji4[]; +extern const u8 gText_UnionRoomChatKeyboard_Emoji5[]; +extern const u8 gText_UnionRoomChatKeyboard_Emoji6[]; +extern const u8 gText_UnionRoomChatKeyboard_Emoji7[]; +extern const u8 gText_UnionRoomChatKeyboard_Emoji8[]; +extern const u8 gText_UnionRoomChatKeyboard_Emoji9[]; +extern const u8 gText_UnionRoomChatKeyboard_Emoji10[]; + +#endif //GUARD_DATA_8479668_H diff --git a/include/link_rfu.h b/include/link_rfu.h index 2e502165a..9dac781b3 100644 --- a/include/link_rfu.h +++ b/include/link_rfu.h @@ -326,6 +326,7 @@ bool32 PlayerHasMetTrainerBefore(u16 id, u8 *name); bool8 sub_80FCC3C(struct GFtgtGname *gname, u8 *uname, u8 idx); bool8 sub_80FCCF4(struct GFtgtGname *gname, u8 *uname, u8 idx); bool32 sub_80FBA1C(void); +void sub_80FA4A8(void); #include "mevent_server.h" extern const struct mevent_server_cmd gMEventSrvScript_OtherTrainerCanceled[]; diff --git a/src/union_room_chat.c b/src/union_room_chat.c index 813d20e5f..cd285267a 100644 --- a/src/union_room_chat.c +++ b/src/union_room_chat.c @@ -4,8 +4,11 @@ #include "link.h" #include "link_rfu.h" #include "list_menu.h" +#include "load_save.h" #include "menu.h" +#include "overworld.h" #include "quest_log.h" +#include "save.h" #include "scanline_effect.h" #include "task.h" #include "constants/songs.h" @@ -58,25 +61,35 @@ void sub_8128640(void); void sub_81286C4(void); void sub_81287B4(void); void sub_81288D4(void); -void sub_8128DA4(void); -void sub_8128E78(void); void sub_8128AA0(void); void sub_8128C04(void); void sub_8128CA8(void); +void sub_8128DA4(void); +void sub_8128E78(void); void sub_8128FB8(void); void sub_8129218(u16 a0); bool32 sub_8129228(void); void sub_81292D8(void); void sub_81293AC(void); void sub_81293D8(void); +bool32 sub_8129408(void); +void sub_8129424(void); +void sub_8129454(void); +void sub_8129470(void); void sub_8129560(u8 *ptr); void sub_8129568(u8 *ptr); +void sub_8129590(u8 *ptr); +void sub_81295C0(u8 *ptr); +void sub_81295EC(u8 *ptr); +void sub_8129614(u8 *ptr); void sub_81298F8(u8 taskId); void sub_8129B14(void); bool32 sub_8129B78(void); +void sub_8129B88(void); void sub_8129BFC(void); void sub_8129C34(u16 a0, u8 a1); u8 sub_8129C8C(u8 a0); +s8 sub_812A568(void); static void (*const gUnknown_845A880[])(void) = { sub_8128640, @@ -316,7 +329,7 @@ void sub_81287B4(void) var0 = 0; break; case MENU_NOTHING_CHOSEN: - if (gMain.newKeys & SELECT_BUTTON) + if (JOY_NEW(SELECT_BUTTON)) { PlaySE(SE_SELECT); Menu_MoveCursor(1); @@ -350,3 +363,441 @@ void sub_81287B4(void) break; } } + +void sub_81288D4(void) +{ + s8 input; + + switch (gUnknown_203B0E0->unk6) + { + case 0: + sub_8129C34(6, 0); + gUnknown_203B0E0->unk6 = 1; + break; + case 1: + if (!sub_8129C8C(0)) + gUnknown_203B0E0->unk6 = 2; + break; + case 2: + input = sub_812A568(); + switch (input) + { + case -1: + case 1: + sub_8129C34(7, 0); + gUnknown_203B0E0->unk6 = 3; + break; + case 0: + if (gUnknown_203B0E0->unk13 == 0) + { + sub_8129614(gUnknown_203B0E0->unk190); + sub_8129C34(7, 0); + gUnknown_203B0E0->unk6 = 9; + } + else + { + sub_81295C0(gUnknown_203B0E0->unk190); + gUnknown_203B0E0->unk6 = 4; + } + break; + } + break; + case 3: + if (!sub_8129C8C(0)) + sub_8129218(1); + break; + case 9: + if (!sub_8129C8C(0)) + { + sub_8129C34(20, 0); + gUnknown_203B0E0->unk6 = 10; + } + break; + case 10: + if (!sub_8129C8C(0)) + gUnknown_203B0E0->unk6 = 8; + break; + case 8: + input = sub_812A568(); + switch (input) + { + case -1: + case 1: + sub_8129C34(7, 0); + gUnknown_203B0E0->unk6 = 3; + break; + case 0: + sub_80FA4A8(); + sub_8129614(gUnknown_203B0E0->unk190); + gUnknown_203B0E0->unk6 = 4; + break; + } + break; + case 4: + if (IsLinkTaskFinished() && !sub_80FBA1C() && SendBlock(0, gUnknown_203B0E0->unk190, sizeof(gUnknown_203B0E0->unk190))) + { + if (!gUnknown_203B0E0->unk13) + gUnknown_203B0E0->unk6 = 6; + else + gUnknown_203B0E0->unk6 = 5; + } + break; + case 5: + if (!gReceivedRemoteLinkPlayers) + { + sub_8129218(9); + } + break; + } +} + +void sub_8128AA0(void) +{ + switch (gUnknown_203B0E0->unk6) + { + case 0: + if (!FuncIsActiveTask(sub_81298F8)) + { + sub_8129C34(7, 0); + gUnknown_203B0E0->unk6++; + } + break; + case 1: + if (!sub_8129C8C(0)) + { + sub_8129C34(18, 0); + gUnknown_203B0E0->unk6++; + } + break; + case 2: + if (!sub_8129C8C(0)) + { + sub_81295EC(gUnknown_203B0E0->unk190); + gUnknown_203B0E0->unk6++; + } + break; + case 3: + if (IsLinkTaskFinished() && !sub_80FBA1C() && SendBlock(0, gUnknown_203B0E0->unk190, sizeof(gUnknown_203B0E0->unk190))) + gUnknown_203B0E0->unk6++; + break; + case 4: + if ((GetBlockReceivedStatus() & 1) && !sub_80FBA1C()) + gUnknown_203B0E0->unk6++; + break; + case 5: + if (IsLinkTaskFinished() && !sub_80FBA1C()) + { + sub_800AAC0(); + gUnknown_203B0E0->unkA = 0; + gUnknown_203B0E0->unk6++; + } + break; + case 6: + if (gUnknown_203B0E0->unkA < 150) + gUnknown_203B0E0->unkA++; + + if (!gReceivedRemoteLinkPlayers) + gUnknown_203B0E0->unk6++; + break; + case 7: + if (gUnknown_203B0E0->unkA >= 150) + sub_8129218(9); + else + gUnknown_203B0E0->unkA++; + break; + } +} + +void sub_8128C04(void) +{ + switch (gUnknown_203B0E0->unk6) + { + case 0: + if (!FuncIsActiveTask(sub_81298F8)) + { + sub_8129C34(7, 0); + gUnknown_203B0E0->unk6++; + } + break; + case 1: + if (!sub_8129C8C(0) && IsLinkTaskFinished() && !sub_80FBA1C()) + { + sub_800AAC0(); + gUnknown_203B0E0->unkA = 0; + gUnknown_203B0E0->unk6++; + } + break; + case 2: + if (gUnknown_203B0E0->unkA < 150) + gUnknown_203B0E0->unkA++; + + if (!gReceivedRemoteLinkPlayers) + gUnknown_203B0E0->unk6++; + break; + case 3: + if (gUnknown_203B0E0->unkA >= 150) + sub_8129218(9); + else + gUnknown_203B0E0->unkA++; + break; + } +} + +void sub_8128CA8(void) +{ + switch (gUnknown_203B0E0->unk6) + { + case 0: + if (!FuncIsActiveTask(sub_81298F8)) + { + if (gUnknown_203B0E0->unk13) + sub_8129C34(7, 0); + + gUnknown_203B0E0->unk6++; + } + break; + case 1: + if (!sub_8129C8C(0)) + { + if (gUnknown_203B0E0->unk13) + sub_8129C34(19, 0); + + gUnknown_203B0E0->unk6++; + } + break; + case 2: + if (sub_8129C8C(0) != TRUE && IsLinkTaskFinished() && !sub_80FBA1C()) + { + sub_800AAC0(); + gUnknown_203B0E0->unkA = 0; + gUnknown_203B0E0->unk6++; + } + break; + case 3: + if (gUnknown_203B0E0->unkA < 150) + gUnknown_203B0E0->unkA++; + + if (!gReceivedRemoteLinkPlayers) + gUnknown_203B0E0->unk6++; + break; + case 4: + if (gUnknown_203B0E0->unkA >= 150) + sub_8129218(9); + else + gUnknown_203B0E0->unkA++; + break; + } +} + +void sub_8128DA4(void) +{ + switch (gUnknown_203B0E0->unk6) + { + case 0: + if (!gReceivedRemoteLinkPlayers) + { + sub_8129218(1); + break; + } + + sub_8129590(gUnknown_203B0E0->unk190); + gUnknown_203B0E0->unk6++; + // fall through + case 1: + if (IsLinkTaskFinished() == TRUE && !sub_80FBA1C() && SendBlock(0, gUnknown_203B0E0->unk190, sizeof(gUnknown_203B0E0->unk190))) + gUnknown_203B0E0->unk6++; + break; + case 2: + sub_8129454(); + sub_8129C34(8, 0); + gUnknown_203B0E0->unk6++; + break; + case 3: + if (!sub_8129C8C(0)) + gUnknown_203B0E0->unk6++; + break; + case 4: + if (IsLinkTaskFinished()) + sub_8129218(1); + break; + } +} + +void sub_8128E78(void) +{ + switch (gUnknown_203B0E0->unk6) + { + case 0: + if (sub_8129408()) + { + sub_8129C34(9, 0); + gUnknown_203B0E0->unk6 = 2; + } + else + { + sub_8129C34(13, 0); + gUnknown_203B0E0->unk6 = 5; + } + break; + case 1: + if (JOY_NEW(A_BUTTON)) + { + sub_8129424(); + sub_8129C34(11, 0); + gUnknown_203B0E0->unk6 = 3; + } + else if (JOY_NEW(B_BUTTON)) + { + sub_8129C34(10, 0); + gUnknown_203B0E0->unk6 = 4; + } + else if (sub_8129228()) + { + sub_8129C34(1, 0); + gUnknown_203B0E0->unk6 = 2; + } + break; + case 2: + if (!sub_8129C8C(0)) + gUnknown_203B0E0->unk6 = 1; + break; + case 3: + if (!sub_8129C8C(0)) + { + sub_8129C34(10, 0); + gUnknown_203B0E0->unk6 = 4; + } + break; + case 4: + if (!sub_8129C8C(0)) + sub_8129218(1); + break; + case 5: + if (!sub_8129C8C(0)) + gUnknown_203B0E0->unk6 = 6; + break; + case 6: + if (JOY_NEW(A_BUTTON | B_BUTTON)) + { + sub_8129C34(7, 0); + gUnknown_203B0E0->unk6 = 4; + } + break; + } +} + +void sub_8128FB8(void) +{ + s8 input; + + switch (gUnknown_203B0E0->unk6) + { + case 0: + if (!gUnknown_203B0E0->unk18) + { + gUnknown_203B0E0->unk6 = 12; + } + else + { + sub_8129C34(7, 0); + gUnknown_203B0E0->unk6 = 1; + } + break; + case 1: + if (!sub_8129C8C(0)) + { + sub_8129C34(14, 0); + gUnknown_203B0E0->unk6 = 2; + } + break; + case 2: + input = sub_812A568(); + switch (input) + { + case -1: + case 1: + gUnknown_203B0E0->unk6 = 12; + break; + case 0: + sub_8129C34(7, 0); + gUnknown_203B0E0->unk6 = 3; + break; + } + break; + case 3: + if (!sub_8129C8C(0)) + { + sub_8129C34(15, 0); + gUnknown_203B0E0->unk6 = 4; + } + break; + case 4: + if (!sub_8129C8C(0)) + gUnknown_203B0E0->unk6 = 5; + break; + case 5: + input = sub_812A568(); + switch (input) + { + case -1: + case 1: + gUnknown_203B0E0->unk6 = 12; + break; + case 0: + sub_8129C34(7, 0); + gUnknown_203B0E0->unk6 = 6; + break; + } + break; + case 6: + if (!sub_8129C8C(0)) + { + sub_8129C34(16, 0); + sub_8129470(); + gUnknown_203B0E0->unk6 = 7; + } + break; + case 7: + if (!sub_8129C8C(0)) + { + SetContinueGameWarpStatusToDynamicWarp(); + TrySavingData(SAVE_NORMAL); + gUnknown_203B0E0->unk6 = 8; + } + break; + case 8: + sub_8129C34(17, 0); + gUnknown_203B0E0->unk6 = 9; + break; + case 9: + if (!sub_8129C8C(0)) + { + PlaySE(SE_SAVE); + ClearContinueGameWarpStatus2(); + gUnknown_203B0E0->unk6 = 10; + } + break; + case 10: + gUnknown_203B0E0->unk19 = 0; + gUnknown_203B0E0->unk6 = 11; + break; + case 11: + gUnknown_203B0E0->unk19++; + if (gUnknown_203B0E0->unk19 > 120) + gUnknown_203B0E0->unk6 = 12; + break; + case 12: + BeginNormalPaletteFade(0xFFFFFFFF, -1, 0, 16, RGB_BLACK); + gUnknown_203B0E0->unk6 = 13; + break; + case 13: + if (!gPaletteFade.active) + { + sub_812B4B8(); + sub_8129B88(); + sub_81284BC(); + SetMainCallback2(CB2_ReturnToField); + } + break; + } +} |