union_room_chat_display through sub_812A1B8
This commit is contained in:
@@ -5,935 +5,6 @@
|
||||
|
||||
.text
|
||||
|
||||
thumb_func_start sub_8129B14
|
||||
sub_8129B14: @ 8129B14
|
||||
push {r4,lr}
|
||||
ldr r4, _08129B60 @ =gUnknown_203B0E4
|
||||
ldr r0, _08129B64 @ =0x00002168
|
||||
bl Alloc
|
||||
str r0, [r4]
|
||||
cmp r0, 0
|
||||
beq _08129B70
|
||||
bl sub_812AE70
|
||||
cmp r0, 0
|
||||
beq _08129B70
|
||||
movs r0, 0
|
||||
bl ResetBgsAndClearDma3BusyFlags
|
||||
ldr r1, _08129B68 @ =gUnknown_845AA84
|
||||
movs r0, 0
|
||||
movs r2, 0x4
|
||||
bl InitBgsFromTemplates
|
||||
ldr r0, _08129B6C @ =gUnknown_845AA94
|
||||
bl InitWindows
|
||||
bl ResetTempTileDataBuffers
|
||||
bl sub_812AD50
|
||||
ldr r0, [r4]
|
||||
bl sub_8129BB8
|
||||
bl sub_8129BC4
|
||||
movs r0, 0
|
||||
movs r1, 0
|
||||
bl sub_8129C34
|
||||
movs r0, 0x1
|
||||
b _08129B72
|
||||
.align 2, 0
|
||||
_08129B60: .4byte gUnknown_203B0E4
|
||||
_08129B64: .4byte 0x00002168
|
||||
_08129B68: .4byte gUnknown_845AA84
|
||||
_08129B6C: .4byte gUnknown_845AA94
|
||||
_08129B70:
|
||||
movs r0, 0
|
||||
_08129B72:
|
||||
pop {r4}
|
||||
pop {r1}
|
||||
bx r1
|
||||
thumb_func_end sub_8129B14
|
||||
|
||||
thumb_func_start sub_8129B78
|
||||
sub_8129B78: @ 8129B78
|
||||
push {lr}
|
||||
movs r0, 0
|
||||
bl sub_8129C8C
|
||||
lsls r0, 24
|
||||
lsrs r0, 24
|
||||
pop {r1}
|
||||
bx r1
|
||||
thumb_func_end sub_8129B78
|
||||
|
||||
thumb_func_start sub_8129B88
|
||||
sub_8129B88: @ 8129B88
|
||||
push {r4,lr}
|
||||
bl sub_812AEB0
|
||||
ldr r4, _08129BB0 @ =gUnknown_203B0E4
|
||||
ldr r0, [r4]
|
||||
cmp r0, 0
|
||||
beq _08129B9E
|
||||
bl Free
|
||||
movs r0, 0
|
||||
str r0, [r4]
|
||||
_08129B9E:
|
||||
bl FreeAllWindowBuffers
|
||||
ldr r1, _08129BB4 @ =gScanlineEffect
|
||||
movs r0, 0x3
|
||||
strb r0, [r1, 0x15]
|
||||
pop {r4}
|
||||
pop {r0}
|
||||
bx r0
|
||||
.align 2, 0
|
||||
_08129BB0: .4byte gUnknown_203B0E4
|
||||
_08129BB4: .4byte gScanlineEffect
|
||||
thumb_func_end sub_8129B88
|
||||
|
||||
thumb_func_start sub_8129BB8
|
||||
sub_8129BB8: @ 8129BB8
|
||||
movs r2, 0
|
||||
movs r1, 0xFF
|
||||
strh r1, [r0, 0x18]
|
||||
strh r1, [r0, 0x1E]
|
||||
strh r2, [r0, 0x1A]
|
||||
bx lr
|
||||
thumb_func_end sub_8129BB8
|
||||
|
||||
thumb_func_start sub_8129BC4
|
||||
sub_8129BC4: @ 8129BC4
|
||||
push {r4,r5,lr}
|
||||
ldr r1, _08129BF4 @ =gUnknown_203B0E4
|
||||
ldr r0, [r1]
|
||||
cmp r0, 0
|
||||
beq _08129BEC
|
||||
movs r2, 0
|
||||
adds r4, r1, 0
|
||||
ldr r5, _08129BF8 @ =sub_812A420
|
||||
movs r3, 0
|
||||
_08129BD6:
|
||||
ldr r0, [r4]
|
||||
lsls r1, r2, 3
|
||||
adds r0, r1
|
||||
str r5, [r0]
|
||||
strb r3, [r0, 0x4]
|
||||
ldr r0, [r4]
|
||||
adds r0, r1
|
||||
strb r3, [r0, 0x5]
|
||||
adds r2, 0x1
|
||||
cmp r2, 0x2
|
||||
ble _08129BD6
|
||||
_08129BEC:
|
||||
pop {r4,r5}
|
||||
pop {r0}
|
||||
bx r0
|
||||
.align 2, 0
|
||||
_08129BF4: .4byte gUnknown_203B0E4
|
||||
_08129BF8: .4byte sub_812A420
|
||||
thumb_func_end sub_8129BC4
|
||||
|
||||
thumb_func_start sub_8129BFC
|
||||
sub_8129BFC: @ 8129BFC
|
||||
push {r4-r6,lr}
|
||||
ldr r1, _08129C30 @ =gUnknown_203B0E4
|
||||
ldr r0, [r1]
|
||||
cmp r0, 0
|
||||
beq _08129C2A
|
||||
movs r5, 0
|
||||
adds r6, r1, 0
|
||||
_08129C0A:
|
||||
ldr r0, [r6]
|
||||
lsls r4, r5, 3
|
||||
adds r1, r0, r4
|
||||
ldrb r0, [r1, 0x4]
|
||||
cmp r0, 0
|
||||
beq _08129C24
|
||||
adds r0, r1, 0x5
|
||||
ldr r1, [r1]
|
||||
bl _call_via_r1
|
||||
ldr r1, [r6]
|
||||
adds r1, r4
|
||||
strb r0, [r1, 0x4]
|
||||
_08129C24:
|
||||
adds r5, 0x1
|
||||
cmp r5, 0x2
|
||||
ble _08129C0A
|
||||
_08129C2A:
|
||||
pop {r4-r6}
|
||||
pop {r0}
|
||||
bx r0
|
||||
.align 2, 0
|
||||
_08129C30: .4byte gUnknown_203B0E4
|
||||
thumb_func_end sub_8129BFC
|
||||
|
||||
thumb_func_start sub_8129C34
|
||||
sub_8129C34: @ 8129C34
|
||||
push {r4-r7,lr}
|
||||
lsls r0, 16
|
||||
lsrs r6, r0, 16
|
||||
lsls r1, 24
|
||||
ldr r3, _08129C70 @ =gUnknown_203B0E4
|
||||
ldr r0, [r3]
|
||||
lsrs r1, 21
|
||||
adds r0, r1
|
||||
ldr r2, _08129C74 @ =sub_812A420
|
||||
str r2, [r0]
|
||||
movs r4, 0
|
||||
adds r5, r3, 0
|
||||
adds r3, r1, 0
|
||||
mov r12, r4
|
||||
ldr r1, _08129C78 @ =gUnknown_845AABC
|
||||
movs r7, 0x1
|
||||
adds r2, r1, 0x4
|
||||
_08129C56:
|
||||
ldrh r0, [r1]
|
||||
cmp r0, r6
|
||||
bne _08129C7C
|
||||
ldr r1, [r5]
|
||||
adds r1, r3
|
||||
ldr r0, [r2]
|
||||
str r0, [r1]
|
||||
strb r7, [r1, 0x4]
|
||||
ldr r0, [r5]
|
||||
adds r0, r3
|
||||
mov r1, r12
|
||||
strb r1, [r0, 0x5]
|
||||
b _08129C86
|
||||
.align 2, 0
|
||||
_08129C70: .4byte gUnknown_203B0E4
|
||||
_08129C74: .4byte sub_812A420
|
||||
_08129C78: .4byte gUnknown_845AABC
|
||||
_08129C7C:
|
||||
adds r1, 0x8
|
||||
adds r2, 0x8
|
||||
adds r4, 0x1
|
||||
cmp r4, 0x14
|
||||
bls _08129C56
|
||||
_08129C86:
|
||||
pop {r4-r7}
|
||||
pop {r0}
|
||||
bx r0
|
||||
thumb_func_end sub_8129C34
|
||||
|
||||
thumb_func_start sub_8129C8C
|
||||
sub_8129C8C: @ 8129C8C
|
||||
lsls r0, 24
|
||||
ldr r1, _08129C9C @ =gUnknown_203B0E4
|
||||
ldr r1, [r1]
|
||||
lsrs r0, 21
|
||||
adds r1, r0
|
||||
ldrb r0, [r1, 0x4]
|
||||
bx lr
|
||||
.align 2, 0
|
||||
_08129C9C: .4byte gUnknown_203B0E4
|
||||
thumb_func_end sub_8129C8C
|
||||
|
||||
thumb_func_start sub_8129CA0
|
||||
sub_8129CA0: @ 8129CA0
|
||||
push {r4,lr}
|
||||
adds r4, r0, 0
|
||||
bl FreeTempTileDataBuffersIfPossible
|
||||
lsls r0, 24
|
||||
lsrs r0, 24
|
||||
cmp r0, 0x1
|
||||
beq _08129D36
|
||||
ldrb r0, [r4]
|
||||
cmp r0, 0x6
|
||||
bhi _08129D2C
|
||||
lsls r0, 2
|
||||
ldr r1, _08129CC0 @ =_08129CC4
|
||||
adds r0, r1
|
||||
ldr r0, [r0]
|
||||
mov pc, r0
|
||||
.align 2, 0
|
||||
_08129CC0: .4byte _08129CC4
|
||||
.align 2, 0
|
||||
_08129CC4:
|
||||
.4byte _08129CE0
|
||||
.4byte _08129CEA
|
||||
.4byte _08129CF0
|
||||
.4byte _08129CF6
|
||||
.4byte _08129CFC
|
||||
.4byte _08129D02
|
||||
.4byte _08129D14
|
||||
_08129CE0:
|
||||
bl sub_812AAD4
|
||||
bl sub_812AB8C
|
||||
b _08129D30
|
||||
_08129CEA:
|
||||
bl sub_812ABD8
|
||||
b _08129D30
|
||||
_08129CF0:
|
||||
bl sub_812AC08
|
||||
b _08129D30
|
||||
_08129CF6:
|
||||
bl sub_812AC58
|
||||
b _08129D30
|
||||
_08129CFC:
|
||||
bl sub_812AC9C
|
||||
b _08129D30
|
||||
_08129D02:
|
||||
bl sub_812ACC0
|
||||
bl sub_812ACEC
|
||||
bl sub_812AD20
|
||||
bl sub_812AD04
|
||||
b _08129D30
|
||||
_08129D14:
|
||||
bl IsDma3ManagerBusyWithBgCopy
|
||||
lsls r0, 24
|
||||
cmp r0, 0
|
||||
bne _08129D30
|
||||
bl sub_812AEC8
|
||||
bl sub_812B048
|
||||
bl sub_812B100
|
||||
b _08129D30
|
||||
_08129D2C:
|
||||
movs r0, 0
|
||||
b _08129D38
|
||||
_08129D30:
|
||||
ldrb r0, [r4]
|
||||
adds r0, 0x1
|
||||
strb r0, [r4]
|
||||
_08129D36:
|
||||
movs r0, 0x1
|
||||
_08129D38:
|
||||
pop {r4}
|
||||
pop {r1}
|
||||
bx r1
|
||||
thumb_func_end sub_8129CA0
|
||||
|
||||
thumb_func_start sub_8129D40
|
||||
sub_8129D40: @ 8129D40
|
||||
push {r4,lr}
|
||||
adds r4, r0, 0
|
||||
ldrb r0, [r4]
|
||||
cmp r0, 0
|
||||
beq _08129D50
|
||||
cmp r0, 0x1
|
||||
beq _08129D5E
|
||||
b _08129D68
|
||||
_08129D50:
|
||||
bl sub_812AA10
|
||||
movs r0, 0x3
|
||||
movs r1, 0x3
|
||||
bl CopyWindowToVram
|
||||
b _08129D68
|
||||
_08129D5E:
|
||||
bl IsDma3ManagerBusyWithBgCopy
|
||||
lsls r0, 24
|
||||
lsrs r0, 24
|
||||
b _08129D70
|
||||
_08129D68:
|
||||
ldrb r0, [r4]
|
||||
adds r0, 0x1
|
||||
strb r0, [r4]
|
||||
movs r0, 0x1
|
||||
_08129D70:
|
||||
pop {r4}
|
||||
pop {r1}
|
||||
bx r1
|
||||
thumb_func_end sub_8129D40
|
||||
|
||||
thumb_func_start sub_8129D78
|
||||
sub_8129D78: @ 8129D78
|
||||
push {r4,lr}
|
||||
adds r4, r0, 0
|
||||
ldrb r0, [r4]
|
||||
cmp r0, 0
|
||||
beq _08129D88
|
||||
cmp r0, 0x1
|
||||
beq _08129D96
|
||||
b _08129DA0
|
||||
_08129D88:
|
||||
bl sub_812AA64
|
||||
movs r0, 0x3
|
||||
movs r1, 0x3
|
||||
bl CopyWindowToVram
|
||||
b _08129DA0
|
||||
_08129D96:
|
||||
bl IsDma3ManagerBusyWithBgCopy
|
||||
lsls r0, 24
|
||||
lsrs r0, 24
|
||||
b _08129DA8
|
||||
_08129DA0:
|
||||
ldrb r0, [r4]
|
||||
adds r0, 0x1
|
||||
strb r0, [r4]
|
||||
movs r0, 0x1
|
||||
_08129DA8:
|
||||
pop {r4}
|
||||
pop {r1}
|
||||
bx r1
|
||||
thumb_func_end sub_8129D78
|
||||
|
||||
thumb_func_start sub_8129DB0
|
||||
sub_8129DB0: @ 8129DB0
|
||||
push {r4,lr}
|
||||
adds r4, r0, 0
|
||||
ldrb r0, [r4]
|
||||
cmp r0, 0x1
|
||||
beq _08129DE6
|
||||
cmp r0, 0x1
|
||||
bgt _08129DC4
|
||||
cmp r0, 0
|
||||
beq _08129DCA
|
||||
b _08129E0C
|
||||
_08129DC4:
|
||||
cmp r0, 0x2
|
||||
beq _08129DF2
|
||||
b _08129E0C
|
||||
_08129DCA:
|
||||
movs r0, 0x1
|
||||
bl sub_812AEFC
|
||||
bl sub_812A980
|
||||
cmp r0, 0
|
||||
bne _08129E12
|
||||
bl sub_812A804
|
||||
movs r0, 0x2
|
||||
movs r1, 0x2
|
||||
bl CopyWindowToVram
|
||||
b _08129E0C
|
||||
_08129DE6:
|
||||
bl IsDma3ManagerBusyWithBgCopy
|
||||
lsls r0, 24
|
||||
cmp r0, 0
|
||||
beq _08129E0C
|
||||
b _08129E12
|
||||
_08129DF2:
|
||||
bl sub_812A9C8
|
||||
cmp r0, 0
|
||||
bne _08129E12
|
||||
bl sub_812AF1C
|
||||
movs r0, 0
|
||||
bl sub_812AEFC
|
||||
bl sub_812B160
|
||||
movs r0, 0
|
||||
b _08129E14
|
||||
_08129E0C:
|
||||
ldrb r0, [r4]
|
||||
adds r0, 0x1
|
||||
strb r0, [r4]
|
||||
_08129E12:
|
||||
movs r0, 0x1
|
||||
_08129E14:
|
||||
pop {r4}
|
||||
pop {r1}
|
||||
bx r1
|
||||
thumb_func_end sub_8129DB0
|
||||
|
||||
thumb_func_start sub_8129E1C
|
||||
sub_8129E1C: @ 8129E1C
|
||||
push {lr}
|
||||
bl sub_812AF1C
|
||||
movs r0, 0
|
||||
pop {r1}
|
||||
bx r1
|
||||
thumb_func_end sub_8129E1C
|
||||
|
||||
thumb_func_start sub_8129E28
|
||||
sub_8129E28: @ 8129E28
|
||||
push {r4,lr}
|
||||
adds r4, r0, 0
|
||||
ldrb r0, [r4]
|
||||
cmp r0, 0
|
||||
beq _08129E38
|
||||
cmp r0, 0x1
|
||||
beq _08129E5C
|
||||
b _08129E66
|
||||
_08129E38:
|
||||
movs r0, 0
|
||||
movs r1, 0
|
||||
bl sub_812A578
|
||||
movs r0, 0x17
|
||||
movs r1, 0xB
|
||||
movs r2, 0x1
|
||||
bl sub_812A424
|
||||
ldr r0, _08129E58 @ =gUnknown_203B0E4
|
||||
ldr r0, [r0]
|
||||
ldrb r0, [r0, 0x1E]
|
||||
movs r1, 0x3
|
||||
bl CopyWindowToVram
|
||||
b _08129E66
|
||||
.align 2, 0
|
||||
_08129E58: .4byte gUnknown_203B0E4
|
||||
_08129E5C:
|
||||
bl IsDma3ManagerBusyWithBgCopy
|
||||
lsls r0, 24
|
||||
lsrs r0, 24
|
||||
b _08129E6E
|
||||
_08129E66:
|
||||
ldrb r0, [r4]
|
||||
adds r0, 0x1
|
||||
strb r0, [r4]
|
||||
movs r0, 0x1
|
||||
_08129E6E:
|
||||
pop {r4}
|
||||
pop {r1}
|
||||
bx r1
|
||||
thumb_func_end sub_8129E28
|
||||
|
||||
thumb_func_start sub_8129E74
|
||||
sub_8129E74: @ 8129E74
|
||||
push {r4,lr}
|
||||
adds r4, r0, 0
|
||||
ldrb r0, [r4]
|
||||
cmp r0, 0
|
||||
beq _08129E84
|
||||
cmp r0, 0x1
|
||||
beq _08129E94
|
||||
b _08129EAA
|
||||
_08129E84:
|
||||
bl sub_812A6F4
|
||||
bl sub_812A51C
|
||||
movs r0, 0
|
||||
bl CopyBgTilemapBufferToVram
|
||||
b _08129EAA
|
||||
_08129E94:
|
||||
bl IsDma3ManagerBusyWithBgCopy
|
||||
lsls r0, 24
|
||||
cmp r0, 0
|
||||
bne _08129EB0
|
||||
bl sub_812A728
|
||||
bl sub_812A544
|
||||
movs r0, 0
|
||||
b _08129EB2
|
||||
_08129EAA:
|
||||
ldrb r0, [r4]
|
||||
adds r0, 0x1
|
||||
strb r0, [r4]
|
||||
_08129EB0:
|
||||
movs r0, 0x1
|
||||
_08129EB2:
|
||||
pop {r4}
|
||||
pop {r1}
|
||||
bx r1
|
||||
thumb_func_end sub_8129E74
|
||||
|
||||
thumb_func_start sub_8129EB8
|
||||
sub_8129EB8: @ 8129EB8
|
||||
push {r4,lr}
|
||||
sub sp, 0xC
|
||||
adds r4, r0, 0
|
||||
ldrb r0, [r4]
|
||||
cmp r0, 0
|
||||
beq _08129ECA
|
||||
cmp r0, 0x1
|
||||
beq _08129F02
|
||||
b _08129F14
|
||||
_08129ECA:
|
||||
add r1, sp, 0x8
|
||||
add r0, sp, 0x4
|
||||
bl sub_8129730
|
||||
ldr r0, [sp, 0x4]
|
||||
lsls r0, 16
|
||||
lsrs r0, 16
|
||||
ldr r1, [sp, 0x8]
|
||||
lsls r1, 16
|
||||
lsrs r1, 16
|
||||
movs r2, 0
|
||||
bl sub_812A74C
|
||||
bl sub_8129714
|
||||
adds r1, r0, 0
|
||||
movs r0, 0x2
|
||||
str r0, [sp]
|
||||
movs r0, 0
|
||||
movs r2, 0x3
|
||||
movs r3, 0x1
|
||||
bl sub_812A778
|
||||
movs r0, 0x1
|
||||
movs r1, 0x2
|
||||
bl CopyWindowToVram
|
||||
b _08129F14
|
||||
_08129F02:
|
||||
bl IsDma3ManagerBusyWithBgCopy
|
||||
lsls r0, 24
|
||||
cmp r0, 0
|
||||
bne _08129F1A
|
||||
bl sub_812B160
|
||||
movs r0, 0
|
||||
b _08129F1C
|
||||
_08129F14:
|
||||
ldrb r0, [r4]
|
||||
adds r0, 0x1
|
||||
strb r0, [r4]
|
||||
_08129F1A:
|
||||
movs r0, 0x1
|
||||
_08129F1C:
|
||||
add sp, 0xC
|
||||
pop {r4}
|
||||
pop {r1}
|
||||
bx r1
|
||||
thumb_func_end sub_8129EB8
|
||||
|
||||
thumb_func_start sub_8129F24
|
||||
sub_8129F24: @ 8129F24
|
||||
push {r4-r6,lr}
|
||||
sub sp, 0x4
|
||||
adds r6, r0, 0
|
||||
ldrb r0, [r6]
|
||||
cmp r0, 0x1
|
||||
beq _08129F80
|
||||
cmp r0, 0x1
|
||||
bgt _08129F3A
|
||||
cmp r0, 0
|
||||
beq _08129F44
|
||||
b _08129FBA
|
||||
_08129F3A:
|
||||
cmp r0, 0x2
|
||||
beq _08129FA4
|
||||
cmp r0, 0x3
|
||||
beq _08129FB6
|
||||
b _08129FBA
|
||||
_08129F44:
|
||||
bl sub_8129788
|
||||
adds r4, r0, 0
|
||||
lsls r4, 16
|
||||
lsrs r4, 16
|
||||
bl sub_8129758
|
||||
adds r5, r0, 0
|
||||
bl StringLength_Multibyte
|
||||
adds r1, r0, 0
|
||||
lsls r1, 16
|
||||
lsrs r1, 16
|
||||
adds r0, r4, 0
|
||||
movs r2, 0x66
|
||||
bl sub_812A74C
|
||||
movs r0, 0x5
|
||||
str r0, [sp]
|
||||
adds r0, r4, 0
|
||||
adds r1, r5, 0
|
||||
movs r2, 0
|
||||
movs r3, 0x4
|
||||
bl sub_812A778
|
||||
movs r0, 0x1
|
||||
movs r1, 0x2
|
||||
bl CopyWindowToVram
|
||||
b _08129FBA
|
||||
_08129F80:
|
||||
bl IsDma3ManagerBusyWithBgCopy
|
||||
lsls r0, 24
|
||||
cmp r0, 0
|
||||
bne _08129FC0
|
||||
movs r0, 0x1
|
||||
movs r1, 0x10
|
||||
bl sub_812A578
|
||||
ldr r0, _08129FA0 @ =gUnknown_203B0E4
|
||||
ldr r0, [r0]
|
||||
ldrb r0, [r0, 0x1E]
|
||||
movs r1, 0x3
|
||||
bl CopyWindowToVram
|
||||
b _08129FBA
|
||||
.align 2, 0
|
||||
_08129FA0: .4byte gUnknown_203B0E4
|
||||
_08129FA4:
|
||||
bl IsDma3ManagerBusyWithBgCopy
|
||||
lsls r0, 24
|
||||
cmp r0, 0
|
||||
bne _08129FC0
|
||||
movs r0, 0x1
|
||||
bl sub_812AF8C
|
||||
b _08129FBA
|
||||
_08129FB6:
|
||||
movs r0, 0
|
||||
b _08129FC2
|
||||
_08129FBA:
|
||||
ldrb r0, [r6]
|
||||
adds r0, 0x1
|
||||
strb r0, [r6]
|
||||
_08129FC0:
|
||||
movs r0, 0x1
|
||||
_08129FC2:
|
||||
add sp, 0x4
|
||||
pop {r4-r6}
|
||||
pop {r1}
|
||||
bx r1
|
||||
thumb_func_end sub_8129F24
|
||||
|
||||
thumb_func_start sub_8129FCC
|
||||
sub_8129FCC: @ 8129FCC
|
||||
push {r4-r6,lr}
|
||||
sub sp, 0x4
|
||||
adds r6, r0, 0
|
||||
ldrb r0, [r6]
|
||||
cmp r0, 0x1
|
||||
beq _0812A028
|
||||
cmp r0, 0x1
|
||||
bgt _08129FE2
|
||||
cmp r0, 0
|
||||
beq _08129FEC
|
||||
b _0812A062
|
||||
_08129FE2:
|
||||
cmp r0, 0x2
|
||||
beq _0812A048
|
||||
cmp r0, 0x3
|
||||
beq _0812A05E
|
||||
b _0812A062
|
||||
_08129FEC:
|
||||
bl sub_8129788
|
||||
adds r4, r0, 0
|
||||
lsls r4, 16
|
||||
lsrs r4, 16
|
||||
bl sub_8129758
|
||||
adds r5, r0, 0
|
||||
bl StringLength_Multibyte
|
||||
adds r1, r0, 0
|
||||
lsls r1, 16
|
||||
lsrs r1, 16
|
||||
adds r0, r4, 0
|
||||
movs r2, 0
|
||||
bl sub_812A74C
|
||||
movs r0, 0x2
|
||||
str r0, [sp]
|
||||
adds r0, r4, 0
|
||||
adds r1, r5, 0
|
||||
movs r2, 0x3
|
||||
movs r3, 0x1
|
||||
bl sub_812A778
|
||||
movs r0, 0x1
|
||||
movs r1, 0x2
|
||||
bl CopyWindowToVram
|
||||
b _0812A062
|
||||
_0812A028:
|
||||
bl IsDma3ManagerBusyWithBgCopy
|
||||
lsls r0, 24
|
||||
cmp r0, 0
|
||||
bne _0812A068
|
||||
bl sub_812A6F4
|
||||
ldr r0, _0812A044 @ =gUnknown_203B0E4
|
||||
ldr r0, [r0]
|
||||
ldrb r0, [r0, 0x1E]
|
||||
movs r1, 0x3
|
||||
bl CopyWindowToVram
|
||||
b _0812A062
|
||||
.align 2, 0
|
||||
_0812A044: .4byte gUnknown_203B0E4
|
||||
_0812A048:
|
||||
bl IsDma3ManagerBusyWithBgCopy
|
||||
lsls r0, 24
|
||||
cmp r0, 0
|
||||
bne _0812A068
|
||||
movs r0, 0
|
||||
bl sub_812AF8C
|
||||
bl sub_812A728
|
||||
b _0812A062
|
||||
_0812A05E:
|
||||
movs r0, 0
|
||||
b _0812A06A
|
||||
_0812A062:
|
||||
ldrb r0, [r6]
|
||||
adds r0, 0x1
|
||||
strb r0, [r6]
|
||||
_0812A068:
|
||||
movs r0, 0x1
|
||||
_0812A06A:
|
||||
add sp, 0x4
|
||||
pop {r4-r6}
|
||||
pop {r1}
|
||||
bx r1
|
||||
thumb_func_end sub_8129FCC
|
||||
|
||||
thumb_func_start sub_812A074
|
||||
sub_812A074: @ 812A074
|
||||
push {r4,lr}
|
||||
adds r4, r0, 0
|
||||
ldrb r0, [r4]
|
||||
cmp r0, 0
|
||||
beq _0812A084
|
||||
cmp r0, 0x1
|
||||
beq _0812A098
|
||||
b _0812A0A6
|
||||
_0812A084:
|
||||
bl sub_812A804
|
||||
movs r0, 0x2
|
||||
movs r1, 0x2
|
||||
bl CopyWindowToVram
|
||||
ldrb r0, [r4]
|
||||
adds r0, 0x1
|
||||
strb r0, [r4]
|
||||
b _0812A0A6
|
||||
_0812A098:
|
||||
bl IsDma3ManagerBusyWithBgCopy
|
||||
lsls r0, 24
|
||||
cmp r0, 0
|
||||
bne _0812A0A6
|
||||
movs r0, 0
|
||||
b _0812A0A8
|
||||
_0812A0A6:
|
||||
movs r0, 0x1
|
||||
_0812A0A8:
|
||||
pop {r4}
|
||||
pop {r1}
|
||||
bx r1
|
||||
thumb_func_end sub_812A074
|
||||
|
||||
thumb_func_start sub_812A0B0
|
||||
sub_812A0B0: @ 812A0B0
|
||||
push {r4-r6,lr}
|
||||
adds r6, r0, 0
|
||||
ldrb r0, [r6]
|
||||
cmp r0, 0x4
|
||||
bhi _0812A182
|
||||
lsls r0, 2
|
||||
ldr r1, _0812A0C4 @ =_0812A0C8
|
||||
adds r0, r1
|
||||
ldr r0, [r0]
|
||||
mov pc, r0
|
||||
.align 2, 0
|
||||
_0812A0C4: .4byte _0812A0C8
|
||||
.align 2, 0
|
||||
_0812A0C8:
|
||||
.4byte _0812A0DC
|
||||
.4byte _0812A108
|
||||
.4byte _0812A138
|
||||
.4byte _0812A15C
|
||||
.4byte _0812A126
|
||||
_0812A0DC:
|
||||
ldr r0, _0812A104 @ =gUnknown_203B0E4
|
||||
ldr r0, [r0]
|
||||
ldrh r5, [r0, 0x1A]
|
||||
bl sub_81297C4
|
||||
adds r4, r0, 0
|
||||
bl sub_81297D0
|
||||
adds r2, r0, 0
|
||||
lsls r2, 24
|
||||
lsrs r2, 24
|
||||
adds r0, r5, 0
|
||||
adds r1, r4, 0
|
||||
bl sub_812AA78
|
||||
movs r0, 0
|
||||
movs r1, 0x2
|
||||
bl CopyWindowToVram
|
||||
b _0812A17C
|
||||
.align 2, 0
|
||||
_0812A104: .4byte gUnknown_203B0E4
|
||||
_0812A108:
|
||||
bl IsDma3ManagerBusyWithBgCopy
|
||||
lsls r0, 24
|
||||
lsrs r2, r0, 24
|
||||
cmp r2, 0
|
||||
bne _0812A182
|
||||
ldr r0, _0812A12C @ =gUnknown_203B0E4
|
||||
ldr r1, [r0]
|
||||
ldrh r0, [r1, 0x1A]
|
||||
cmp r0, 0x8
|
||||
bhi _0812A130
|
||||
adds r0, 0x1
|
||||
strh r0, [r1, 0x1A]
|
||||
movs r0, 0x4
|
||||
strb r0, [r6]
|
||||
_0812A126:
|
||||
movs r0, 0
|
||||
b _0812A184
|
||||
.align 2, 0
|
||||
_0812A12C: .4byte gUnknown_203B0E4
|
||||
_0812A130:
|
||||
strh r2, [r1, 0x1C]
|
||||
ldrb r0, [r6]
|
||||
adds r0, 0x1
|
||||
strb r0, [r6]
|
||||
_0812A138:
|
||||
movs r0, 0
|
||||
movs r1, 0
|
||||
movs r2, 0x5
|
||||
movs r3, 0x11
|
||||
bl ScrollWindow
|
||||
movs r0, 0
|
||||
movs r1, 0x2
|
||||
bl CopyWindowToVram
|
||||
ldr r0, _0812A178 @ =gUnknown_203B0E4
|
||||
ldr r1, [r0]
|
||||
ldrh r0, [r1, 0x1C]
|
||||
adds r0, 0x1
|
||||
strh r0, [r1, 0x1C]
|
||||
ldrb r0, [r6]
|
||||
adds r0, 0x1
|
||||
strb r0, [r6]
|
||||
_0812A15C:
|
||||
bl IsDma3ManagerBusyWithBgCopy
|
||||
lsls r0, 24
|
||||
cmp r0, 0
|
||||
bne _0812A182
|
||||
ldr r0, _0812A178 @ =gUnknown_203B0E4
|
||||
ldr r0, [r0]
|
||||
ldrh r0, [r0, 0x1C]
|
||||
cmp r0, 0x2
|
||||
bhi _0812A17C
|
||||
ldrb r0, [r6]
|
||||
subs r0, 0x1
|
||||
b _0812A180
|
||||
.align 2, 0
|
||||
_0812A178: .4byte gUnknown_203B0E4
|
||||
_0812A17C:
|
||||
ldrb r0, [r6]
|
||||
adds r0, 0x1
|
||||
_0812A180:
|
||||
strb r0, [r6]
|
||||
_0812A182:
|
||||
movs r0, 0x1
|
||||
_0812A184:
|
||||
pop {r4-r6}
|
||||
pop {r1}
|
||||
bx r1
|
||||
thumb_func_end sub_812A0B0
|
||||
|
||||
thumb_func_start sub_812A18C
|
||||
sub_812A18C: @ 812A18C
|
||||
push {r4,lr}
|
||||
adds r4, r0, 0
|
||||
ldrb r0, [r4]
|
||||
cmp r0, 0
|
||||
beq _0812A19C
|
||||
cmp r0, 0x1
|
||||
beq _0812A1A8
|
||||
b _0812A1AE
|
||||
_0812A19C:
|
||||
bl sub_812AFC0
|
||||
ldrb r0, [r4]
|
||||
adds r0, 0x1
|
||||
strb r0, [r4]
|
||||
b _0812A1AE
|
||||
_0812A1A8:
|
||||
bl sub_812AFFC
|
||||
b _0812A1B0
|
||||
_0812A1AE:
|
||||
movs r0, 0x1
|
||||
_0812A1B0:
|
||||
pop {r4}
|
||||
pop {r1}
|
||||
bx r1
|
||||
thumb_func_end sub_812A18C
|
||||
|
||||
thumb_func_start sub_812A1B8
|
||||
sub_812A1B8: @ 812A1B8
|
||||
push {r4,lr}
|
||||
adds r4, r0, 0
|
||||
ldrb r0, [r4]
|
||||
cmp r0, 0
|
||||
beq _0812A1C8
|
||||
cmp r0, 0x1
|
||||
beq _0812A1E8
|
||||
b _0812A1F2
|
||||
_0812A1C8:
|
||||
movs r0, 0x3
|
||||
movs r1, 0x10
|
||||
bl sub_812A578
|
||||
ldr r0, _0812A1E4 @ =gUnknown_203B0E4
|
||||
ldr r0, [r0]
|
||||
ldrb r0, [r0, 0x1E]
|
||||
movs r1, 0x3
|
||||
bl CopyWindowToVram
|
||||
ldrb r0, [r4]
|
||||
adds r0, 0x1
|
||||
strb r0, [r4]
|
||||
b _0812A1F2
|
||||
.align 2, 0
|
||||
_0812A1E4: .4byte gUnknown_203B0E4
|
||||
_0812A1E8:
|
||||
bl IsDma3ManagerBusyWithBgCopy
|
||||
lsls r0, 24
|
||||
lsrs r0, 24
|
||||
b _0812A1F4
|
||||
_0812A1F2:
|
||||
movs r0, 0x1
|
||||
_0812A1F4:
|
||||
pop {r4}
|
||||
pop {r1}
|
||||
bx r1
|
||||
thumb_func_end sub_812A1B8
|
||||
|
||||
thumb_func_start sub_812A1FC
|
||||
sub_812A1FC: @ 812A1FC
|
||||
push {r4,lr}
|
||||
|
||||
@@ -6,134 +6,6 @@
|
||||
.section .rodata
|
||||
.align 2
|
||||
|
||||
gUnknown_845AA24:: @ 845AA24
|
||||
.incbin "graphics/union_room_chat/unk_845AA24.gbapal"
|
||||
|
||||
gUnknown_845AA44:: @ 845AA44
|
||||
.incbin "graphics/union_room_chat/unk_845AA44.gbapal"
|
||||
|
||||
gUnknown_845AA64:: @ 845AA64
|
||||
.incbin "graphics/union_room_chat/unk_845AA64.gbapal"
|
||||
|
||||
gUnknown_845AA84:: @ 845AA84
|
||||
.4byte 0x00000070
|
||||
@ {
|
||||
@ .bg = 0,
|
||||
@ .charBaseIndex = 0,
|
||||
@ .mapBaseIndex = 7,
|
||||
@ .screenSize = 0,
|
||||
@ .paletteMode = 0,
|
||||
@ .priority = 0,
|
||||
@ .baseTile = 0x0000
|
||||
@ }
|
||||
.4byte 0x000011fd
|
||||
@ {
|
||||
@ .bg = 1,
|
||||
@ .charBaseIndex = 3,
|
||||
@ .mapBaseIndex = 31,
|
||||
@ .screenSize = 0,
|
||||
@ .paletteMode = 0,
|
||||
@ .priority = 1,
|
||||
@ .baseTile = 0x0000
|
||||
@ }
|
||||
.4byte 0x0000217a
|
||||
@ {
|
||||
@ .bg = 2,
|
||||
@ .charBaseIndex = 2,
|
||||
@ .mapBaseIndex = 23,
|
||||
@ .screenSize = 0,
|
||||
@ .paletteMode = 0,
|
||||
@ .priority = 2,
|
||||
@ .baseTile = 0x0000
|
||||
@ }
|
||||
.4byte 0x000070f7
|
||||
@ {
|
||||
@ .bg = 3,
|
||||
@ .charBaseIndex = 1,
|
||||
@ .mapBaseIndex = 15,
|
||||
@ .screenSize = 0,
|
||||
@ .paletteMode = 0,
|
||||
@ .priority = 3,
|
||||
@ .baseTile = 0x0001
|
||||
@ }
|
||||
|
||||
gUnknown_845AA94:: @ 845AA94
|
||||
.byte 3, 8, 1, 21, 19, 15
|
||||
.2byte 0x0001
|
||||
.byte 1, 9, 18, 15, 2, 12
|
||||
.2byte 0x007a
|
||||
.byte 1, 0, 2, 6, 15, 7
|
||||
.2byte 0x0020
|
||||
.byte 0, 1, 2, 7, 9, 14
|
||||
.2byte 0x0013
|
||||
.byte 255, 0, 0, 0, 0, 0
|
||||
.2byte 0x0000
|
||||
|
||||
gUnknown_845AABC:: @ 845AABC
|
||||
.2byte 0x00
|
||||
.align 2
|
||||
.4byte sub_8129CA0
|
||||
.2byte 0x03
|
||||
.align 2
|
||||
.4byte sub_8129D40
|
||||
.2byte 0x04
|
||||
.align 2
|
||||
.4byte sub_8129D78
|
||||
.2byte 0x05
|
||||
.align 2
|
||||
.4byte sub_8129DB0
|
||||
.2byte 0x01
|
||||
.align 2
|
||||
.4byte sub_8129E1C
|
||||
.2byte 0x06
|
||||
.align 2
|
||||
.4byte sub_8129E28
|
||||
.2byte 0x07
|
||||
.align 2
|
||||
.4byte sub_8129E74
|
||||
.2byte 0x08
|
||||
.align 2
|
||||
.4byte sub_8129EB8
|
||||
.2byte 0x09
|
||||
.align 2
|
||||
.4byte sub_8129F24
|
||||
.2byte 0x0a
|
||||
.align 2
|
||||
.4byte sub_8129FCC
|
||||
.2byte 0x0b
|
||||
.align 2
|
||||
.4byte sub_812A074
|
||||
.2byte 0x0c
|
||||
.align 2
|
||||
.4byte sub_812A0B0
|
||||
.2byte 0x02
|
||||
.align 2
|
||||
.4byte sub_812A18C
|
||||
.2byte 0x0d
|
||||
.align 2
|
||||
.4byte sub_812A1B8
|
||||
.2byte 0x12
|
||||
.align 2
|
||||
.4byte sub_812A1FC
|
||||
.2byte 0x13
|
||||
.align 2
|
||||
.4byte sub_812A240
|
||||
.2byte 0x0e
|
||||
.align 2
|
||||
.4byte sub_812A294
|
||||
.2byte 0x0f
|
||||
.align 2
|
||||
.4byte sub_812A2E4
|
||||
.2byte 0x10
|
||||
.align 2
|
||||
.4byte sub_812A334
|
||||
.2byte 0x11
|
||||
.align 2
|
||||
.4byte sub_812A378
|
||||
.2byte 0x14
|
||||
.align 2
|
||||
.4byte sub_812A3D0
|
||||
|
||||
gUnknown_845AB64:: @ 845AB64
|
||||
.4byte gUnknown_841B366
|
||||
.byte 0x01, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00
|
||||
|
||||
@@ -1,8 +1,13 @@
|
||||
#ifndef GUARD_UNION_ROOM_CHAT_H
|
||||
#define GUARD_UNION_ROOM_CHAT_H
|
||||
|
||||
void sub_801DD98(void);
|
||||
void sub_8128420(void);
|
||||
u8 *sub_8129714(void);
|
||||
void sub_8129730(u32 *a0, u32 *a1);
|
||||
u8 *sub_8129758(void);
|
||||
u16 sub_8129788(void);
|
||||
u8 *sub_81297C4(void);
|
||||
u16 sub_81297D0(void);
|
||||
void copy_strings_to_sav1(void);
|
||||
|
||||
#endif // GUARD_UNION_ROOM_CHAT_H
|
||||
|
||||
@@ -0,0 +1,12 @@
|
||||
#ifndef GUARD_UNION_ROOM_CHAT_DISPLAY_H
|
||||
#define GUARD_UNION_ROOM_CHAT_DISPLAY_H
|
||||
|
||||
bool8 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);
|
||||
|
||||
#endif //GUARD_UNION_ROOM_CHAT_DISPLAY_H
|
||||
@@ -0,0 +1,16 @@
|
||||
#ifndef GUARD_UNION_ROOM_CHAT_OBJECTS_H
|
||||
#define GUARD_UNION_ROOM_CHAT_OBJECTS_H
|
||||
|
||||
bool32 sub_812AE70(void);
|
||||
void sub_812AEB0(void);
|
||||
void sub_812AEC8(void);
|
||||
void sub_812AEFC(bool8 invisible);
|
||||
void sub_812AF1C(void);
|
||||
void sub_812AF8C(u32 idx);
|
||||
void sub_812AFC0(void);
|
||||
bool32 sub_812AFFC(void);
|
||||
void sub_812B048(void);
|
||||
void sub_812B100(void);
|
||||
void sub_812B160(void);
|
||||
|
||||
#endif //GUARD_UNION_ROOM_CHAT_OBJECTS_H
|
||||
@@ -247,6 +247,7 @@ SECTIONS {
|
||||
asm/pokemon_special_anim.o(.text);
|
||||
src/party_menu.o(.text);
|
||||
src/union_room_chat.o(.text);
|
||||
src/union_room_chat_display.o(.text);
|
||||
asm/union_room_chat.o(.text);
|
||||
src/help_system_812B1E0.o(.text);
|
||||
src/quest_log_battle.o(.text);
|
||||
@@ -536,6 +537,7 @@ SECTIONS {
|
||||
data/pokemon_special_anim.o(.rodata);
|
||||
src/party_menu.o(.rodata);
|
||||
src/union_room_chat.o(.rodata);
|
||||
src/union_room_chat_display.o(.rodata);
|
||||
data/union_room_chat.o(.rodata);
|
||||
src/help_system_812B1E0.o(.rodata);
|
||||
src/fame_checker.o(.rodata);
|
||||
|
||||
@@ -13,6 +13,7 @@
|
||||
#include "scanline_effect.h"
|
||||
#include "strings.h"
|
||||
#include "task.h"
|
||||
#include "union_room_chat_display.h"
|
||||
#include "data_8479668.h"
|
||||
#include "constants/songs.h"
|
||||
|
||||
@@ -89,13 +90,6 @@ void sub_81295EC(u8 *ptr);
|
||||
void sub_8129614(u8 *ptr);
|
||||
u8 *sub_8129758(void);
|
||||
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,
|
||||
|
||||
@@ -0,0 +1,656 @@
|
||||
#include "global.h"
|
||||
#include "gflib.h"
|
||||
#include "new_menu_helpers.h"
|
||||
#include "scanline_effect.h"
|
||||
#include "union_room_chat.h"
|
||||
#include "union_room_chat_display.h"
|
||||
#include "union_room_chat_objects.h"
|
||||
|
||||
struct UnionRoomChat2_Unk0
|
||||
{
|
||||
bool32 (*unk0)(u8 *);
|
||||
u8 unk4;
|
||||
u8 unk5;
|
||||
};
|
||||
|
||||
struct UnionRoomChat2
|
||||
{
|
||||
struct UnionRoomChat2_Unk0 unk0[3];
|
||||
u16 unk18;
|
||||
u16 unk1A;
|
||||
u16 unk1C;
|
||||
u16 unk1E;
|
||||
s16 unk20;
|
||||
u8 unk22[0x106];
|
||||
u8 unk128[BG_SCREEN_SIZE];
|
||||
u8 unk928[BG_SCREEN_SIZE];
|
||||
u8 unk1128[BG_SCREEN_SIZE];
|
||||
u8 unk1928[BG_SCREEN_SIZE];
|
||||
u8 unk2128[0x20];
|
||||
u8 unk2148[0x20];
|
||||
};
|
||||
|
||||
struct Unk845AABC
|
||||
{
|
||||
u16 unk0;
|
||||
bool32 (*unk4)(u8 *);
|
||||
};
|
||||
|
||||
EWRAM_DATA struct UnionRoomChat2 * gUnknown_203B0E4 = NULL;
|
||||
|
||||
void sub_8129BB8(struct UnionRoomChat2 * ptr);
|
||||
void sub_8129BC4(void);
|
||||
bool32 sub_8129CA0(u8 *state);
|
||||
bool32 sub_8129D40(u8 *state);
|
||||
bool32 sub_8129D78(u8 *state);
|
||||
bool32 sub_8129DB0(u8 *state);
|
||||
bool32 sub_8129E1C(u8 *state);
|
||||
bool32 sub_8129E28(u8 *state);
|
||||
bool32 sub_8129E74(u8 *state);
|
||||
bool32 sub_8129EB8(u8 *state);
|
||||
bool32 sub_8129F24(u8 *state);
|
||||
bool32 sub_8129FCC(u8 *state);
|
||||
bool32 sub_812A074(u8 *state);
|
||||
bool32 sub_812A0B0(u8 *state);
|
||||
bool32 sub_812A18C(u8 *state);
|
||||
bool32 sub_812A1B8(u8 *state);
|
||||
bool32 sub_812A1FC(u8 *state);
|
||||
bool32 sub_812A240(u8 *state);
|
||||
bool32 sub_812A294(u8 *state);
|
||||
bool32 sub_812A2E4(u8 *state);
|
||||
bool32 sub_812A334(u8 *state);
|
||||
bool32 sub_812A378(u8 *state);
|
||||
bool32 sub_812A3D0(u8 *state);
|
||||
bool32 sub_812A420(u8 *state);
|
||||
void sub_812A424(u8 a0, u8 a1, u8 a2);
|
||||
void sub_812A51C(void);
|
||||
void sub_812A544(void);
|
||||
void sub_812A578(int a0, u16 a1);
|
||||
void sub_812A6F4(void);
|
||||
void sub_812A728(void);
|
||||
void sub_812A74C(u16 a0, u16 a1, u8 a2);
|
||||
void sub_812A778(u16 a0, u8 *a1, u8 a2, u8 a3, u8 a4);
|
||||
void sub_812A804(void);
|
||||
bool32 sub_812A980(void);
|
||||
bool32 sub_812A9C8(void);
|
||||
void sub_812AA10(void);
|
||||
void sub_812AA64(void);
|
||||
void sub_812AA78(u16 a0, u8 *a1, u8 a2);
|
||||
void sub_812AAD4(void);
|
||||
void sub_812AB8C(void);
|
||||
void sub_812ABD8(void);
|
||||
void sub_812AC08(void);
|
||||
void sub_812AC58(void);
|
||||
void sub_812AC9C(void);
|
||||
void sub_812ACC0(void);
|
||||
void sub_812ACEC(void);
|
||||
void sub_812AD04(void);
|
||||
void sub_812AD20(void);
|
||||
void sub_812AD50(void);
|
||||
|
||||
const u16 gUnknown_845AA24[] = INCBIN_U16("graphics/union_room_chat/unk_845AA24.gbapal");
|
||||
const u16 gUnknown_845AA44[] = INCBIN_U16("graphics/union_room_chat/unk_845AA44.gbapal");
|
||||
const u16 gUnknown_845AA64[] = INCBIN_U16("graphics/union_room_chat/unk_845AA64.gbapal");
|
||||
|
||||
const struct BgTemplate gUnknown_845AA84[] = {
|
||||
{
|
||||
.bg = 0,
|
||||
.charBaseIndex = 0,
|
||||
.mapBaseIndex = 7,
|
||||
.screenSize = 0,
|
||||
.paletteMode = 0,
|
||||
.priority = 0,
|
||||
.baseTile = 0x0000
|
||||
}, {
|
||||
.bg = 1,
|
||||
.charBaseIndex = 3,
|
||||
.mapBaseIndex = 31,
|
||||
.screenSize = 0,
|
||||
.paletteMode = 0,
|
||||
.priority = 1,
|
||||
.baseTile = 0x0000
|
||||
}, {
|
||||
.bg = 2,
|
||||
.charBaseIndex = 2,
|
||||
.mapBaseIndex = 23,
|
||||
.screenSize = 0,
|
||||
.paletteMode = 0,
|
||||
.priority = 2,
|
||||
.baseTile = 0x0000
|
||||
}, {
|
||||
.bg = 3,
|
||||
.charBaseIndex = 1,
|
||||
.mapBaseIndex = 15,
|
||||
.screenSize = 0,
|
||||
.paletteMode = 0,
|
||||
.priority = 3,
|
||||
.baseTile = 0x0001
|
||||
}
|
||||
};
|
||||
|
||||
const struct WindowTemplate gUnknown_845AA94[] = {
|
||||
{
|
||||
.bg = 3,
|
||||
.tilemapLeft = 8,
|
||||
.tilemapTop = 1,
|
||||
.width = 21,
|
||||
.height = 19,
|
||||
.paletteNum = 15,
|
||||
.baseBlock = 0x001
|
||||
}, {
|
||||
.bg = 1,
|
||||
.tilemapLeft = 9,
|
||||
.tilemapTop = 18,
|
||||
.width = 15,
|
||||
.height = 2,
|
||||
.paletteNum = 12,
|
||||
.baseBlock = 0x07a
|
||||
}, {
|
||||
.bg = 1,
|
||||
.tilemapLeft = 0,
|
||||
.tilemapTop = 2,
|
||||
.width = 6,
|
||||
.height = 15,
|
||||
.paletteNum = 7,
|
||||
.baseBlock = 0x020
|
||||
}, {
|
||||
.bg = 0,
|
||||
.tilemapLeft = 1,
|
||||
.tilemapTop = 2,
|
||||
.width = 7,
|
||||
.height = 9,
|
||||
.paletteNum = 14,
|
||||
.baseBlock = 0x013
|
||||
}, DUMMY_WIN_TEMPLATE
|
||||
};
|
||||
|
||||
const struct Unk845AABC gUnknown_845AABC[] = {
|
||||
{ 0, sub_8129CA0},
|
||||
{ 3, sub_8129D40},
|
||||
{ 4, sub_8129D78},
|
||||
{ 5, sub_8129DB0},
|
||||
{ 1, sub_8129E1C},
|
||||
{ 6, sub_8129E28},
|
||||
{ 7, sub_8129E74},
|
||||
{ 8, sub_8129EB8},
|
||||
{ 9, sub_8129F24},
|
||||
{10, sub_8129FCC},
|
||||
{11, sub_812A074},
|
||||
{12, sub_812A0B0},
|
||||
{ 2, sub_812A18C},
|
||||
{13, sub_812A1B8},
|
||||
{18, sub_812A1FC},
|
||||
{19, sub_812A240},
|
||||
{14, sub_812A294},
|
||||
{15, sub_812A2E4},
|
||||
{16, sub_812A334},
|
||||
{17, sub_812A378},
|
||||
{20, sub_812A3D0}
|
||||
};
|
||||
|
||||
bool8 sub_8129B14(void)
|
||||
{
|
||||
gUnknown_203B0E4 = Alloc(sizeof(*gUnknown_203B0E4));
|
||||
if (gUnknown_203B0E4 && sub_812AE70())
|
||||
{
|
||||
ResetBgsAndClearDma3BusyFlags(0);
|
||||
InitBgsFromTemplates(0, gUnknown_845AA84, NELEMS(gUnknown_845AA84));
|
||||
InitWindows(gUnknown_845AA94);
|
||||
ResetTempTileDataBuffers();
|
||||
sub_812AD50();
|
||||
sub_8129BB8(gUnknown_203B0E4);
|
||||
sub_8129BC4();
|
||||
sub_8129C34(0, 0);
|
||||
return TRUE;
|
||||
}
|
||||
else
|
||||
{
|
||||
return FALSE;
|
||||
}
|
||||
}
|
||||
|
||||
bool32 sub_8129B78(void)
|
||||
{
|
||||
return sub_8129C8C(0);
|
||||
}
|
||||
|
||||
void sub_8129B88(void)
|
||||
{
|
||||
sub_812AEB0();
|
||||
if (gUnknown_203B0E4)
|
||||
FREE_AND_SET_NULL(gUnknown_203B0E4);
|
||||
|
||||
FreeAllWindowBuffers();
|
||||
gScanlineEffect.state = 3;
|
||||
}
|
||||
|
||||
void sub_8129BB8(struct UnionRoomChat2 *arg0)
|
||||
{
|
||||
arg0->unk18 = 0xFF;
|
||||
arg0->unk1E = 0xFF;
|
||||
arg0->unk1A = 0;
|
||||
}
|
||||
|
||||
void sub_8129BC4(void)
|
||||
{
|
||||
int i;
|
||||
|
||||
if (!gUnknown_203B0E4)
|
||||
return;
|
||||
|
||||
for (i = 0; i < 3; i++)
|
||||
{
|
||||
gUnknown_203B0E4->unk0[i].unk0 = sub_812A420;
|
||||
gUnknown_203B0E4->unk0[i].unk4 = 0;
|
||||
gUnknown_203B0E4->unk0[i].unk5 = 0;
|
||||
}
|
||||
}
|
||||
|
||||
void sub_8129BFC(void)
|
||||
{
|
||||
int i;
|
||||
|
||||
if (gUnknown_203B0E4 == NULL)
|
||||
return;
|
||||
|
||||
for (i = 0; i < 3; i++)
|
||||
{
|
||||
if (gUnknown_203B0E4->unk0[i].unk4)
|
||||
gUnknown_203B0E4->unk0[i].unk4 = gUnknown_203B0E4->unk0[i].unk0(&gUnknown_203B0E4->unk0[i].unk5);
|
||||
}
|
||||
}
|
||||
|
||||
void sub_8129C34(u16 arg0, u8 arg1)
|
||||
{
|
||||
int i;
|
||||
|
||||
gUnknown_203B0E4->unk0[arg1].unk0 = sub_812A420;
|
||||
for (i = 0; i < NELEMS(gUnknown_845AABC); i++)
|
||||
{
|
||||
if (gUnknown_845AABC[i].unk0 == arg0)
|
||||
{
|
||||
gUnknown_203B0E4->unk0[arg1].unk0 = gUnknown_845AABC[i].unk4;
|
||||
gUnknown_203B0E4->unk0[arg1].unk4 = 1;
|
||||
gUnknown_203B0E4->unk0[arg1].unk5 = 0;
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
bool8 sub_8129C8C(u8 arg0)
|
||||
{
|
||||
return gUnknown_203B0E4->unk0[arg0].unk4;
|
||||
}
|
||||
|
||||
bool32 sub_8129CA0(u8 *state)
|
||||
{
|
||||
if (FreeTempTileDataBuffersIfPossible() == TRUE)
|
||||
return TRUE;
|
||||
|
||||
switch (*state)
|
||||
{
|
||||
case 0:
|
||||
sub_812AAD4();
|
||||
sub_812AB8C();
|
||||
break;
|
||||
case 1:
|
||||
sub_812ABD8();
|
||||
break;
|
||||
case 2:
|
||||
sub_812AC08();
|
||||
break;
|
||||
case 3:
|
||||
sub_812AC58();
|
||||
break;
|
||||
case 4:
|
||||
sub_812AC9C();
|
||||
break;
|
||||
case 5:
|
||||
sub_812ACC0();
|
||||
sub_812ACEC();
|
||||
sub_812AD20();
|
||||
sub_812AD04();
|
||||
break;
|
||||
case 6:
|
||||
if (!IsDma3ManagerBusyWithBgCopy())
|
||||
{
|
||||
sub_812AEC8();
|
||||
sub_812B048();
|
||||
sub_812B100();
|
||||
}
|
||||
break;
|
||||
default:
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
(*state)++;
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
bool32 sub_8129D40(u8 *state)
|
||||
{
|
||||
switch (*state)
|
||||
{
|
||||
case 0:
|
||||
sub_812AA10();
|
||||
CopyWindowToVram(3, 3);
|
||||
break;
|
||||
case 1:
|
||||
return IsDma3ManagerBusyWithBgCopy();
|
||||
}
|
||||
|
||||
(*state)++;
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
bool32 sub_8129D78(u8 *state)
|
||||
{
|
||||
switch (*state)
|
||||
{
|
||||
case 0:
|
||||
sub_812AA64();
|
||||
CopyWindowToVram(3, 3);
|
||||
break;
|
||||
case 1:
|
||||
return IsDma3ManagerBusyWithBgCopy();
|
||||
}
|
||||
|
||||
(*state)++;
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
bool32 sub_8129DB0(u8 *state)
|
||||
{
|
||||
switch (*state)
|
||||
{
|
||||
case 0:
|
||||
sub_812AEFC(TRUE);
|
||||
if (sub_812A980())
|
||||
return TRUE;
|
||||
|
||||
sub_812A804();
|
||||
CopyWindowToVram(2, 2);
|
||||
break;
|
||||
case 1:
|
||||
if (IsDma3ManagerBusyWithBgCopy())
|
||||
return TRUE;
|
||||
break;
|
||||
case 2:
|
||||
if (sub_812A9C8())
|
||||
return TRUE;
|
||||
|
||||
sub_812AF1C();
|
||||
sub_812AEFC(FALSE);
|
||||
sub_812B160();
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
(*state)++;
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
bool32 sub_8129E1C(u8 *state)
|
||||
{
|
||||
sub_812AF1C();
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
bool32 sub_8129E28(u8 *state)
|
||||
{
|
||||
switch (*state)
|
||||
{
|
||||
case 0:
|
||||
sub_812A578(0, 0);
|
||||
sub_812A424(23, 11, 1);
|
||||
CopyWindowToVram(gUnknown_203B0E4->unk1E, 3);
|
||||
break;
|
||||
case 1:
|
||||
return IsDma3ManagerBusyWithBgCopy();
|
||||
}
|
||||
|
||||
(*state)++;
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
bool32 sub_8129E74(u8 *state)
|
||||
{
|
||||
switch (*state)
|
||||
{
|
||||
case 0:
|
||||
sub_812A6F4();
|
||||
sub_812A51C();
|
||||
CopyBgTilemapBufferToVram(0);
|
||||
break;
|
||||
case 1:
|
||||
if (IsDma3ManagerBusyWithBgCopy())
|
||||
return TRUE;
|
||||
|
||||
sub_812A728();
|
||||
sub_812A544();
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
(*state)++;
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
bool32 sub_8129EB8(u8 *state)
|
||||
{
|
||||
u32 var0, var1;
|
||||
u8 *str;
|
||||
|
||||
switch (*state)
|
||||
{
|
||||
case 0:
|
||||
sub_8129730(&var0, &var1);
|
||||
sub_812A74C(var0, var1, 0);
|
||||
str = sub_8129714();
|
||||
sub_812A778(0, str, 3, 1, 2);
|
||||
CopyWindowToVram(1, 2);
|
||||
break;
|
||||
case 1:
|
||||
if (!IsDma3ManagerBusyWithBgCopy())
|
||||
{
|
||||
sub_812B160();
|
||||
return FALSE;
|
||||
}
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
(*state)++;
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
bool32 sub_8129F24(u8 *state)
|
||||
{
|
||||
u16 var0;
|
||||
u8 *str;
|
||||
u16 length;
|
||||
|
||||
switch (*state)
|
||||
{
|
||||
case 0:
|
||||
var0 = sub_8129788();
|
||||
str = sub_8129758();
|
||||
length = StringLength_Multibyte(str);
|
||||
sub_812A74C(var0, length, PIXEL_FILL(6));
|
||||
sub_812A778(var0, str, 0, 4, 5);
|
||||
CopyWindowToVram(1, 2);
|
||||
break;
|
||||
case 1:
|
||||
if (!IsDma3ManagerBusyWithBgCopy())
|
||||
{
|
||||
sub_812A578(1, 16);
|
||||
CopyWindowToVram(gUnknown_203B0E4->unk1E, 3);
|
||||
}
|
||||
else
|
||||
{
|
||||
return TRUE;
|
||||
}
|
||||
break;
|
||||
case 2:
|
||||
if (!IsDma3ManagerBusyWithBgCopy())
|
||||
sub_812AF8C(1);
|
||||
else
|
||||
return TRUE;
|
||||
break;
|
||||
case 3:
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
(*state)++;
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
bool32 sub_8129FCC(u8 *state)
|
||||
{
|
||||
u16 var0;
|
||||
u8 *str;
|
||||
u16 length;
|
||||
|
||||
switch (*state)
|
||||
{
|
||||
case 0:
|
||||
var0 = sub_8129788();
|
||||
str = sub_8129758();
|
||||
length = StringLength_Multibyte(str);
|
||||
sub_812A74C(var0, length, PIXEL_FILL(0));
|
||||
sub_812A778(var0, str, 3, 1, 2);
|
||||
CopyWindowToVram(1, 2);
|
||||
break;
|
||||
case 1:
|
||||
if (!IsDma3ManagerBusyWithBgCopy())
|
||||
{
|
||||
sub_812A6F4();
|
||||
CopyWindowToVram(gUnknown_203B0E4->unk1E, 3);
|
||||
}
|
||||
else
|
||||
{
|
||||
return TRUE;
|
||||
}
|
||||
break;
|
||||
case 2:
|
||||
if (!IsDma3ManagerBusyWithBgCopy())
|
||||
{
|
||||
sub_812AF8C(0);
|
||||
sub_812A728();
|
||||
}
|
||||
else
|
||||
{
|
||||
return TRUE;
|
||||
}
|
||||
break;
|
||||
case 3:
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
(*state)++;
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
bool32 sub_812A074(u8 *state)
|
||||
{
|
||||
switch (*state)
|
||||
{
|
||||
case 0:
|
||||
sub_812A804();
|
||||
CopyWindowToVram(2, 2);
|
||||
(*state)++;
|
||||
break;
|
||||
case 1:
|
||||
if (IsDma3ManagerBusyWithBgCopy())
|
||||
return TRUE;
|
||||
else
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
bool32 sub_812A0B0(u8 *state)
|
||||
{
|
||||
u16 var0;
|
||||
u8 *str;
|
||||
u8 var1;
|
||||
|
||||
switch (*state)
|
||||
{
|
||||
case 0:
|
||||
var0 = gUnknown_203B0E4->unk1A;
|
||||
str = sub_81297C4();
|
||||
var1 = sub_81297D0();
|
||||
sub_812AA78(var0, str, var1);
|
||||
CopyWindowToVram(0, 2);
|
||||
break;
|
||||
case 1:
|
||||
if (IsDma3ManagerBusyWithBgCopy())
|
||||
return TRUE;
|
||||
|
||||
if (gUnknown_203B0E4->unk1A < 9)
|
||||
{
|
||||
gUnknown_203B0E4->unk1A++;
|
||||
*state = 4;
|
||||
return FALSE;
|
||||
}
|
||||
else
|
||||
{
|
||||
gUnknown_203B0E4->unk1C = 0;
|
||||
(*state)++;
|
||||
}
|
||||
// fall through
|
||||
case 2:
|
||||
ScrollWindow(0, 0, 5, PIXEL_FILL(1));
|
||||
CopyWindowToVram(0, 2);
|
||||
gUnknown_203B0E4->unk1C++;
|
||||
(*state)++;
|
||||
// fall through
|
||||
case 3:
|
||||
if (IsDma3ManagerBusyWithBgCopy())
|
||||
return TRUE;
|
||||
|
||||
if (gUnknown_203B0E4->unk1C < 3)
|
||||
{
|
||||
(*state)--;
|
||||
return TRUE;
|
||||
}
|
||||
break;
|
||||
case 4:
|
||||
return FALSE;
|
||||
default:
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
(*state)++;
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
bool32 sub_812A18C(u8 *state)
|
||||
{
|
||||
switch (*state)
|
||||
{
|
||||
case 0:
|
||||
sub_812AFC0();
|
||||
(*state)++;
|
||||
break;
|
||||
case 1:
|
||||
return sub_812AFFC();
|
||||
}
|
||||
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
bool32 sub_812A1B8(u8 *state)
|
||||
{
|
||||
switch (*state)
|
||||
{
|
||||
case 0:
|
||||
sub_812A578(3, 16);
|
||||
CopyWindowToVram(gUnknown_203B0E4->unk1E, 3);
|
||||
(*state)++;
|
||||
break;
|
||||
case 1:
|
||||
return IsDma3ManagerBusyWithBgCopy();
|
||||
}
|
||||
|
||||
return TRUE;
|
||||
}
|
||||
Reference in New Issue
Block a user