diff options
author | Marcus Huderle <huderlem@gmail.com> | 2019-02-24 10:04:40 -0600 |
---|---|---|
committer | huderlem <huderlem@gmail.com> | 2019-02-24 10:09:57 -0600 |
commit | bb508ade64bd152fa146b71e6734a4ea704b31f3 (patch) | |
tree | cc448d80cdcb17f2037106d24220da6f124be2bb | |
parent | 7995cf5b6162e5c88b3c565b00cf95645a499fe2 (diff) |
Decompile more of easy_chat.c
-rw-r--r-- | asm/easy_chat.s | 1862 | ||||
-rw-r--r-- | data/easy_chat.s | 4 | ||||
-rw-r--r-- | src/easy_chat.c | 731 |
3 files changed, 679 insertions, 1918 deletions
diff --git a/asm/easy_chat.s b/asm/easy_chat.s index 50e707ac3..10536929e 100644 --- a/asm/easy_chat.s +++ b/asm/easy_chat.s @@ -5,1868 +5,6 @@ .text - thumb_func_start sub_811DADC -sub_811DADC: @ 811DADC - push {r4,lr} - sub sp, 0x8 - lsls r0, 24 - lsrs r4, r0, 24 - movs r0, 0x1E - str r0, [sp] - movs r0, 0xA - str r0, [sp, 0x4] - movs r0, 0x1 - movs r1, 0 - movs r2, 0 - movs r3, 0xA - bl FillBgTilemapBufferRect_Palette0 - cmp r4, 0x16 - bls _0811DAFE - b _0811DC1A -_0811DAFE: - lsls r0, r4, 2 - ldr r1, =_0811DB0C - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .pool - .align 2, 0 -_0811DB0C: - .4byte _0811DC1A - .4byte _0811DB68 - .4byte _0811DB70 - .4byte _0811DB78 - .4byte _0811DB80 - .4byte _0811DB88 - .4byte _0811DB90 - .4byte _0811DC00 - .4byte _0811DBF2 - .4byte _0811DBE4 - .4byte _0811DBD6 - .4byte _0811DB9E - .4byte _0811DBA6 - .4byte _0811DBAE - .4byte _0811DBB6 - .4byte _0811DBBE - .4byte _0811DBC6 - .4byte _0811DBCE - .4byte _0811DBD6 - .4byte _0811DBE4 - .4byte _0811DBF2 - .4byte _0811DC00 - .4byte _0811DC0E -_0811DB68: - movs r0, 0xB - movs r1, 0xE - movs r2, 0x3 - b _0811DB96 -_0811DB70: - movs r0, 0x9 - movs r1, 0xE - movs r2, 0x7 - b _0811DB96 -_0811DB78: - movs r0, 0x7 - movs r1, 0xE - movs r2, 0xB - b _0811DB96 -_0811DB80: - movs r0, 0x5 - movs r1, 0xE - movs r2, 0xF - b _0811DB96 -_0811DB88: - movs r0, 0x3 - movs r1, 0xE - movs r2, 0x13 - b _0811DB96 -_0811DB90: - movs r0, 0x1 - movs r1, 0xE - movs r2, 0x17 -_0811DB96: - movs r3, 0x2 - bl sub_811DC28 - b _0811DC1A -_0811DB9E: - movs r0, 0x1 - movs r1, 0xA - movs r2, 0x18 - b _0811DBDC -_0811DBA6: - movs r0, 0x1 - movs r1, 0xA - movs r2, 0x19 - b _0811DBDC -_0811DBAE: - movs r0, 0x1 - movs r1, 0xA - movs r2, 0x1A - b _0811DBDC -_0811DBB6: - movs r0, 0x1 - movs r1, 0xA - movs r2, 0x1B - b _0811DBDC -_0811DBBE: - movs r0, 0x1 - movs r1, 0xA - movs r2, 0x1C - b _0811DBDC -_0811DBC6: - movs r0, 0x1 - movs r1, 0xA - movs r2, 0x1D - b _0811DBDC -_0811DBCE: - movs r0, 0 - movs r1, 0xA - movs r2, 0x1E - b _0811DBDC -_0811DBD6: - movs r0, 0x1 - movs r1, 0xA - movs r2, 0x17 -_0811DBDC: - movs r3, 0xA - bl sub_811DC28 - b _0811DC1A -_0811DBE4: - movs r0, 0x1 - movs r1, 0xB - movs r2, 0x17 - movs r3, 0x8 - bl sub_811DC28 - b _0811DC1A -_0811DBF2: - movs r0, 0x1 - movs r1, 0xC - movs r2, 0x17 - movs r3, 0x6 - bl sub_811DC28 - b _0811DC1A -_0811DC00: - movs r0, 0x1 - movs r1, 0xD - movs r2, 0x17 - movs r3, 0x4 - bl sub_811DC28 - b _0811DC1A -_0811DC0E: - movs r0, 0x1 - movs r1, 0xE - movs r2, 0x17 - movs r3, 0x2 - bl sub_811DC28 -_0811DC1A: - movs r0, 0x1 - bl CopyBgTilemapBufferToVram - add sp, 0x8 - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_811DADC - - thumb_func_start sub_811DC28 -sub_811DC28: @ 811DC28 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x8 - mov r12, r0 - adds r7, r1, 0 - mov r9, r2 - mov r10, r3 - ldr r0, =gUnknown_0203A11C - ldr r0, [r0] - movs r1, 0xC0 - lsls r1, 2 - adds r6, r0, r1 - mov r0, r12 - add r0, r9 - subs r5, r0, 0x1 - adds r0, r7, r3 - subs r0, 0x1 - mov r8, r0 - mov r2, r12 - adds r3, r7, 0 - lsls r0, r3, 5 - adds r0, r2 - lsls r0, 1 - adds r0, r6 - ldr r4, =0x00004001 - adds r1, r4, 0 - strh r1, [r0] - adds r2, 0x1 - cmp r2, r5 - bge _0811DC84 - ldr r0, =0x00004002 - adds r4, r0, 0 - lsls r1, r2, 1 - lsls r0, r3, 6 - adds r0, r6 - adds r1, r0 - subs r2, r5, r2 -_0811DC78: - strh r4, [r1] - adds r1, 0x2 - subs r2, 0x1 - cmp r2, 0 - bne _0811DC78 - adds r2, r5, 0 -_0811DC84: - lsls r0, r3, 5 - adds r0, r2 - lsls r0, 1 - adds r0, r6 - ldr r2, =0x00004003 - adds r1, r2, 0 - strh r1, [r0] - adds r3, 0x1 - mov r4, r12 - adds r4, 0x1 - adds r0, r7, 0x1 - str r0, [sp, 0x4] - mov r1, r9 - subs r1, 0x2 - str r1, [sp] - movs r2, 0x2 - negs r2, r2 - add r10, r2 - cmp r3, r8 - bge _0811DCF4 - lsls r7, r4, 1 - mov r9, r7 -_0811DCB0: - lsls r0, r3, 5 - add r0, r12 - lsls r0, 1 - adds r0, r6 - ldr r2, =0x00004005 - adds r1, r2, 0 - strh r1, [r0] - adds r2, r4, 0 - adds r7, r3, 0x1 - cmp r4, r5 - bge _0811DCE0 - movs r0, 0x80 - lsls r0, 7 - adds r1, r0, 0 - lsls r0, r3, 6 - adds r0, r6 - add r0, r9 - subs r2, r5, r4 -_0811DCD4: - strh r1, [r0] - adds r0, 0x2 - subs r2, 0x1 - cmp r2, 0 - bne _0811DCD4 - adds r2, r5, 0 -_0811DCE0: - lsls r0, r3, 5 - adds r0, r2 - lsls r0, 1 - adds r0, r6 - ldr r2, =0x00004007 - adds r1, r2, 0 - strh r1, [r0] - adds r3, r7, 0 - cmp r3, r8 - blt _0811DCB0 -_0811DCF4: - lsls r0, r3, 5 - mov r7, r12 - adds r1, r0, r7 - lsls r1, 1 - adds r1, r6 - ldr r7, =0x00004009 - adds r2, r7, 0 - strh r2, [r1] - adds r2, r4, 0 - mov r12, r0 - cmp r4, r5 - bge _0811DD26 - ldr r0, =0x0000400a - adds r7, r0, 0 - lsls r1, r4, 1 - lsls r0, r3, 6 - adds r0, r6 - adds r0, r1, r0 - subs r2, r5, r4 -_0811DD1A: - strh r7, [r0] - adds r0, 0x2 - subs r2, 0x1 - cmp r2, 0 - bne _0811DD1A - adds r2, r5, 0 -_0811DD26: - mov r1, r12 - adds r0, r1, r2 - lsls r0, 1 - adds r0, r6 - ldr r2, =0x0000400b - adds r1, r2, 0 - strh r1, [r0] - lsls r0, r4, 27 - lsrs r0, 24 - ldr r3, [sp, 0x4] - lsls r1, r3, 27 - lsrs r1, 24 - ldr r4, [sp] - lsls r2, r4, 27 - lsrs r2, 24 - mov r7, r10 - lsls r3, r7, 27 - lsrs r3, 24 - bl sub_811DE5C - add sp, 0x8 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end sub_811DC28 - - thumb_func_start sub_811DD84 -sub_811DD84: @ 811DD84 - push {lr} - movs r1, 0x80 - lsls r1, 4 - movs r0, 0x2 - movs r2, 0 - bl ChangeBgY - ldr r0, =gUnknown_0203A11C - ldr r0, [r0] - ldr r1, =0x000002ce - adds r0, r1 - movs r1, 0 - strh r1, [r0] - pop {r0} - bx r0 - .pool - thumb_func_end sub_811DD84 - - thumb_func_start sub_811DDAC -sub_811DDAC: @ 811DDAC - push {r4,r5,lr} - adds r4, r0, 0 - lsls r4, 16 - lsrs r4, 16 - lsls r1, 24 - lsrs r5, r1, 24 - movs r0, 0x2 - bl GetBgY - adds r2, r0, 0 - ldr r0, =gUnknown_0203A11C - ldr r3, [r0] - ldr r0, =0x000002ce - adds r1, r3, r0 - ldrh r0, [r1] - adds r0, r4 - strh r0, [r1] - lsls r4, 20 - asrs r4, 16 - lsls r0, r4, 8 - adds r2, r0 - cmp r5, 0 - beq _0811DE00 - movs r1, 0xB4 - lsls r1, 2 - adds r0, r3, r1 - str r2, [r0] - movs r0, 0xB5 - lsls r0, 2 - adds r1, r3, r0 - lsls r0, r5, 8 - str r0, [r1] - cmp r4, 0 - bge _0811DE0A - negs r0, r0 - str r0, [r1] - b _0811DE0A - .pool -_0811DE00: - movs r0, 0x2 - adds r1, r2, 0 - movs r2, 0 - bl ChangeBgY -_0811DE0A: - pop {r4,r5} - pop {r0} - bx r0 - thumb_func_end sub_811DDAC - - thumb_func_start sub_811DE10 -sub_811DE10: @ 811DE10 - push {lr} - movs r0, 0x2 - bl GetBgY - ldr r1, =gUnknown_0203A11C - ldr r2, [r1] - movs r3, 0xB4 - lsls r3, 2 - adds r1, r2, r3 - ldr r1, [r1] - cmp r0, r1 - beq _0811DE40 - movs r1, 0xB5 - lsls r1, 2 - adds r0, r2, r1 - ldr r1, [r0] - movs r0, 0x2 - movs r2, 0x1 - bl ChangeBgY - movs r0, 0x1 - b _0811DE42 - .pool -_0811DE40: - movs r0, 0 -_0811DE42: - pop {r1} - bx r1 - thumb_func_end sub_811DE10 - - thumb_func_start sub_811DE48 -sub_811DE48: @ 811DE48 - ldr r0, =gUnknown_0203A11C - ldr r0, [r0] - ldr r1, =0x000002ce - adds r0, r1 - ldrh r0, [r0] - bx lr - .pool - thumb_func_end sub_811DE48 - - thumb_func_start sub_811DE5C -sub_811DE5C: @ 811DE5C - push {r4,r5,lr} - lsls r0, 24 - lsrs r0, 24 - lsls r1, 24 - lsrs r1, 24 - lsls r2, 24 - lsrs r2, 24 - lsls r3, 24 - lsrs r3, 24 - lsls r4, r0, 8 - adds r0, r2 - orrs r4, r0 - lsls r5, r1, 8 - adds r1, r3 - orrs r5, r1 - movs r0, 0x40 - adds r1, r4, 0 - bl SetGpuReg - movs r0, 0x44 - adds r1, r5, 0 - bl SetGpuReg - pop {r4,r5} - pop {r0} - bx r0 - thumb_func_end sub_811DE5C - - thumb_func_start sub_811DE90 -sub_811DE90: @ 811DE90 - push {r4,r5,lr} - ldr r0, =gUnknown_08597CA0 - bl LoadSpriteSheets - ldr r0, =gUnknown_08597CC0 - bl LoadSpritePalettes - movs r5, 0 - ldr r4, =gUnknown_08597CE8 -_0811DEA2: - adds r0, r4, 0 - bl LoadCompressedSpriteSheet - adds r4, 0x8 - adds r5, 0x1 - cmp r5, 0x3 - bls _0811DEA2 - pop {r4,r5} - pop {r0} - bx r0 - .pool - thumb_func_end sub_811DE90 - - thumb_func_start sub_811DEC4 -sub_811DEC4: @ 811DEC4 - push {lr} - bl sub_811BA68 - lsls r0, 24 - ldr r1, =gUnknown_08597C30 - lsrs r0, 22 - adds r0, r1 - ldrb r2, [r0] - lsls r1, r2, 27 - lsrs r1, 8 - lsrs r2, 5 - lsls r2, 19 - ldr r0, =gUnknown_08597D18 - movs r3, 0xD0 - lsls r3, 12 - adds r1, r3 - asrs r1, 16 - movs r3, 0x80 - lsls r3, 12 - adds r2, r3 - asrs r2, 16 - movs r3, 0x2 - bl CreateSprite - lsls r0, 24 - lsrs r0, 24 - ldr r1, =gUnknown_0203A11C - ldr r2, [r1] - movs r1, 0xB6 - lsls r1, 2 - adds r2, r1 - lsls r1, r0, 4 - adds r1, r0 - lsls r1, 2 - ldr r0, =gSprites - adds r1, r0 - str r1, [r2] - movs r0, 0x1 - strh r0, [r1, 0x30] - pop {r0} - bx r0 - .pool - thumb_func_end sub_811DEC4 - - thumb_func_start sub_811DF28 -sub_811DF28: @ 811DF28 - push {lr} - adds r1, r0, 0 - movs r2, 0x30 - ldrsh r0, [r1, r2] - cmp r0, 0 - beq _0811DF56 - ldrh r0, [r1, 0x2E] - adds r0, 0x1 - strh r0, [r1, 0x2E] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x2 - ble _0811DF56 - movs r0, 0 - strh r0, [r1, 0x2E] - ldrh r0, [r1, 0x24] - adds r0, 0x1 - strh r0, [r1, 0x24] - lsls r0, 16 - cmp r0, 0 - ble _0811DF56 - ldr r0, =0x0000fffa - strh r0, [r1, 0x24] -_0811DF56: - pop {r0} - bx r0 - .pool - thumb_func_end sub_811DF28 - - thumb_func_start sub_811DF60 -sub_811DF60: @ 811DF60 - push {r4,lr} - lsls r0, 24 - lsrs r0, 24 - lsls r1, 24 - lsrs r1, 24 - ldr r2, =gUnknown_0203A11C - ldr r2, [r2] - movs r3, 0xB6 - lsls r3, 2 - adds r2, r3 - ldr r3, [r2] - movs r4, 0 - strh r0, [r3, 0x20] - ldr r0, [r2] - strh r1, [r0, 0x22] - ldr r0, [r2] - strh r4, [r0, 0x24] - ldr r0, [r2] - strh r4, [r0, 0x2E] - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end sub_811DF60 - - thumb_func_start sub_811DF90 -sub_811DF90: @ 811DF90 - ldr r0, =gUnknown_0203A11C - ldr r1, [r0] - movs r0, 0xB6 - lsls r0, 2 - adds r1, r0 - ldr r0, [r1] - movs r2, 0 - strh r2, [r0, 0x2E] - ldr r0, [r1] - strh r2, [r0, 0x30] - ldr r0, [r1] - strh r2, [r0, 0x24] - bx lr - .pool - thumb_func_end sub_811DF90 - - thumb_func_start sub_811DFB0 -sub_811DFB0: @ 811DFB0 - ldr r0, =gUnknown_0203A11C - ldr r0, [r0] - movs r1, 0xB6 - lsls r1, 2 - adds r0, r1 - ldr r1, [r0] - movs r0, 0x1 - strh r0, [r1, 0x30] - bx lr - .pool - thumb_func_end sub_811DFB0 - - thumb_func_start sub_811DFC8 -sub_811DFC8: @ 811DFC8 - push {r4-r6,lr} - mov r6, r8 - push {r6} - ldr r6, =gUnknown_08597D68 - adds r0, r6, 0 - movs r1, 0 - movs r2, 0 - movs r3, 0x3 - bl CreateSprite - lsls r0, 24 - lsrs r0, 24 - ldr r5, =gUnknown_0203A11C - ldr r2, [r5] - movs r1, 0xB7 - lsls r1, 2 - mov r8, r1 - add r2, r8 - lsls r1, r0, 4 - adds r1, r0 - lsls r1, 2 - ldr r4, =gSprites - adds r1, r4 - str r1, [r2] - movs r0, 0x20 - strh r0, [r1, 0x24] - adds r0, r6, 0 - movs r1, 0 - movs r2, 0 - movs r3, 0x3 - bl CreateSprite - lsls r0, 24 - lsrs r0, 24 - ldr r2, [r5] - movs r1, 0xB8 - lsls r1, 2 - adds r3, r2, r1 - lsls r1, r0, 4 - adds r1, r0 - lsls r1, 2 - adds r1, r4 - str r1, [r3] - ldr r0, =0x0000ffe0 - strh r0, [r1, 0x24] - add r2, r8 - ldr r1, [r2] - adds r1, 0x3F - ldrb r0, [r1] - movs r2, 0x1 - orrs r0, r2 - strb r0, [r1] - bl sub_811E088 - pop {r3} - mov r8, r3 - pop {r4-r6} - pop {r0} - bx r0 - .pool - thumb_func_end sub_811DFC8 - - thumb_func_start sub_811E050 -sub_811E050: @ 811E050 - push {r4-r6,lr} - ldr r5, =gUnknown_0203A11C - ldr r0, [r5] - movs r4, 0xB7 - lsls r4, 2 - adds r0, r4 - ldr r0, [r0] - bl DestroySprite - ldr r0, [r5] - adds r4, r0, r4 - movs r6, 0 - str r6, [r4] - movs r4, 0xB8 - lsls r4, 2 - adds r0, r4 - ldr r0, [r0] - bl DestroySprite - ldr r0, [r5] - adds r0, r4 - str r6, [r0] - pop {r4-r6} - pop {r0} - bx r0 - .pool - thumb_func_end sub_811E050 - - thumb_func_start sub_811E088 -sub_811E088: @ 811E088 - push {r4,lr} - sub sp, 0x4 - ldr r0, =gUnknown_0203A11C - ldr r1, [r0] - movs r2, 0xB7 - lsls r2, 2 - adds r0, r1, r2 - ldr r0, [r0] - cmp r0, 0 - beq _0811E0E4 - adds r2, 0x4 - adds r0, r1, r2 - ldr r0, [r0] - cmp r0, 0 - beq _0811E0E4 - mov r4, sp - adds r4, 0x1 - mov r0, sp - adds r1, r4, 0 - bl sub_811BB9C - bl sub_811BBB0 - lsls r0, 24 - cmp r0, 0 - bne _0811E0D4 - mov r0, sp - ldrb r0, [r0] - lsls r0, 24 - asrs r0, 24 - movs r1, 0 - ldrsb r1, [r4, r1] - bl sub_811E0EC - b _0811E0E4 - .pool -_0811E0D4: - mov r0, sp - ldrb r0, [r0] - lsls r0, 24 - asrs r0, 24 - movs r1, 0 - ldrsb r1, [r4, r1] - bl sub_811E1A4 -_0811E0E4: - add sp, 0x4 - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_811E088 - - thumb_func_start sub_811E0EC -sub_811E0EC: @ 811E0EC - push {r4-r7,lr} - mov r7, r8 - push {r7} - lsls r1, 24 - lsrs r7, r1, 24 - lsls r0, 24 - asrs r5, r0, 24 - movs r0, 0x1 - negs r0, r0 - cmp r5, r0 - beq _0811E150 - ldr r0, =gUnknown_0203A11C - mov r8, r0 - ldr r0, [r0] - movs r4, 0xB7 - lsls r4, 2 - adds r0, r4 - ldr r0, [r0] - movs r1, 0 - bl StartSpriteAnim - mov r2, r8 - ldr r1, [r2] - adds r4, r1, r4 - ldr r2, [r4] - movs r0, 0x54 - muls r5, r0 - adds r5, 0x3A - strh r5, [r2, 0x20] - ldr r0, [r4] - lsls r4, r7, 24 - asrs r4, 20 - adds r4, 0x60 - strh r4, [r0, 0x22] - movs r6, 0xB8 - lsls r6, 2 - adds r1, r6 - ldr r0, [r1] - movs r1, 0 - bl StartSpriteAnim - mov r1, r8 - ldr r0, [r1] - adds r0, r6 - ldr r1, [r0] - strh r5, [r1, 0x20] - b _0811E192 - .pool -_0811E150: - ldr r6, =gUnknown_0203A11C - ldr r0, [r6] - movs r4, 0xB7 - lsls r4, 2 - adds r0, r4 - ldr r0, [r0] - movs r1, 0x1 - bl StartSpriteAnim - ldr r1, [r6] - adds r4, r1, r4 - ldr r0, [r4] - movs r2, 0xD8 - mov r8, r2 - mov r2, r8 - strh r2, [r0, 0x20] - ldr r0, [r4] - lsls r4, r7, 24 - asrs r4, 20 - adds r4, 0x70 - strh r4, [r0, 0x22] - movs r5, 0xB8 - lsls r5, 2 - adds r1, r5 - ldr r0, [r1] - movs r1, 0x1 - bl StartSpriteAnim - ldr r0, [r6] - adds r0, r5 - ldr r1, [r0] - mov r2, r8 - strh r2, [r1, 0x20] -_0811E192: - ldr r0, [r0] - strh r4, [r0, 0x22] - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end sub_811E0EC - - thumb_func_start sub_811E1A4 -sub_811E1A4: @ 811E1A4 - push {r4-r7,lr} - mov r7, r8 - push {r7} - lsls r0, 24 - lsls r1, 24 - lsrs r5, r1, 24 - lsrs r4, r0, 24 - asrs r2, r0, 24 - movs r0, 0x1 - negs r0, r0 - cmp r2, r0 - beq _0811E234 - lsls r0, r5, 24 - asrs r1, r0, 24 - lsls r0, r1, 4 - adds r0, 0x60 - mov r8, r0 - movs r7, 0x20 - cmp r2, 0x6 - bne _0811E1D6 - cmp r1, 0 - bne _0811E1D6 - movs r7, 0x9E - movs r6, 0x2 - b _0811E1EC -_0811E1D6: - ldr r3, =gUnknown_08597D08 - lsls r1, r4, 24 - lsrs r0, r1, 24 - movs r2, 0 - cmp r0, 0x6 - bhi _0811E1E4 - asrs r2, r1, 24 -_0811E1E4: - adds r0, r2, r3 - ldrb r0, [r0] - adds r7, r0 - movs r6, 0x3 -_0811E1EC: - ldr r5, =gUnknown_0203A11C - ldr r0, [r5] - movs r4, 0xB7 - lsls r4, 2 - adds r0, r4 - ldr r0, [r0] - adds r1, r6, 0 - bl StartSpriteAnim - ldr r1, [r5] - adds r4, r1, r4 - ldr r0, [r4] - strh r7, [r0, 0x20] - ldr r0, [r4] - mov r2, r8 - strh r2, [r0, 0x22] - movs r4, 0xB8 - lsls r4, 2 - adds r1, r4 - ldr r0, [r1] - adds r1, r6, 0 - bl StartSpriteAnim - ldr r0, [r5] - adds r0, r4 - ldr r1, [r0] - strh r7, [r1, 0x20] - ldr r0, [r0] - mov r1, r8 - strh r1, [r0, 0x22] - b _0811E27A - .pool -_0811E234: - ldr r6, =gUnknown_0203A11C - ldr r0, [r6] - movs r4, 0xB7 - lsls r4, 2 - adds r0, r4 - ldr r0, [r0] - movs r1, 0x1 - bl StartSpriteAnim - ldr r1, [r6] - adds r4, r1, r4 - ldr r0, [r4] - movs r2, 0xD8 - mov r8, r2 - mov r2, r8 - strh r2, [r0, 0x20] - ldr r0, [r4] - lsls r4, r5, 24 - asrs r4, 20 - adds r4, 0x70 - strh r4, [r0, 0x22] - movs r5, 0xB8 - lsls r5, 2 - adds r1, r5 - ldr r0, [r1] - movs r1, 0x1 - bl StartSpriteAnim - ldr r0, [r6] - adds r0, r5 - ldr r1, [r0] - mov r2, r8 - strh r2, [r1, 0x20] - ldr r0, [r0] - strh r4, [r0, 0x22] -_0811E27A: - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end sub_811E1A4 - - thumb_func_start sub_811E288 -sub_811E288: @ 811E288 - push {lr} - ldr r0, =gUnknown_08597D18 - movs r1, 0 - movs r2, 0 - movs r3, 0x4 - bl CreateSprite - lsls r0, 24 - lsrs r0, 24 - ldr r1, =gUnknown_0203A11C - ldr r2, [r1] - movs r1, 0xB9 - lsls r1, 2 - adds r2, r1 - lsls r1, r0, 4 - adds r1, r0 - lsls r1, 2 - ldr r0, =gSprites - adds r1, r0 - str r1, [r2] - ldr r0, =sub_811E2DC - str r0, [r1, 0x1C] - ldrb r2, [r1, 0x5] - movs r0, 0xD - negs r0, r0 - ands r0, r2 - movs r2, 0x8 - orrs r0, r2 - strb r0, [r1, 0x5] - bl sub_811E30C - pop {r0} - bx r0 - .pool - thumb_func_end sub_811E288 - - thumb_func_start sub_811E2DC -sub_811E2DC: @ 811E2DC - push {lr} - adds r1, r0, 0 - ldrh r0, [r1, 0x2E] - adds r0, 0x1 - strh r0, [r1, 0x2E] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x2 - ble _0811E302 - movs r0, 0 - strh r0, [r1, 0x2E] - ldrh r0, [r1, 0x24] - adds r0, 0x1 - strh r0, [r1, 0x24] - lsls r0, 16 - cmp r0, 0 - ble _0811E302 - ldr r0, =0x0000fffa - strh r0, [r1, 0x24] -_0811E302: - pop {r0} - bx r0 - .pool - thumb_func_end sub_811E2DC - - thumb_func_start sub_811E30C -sub_811E30C: @ 811E30C - push {r4,lr} - sub sp, 0x4 - mov r4, sp - adds r4, 0x1 - mov r0, sp - adds r1, r4, 0 - bl sub_811BBC8 - mov r0, sp - movs r1, 0 - ldrsb r1, [r0, r1] - movs r0, 0xD - muls r0, r1 - lsls r0, 27 - movs r1, 0 - ldrsb r1, [r4, r1] - lsls r1, 28 - movs r2, 0xE0 - lsls r2, 21 - adds r0, r2 - lsrs r0, 24 - movs r2, 0xC0 - lsls r2, 23 - adds r1, r2 - lsrs r1, 24 - bl sub_811E34C - add sp, 0x4 - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_811E30C - - thumb_func_start sub_811E34C -sub_811E34C: @ 811E34C - push {r4,lr} - lsls r0, 24 - lsrs r3, r0, 24 - lsls r1, 24 - lsrs r4, r1, 24 - ldr r0, =gUnknown_0203A11C - ldr r0, [r0] - movs r1, 0xB9 - lsls r1, 2 - adds r2, r0, r1 - ldr r0, [r2] - cmp r0, 0 - beq _0811E376 - movs r1, 0 - strh r3, [r0, 0x20] - ldr r0, [r2] - strh r4, [r0, 0x22] - ldr r0, [r2] - strh r1, [r0, 0x24] - ldr r0, [r2] - strh r1, [r0, 0x2E] -_0811E376: - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end sub_811E34C - - thumb_func_start sub_811E380 -sub_811E380: @ 811E380 - push {r4,lr} - ldr r4, =gUnknown_0203A11C - ldr r0, [r4] - movs r1, 0xB9 - lsls r1, 2 - adds r0, r1 - ldr r0, [r0] - cmp r0, 0 - beq _0811E3A2 - bl DestroySprite - ldr r0, [r4] - movs r1, 0xB9 - lsls r1, 2 - adds r0, r1 - movs r1, 0 - str r1, [r0] -_0811E3A2: - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end sub_811E380 - - thumb_func_start sub_811E3AC -sub_811E3AC: @ 811E3AC - push {r4-r6,lr} - ldr r0, =gUnknown_08597DF0 - movs r1, 0xD0 - movs r2, 0x80 - movs r3, 0x6 - bl CreateSprite - lsls r0, 24 - lsrs r0, 24 - ldr r5, =gUnknown_0203A11C - ldr r2, [r5] - movs r1, 0xBA - lsls r1, 2 - adds r2, r1 - lsls r1, r0, 4 - adds r1, r0 - lsls r1, 2 - ldr r4, =gSprites - adds r1, r4 - str r1, [r2] - movs r6, 0 - ldr r0, =0x0000ffc0 - strh r0, [r1, 0x24] - ldr r0, =gUnknown_08597DD0 - movs r1, 0xD0 - movs r2, 0x50 - movs r3, 0x5 - bl CreateSprite - lsls r0, 24 - lsrs r0, 24 - ldr r2, [r5] - movs r1, 0xBB - lsls r1, 2 - adds r3, r2, r1 - lsls r1, r0, 4 - adds r1, r0 - lsls r1, 2 - adds r1, r4 - str r1, [r3] - strb r6, [r2, 0x9] - pop {r4-r6} - pop {r0} - bx r0 - .pool - thumb_func_end sub_811E3AC - - thumb_func_start sub_811E418 -sub_811E418: @ 811E418 - push {r4,lr} - ldr r4, =gUnknown_0203A11C - ldr r2, [r4] - ldrb r3, [r2, 0x9] - cmp r3, 0 - beq _0811E430 - cmp r3, 0x1 - beq _0811E488 - movs r0, 0 - b _0811E4A6 - .pool -_0811E430: - movs r0, 0xBA - lsls r0, 2 - adds r2, r0 - ldr r1, [r2] - ldrh r0, [r1, 0x24] - adds r0, 0x8 - strh r0, [r1, 0x24] - ldr r2, [r2] - movs r1, 0x24 - ldrsh r0, [r2, r1] - cmp r0, 0 - blt _0811E4A4 - strh r3, [r2, 0x24] - bl sub_811BBB0 - lsls r0, 24 - cmp r0, 0 - bne _0811E466 - ldr r0, [r4] - movs r1, 0xBB - lsls r1, 2 - adds r0, r1 - ldr r0, [r0] - movs r1, 0x1 - bl StartSpriteAnim - b _0811E476 -_0811E466: - ldr r0, [r4] - movs r1, 0xBB - lsls r1, 2 - adds r0, r1 - ldr r0, [r0] - movs r1, 0x2 - bl StartSpriteAnim -_0811E476: - ldr r0, =gUnknown_0203A11C - ldr r1, [r0] - ldrb r0, [r1, 0x9] - adds r0, 0x1 - strb r0, [r1, 0x9] - b _0811E4A4 - .pool -_0811E488: - movs r1, 0xBB - lsls r1, 2 - adds r0, r2, r1 - ldr r0, [r0] - adds r0, 0x3F - ldrb r1, [r0] - movs r0, 0x10 - ands r0, r1 - cmp r0, 0 - beq _0811E4A4 - movs r0, 0x2 - strb r0, [r2, 0x9] - movs r0, 0 - b _0811E4A6 -_0811E4A4: - movs r0, 0x1 -_0811E4A6: - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_811E418 - - thumb_func_start sub_811E4AC -sub_811E4AC: @ 811E4AC - push {lr} - ldr r2, =gUnknown_0203A11C - ldr r1, [r2] - movs r0, 0 - strb r0, [r1, 0x9] - ldr r0, [r2] - movs r1, 0xBB - lsls r1, 2 - adds r0, r1 - ldr r0, [r0] - movs r1, 0x3 - bl StartSpriteAnim - pop {r0} - bx r0 - .pool - thumb_func_end sub_811E4AC - - thumb_func_start sub_811E4D0 -sub_811E4D0: @ 811E4D0 - push {r4-r6,lr} - ldr r5, =gUnknown_0203A11C - ldr r3, [r5] - ldrb r0, [r3, 0x9] - cmp r0, 0 - beq _0811E4E8 - cmp r0, 0x1 - beq _0811E502 - movs r0, 0 - b _0811E554 - .pool -_0811E4E8: - movs r1, 0xBB - lsls r1, 2 - adds r0, r3, r1 - ldr r0, [r0] - adds r0, 0x3F - ldrb r1, [r0] - movs r0, 0x10 - ands r0, r1 - cmp r0, 0 - beq _0811E552 - movs r0, 0x1 - strb r0, [r3, 0x9] - b _0811E552 -_0811E502: - movs r0, 0xBA - lsls r0, 2 - adds r2, r3, r0 - ldr r1, [r2] - ldrh r0, [r1, 0x24] - subs r0, 0x8 - movs r6, 0 - strh r0, [r1, 0x24] - ldr r0, [r2] - movs r2, 0x24 - ldrsh r1, [r0, r2] - movs r0, 0x40 - negs r0, r0 - cmp r1, r0 - bgt _0811E552 - movs r4, 0xBB - lsls r4, 2 - adds r0, r3, r4 - ldr r0, [r0] - bl DestroySprite - ldr r0, [r5] - movs r1, 0xBA - lsls r1, 2 - adds r0, r1 - ldr r0, [r0] - bl DestroySprite - ldr r1, [r5] - adds r4, r1, r4 - str r6, [r4] - movs r2, 0xBA - lsls r2, 2 - adds r0, r1, r2 - str r6, [r0] - ldrb r0, [r1, 0x9] - adds r0, 0x1 - strb r0, [r1, 0x9] - movs r0, 0 - b _0811E554 -_0811E552: - movs r0, 0x1 -_0811E554: - pop {r4-r6} - pop {r1} - bx r1 - thumb_func_end sub_811E4D0 - - thumb_func_start sub_811E55C -sub_811E55C: @ 811E55C - push {lr} - ldr r0, =gUnknown_0203A11C - ldr r0, [r0] - movs r1, 0xBB - lsls r1, 2 - adds r0, r1 - ldr r0, [r0] - movs r1, 0x4 - bl StartSpriteAnim - pop {r0} - bx r0 - .pool - thumb_func_end sub_811E55C - - thumb_func_start sub_811E578 -sub_811E578: @ 811E578 - push {lr} - bl sub_811BBB0 - lsls r0, 24 - cmp r0, 0 - bne _0811E59C - ldr r0, =gUnknown_0203A11C - ldr r0, [r0] - movs r1, 0xBB - lsls r1, 2 - adds r0, r1 - ldr r0, [r0] - movs r1, 0x1 - bl StartSpriteAnim - b _0811E5AE - .pool -_0811E59C: - ldr r0, =gUnknown_0203A11C - ldr r0, [r0] - movs r1, 0xBB - lsls r1, 2 - adds r0, r1 - ldr r0, [r0] - movs r1, 0x2 - bl StartSpriteAnim -_0811E5AE: - pop {r0} - bx r0 - .pool - thumb_func_end sub_811E578 - - thumb_func_start sub_811E5B8 -sub_811E5B8: @ 811E5B8 - ldr r0, =gUnknown_0203A11C - ldr r0, [r0] - movs r1, 0xBB - lsls r1, 2 - adds r0, r1 - ldr r0, [r0] - adds r0, 0x3F - ldrb r1, [r0] - lsrs r1, 4 - movs r0, 0x1 - bics r0, r1 - bx lr - .pool - thumb_func_end sub_811E5B8 - - thumb_func_start sub_811E5D4 -sub_811E5D4: @ 811E5D4 - push {r4,lr} - ldr r4, =gUnknown_08597E48 - adds r0, r4, 0 - movs r1, 0x60 - movs r2, 0x50 - movs r3, 0 - bl CreateSprite - lsls r0, 24 - lsrs r1, r0, 24 - cmp r1, 0x40 - beq _0811E602 - ldr r0, =gUnknown_0203A11C - ldr r2, [r0] - movs r0, 0xBC - lsls r0, 2 - adds r2, r0 - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - ldr r1, =gSprites - adds r0, r1 - str r0, [r2] -_0811E602: - adds r0, r4, 0 - movs r1, 0x60 - movs r2, 0x9C - movs r3, 0 - bl CreateSprite - lsls r0, 24 - lsrs r1, r0, 24 - cmp r1, 0x40 - beq _0811E636 - ldr r0, =gUnknown_0203A11C - ldr r2, [r0] - movs r0, 0xBD - lsls r0, 2 - adds r2, r0 - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - ldr r1, =gSprites - adds r0, r1 - str r0, [r2] - adds r0, 0x3F - ldrb r1, [r0] - movs r2, 0x2 - orrs r1, r2 - strb r1, [r0] -_0811E636: - bl sub_811E6B0 - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end sub_811E5D4 - - thumb_func_start sub_811E64C -sub_811E64C: @ 811E64C - push {r4-r6,lr} - bl sub_811BBF8 - ldr r6, =gUnknown_0203A11C - ldr r1, [r6] - movs r2, 0xBC - lsls r2, 2 - adds r1, r2 - ldr r1, [r1] - movs r2, 0 - cmp r0, 0 - bne _0811E666 - movs r2, 0x1 -_0811E666: - adds r3, r1, 0 - adds r3, 0x3E - movs r4, 0x1 - lsls r2, 2 - ldrb r1, [r3] - movs r5, 0x5 - negs r5, r5 - adds r0, r5, 0 - ands r0, r1 - orrs r0, r2 - strb r0, [r3] - bl sub_811BC2C - ldr r1, [r6] - movs r2, 0xBD - lsls r2, 2 - adds r1, r2 - ldr r1, [r1] - movs r2, 0 - cmp r0, 0 - bne _0811E692 - movs r2, 0x1 -_0811E692: - adds r3, r1, 0 - adds r3, 0x3E - adds r1, r4, 0 - ands r1, r2 - lsls r1, 2 - ldrb r2, [r3] - adds r0, r5, 0 - ands r0, r2 - orrs r0, r1 - strb r0, [r3] - pop {r4-r6} - pop {r0} - bx r0 - .pool - thumb_func_end sub_811E64C - - thumb_func_start sub_811E6B0 -sub_811E6B0: @ 811E6B0 - ldr r3, =gUnknown_0203A11C - ldr r0, [r3] - movs r1, 0xBC - lsls r1, 2 - adds r0, r1 - ldr r1, [r0] - adds r1, 0x3E - ldrb r0, [r1] - movs r2, 0x4 - orrs r0, r2 - strb r0, [r1] - ldr r0, [r3] - movs r1, 0xBD - lsls r1, 2 - adds r0, r1 - ldr r1, [r0] - adds r1, 0x3E - ldrb r0, [r1] - orrs r0, r2 - strb r0, [r1] - bx lr - .pool - thumb_func_end sub_811E6B0 - - thumb_func_start sub_811E6E0 -sub_811E6E0: @ 811E6E0 - push {lr} - cmp r0, 0 - bne _0811E6FC - ldr r0, =gUnknown_0203A11C - ldr r2, [r0] - movs r1, 0xBC - lsls r1, 2 - adds r0, r2, r1 - ldr r0, [r0] - movs r1, 0x60 - b _0811E70A - .pool -_0811E6FC: - ldr r0, =gUnknown_0203A11C - ldr r2, [r0] - movs r1, 0xBC - lsls r1, 2 - adds r0, r2, r1 - ldr r0, [r0] - movs r1, 0x78 -_0811E70A: - strh r1, [r0, 0x20] - movs r3, 0xBD - lsls r3, 2 - adds r0, r2, r3 - ldr r0, [r0] - strh r1, [r0, 0x20] - pop {r0} - bx r0 - .pool - thumb_func_end sub_811E6E0 - - thumb_func_start sub_811E720 -sub_811E720: @ 811E720 - push {r4,lr} - ldr r4, =gUnknown_08597E30 - adds r0, r4, 0 - movs r1, 0xDC - movs r2, 0x54 - movs r3, 0x1 - bl CreateSprite - lsls r0, 24 - lsrs r1, r0, 24 - cmp r1, 0x40 - beq _0811E74E - ldr r0, =gUnknown_0203A11C - ldr r2, [r0] - movs r0, 0xBE - lsls r0, 2 - adds r2, r0 - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - ldr r1, =gSprites - adds r0, r1 - str r0, [r2] -_0811E74E: - adds r0, r4, 0 - movs r1, 0xDC - movs r2, 0x9C - movs r3, 0x1 - bl CreateSprite - lsls r0, 24 - lsrs r1, r0, 24 - cmp r1, 0x40 - beq _0811E77E - ldr r0, =gUnknown_0203A11C - ldr r2, [r0] - movs r0, 0xBF - lsls r0, 2 - adds r2, r0 - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - ldr r1, =gSprites - adds r0, r1 - str r0, [r2] - movs r1, 0x1 - bl StartSpriteAnim -_0811E77E: - bl sub_811E7F8 - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end sub_811E720 - - thumb_func_start sub_811E794 -sub_811E794: @ 811E794 - push {r4-r6,lr} - bl sub_811BBF8 - ldr r6, =gUnknown_0203A11C - ldr r1, [r6] - movs r2, 0xBE - lsls r2, 2 - adds r1, r2 - ldr r1, [r1] - movs r2, 0 - cmp r0, 0 - bne _0811E7AE - movs r2, 0x1 -_0811E7AE: - adds r3, r1, 0 - adds r3, 0x3E - movs r4, 0x1 - lsls r2, 2 - ldrb r1, [r3] - movs r5, 0x5 - negs r5, r5 - adds r0, r5, 0 - ands r0, r1 - orrs r0, r2 - strb r0, [r3] - bl sub_811BC2C - ldr r1, [r6] - movs r2, 0xBF - lsls r2, 2 - adds r1, r2 - ldr r1, [r1] - movs r2, 0 - cmp r0, 0 - bne _0811E7DA - movs r2, 0x1 -_0811E7DA: - adds r3, r1, 0 - adds r3, 0x3E - adds r1, r4, 0 - ands r1, r2 - lsls r1, 2 - ldrb r2, [r3] - adds r0, r5, 0 - ands r0, r2 - orrs r0, r1 - strb r0, [r3] - pop {r4-r6} - pop {r0} - bx r0 - .pool - thumb_func_end sub_811E794 - - thumb_func_start sub_811E7F8 -sub_811E7F8: @ 811E7F8 - ldr r3, =gUnknown_0203A11C - ldr r0, [r3] - movs r1, 0xBE - lsls r1, 2 - adds r0, r1 - ldr r1, [r0] - adds r1, 0x3E - ldrb r0, [r1] - movs r2, 0x4 - orrs r0, r2 - strb r0, [r1] - ldr r0, [r3] - movs r1, 0xBF - lsls r1, 2 - adds r0, r1 - ldr r1, [r0] - adds r1, 0x3E - ldrb r0, [r1] - orrs r0, r2 - strb r0, [r1] - bx lr - .pool - thumb_func_end sub_811E7F8 - - thumb_func_start sub_811E828 -sub_811E828: @ 811E828 - push {r4,r5,lr} - sub sp, 0x4 - bl sub_811BCBC - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - beq _0811E84C - cmp r0, 0x1 - bgt _0811E842 - cmp r0, 0 - beq _0811E848 - b _0811E8D0 -_0811E842: - cmp r0, 0x2 - beq _0811E850 - b _0811E8D0 -_0811E848: - movs r4, 0x43 - b _0811E852 -_0811E84C: - movs r4, 0x44 - b _0811E852 -_0811E850: - movs r4, 0x7 -_0811E852: - bl sub_811BA68 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x4 - bne _0811E8D0 - adds r0, r4, 0 - ldr r5, =SpriteCallbackDummy - movs r4, 0 - str r4, [sp] - adds r1, r5, 0 - movs r2, 0x4C - movs r3, 0x28 - bl AddPseudoEventObject - lsls r0, 24 - lsrs r2, r0, 24 - cmp r2, 0x40 - beq _0811E892 - ldr r1, =gSprites - lsls r0, r2, 4 - adds r0, r2 - lsls r0, 2 - adds r0, r1 - ldrb r2, [r0, 0x5] - movs r1, 0xD - negs r1, r1 - ands r1, r2 - strb r1, [r0, 0x5] - movs r1, 0x2 - bl StartSpriteAnim -_0811E892: - ldr r0, =gSaveBlock2Ptr - ldr r0, [r0] - ldrb r0, [r0, 0x8] - movs r1, 0x69 - cmp r0, 0 - bne _0811E8A0 - movs r1, 0x64 -_0811E8A0: - str r4, [sp] - adds r0, r1, 0 - adds r1, r5, 0 - movs r2, 0x34 - movs r3, 0x28 - bl AddPseudoEventObject - lsls r0, 24 - lsrs r2, r0, 24 - cmp r2, 0x40 - beq _0811E8D0 - ldr r1, =gSprites - lsls r0, r2, 4 - adds r0, r2 - lsls r0, 2 - adds r0, r1 - ldrb r2, [r0, 0x5] - movs r1, 0xD - negs r1, r1 - ands r1, r2 - strb r1, [r0, 0x5] - movs r1, 0x3 - bl StartSpriteAnim -_0811E8D0: - add sp, 0x4 - pop {r4,r5} - pop {r0} - bx r0 - .pool - thumb_func_end sub_811E828 - - thumb_func_start sub_811E8E4 -sub_811E8E4: @ 811E8E4 - push {lr} - bl sub_811BA68 - lsls r0, 24 - ldr r1, =gUnknown_08597C30 - lsrs r0, 22 - adds r0, r1 - ldrb r0, [r0, 0x3] - cmp r0, 0x1 - beq _0811E90E - cmp r0, 0x1 - bgt _0811E908 - cmp r0, 0 - beq _0811E916 - b _0811E91A - .pool -_0811E908: - cmp r0, 0x2 - beq _0811E912 - b _0811E91A -_0811E90E: - movs r0, 0x1 - b _0811E91C -_0811E912: - movs r0, 0x2 - b _0811E91C -_0811E916: - movs r0, 0 - b _0811E91C -_0811E91A: - movs r0, 0x3 -_0811E91C: - pop {r1} - bx r1 - thumb_func_end sub_811E8E4 - - thumb_func_start sub_811E920 -sub_811E920: @ 811E920 - push {r4,lr} - adds r4, r0, 0 - bl sub_811E8E4 - adds r1, r0, 0 - cmp r1, 0x2 - ble _0811E932 - movs r0, 0 - b _0811E93E -_0811E932: - ldr r0, =gUnknown_08597E60 - lsls r1, 2 - adds r1, r4, r1 - adds r1, r0 - ldrb r0, [r1] - adds r0, 0x4 -_0811E93E: - pop {r4} - pop {r1} - bx r1 - .pool - thumb_func_end sub_811E920 - thumb_func_start sub_811E948 sub_811E948: @ 811E948 push {r4-r7,lr} diff --git a/data/easy_chat.s b/data/easy_chat.s index b8df93d7a..ef632c69f 100644 --- a/data/easy_chat.s +++ b/data/easy_chat.s @@ -443,7 +443,9 @@ gUnknown_08597E48:: @ 8597E48 spr_template 0x0002, 0x0002, gUnknown_08597E10, gUnknown_08597E28, NULL, gDummySpriteAffineAnimTable, SpriteCallbackDummy gUnknown_08597E60:: @ 8597E60 - .byte 0x10, 0x6f, 0xc4, 0x00, 0x10, 0x4e, 0x82, 0xa0, 0x10, 0x50, 0x86, 0xaa + .byte 0x10, 0x6f, 0xc4, 0x00 + .byte 0x10, 0x4e, 0x82, 0xa0 + .byte 0x10, 0x50, 0x86, 0xaa .align 2 gUnknown_08597E6C:: @ 8597E6C diff --git a/src/easy_chat.c b/src/easy_chat.c index 5c55cd2ca..1b1bd105b 100644 --- a/src/easy_chat.c +++ b/src/easy_chat.c @@ -3,10 +3,12 @@ #include "global.h" #include "alloc.h" #include "bg.h" +#include "decompress.h" #include "dewford_trend.h" #include "dynamic_placeholder_text_util.h" #include "easy_chat.h" #include "event_data.h" +#include "event_object_movement.h" #include "field_weather.h" #include "gpu_regs.h" #include "graphics.h" @@ -22,6 +24,7 @@ #include "task.h" #include "text_window.h" #include "window.h" +#include "constants/event_objects.h" #include "constants/flags.h" #include "constants/songs.h" @@ -82,20 +85,23 @@ struct Unk203A11C u8 unk6; u8 unk7; s8 unk8; - u8 filler9[0x1]; + u8 unk9; u8 unkA; u8 unkB[0xC1]; - u8 unkCC[0x20C]; - int unk2D8; - int unk2DC; - int unk2E0; - int unk2E4; - int unk2E8; - int unk2EC; - int unk2F0; - int unk2F4; - int unk2F8; - int unk2FC; + u8 unkCC[0x202]; + u16 unk2CE; + int unk2D0; + int unk2D4; + struct Sprite *unk2D8; + struct Sprite *unk2DC; + struct Sprite *unk2E0; + struct Sprite *unk2E4; + struct Sprite *unk2E8; + struct Sprite *unk2EC; + struct Sprite *unk2F0; + struct Sprite *unk2F4; + struct Sprite *unk2F8; + struct Sprite *unk2FC; u16 unk300[BG_SCREEN_SIZE / 2]; u16 unkB00[BG_SCREEN_SIZE / 2]; }; @@ -202,12 +208,12 @@ static void sub_811CFCC(void); static void sub_811D0BC(void); static void sub_811D2C8(void); static void sub_811D684(void); -void sub_811DE90(void); -void sub_811DEC4(void); -void sub_811DE5C(u8, u8, u8, u8); -void sub_811E5D4(void); -void sub_811E720(void); -void sub_811E828(void); +static void sub_811DE90(void); +static void sub_811DEC4(void); +static void sub_811DE5C(u8, u8, u8, u8); +static void sub_811E5D4(void); +static void sub_811E720(void); +static void sub_811E828(void); static bool8 sub_811C2D4(void); static bool8 sub_811C30C(void); static bool8 sub_811C3E4(void); @@ -237,51 +243,56 @@ static bool8 sub_811CD94(void); static bool8 sub_811CDD4(void); static bool8 sub_811CE14(void); static bool8 sub_811CE54(void); -void sub_811DF60(u8, u8); -int sub_811E920(int); -void sub_811DF90(void); +static void sub_811DF60(u8, u8); +static int sub_811E920(int); +static void sub_811DF90(void); static void sub_811D104(u8); static void sub_811D214(u8); -void sub_811DFB0(void); +static void sub_811DFB0(void); static void sub_811D6D4(void); static void sub_811D9CC(int); -void sub_811E3AC(void); -bool8 sub_811E418(void); -void sub_811DFC8(void); -void sub_811E6E0(int); +static void sub_811E3AC(void); +static bool8 sub_811E418(void); +static void sub_811DFC8(void); +static void sub_811E6E0(int); static bool8 sub_811DAA4(void); -void sub_811E64C(void); -void sub_811E050(void); -void sub_811E4AC(void); -void sub_811E6B0(void); -void sub_811E55C(void); -bool8 sub_811E4D0(void); -bool8 sub_811E5B8(void); -void sub_811E578(void); -void sub_811E088(void); -void sub_811DDAC(s16, u8); -bool8 sub_811DE10(void); +static void sub_811E64C(void); +static void sub_811E050(void); +static void sub_811E4AC(void); +static void sub_811E6B0(void); +static void sub_811E55C(void); +static bool8 sub_811E4D0(void); +static bool8 sub_811E5B8(void); +static void sub_811E578(void); +static void sub_811E088(void); +static void sub_811DDAC(s16, u8); +static bool8 sub_811DE10(void); static void sub_811D9B4(void); static void sub_811D698(u32); -void sub_811E288(void); -void sub_811E794(void); -void sub_811E380(void); -void sub_811E7F8(void); -void sub_811E30C(void); +static void sub_811E288(void); +static void sub_811E794(void); +static void sub_811E380(void); +static void sub_811E7F8(void); +static void sub_811E30C(void); static void sub_811D7A4(void); static void sub_811D7C8(void); -int sub_811DE48(void); +static int sub_811DE48(void); static void sub_811D7EC(void); static void sub_811D830(void); void sub_811D058(u8, u8, const u8 *, u8, u8, u8, u8, u8, u8); -void sub_811DD84(void); +static void sub_811DD84(void); static void sub_811D6F4(void); static void sub_811D758(void); static void sub_811D794(void); const u8 *sub_811F424(u8); static void sub_811D864(u8, u8); static void sub_811D950(u8, u8); -void sub_811DADC(u8); +static void sub_811DADC(u8); +static void sub_811DC28(int, int, int, int); +static void sub_811E0EC(s8, s8); +static void sub_811E1A4(s8, s8); +static void sub_811E2DC(struct Sprite *); +static void sub_811E34C(u8, u8); u8 *CopyEasyChatWordPadded(u8 *, u16, u16); extern const struct { @@ -304,6 +315,17 @@ extern const u16 gUnknown_08597C24[]; extern const struct WindowTemplate gUnknown_08597C84; extern const u8 gUnknown_08597C8C[4]; extern const u8 *const gUnknown_08597C90[4]; +extern const struct SpriteSheet gUnknown_08597CA0[]; +extern const struct SpritePalette gUnknown_08597CC0[]; +extern const struct CompressedSpriteSheet gUnknown_08597CE8[]; +extern const struct SpriteTemplate gUnknown_08597D18; +extern const struct SpriteTemplate gUnknown_08597D68; +extern const struct SpriteTemplate gUnknown_08597DF0; +extern const struct SpriteTemplate gUnknown_08597DD0; +extern const struct SpriteTemplate gUnknown_08597E48; +extern const struct SpriteTemplate gUnknown_08597E30; +extern const u8 gUnknown_08597D08[]; +extern const u8 gUnknown_08597E60[][4]; void sub_811A20C(u8 kind, u16 *words, MainCallback callback, u8 sizeParam) { @@ -3228,16 +3250,16 @@ static bool8 sub_811CE94(void) return FALSE; gUnknown_0203A11C->unk0 = 0; - gUnknown_0203A11C->unk2D8 = 0; - gUnknown_0203A11C->unk2DC = 0; - gUnknown_0203A11C->unk2E0 = 0; - gUnknown_0203A11C->unk2E4 = 0; - gUnknown_0203A11C->unk2E8 = 0; - gUnknown_0203A11C->unk2EC = 0; - gUnknown_0203A11C->unk2F0 = 0; - gUnknown_0203A11C->unk2F4 = 0; - gUnknown_0203A11C->unk2F8 = 0; - gUnknown_0203A11C->unk2FC = 0; + gUnknown_0203A11C->unk2D8 = NULL; + gUnknown_0203A11C->unk2DC = NULL; + gUnknown_0203A11C->unk2E0 = NULL; + gUnknown_0203A11C->unk2E4 = NULL; + gUnknown_0203A11C->unk2E8 = NULL; + gUnknown_0203A11C->unk2EC = NULL; + gUnknown_0203A11C->unk2F0 = NULL; + gUnknown_0203A11C->unk2F4 = NULL; + gUnknown_0203A11C->unk2F8 = NULL; + gUnknown_0203A11C->unk2FC = NULL; gUnknown_0203A11C->unkA = sub_811BC70(); return TRUE; } @@ -3752,3 +3774,602 @@ static bool8 sub_811DAA4(void) var1 = gUnknown_0203A11C->unk7; return (var0 ^ var1) > 0; } + +static void sub_811DADC(u8 arg0) +{ + FillBgTilemapBufferRect_Palette0(1, 0, 0, 10, 30, 10); + switch (arg0) + { + case 0: + break; + case 1: + sub_811DC28(11, 14, 3, 2); + break; + case 2: + sub_811DC28(9, 14, 7, 2); + break; + case 3: + sub_811DC28(7, 14, 11, 2); + break; + case 4: + sub_811DC28(5, 14, 15, 2); + break; + case 5: + sub_811DC28(3, 14, 19, 2); + break; + case 6: + sub_811DC28(1, 14, 23, 2); + break; + case 11: + sub_811DC28(1, 10, 24, 10); + break; + case 12: + sub_811DC28(1, 10, 25, 10); + break; + case 13: + sub_811DC28(1, 10, 26, 10); + break; + case 14: + sub_811DC28(1, 10, 27, 10); + break; + case 15: + sub_811DC28(1, 10, 28, 10); + break; + case 16: + sub_811DC28(1, 10, 29, 10); + break; + case 17: + sub_811DC28(0, 10, 30, 10); + break; + case 10: + case 18: + sub_811DC28(1, 10, 23, 10); + break; + case 9: + case 19: + sub_811DC28(1, 11, 23, 8); + break; + case 8: + case 20: + sub_811DC28(1, 12, 23, 6); + break; + case 7: + case 21: + sub_811DC28(1, 13, 23, 4); + break; + case 22: + sub_811DC28(1, 14, 23, 2); + break; + } + + CopyBgTilemapBufferToVram(1); +} + +static void sub_811DC28(int left, int top, int width, int height) +{ + u16 *tilemap; + int right; + int bottom; + int x, y; + + tilemap = gUnknown_0203A11C->unk300; + right = left + width - 1; + bottom = top + height - 1; + x = left; + y = top; + tilemap[y * 32 + x] = 0x4001; + x++; + for (; x < right; x++) + tilemap[y * 32 + x] = 0x4002; + + tilemap[y * 32 + x] = 0x4003; + y++; + for (; y < bottom; y++) + { + tilemap[y * 32 + left] = 0x4005; + x = left + 1; + for (; x < right; x++) + tilemap[y * 32 + x] = 0x4000; + + tilemap[y * 32 + x] = 0x4007; + } + + tilemap[y * 32 + left] = 0x4009; + x = left + 1; + for (; x < right; x++) + tilemap[y * 32 + x] = 0x400A; + + tilemap[y * 32 + x] = 0x400B; + sub_811DE5C((left + 1) * 8, (top + 1) * 8, (width - 2) * 8, (height - 2) * 8); +} + +static void sub_811DD84(void) +{ + ChangeBgY(2, 0x800, 0); + gUnknown_0203A11C->unk2CE = 0; +} + +static void sub_811DDAC(s16 arg0, u8 arg1) +{ + int bgY; + s16 var0; + + bgY = GetBgY(2); + gUnknown_0203A11C->unk2CE += arg0; + var0 = arg0 * 16; + bgY += var0 << 8; + if (arg1) + { + gUnknown_0203A11C->unk2D0 = bgY; + gUnknown_0203A11C->unk2D4 = arg1 * 256; + if (var0 < 0) + gUnknown_0203A11C->unk2D4 = -gUnknown_0203A11C->unk2D4; + } + else + { + ChangeBgY(2, bgY, 0); + } +} + +static bool8 sub_811DE10(void) +{ + int bgY; + + bgY = GetBgY(2); + if (bgY == gUnknown_0203A11C->unk2D0) + { + return FALSE; + } + else + { + ChangeBgY(2, gUnknown_0203A11C->unk2D4, 1); + return TRUE; + } +} + +static int sub_811DE48(void) +{ + return gUnknown_0203A11C->unk2CE; +} + +static void sub_811DE5C(u8 left, u8 top, u8 width, u8 height) +{ + u16 horizontalDimensions = WIN_RANGE(left, left + width); + u16 verticalDimensions = WIN_RANGE(top, top + height); + SetGpuReg(REG_OFFSET_WIN0H, horizontalDimensions); + SetGpuReg(REG_OFFSET_WIN0V, verticalDimensions); +} + +static void sub_811DE90(void) +{ + u32 i; + + LoadSpriteSheets(gUnknown_08597CA0); + LoadSpritePalettes(gUnknown_08597CC0); + for (i = 0; i < 4; i++) + LoadCompressedSpriteSheet(&gUnknown_08597CE8[i]); +} + +static void sub_811DEC4(void) +{ + u8 var0 = sub_811BA68(); + int x = gUnknown_08597C30[var0].unk0_0 * 8 + 13; + int y = gUnknown_08597C30[var0].unk0_5 * 8 + 8; + u8 spriteId = CreateSprite(&gUnknown_08597D18, x, y, 2); + gUnknown_0203A11C->unk2D8 = &gSprites[spriteId]; + gSprites[spriteId].data[1] = 1; +} + +void sub_811DF28(struct Sprite *sprite) +{ + if (sprite->data[1]) + { + if (++sprite->data[0] > 2) + { + sprite->data[0] = 0; + if (++sprite->pos2.x > 0) + sprite->pos2.x = -6; + } + } +} + +static void sub_811DF60(u8 x, u8 y) +{ + gUnknown_0203A11C->unk2D8->pos1.x = x; + gUnknown_0203A11C->unk2D8->pos1.y = y; + gUnknown_0203A11C->unk2D8->pos2.x = 0; + gUnknown_0203A11C->unk2D8->data[0] = 0; +} + +static void sub_811DF90(void) +{ + gUnknown_0203A11C->unk2D8->data[0] = 0; + gUnknown_0203A11C->unk2D8->data[1] = 0; + gUnknown_0203A11C->unk2D8->pos2.x = 0; +} + +static void sub_811DFB0(void) +{ + gUnknown_0203A11C->unk2D8->data[1] = 1; +} + +static void sub_811DFC8(void) +{ + u8 spriteId = CreateSprite(&gUnknown_08597D68, 0, 0, 3); + gUnknown_0203A11C->unk2DC = &gSprites[spriteId]; + gUnknown_0203A11C->unk2DC->pos2.x = 32; + + spriteId = CreateSprite(&gUnknown_08597D68, 0, 0, 3); + gUnknown_0203A11C->unk2E0 = &gSprites[spriteId]; + gUnknown_0203A11C->unk2E0->pos2.x = -32; + + gUnknown_0203A11C->unk2DC->hFlip = 1; + sub_811E088(); +} + +static void sub_811E050(void) +{ + DestroySprite(gUnknown_0203A11C->unk2DC); + gUnknown_0203A11C->unk2DC = NULL; + DestroySprite(gUnknown_0203A11C->unk2E0); + gUnknown_0203A11C->unk2E0 = NULL; +} + +static void sub_811E088(void) +{ + u8 var0; + u8 var1; + + if (gUnknown_0203A11C->unk2DC && gUnknown_0203A11C->unk2E0) + { + sub_811BB9C(&var0, &var1); + if (!sub_811BBB0()) + sub_811E0EC(var0, var1); + else + sub_811E1A4(var0, var1); + } +} + +static void sub_811E0EC(s8 arg0, s8 arg1) +{ + if (arg0 != -1) + { + StartSpriteAnim(gUnknown_0203A11C->unk2DC, 0); + gUnknown_0203A11C->unk2DC->pos1.x = arg0 * 84 + 58; + gUnknown_0203A11C->unk2DC->pos1.y = arg1 * 16 + 96; + + StartSpriteAnim(gUnknown_0203A11C->unk2E0, 0); + gUnknown_0203A11C->unk2E0->pos1.x = arg0 * 84 + 58; + gUnknown_0203A11C->unk2E0->pos1.y = arg1 * 16 + 96; + } + else + { + StartSpriteAnim(gUnknown_0203A11C->unk2DC, 1); + gUnknown_0203A11C->unk2DC->pos1.x = 216; + gUnknown_0203A11C->unk2DC->pos1.y = arg1 * 16 + 112; + + StartSpriteAnim(gUnknown_0203A11C->unk2E0, 1); + gUnknown_0203A11C->unk2E0->pos1.x = 216; + gUnknown_0203A11C->unk2E0->pos1.y = arg1 * 16 + 112; + } +} + +static void sub_811E1A4(s8 arg0, s8 arg1) +{ + int anim; + int x, y; + + if (arg0 != -1) + { + y = arg1 * 16 + 96; + x = 32; + if (arg0 == 6 && arg1 == 0) + { + x = 158; + anim = 2; + } + else + { + x += gUnknown_08597D08[(u8)arg0 < 7 ? arg0 : 0]; + anim = 3; + } + + StartSpriteAnim(gUnknown_0203A11C->unk2DC, anim); + gUnknown_0203A11C->unk2DC->pos1.x = x; + gUnknown_0203A11C->unk2DC->pos1.y = y; + + StartSpriteAnim(gUnknown_0203A11C->unk2E0, anim); + gUnknown_0203A11C->unk2E0->pos1.x = x; + gUnknown_0203A11C->unk2E0->pos1.y = y; + } + else + { + StartSpriteAnim(gUnknown_0203A11C->unk2DC, 1); + gUnknown_0203A11C->unk2DC->pos1.x = 216; + gUnknown_0203A11C->unk2DC->pos1.y = arg1 * 16 + 112; + + StartSpriteAnim(gUnknown_0203A11C->unk2E0, 1); + gUnknown_0203A11C->unk2E0->pos1.x = 216; + gUnknown_0203A11C->unk2E0->pos1.y = arg1 * 16 + 112; + } +} + +static void sub_811E288(void) +{ + u8 spriteId = CreateSprite(&gUnknown_08597D18, 0, 0, 4); + gUnknown_0203A11C->unk2E4 = &gSprites[spriteId]; + gUnknown_0203A11C->unk2E4->callback = sub_811E2DC; + gUnknown_0203A11C->unk2E4->oam.priority = 2; + sub_811E30C(); +} + +static void sub_811E2DC(struct Sprite *sprite) +{ + if (++sprite->data[0] > 2) + { + sprite->data[0] = 0; + if (++sprite->pos2.x > 0) + sprite->pos2.x = -6; + } +} + +static void sub_811E30C(void) +{ + s8 var0, var1, x, y; + + sub_811BBC8(&var0, &var1); + x = var0 * 13; + x = x * 8 + 28; + y = var1 * 16 + 96; + sub_811E34C(x, y); +} + +static void sub_811E34C(u8 x, u8 y) +{ + if (gUnknown_0203A11C->unk2E4) + { + gUnknown_0203A11C->unk2E4->pos1.x = x; + gUnknown_0203A11C->unk2E4->pos1.y = y; + gUnknown_0203A11C->unk2E4->pos2.x = 0; + gUnknown_0203A11C->unk2E4->data[0] = 0; + } +} + +static void sub_811E380(void) +{ + if (gUnknown_0203A11C->unk2E4) + { + DestroySprite(gUnknown_0203A11C->unk2E4); + gUnknown_0203A11C->unk2E4 = NULL; + } +} + +static void sub_811E3AC(void) +{ + u8 spriteId = CreateSprite(&gUnknown_08597DF0, 208, 128, 6); + gUnknown_0203A11C->unk2E8 = &gSprites[spriteId]; + gUnknown_0203A11C->unk2E8->pos2.x = -64; + + spriteId = CreateSprite(&gUnknown_08597DD0, 208, 80, 5); + gUnknown_0203A11C->unk2EC = &gSprites[spriteId]; + gUnknown_0203A11C->unk9 = 0; +} + +static bool8 sub_811E418(void) +{ + switch (gUnknown_0203A11C->unk9) + { + default: + return FALSE; + case 0: + gUnknown_0203A11C->unk2E8->pos2.x += 8; + if (gUnknown_0203A11C->unk2E8->pos2.x >= 0) + { + gUnknown_0203A11C->unk2E8->pos2.x = 0; + if (!sub_811BBB0()) + StartSpriteAnim(gUnknown_0203A11C->unk2EC, 1); + else + StartSpriteAnim(gUnknown_0203A11C->unk2EC, 2); + + gUnknown_0203A11C->unk9++; + } + break; + case 1: + if (gUnknown_0203A11C->unk2EC->animEnded) + { + gUnknown_0203A11C->unk9 = 2; + return FALSE; + } + } + + return TRUE; +} + +static void sub_811E4AC(void) +{ + gUnknown_0203A11C->unk9 = 0; + StartSpriteAnim(gUnknown_0203A11C->unk2EC, 3); +} + +static bool8 sub_811E4D0(void) +{ + switch (gUnknown_0203A11C->unk9) + { + default: + return FALSE; + case 0: + if (gUnknown_0203A11C->unk2EC->animEnded) + gUnknown_0203A11C->unk9 = 1; + break; + case 1: + gUnknown_0203A11C->unk2E8->pos2.x -= 8; + if (gUnknown_0203A11C->unk2E8->pos2.x <= -64) + { + DestroySprite(gUnknown_0203A11C->unk2EC); + DestroySprite(gUnknown_0203A11C->unk2E8); + gUnknown_0203A11C->unk2EC = NULL; + gUnknown_0203A11C->unk2E8 = NULL; + gUnknown_0203A11C->unk9++; + return FALSE; + } + } + + return TRUE; +} + +static void sub_811E55C(void) +{ + StartSpriteAnim(gUnknown_0203A11C->unk2EC, 4); +} + +static void sub_811E578(void) +{ + if (!sub_811BBB0()) + StartSpriteAnim(gUnknown_0203A11C->unk2EC, 1); + else + StartSpriteAnim(gUnknown_0203A11C->unk2EC, 2); +} + +static bool8 sub_811E5B8(void) +{ + return !gUnknown_0203A11C->unk2EC->animEnded; +} + +static void sub_811E5D4(void) +{ + u8 spriteId = CreateSprite(&gUnknown_08597E48, 96, 80, 0); + if (spriteId != MAX_SPRITES) + gUnknown_0203A11C->unk2F0 = &gSprites[spriteId]; + + spriteId = CreateSprite(&gUnknown_08597E48, 96, 156, 0); + if (spriteId != MAX_SPRITES) + { + gUnknown_0203A11C->unk2F4 = &gSprites[spriteId]; + gUnknown_0203A11C->unk2F4->vFlip = 1; + } + + sub_811E6B0(); +} + +static void sub_811E64C(void) +{ + gUnknown_0203A11C->unk2F0->invisible = !sub_811BBF8(); + gUnknown_0203A11C->unk2F4->invisible = !sub_811BC2C(); +} + +static void sub_811E6B0(void) +{ + gUnknown_0203A11C->unk2F0->invisible = 1; + gUnknown_0203A11C->unk2F4->invisible = 1; +} + +static void sub_811E6E0(int arg0) +{ + if (!arg0) + { + gUnknown_0203A11C->unk2F0->pos1.x = 96; + gUnknown_0203A11C->unk2F4->pos1.x = 96; + } + else + { + gUnknown_0203A11C->unk2F0->pos1.x = 120; + gUnknown_0203A11C->unk2F4->pos1.x = 120; + } +} + +static void sub_811E720(void) +{ + u8 spriteId = CreateSprite(&gUnknown_08597E30, 220, 84, 1); + if (spriteId != MAX_SPRITES) + gUnknown_0203A11C->unk2F8 = &gSprites[spriteId]; + + spriteId = CreateSprite(&gUnknown_08597E30, 220, 156, 1); + if (spriteId != MAX_SPRITES) + { + gUnknown_0203A11C->unk2FC = &gSprites[spriteId]; + StartSpriteAnim(gUnknown_0203A11C->unk2FC, 1); + } + + sub_811E7F8(); +} + +static void sub_811E794(void) +{ + gUnknown_0203A11C->unk2F8->invisible = !sub_811BBF8(); + gUnknown_0203A11C->unk2FC->invisible = !sub_811BC2C(); +} + +static void sub_811E7F8(void) +{ + gUnknown_0203A11C->unk2F8->invisible = 1; + gUnknown_0203A11C->unk2FC->invisible = 1; +} + +static void sub_811E828(void) +{ + int graphicsId; + u8 spriteId; + + switch (sub_811BCBC()) + { + case 0: + graphicsId = EVENT_OBJ_GFX_REPORTER_M; + break; + case 1: + graphicsId = EVENT_OBJ_GFX_REPORTER_F; + break; + case 2: + graphicsId = EVENT_OBJ_GFX_BOY_1; + break; + default: + return; + } + + if (sub_811BA68() != 4) + return; + + spriteId = AddPseudoEventObject(graphicsId, SpriteCallbackDummy, 76, 40, 0); + if (spriteId != MAX_SPRITES) + { + gSprites[spriteId].oam.priority = 0; + StartSpriteAnim(&gSprites[spriteId], 2); + } + + spriteId = AddPseudoEventObject( + gSaveBlock2Ptr->playerGender == MALE ? EVENT_OBJ_GFX_RIVAL_BRENDAN_NORMAL : EVENT_OBJ_GFX_RIVAL_MAY_NORMAL, + SpriteCallbackDummy, + 52, + 40, + 0); + + if (spriteId != MAX_SPRITES) + { + gSprites[spriteId].oam.priority = 0; + StartSpriteAnim(&gSprites[spriteId], 3); + } +} + +int sub_811E8E4(void) +{ + u8 var0 = sub_811BA68(); + switch (gUnknown_08597C30[var0].unk3) + { + case 1: + return 1; + case 2: + return 2; + case 0: + return 0; + default: + return 3; + } +} + +static int sub_811E920(int arg0) +{ + int var0 = sub_811E8E4(); + if (var0 < 3) + return gUnknown_08597E60[var0][arg0] + 4; + else + return 0; +} |