through sub_8129560
This commit is contained in:
+2
-489
@@ -5,493 +5,6 @@
|
||||
|
||||
.text
|
||||
|
||||
thumb_func_start sub_8129218
|
||||
sub_8129218: @ 8129218
|
||||
ldr r1, _08129224 @ =gUnknown_203B0E0
|
||||
ldr r1, [r1]
|
||||
movs r2, 0
|
||||
strh r0, [r1, 0x4]
|
||||
strh r2, [r1, 0x6]
|
||||
bx lr
|
||||
.align 2, 0
|
||||
_08129224: .4byte gUnknown_203B0E0
|
||||
thumb_func_end sub_8129218
|
||||
|
||||
thumb_func_start sub_8129228
|
||||
sub_8129228: @ 8129228
|
||||
push {lr}
|
||||
ldr r0, _08129258 @ =gMain
|
||||
ldrh r2, [r0, 0x30]
|
||||
movs r0, 0x40
|
||||
ands r0, r2
|
||||
lsls r0, 16
|
||||
lsrs r3, r0, 16
|
||||
cmp r3, 0
|
||||
bne _081292B2
|
||||
movs r0, 0x80
|
||||
ands r0, r2
|
||||
cmp r0, 0
|
||||
beq _08129268
|
||||
ldr r0, _0812925C @ =gUnknown_203B0E0
|
||||
ldr r2, [r0]
|
||||
ldr r1, _08129260 @ =gUnknown_845A8A8
|
||||
ldrb r0, [r2, 0x10]
|
||||
adds r0, r1
|
||||
ldrb r1, [r2, 0x12]
|
||||
ldrb r0, [r0]
|
||||
cmp r1, r0
|
||||
bcs _08129264
|
||||
adds r0, r1, 0x1
|
||||
b _081292CC
|
||||
.align 2, 0
|
||||
_08129258: .4byte gMain
|
||||
_0812925C: .4byte gUnknown_203B0E0
|
||||
_08129260: .4byte gUnknown_845A8A8
|
||||
_08129264:
|
||||
strb r3, [r2, 0x12]
|
||||
b _081292CE
|
||||
_08129268:
|
||||
ldr r0, _0812928C @ =gUnknown_203B0E0
|
||||
ldr r1, [r0]
|
||||
ldrb r0, [r1, 0x10]
|
||||
cmp r0, 0x3
|
||||
beq _081292AE
|
||||
movs r0, 0x20
|
||||
ands r0, r2
|
||||
lsls r0, 16
|
||||
lsrs r3, r0, 16
|
||||
cmp r3, 0
|
||||
beq _08129296
|
||||
ldrb r0, [r1, 0x11]
|
||||
cmp r0, 0
|
||||
beq _08129290
|
||||
subs r0, 0x1
|
||||
strb r0, [r1, 0x11]
|
||||
b _081292CE
|
||||
.align 2, 0
|
||||
_0812928C: .4byte gUnknown_203B0E0
|
||||
_08129290:
|
||||
movs r0, 0x4
|
||||
strb r0, [r1, 0x11]
|
||||
b _081292CE
|
||||
_08129296:
|
||||
movs r0, 0x10
|
||||
ands r0, r2
|
||||
cmp r0, 0
|
||||
beq _081292AE
|
||||
ldrb r0, [r1, 0x11]
|
||||
cmp r0, 0x3
|
||||
bhi _081292AA
|
||||
adds r0, 0x1
|
||||
strb r0, [r1, 0x11]
|
||||
b _081292CE
|
||||
_081292AA:
|
||||
strb r3, [r1, 0x11]
|
||||
b _081292CE
|
||||
_081292AE:
|
||||
movs r0, 0
|
||||
b _081292D0
|
||||
_081292B2:
|
||||
ldr r0, _081292C0 @ =gUnknown_203B0E0
|
||||
ldr r2, [r0]
|
||||
ldrb r0, [r2, 0x12]
|
||||
cmp r0, 0
|
||||
beq _081292C4
|
||||
subs r0, 0x1
|
||||
b _081292CC
|
||||
.align 2, 0
|
||||
_081292C0: .4byte gUnknown_203B0E0
|
||||
_081292C4:
|
||||
ldr r0, _081292D4 @ =gUnknown_845A8A8
|
||||
ldrb r1, [r2, 0x10]
|
||||
adds r1, r0
|
||||
ldrb r0, [r1]
|
||||
_081292CC:
|
||||
strb r0, [r2, 0x12]
|
||||
_081292CE:
|
||||
movs r0, 0x1
|
||||
_081292D0:
|
||||
pop {r1}
|
||||
bx r1
|
||||
.align 2, 0
|
||||
_081292D4: .4byte gUnknown_845A8A8
|
||||
thumb_func_end sub_8129228
|
||||
|
||||
thumb_func_start sub_81292D8
|
||||
sub_81292D8: @ 81292D8
|
||||
push {r4-r6,lr}
|
||||
sub sp, 0x18
|
||||
ldr r0, _08129318 @ =gUnknown_203B0E0
|
||||
ldr r5, [r0]
|
||||
ldrb r0, [r5, 0x10]
|
||||
cmp r0, 0x3
|
||||
beq _08129320
|
||||
ldr r3, _0812931C @ =gUnknown_845A9AC
|
||||
ldrb r1, [r5, 0x12]
|
||||
lsls r1, 2
|
||||
adds r2, r0, 0
|
||||
lsls r0, r2, 2
|
||||
adds r0, r2
|
||||
lsls r0, 3
|
||||
adds r1, r0
|
||||
adds r1, r3
|
||||
ldr r4, [r1]
|
||||
ldrb r0, [r5, 0x11]
|
||||
cmp r0, 0
|
||||
beq _08129312
|
||||
adds r1, r0, 0
|
||||
_08129302:
|
||||
ldrb r0, [r4]
|
||||
cmp r0, 0xF9
|
||||
bne _0812930A
|
||||
adds r4, 0x1
|
||||
_0812930A:
|
||||
adds r4, 0x1
|
||||
subs r1, 0x1
|
||||
cmp r1, 0
|
||||
bne _08129302
|
||||
_08129312:
|
||||
movs r5, 0x1
|
||||
b _08129346
|
||||
.align 2, 0
|
||||
_08129318: .4byte gUnknown_203B0E0
|
||||
_0812931C: .4byte gUnknown_845A9AC
|
||||
_08129320:
|
||||
ldrb r0, [r5, 0x12]
|
||||
lsls r1, r0, 2
|
||||
adds r1, r0
|
||||
lsls r1, 2
|
||||
adds r1, r0
|
||||
adds r1, 0xB9
|
||||
adds r1, r5, r1
|
||||
mov r0, sp
|
||||
bl StringCopy
|
||||
movs r1, 0
|
||||
strb r1, [r0]
|
||||
movs r1, 0xFF
|
||||
strb r1, [r0, 0x1]
|
||||
mov r4, sp
|
||||
mov r0, sp
|
||||
bl StringLength_Multibyte
|
||||
adds r5, r0, 0
|
||||
_08129346:
|
||||
ldr r6, _081293A8 @ =gUnknown_203B0E0
|
||||
ldr r1, [r6]
|
||||
ldrb r0, [r1, 0x15]
|
||||
strb r0, [r1, 0x14]
|
||||
cmp r4, 0
|
||||
beq _0812939E
|
||||
bl sub_81294C8
|
||||
adds r2, r0, 0
|
||||
subs r5, 0x1
|
||||
movs r0, 0x1
|
||||
negs r0, r0
|
||||
cmp r5, r0
|
||||
beq _0812939A
|
||||
ldr r0, [r6]
|
||||
ldrb r0, [r0, 0x15]
|
||||
cmp r0, 0xE
|
||||
bhi _0812939A
|
||||
adds r3, r6, 0
|
||||
_0812936C:
|
||||
ldrb r0, [r4]
|
||||
cmp r0, 0xF9
|
||||
bne _08129378
|
||||
strb r0, [r2]
|
||||
adds r4, 0x1
|
||||
adds r2, 0x1
|
||||
_08129378:
|
||||
ldrb r0, [r4]
|
||||
strb r0, [r2]
|
||||
adds r4, 0x1
|
||||
adds r2, 0x1
|
||||
ldr r1, [r3]
|
||||
ldrb r0, [r1, 0x15]
|
||||
adds r0, 0x1
|
||||
strb r0, [r1, 0x15]
|
||||
subs r5, 0x1
|
||||
movs r0, 0x1
|
||||
negs r0, r0
|
||||
cmp r5, r0
|
||||
beq _0812939A
|
||||
ldr r0, [r3]
|
||||
ldrb r0, [r0, 0x15]
|
||||
cmp r0, 0xE
|
||||
bls _0812936C
|
||||
_0812939A:
|
||||
movs r0, 0xFF
|
||||
strb r0, [r2]
|
||||
_0812939E:
|
||||
add sp, 0x18
|
||||
pop {r4-r6}
|
||||
pop {r0}
|
||||
bx r0
|
||||
.align 2, 0
|
||||
_081293A8: .4byte gUnknown_203B0E0
|
||||
thumb_func_end sub_81292D8
|
||||
|
||||
thumb_func_start sub_81293AC
|
||||
sub_81293AC: @ 81293AC
|
||||
push {r4,lr}
|
||||
ldr r4, _081293D4 @ =gUnknown_203B0E0
|
||||
ldr r1, [r4]
|
||||
ldrb r0, [r1, 0x15]
|
||||
strb r0, [r1, 0x14]
|
||||
ldr r0, [r4]
|
||||
ldrb r0, [r0, 0x15]
|
||||
cmp r0, 0
|
||||
beq _081293CE
|
||||
bl sub_81294EC
|
||||
movs r1, 0xFF
|
||||
strb r1, [r0]
|
||||
ldr r1, [r4]
|
||||
ldrb r0, [r1, 0x15]
|
||||
subs r0, 0x1
|
||||
strb r0, [r1, 0x15]
|
||||
_081293CE:
|
||||
pop {r4}
|
||||
pop {r0}
|
||||
bx r0
|
||||
.align 2, 0
|
||||
_081293D4: .4byte gUnknown_203B0E0
|
||||
thumb_func_end sub_81293AC
|
||||
|
||||
thumb_func_start sub_81293D8
|
||||
sub_81293D8: @ 81293D8
|
||||
push {lr}
|
||||
ldr r0, _08129400 @ =gUnknown_203B0E0
|
||||
ldr r1, [r0]
|
||||
ldrb r0, [r1, 0x15]
|
||||
subs r0, 0x1
|
||||
strb r0, [r1, 0x14]
|
||||
bl sub_81294EC
|
||||
adds r2, r0, 0
|
||||
ldrb r0, [r2]
|
||||
cmp r0, 0xF9
|
||||
beq _081293FC
|
||||
ldr r1, _08129404 @ =gUnknown_845A8AC
|
||||
adds r0, r1
|
||||
ldrb r0, [r0]
|
||||
cmp r0, 0
|
||||
beq _081293FC
|
||||
strb r0, [r2]
|
||||
_081293FC:
|
||||
pop {r0}
|
||||
bx r0
|
||||
.align 2, 0
|
||||
_08129400: .4byte gUnknown_203B0E0
|
||||
_08129404: .4byte gUnknown_845A8AC
|
||||
thumb_func_end sub_81293D8
|
||||
|
||||
thumb_func_start sub_8129408
|
||||
sub_8129408: @ 8129408
|
||||
push {lr}
|
||||
ldr r0, _08129418 @ =gUnknown_203B0E0
|
||||
ldr r0, [r0]
|
||||
ldrb r0, [r0, 0x15]
|
||||
cmp r0, 0
|
||||
bne _0812941C
|
||||
movs r0, 0
|
||||
b _0812941E
|
||||
.align 2, 0
|
||||
_08129418: .4byte gUnknown_203B0E0
|
||||
_0812941C:
|
||||
movs r0, 0x1
|
||||
_0812941E:
|
||||
pop {r1}
|
||||
bx r1
|
||||
thumb_func_end sub_8129408
|
||||
|
||||
thumb_func_start sub_8129424
|
||||
sub_8129424: @ 8129424
|
||||
push {r4,lr}
|
||||
bl sub_8129758
|
||||
adds r1, r0, 0
|
||||
ldr r4, _08129450 @ =gUnknown_203B0E0
|
||||
ldr r0, [r4]
|
||||
ldrb r3, [r0, 0x12]
|
||||
lsls r2, r3, 2
|
||||
adds r2, r3
|
||||
lsls r2, 2
|
||||
adds r2, r3
|
||||
adds r2, 0xB9
|
||||
adds r0, r2
|
||||
bl StringCopy
|
||||
ldr r1, [r4]
|
||||
movs r0, 0x1
|
||||
strb r0, [r1, 0x18]
|
||||
pop {r4}
|
||||
pop {r0}
|
||||
bx r0
|
||||
.align 2, 0
|
||||
_08129450: .4byte gUnknown_203B0E0
|
||||
thumb_func_end sub_8129424
|
||||
|
||||
thumb_func_start sub_8129454
|
||||
sub_8129454: @ 8129454
|
||||
ldr r1, _0812946C @ =gUnknown_203B0E0
|
||||
ldr r2, [r1]
|
||||
movs r0, 0xFF
|
||||
strb r0, [r2, 0x1A]
|
||||
ldr r2, [r1]
|
||||
movs r3, 0
|
||||
movs r0, 0xF
|
||||
strb r0, [r2, 0x14]
|
||||
ldr r0, [r1]
|
||||
strb r3, [r0, 0x15]
|
||||
bx lr
|
||||
.align 2, 0
|
||||
_0812946C: .4byte gUnknown_203B0E0
|
||||
thumb_func_end sub_8129454
|
||||
|
||||
thumb_func_start sub_8129470
|
||||
sub_8129470: @ 8129470
|
||||
push {r4-r7,lr}
|
||||
mov r7, r8
|
||||
push {r7}
|
||||
ldr r0, _081294A4 @ =gSaveBlock1Ptr
|
||||
mov r8, r0
|
||||
ldr r7, _081294A8 @ =gUnknown_203B0E0
|
||||
movs r6, 0xB9
|
||||
ldr r5, _081294AC @ =0x00003ad4
|
||||
movs r4, 0x9
|
||||
_08129482:
|
||||
mov r1, r8
|
||||
ldr r0, [r1]
|
||||
adds r0, r5
|
||||
ldr r1, [r7]
|
||||
adds r1, r6
|
||||
bl StringCopy
|
||||
adds r6, 0x15
|
||||
adds r5, 0x15
|
||||
subs r4, 0x1
|
||||
cmp r4, 0
|
||||
bge _08129482
|
||||
pop {r3}
|
||||
mov r8, r3
|
||||
pop {r4-r7}
|
||||
pop {r0}
|
||||
bx r0
|
||||
.align 2, 0
|
||||
_081294A4: .4byte gSaveBlock1Ptr
|
||||
_081294A8: .4byte gUnknown_203B0E0
|
||||
_081294AC: .4byte 0x00003ad4
|
||||
thumb_func_end sub_8129470
|
||||
|
||||
thumb_func_start sub_81294B0
|
||||
sub_81294B0: @ 81294B0
|
||||
ldr r2, _081294C4 @ =gUnknown_203B0E0
|
||||
lsls r1, r0, 2
|
||||
adds r1, r0
|
||||
lsls r1, 2
|
||||
adds r1, r0
|
||||
adds r1, 0xB9
|
||||
ldr r0, [r2]
|
||||
adds r0, r1
|
||||
bx lr
|
||||
.align 2, 0
|
||||
_081294C4: .4byte gUnknown_203B0E0
|
||||
thumb_func_end sub_81294B0
|
||||
|
||||
thumb_func_start sub_81294C8
|
||||
sub_81294C8: @ 81294C8
|
||||
push {lr}
|
||||
ldr r0, _081294E8 @ =gUnknown_203B0E0
|
||||
ldr r0, [r0]
|
||||
adds r1, r0, 0
|
||||
adds r1, 0x1A
|
||||
ldrb r0, [r0, 0x1A]
|
||||
cmp r0, 0xFF
|
||||
beq _081294E0
|
||||
_081294D8:
|
||||
adds r1, 0x1
|
||||
ldrb r0, [r1]
|
||||
cmp r0, 0xFF
|
||||
bne _081294D8
|
||||
_081294E0:
|
||||
adds r0, r1, 0
|
||||
pop {r1}
|
||||
bx r1
|
||||
.align 2, 0
|
||||
_081294E8: .4byte gUnknown_203B0E0
|
||||
thumb_func_end sub_81294C8
|
||||
|
||||
thumb_func_start sub_81294EC
|
||||
sub_81294EC: @ 81294EC
|
||||
push {lr}
|
||||
ldr r0, _08129518 @ =gUnknown_203B0E0
|
||||
ldr r0, [r0]
|
||||
adds r2, r0, 0
|
||||
adds r2, 0x1A
|
||||
adds r1, r2, 0
|
||||
ldrb r0, [r0, 0x1A]
|
||||
cmp r0, 0xFF
|
||||
beq _08129510
|
||||
_081294FE:
|
||||
adds r2, r1, 0
|
||||
ldrb r0, [r2]
|
||||
cmp r0, 0xF9
|
||||
bne _08129508
|
||||
adds r1, r2, 0x1
|
||||
_08129508:
|
||||
adds r1, 0x1
|
||||
ldrb r0, [r1]
|
||||
cmp r0, 0xFF
|
||||
bne _081294FE
|
||||
_08129510:
|
||||
adds r0, r2, 0
|
||||
pop {r1}
|
||||
bx r1
|
||||
.align 2, 0
|
||||
_08129518: .4byte gUnknown_203B0E0
|
||||
thumb_func_end sub_81294EC
|
||||
|
||||
thumb_func_start sub_812951C
|
||||
sub_812951C: @ 812951C
|
||||
push {r4,lr}
|
||||
ldr r4, _0812955C @ =gUnknown_203B0E0
|
||||
ldr r0, [r4]
|
||||
adds r0, 0x1A
|
||||
bl StringLength_Multibyte
|
||||
adds r2, r0, 0
|
||||
ldr r0, [r4]
|
||||
adds r1, r0, 0
|
||||
adds r1, 0x1A
|
||||
movs r4, 0
|
||||
cmp r2, 0xA
|
||||
bls _08129550
|
||||
subs r2, 0xA
|
||||
movs r3, 0
|
||||
cmp r4, r2
|
||||
bcs _08129550
|
||||
_0812953E:
|
||||
ldrb r0, [r1]
|
||||
cmp r0, 0xF9
|
||||
bne _08129546
|
||||
adds r1, 0x1
|
||||
_08129546:
|
||||
adds r1, 0x1
|
||||
adds r4, 0x1
|
||||
adds r3, 0x1
|
||||
cmp r3, r2
|
||||
bcc _0812953E
|
||||
_08129550:
|
||||
lsls r0, r4, 16
|
||||
lsrs r0, 16
|
||||
pop {r4}
|
||||
pop {r1}
|
||||
bx r1
|
||||
.align 2, 0
|
||||
_0812955C: .4byte gUnknown_203B0E0
|
||||
thumb_func_end sub_812951C
|
||||
|
||||
thumb_func_start sub_8129560
|
||||
sub_8129560: @ 8129560
|
||||
movs r1, 0
|
||||
strb r1, [r0]
|
||||
bx lr
|
||||
thumb_func_end sub_8129560
|
||||
|
||||
thumb_func_start sub_8129568
|
||||
sub_8129568: @ 8129568
|
||||
push {r4,lr}
|
||||
@@ -3013,7 +2526,7 @@ _0812A84C:
|
||||
movs r7, 0
|
||||
movs r6, 0
|
||||
lsls r0, r2, 2
|
||||
ldr r1, _0812A89C @ =gUnknown_845A9AC
|
||||
ldr r1, _0812A89C @ =sUnionRoomKeyboardText
|
||||
adds r0, r2
|
||||
lsls r0, 3
|
||||
adds r4, r0, r1
|
||||
@@ -3051,7 +2564,7 @@ _0812A866:
|
||||
ble _0812A85E
|
||||
b _0812A96C
|
||||
.align 2, 0
|
||||
_0812A89C: .4byte gUnknown_845A9AC
|
||||
_0812A89C: .4byte sUnionRoomKeyboardText
|
||||
_0812A8A0:
|
||||
movs r1, 0x4
|
||||
str r1, [sp, 0x40]
|
||||
|
||||
@@ -6,75 +6,6 @@
|
||||
.section .rodata
|
||||
.align 2
|
||||
|
||||
gUnknown_845A8A8:: @ 845A8A8
|
||||
.byte 0x09, 0x09, 0x09, 0x09
|
||||
|
||||
gUnknown_845A8AC:: @ 845A8AC
|
||||
.byte 0x00, 0x16, 0x17, 0x68, 0x19, 0x1a, 0x1b, 0x1c
|
||||
.byte 0x1d, 0x1e, 0x00, 0x20, 0x21, 0x22, 0x23, 0x24
|
||||
.byte 0x25, 0x26, 0x27, 0x28, 0x29, 0x15, 0x01, 0x02
|
||||
.byte 0x00, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x00
|
||||
.byte 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, 0x10, 0x11, 0x12
|
||||
.byte 0x13, 0x14, 0x2a, 0x2b, 0x2c, 0x2d, 0x00, 0x00
|
||||
.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x35, 0x36, 0x00
|
||||
.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
|
||||
.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
|
||||
.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
|
||||
.byte 0x00, 0x00, 0x00, 0x53, 0x54, 0x55, 0x56, 0x00
|
||||
.byte 0x00, 0x00, 0x6f, 0x5b, 0x5c, 0x5d, 0x00, 0x00
|
||||
.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
|
||||
.byte 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x5a
|
||||
.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
|
||||
.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
|
||||
.byte 0x00, 0x00, 0x00, 0x00, 0x84, 0x85, 0x86, 0x00
|
||||
.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
|
||||
.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
|
||||
.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
|
||||
.byte 0xa0, 0xa1, 0xa2, 0xa3, 0xa4, 0xa5, 0xa6, 0xa7
|
||||
.byte 0xa8, 0xa9, 0xaa, 0xab, 0xac, 0xad, 0xae, 0xaf
|
||||
.byte 0xb0, 0xb1, 0xb2, 0xb3, 0xb4, 0xb5, 0xb6, 0xb7
|
||||
.byte 0xb8, 0xb9, 0xba, 0xd5, 0xd6, 0xd7, 0xd8, 0xd9
|
||||
.byte 0xda, 0xdb, 0xdc, 0xdd, 0xde, 0xdf, 0xe0, 0xe1
|
||||
.byte 0xe2, 0xe3, 0xe4, 0xe5, 0xe6, 0xe7, 0xe8, 0xe9
|
||||
.byte 0xea, 0xeb, 0xec, 0xed, 0xee, 0xbb, 0xbc, 0xbd
|
||||
.byte 0xbe, 0xbf, 0xc0, 0xc1, 0xc2, 0xc3, 0xc4, 0xc5
|
||||
.byte 0xc6, 0xc7, 0xc8, 0xc9, 0xca, 0xcb, 0xcc, 0xcd
|
||||
.byte 0xce, 0xcf, 0xd0, 0xd1, 0xd2, 0xd3, 0xd4, 0xef
|
||||
.byte 0xf0, 0xf4, 0xf5, 0xf6, 0xf1, 0xf2, 0xf3, 0x00
|
||||
.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
|
||||
|
||||
gUnknown_845A9AC:: @ 845A9AC
|
||||
.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"
|
||||
|
||||
|
||||
@@ -5,10 +5,24 @@
|
||||
|
||||
#define CHAR_SPACE 0x00
|
||||
#define CHAR_0 0xA1
|
||||
#define CHAR_1 0xA2
|
||||
#define CHAR_2 0xA3
|
||||
#define CHAR_3 0xA4
|
||||
#define CHAR_4 0xA5
|
||||
#define CHAR_5 0xA6
|
||||
#define CHAR_6 0xA7
|
||||
#define CHAR_7 0xA8
|
||||
#define CHAR_8 0xA9
|
||||
#define CHAR_9 0xAA
|
||||
#define CHAR_EXCL_MARK 0xAB
|
||||
#define CHAR_QUESTION_MARK 0xAC
|
||||
#define CHAR_PERIOD 0xAD
|
||||
#define CHAR_HYPHEN 0xAE
|
||||
#define CHAR_ELLIPSIS 0xB0
|
||||
#define CHAR_DBL_QUOT_LEFT 0xB1
|
||||
#define CHAR_DBL_QUOT_RIGHT 0xB2
|
||||
#define CHAR_SGL_QUOT_LEFT 0xB3
|
||||
#define CHAR_SGL_QUOT_RIGHT 0xB4
|
||||
#define CHAR_MALE 0xB5
|
||||
#define CHAR_FEMALE 0xB6
|
||||
#define CHAR_CURRENCY 0xB7
|
||||
|
||||
@@ -11,6 +11,7 @@
|
||||
#include "save.h"
|
||||
#include "scanline_effect.h"
|
||||
#include "task.h"
|
||||
#include "data_8479668.h"
|
||||
#include "constants/songs.h"
|
||||
|
||||
enum
|
||||
@@ -76,12 +77,15 @@ bool32 sub_8129408(void);
|
||||
void sub_8129424(void);
|
||||
void sub_8129454(void);
|
||||
void sub_8129470(void);
|
||||
u8 *sub_81294C8(void);
|
||||
u8 *sub_81294EC(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);
|
||||
u8 *sub_8129758(void);
|
||||
void sub_81298F8(u8 taskId);
|
||||
void sub_8129B14(void);
|
||||
bool32 sub_8129B78(void);
|
||||
@@ -104,6 +108,88 @@ static void (*const gUnknown_845A880[])(void) = {
|
||||
sub_8128FB8
|
||||
};
|
||||
|
||||
static const u8 sKeyboardPageMaxRow[] =
|
||||
{
|
||||
[UNION_ROOM_KB_PAGE_UPPER] = 9,
|
||||
[UNION_ROOM_KB_PAGE_LOWER] = 9,
|
||||
[UNION_ROOM_KB_PAGE_EMOJI] = 9,
|
||||
9
|
||||
};
|
||||
|
||||
const u8 gUnknown_845A8AC[] = {
|
||||
CHAR_SPACE, 0x16, 0x17, 0x68, 0x19, 0x1A, 0x1B, 0x1C,
|
||||
0x1D, 0x1E, CHAR_SPACE, 0x20, 0x21, 0x22, 0x23, 0x24,
|
||||
0x25, 0x26, 0x27, 0x28, 0x29, 0x15, 0x01, 0x02,
|
||||
CHAR_SPACE, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, CHAR_SPACE,
|
||||
0x0B, 0x0C, 0x0D, 0x0E, 0x0F, 0x10, 0x11, 0x12,
|
||||
0x13, 0x14, 0x2A, 0x2B, 0x2C, 0x2D, CHAR_SPACE, CHAR_SPACE,
|
||||
CHAR_SPACE, CHAR_SPACE, CHAR_SPACE, CHAR_SPACE, CHAR_SPACE, 0x35, 0x36, CHAR_SPACE,
|
||||
CHAR_SPACE, CHAR_SPACE, CHAR_SPACE, CHAR_SPACE, CHAR_SPACE, CHAR_SPACE, CHAR_SPACE, CHAR_SPACE,
|
||||
CHAR_SPACE, CHAR_SPACE, CHAR_SPACE, CHAR_SPACE, CHAR_SPACE, CHAR_SPACE, CHAR_SPACE, CHAR_SPACE,
|
||||
CHAR_SPACE, CHAR_SPACE, CHAR_SPACE, CHAR_SPACE, CHAR_SPACE, CHAR_SPACE, CHAR_SPACE, CHAR_SPACE,
|
||||
CHAR_SPACE, CHAR_SPACE, CHAR_SPACE, 0x53, 0x54, 0x55, 0x56, CHAR_SPACE,
|
||||
CHAR_SPACE, CHAR_SPACE, 0x6F, 0x5B, 0x5C, 0x5D, CHAR_SPACE, CHAR_SPACE,
|
||||
CHAR_SPACE, CHAR_SPACE, CHAR_SPACE, CHAR_SPACE, CHAR_SPACE, CHAR_SPACE, CHAR_SPACE, CHAR_SPACE,
|
||||
0x03, CHAR_SPACE, CHAR_SPACE, CHAR_SPACE, CHAR_SPACE, CHAR_SPACE, CHAR_SPACE, 0x5A,
|
||||
CHAR_SPACE, CHAR_SPACE, CHAR_SPACE, CHAR_SPACE, CHAR_SPACE, CHAR_SPACE, CHAR_SPACE, CHAR_SPACE,
|
||||
CHAR_SPACE, CHAR_SPACE, CHAR_SPACE, CHAR_SPACE, CHAR_SPACE, CHAR_SPACE, CHAR_SPACE, CHAR_SPACE,
|
||||
CHAR_SPACE, CHAR_SPACE, CHAR_SPACE, CHAR_SPACE, 0x84, 0x85, 0x86, CHAR_SPACE,
|
||||
CHAR_SPACE, CHAR_SPACE, CHAR_SPACE, CHAR_SPACE, CHAR_SPACE, CHAR_SPACE, CHAR_SPACE, CHAR_SPACE,
|
||||
CHAR_SPACE, CHAR_SPACE, CHAR_SPACE, CHAR_SPACE, CHAR_SPACE, CHAR_SPACE, CHAR_SPACE, CHAR_SPACE,
|
||||
CHAR_SPACE, CHAR_SPACE, CHAR_SPACE, CHAR_SPACE, CHAR_SPACE, CHAR_SPACE, CHAR_SPACE, CHAR_SPACE,
|
||||
0xA0, CHAR_0, CHAR_1, CHAR_2, CHAR_3, CHAR_4, CHAR_5, CHAR_6,
|
||||
CHAR_7, CHAR_8, CHAR_9, CHAR_EXCL_MARK, CHAR_QUESTION_MARK, CHAR_PERIOD, CHAR_HYPHEN, 0xAF,
|
||||
CHAR_ELLIPSIS, CHAR_DBL_QUOT_LEFT, CHAR_DBL_QUOT_RIGHT, CHAR_SGL_QUOT_LEFT, CHAR_SGL_QUOT_RIGHT, CHAR_MALE, CHAR_FEMALE, CHAR_CURRENCY,
|
||||
CHAR_COMMA, CHAR_MULT_SIGN, CHAR_SLASH, CHAR_a, CHAR_b, CHAR_c, CHAR_d, CHAR_e,
|
||||
CHAR_f, CHAR_g, CHAR_h, CHAR_i, CHAR_j, CHAR_k, CHAR_l, CHAR_m,
|
||||
CHAR_n, CHAR_o, CHAR_p, CHAR_q, CHAR_r, CHAR_s, CHAR_t, CHAR_u,
|
||||
CHAR_v, CHAR_w, CHAR_x, CHAR_y, CHAR_z, CHAR_A, CHAR_B, CHAR_C,
|
||||
CHAR_D, CHAR_E, CHAR_F, CHAR_G, CHAR_H, CHAR_I, CHAR_J, CHAR_K,
|
||||
CHAR_L, CHAR_M, CHAR_N, CHAR_O, CHAR_P, CHAR_Q, CHAR_R, CHAR_S,
|
||||
CHAR_T, CHAR_U, CHAR_V, CHAR_W, CHAR_X, CHAR_Y, CHAR_Z, 0xEF,
|
||||
CHAR_COLON, 0xF4, 0xF5, 0xF6, 0xF1, 0xF2, 0xF3, CHAR_SPACE,
|
||||
CHAR_SPACE, CHAR_SPACE, CHAR_SPACE, CHAR_SPACE, CHAR_SPACE, CHAR_SPACE, CHAR_SPACE, CHAR_SPACE
|
||||
};
|
||||
|
||||
const u8 *const sUnionRoomKeyboardText[UNION_ROOM_KB_PAGE_COUNT][UNION_ROOM_KB_ROW_COUNT] = {
|
||||
[UNION_ROOM_KB_PAGE_UPPER] = {
|
||||
gText_UnionRoomChatKeyboard_ABCDE,
|
||||
gText_UnionRoomChatKeyboard_FGHIJ,
|
||||
gText_UnionRoomChatKeyboard_KLMNO,
|
||||
gText_UnionRoomChatKeyboard_PQRST,
|
||||
gText_UnionRoomChatKeyboard_UVWXY,
|
||||
gText_UnionRoomChatKeyboard_Z,
|
||||
gText_UnionRoomChatKeyboard_01234Upper,
|
||||
gText_UnionRoomChatKeyboard_56789Upper,
|
||||
gText_UnionRoomChatKeyboard_PunctuationUpper,
|
||||
gText_UnionRoomChatKeyboard_SymbolsUpper
|
||||
},
|
||||
[UNION_ROOM_KB_PAGE_LOWER] = {
|
||||
gText_UnionRoomChatKeyboard_abcde,
|
||||
gText_UnionRoomChatKeyboard_fghij,
|
||||
gText_UnionRoomChatKeyboard_klmno,
|
||||
gText_UnionRoomChatKeyboard_pqrst,
|
||||
gText_UnionRoomChatKeyboard_uvwxy,
|
||||
gText_UnionRoomChatKeyboard_z,
|
||||
gText_UnionRoomChatKeyboard_01234Lower,
|
||||
gText_UnionRoomChatKeyboard_56789Lower,
|
||||
gText_UnionRoomChatKeyboard_PunctuationLower,
|
||||
gText_UnionRoomChatKeyboard_SymbolsLower
|
||||
},
|
||||
[UNION_ROOM_KB_PAGE_EMOJI] = {
|
||||
gText_UnionRoomChatKeyboard_Emoji1,
|
||||
gText_UnionRoomChatKeyboard_Emoji2,
|
||||
gText_UnionRoomChatKeyboard_Emoji3,
|
||||
gText_UnionRoomChatKeyboard_Emoji4,
|
||||
gText_UnionRoomChatKeyboard_Emoji5,
|
||||
gText_UnionRoomChatKeyboard_Emoji6,
|
||||
gText_UnionRoomChatKeyboard_Emoji7,
|
||||
gText_UnionRoomChatKeyboard_Emoji8,
|
||||
gText_UnionRoomChatKeyboard_Emoji9,
|
||||
gText_UnionRoomChatKeyboard_Emoji10
|
||||
}
|
||||
};
|
||||
|
||||
void sub_8128420(void)
|
||||
{
|
||||
gUnknown_203B0E0 = Alloc(sizeof(struct UnionRoomChat));
|
||||
@@ -801,3 +887,228 @@ void sub_8128FB8(void)
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
void sub_8129218(u16 arg0)
|
||||
{
|
||||
gUnknown_203B0E0->unk4 = arg0;
|
||||
gUnknown_203B0E0->unk6 = 0;
|
||||
}
|
||||
|
||||
bool32 sub_8129228(void)
|
||||
{
|
||||
if (!(gMain.newAndRepeatedKeys & DPAD_UP))
|
||||
{
|
||||
if (gMain.newAndRepeatedKeys & DPAD_DOWN)
|
||||
{
|
||||
if (gUnknown_203B0E0->currentRow < sKeyboardPageMaxRow[gUnknown_203B0E0->currentPage])
|
||||
gUnknown_203B0E0->currentRow++;
|
||||
else
|
||||
gUnknown_203B0E0->currentRow = 0;
|
||||
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
if (gUnknown_203B0E0->currentPage != UNION_ROOM_KB_PAGE_COUNT)
|
||||
{
|
||||
if (gMain.newAndRepeatedKeys & DPAD_LEFT)
|
||||
{
|
||||
if (gUnknown_203B0E0->unk11)
|
||||
gUnknown_203B0E0->unk11--;
|
||||
else
|
||||
gUnknown_203B0E0->unk11 = 4;
|
||||
}
|
||||
else if (gMain.newAndRepeatedKeys & DPAD_RIGHT)
|
||||
{
|
||||
if (gUnknown_203B0E0->unk11 > 3)
|
||||
gUnknown_203B0E0->unk11 = 0;
|
||||
else
|
||||
gUnknown_203B0E0->unk11++;
|
||||
}
|
||||
else
|
||||
{
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
return FALSE;
|
||||
}
|
||||
else
|
||||
{
|
||||
if (gUnknown_203B0E0->currentRow)
|
||||
gUnknown_203B0E0->currentRow--;
|
||||
else
|
||||
gUnknown_203B0E0->currentRow = sKeyboardPageMaxRow[gUnknown_203B0E0->currentPage];
|
||||
|
||||
return TRUE;
|
||||
}
|
||||
}
|
||||
|
||||
void sub_81292D8(void)
|
||||
{
|
||||
int i;
|
||||
const u8 *charsStr;
|
||||
int strLength;
|
||||
u8 *str;
|
||||
u8 buffer[21];
|
||||
|
||||
if (gUnknown_203B0E0->currentPage != UNION_ROOM_KB_PAGE_COUNT)
|
||||
{
|
||||
charsStr = sUnionRoomKeyboardText[gUnknown_203B0E0->currentPage][gUnknown_203B0E0->currentRow];
|
||||
for (i = 0; i < gUnknown_203B0E0->unk11; i++)
|
||||
{
|
||||
if (*charsStr == CHAR_EXTRA_EMOJI)
|
||||
charsStr++;
|
||||
charsStr++;
|
||||
}
|
||||
|
||||
strLength = 1;
|
||||
}
|
||||
else
|
||||
{
|
||||
u8 *tempStr = StringCopy(buffer, gUnknown_203B0E0->unkB9[gUnknown_203B0E0->currentRow]);
|
||||
tempStr[0] = CHAR_SPACE;
|
||||
tempStr[1] = EOS;
|
||||
charsStr = buffer;
|
||||
strLength = StringLength_Multibyte(buffer);
|
||||
}
|
||||
|
||||
gUnknown_203B0E0->unk14 = gUnknown_203B0E0->unk15;
|
||||
if (!charsStr)
|
||||
return;
|
||||
|
||||
str = sub_81294C8();
|
||||
while (--strLength != -1 && gUnknown_203B0E0->unk15 < 15)
|
||||
{
|
||||
if (*charsStr == CHAR_EXTRA_EMOJI)
|
||||
{
|
||||
*str = *charsStr;
|
||||
charsStr++;
|
||||
str++;
|
||||
}
|
||||
|
||||
*str = *charsStr;
|
||||
charsStr++;
|
||||
str++;
|
||||
|
||||
gUnknown_203B0E0->unk15++;
|
||||
}
|
||||
|
||||
*str = EOS;
|
||||
}
|
||||
|
||||
void sub_81293AC(void)
|
||||
{
|
||||
gUnknown_203B0E0->unk14 = gUnknown_203B0E0->unk15;
|
||||
if (gUnknown_203B0E0->unk15)
|
||||
{
|
||||
u8 *str = sub_81294EC();
|
||||
*str = EOS;
|
||||
gUnknown_203B0E0->unk15--;
|
||||
}
|
||||
}
|
||||
|
||||
void sub_81293D8(void)
|
||||
{
|
||||
u8 *str;
|
||||
u8 character;
|
||||
|
||||
gUnknown_203B0E0->unk14 = gUnknown_203B0E0->unk15 - 1;
|
||||
str = sub_81294EC();
|
||||
if (*str != CHAR_EXTRA_EMOJI)
|
||||
{
|
||||
character = gUnknown_845A8AC[*str];
|
||||
if (character)
|
||||
*str = character;
|
||||
}
|
||||
}
|
||||
|
||||
bool32 sub_8129408(void)
|
||||
{
|
||||
if (gUnknown_203B0E0->unk15)
|
||||
return TRUE;
|
||||
else
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
void sub_8129424(void)
|
||||
{
|
||||
u8 *src = sub_8129758();
|
||||
StringCopy(gUnknown_203B0E0->unkB9[gUnknown_203B0E0->currentRow], src);
|
||||
gUnknown_203B0E0->unk18 = 1;
|
||||
}
|
||||
|
||||
void sub_8129454(void)
|
||||
{
|
||||
gUnknown_203B0E0->unk1A[0] = EOS;
|
||||
gUnknown_203B0E0->unk14 = 15;
|
||||
gUnknown_203B0E0->unk15 = 0;
|
||||
}
|
||||
|
||||
void sub_8129470(void)
|
||||
{
|
||||
int i;
|
||||
for (i = 0; i < UNION_ROOM_KB_ROW_COUNT; i++)
|
||||
StringCopy(gSaveBlock1Ptr->unk3AD4[i], gUnknown_203B0E0->unkB9[i]);
|
||||
}
|
||||
|
||||
u8 *sub_81294B0(int arg0)
|
||||
{
|
||||
return gUnknown_203B0E0->unkB9[arg0];
|
||||
}
|
||||
|
||||
// GetEndOfUnk1A
|
||||
u8 *sub_81294C8(void)
|
||||
{
|
||||
u8 *str = gUnknown_203B0E0->unk1A;
|
||||
while (*str != EOS)
|
||||
str++;
|
||||
|
||||
return str;
|
||||
}
|
||||
|
||||
// GetPtrToLastCharOfUnk1A
|
||||
u8 *sub_81294EC(void)
|
||||
{
|
||||
u8 *str = gUnknown_203B0E0->unk1A;
|
||||
u8 *str2 = str;
|
||||
while (*str != EOS)
|
||||
{
|
||||
str2 = str;
|
||||
if (*str == CHAR_EXTRA_EMOJI)
|
||||
str++;
|
||||
str++;
|
||||
}
|
||||
|
||||
return str2;
|
||||
}
|
||||
|
||||
u16 sub_812951C(void)
|
||||
{
|
||||
u8 *str;
|
||||
u32 i, numChars, strLength;
|
||||
|
||||
strLength = StringLength_Multibyte(gUnknown_203B0E0->unk1A);
|
||||
str = gUnknown_203B0E0->unk1A;
|
||||
numChars = 0;
|
||||
if (strLength > 10)
|
||||
{
|
||||
strLength -= 10;
|
||||
for (i = 0; i < strLength; i++)
|
||||
{
|
||||
if (*str == CHAR_EXTRA_EMOJI)
|
||||
str++;
|
||||
|
||||
str++;
|
||||
numChars++;
|
||||
}
|
||||
}
|
||||
|
||||
return numChars;
|
||||
}
|
||||
|
||||
void sub_8129560(u8 *arg0)
|
||||
{
|
||||
arg0[0] = CHAR_SPACE;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user