summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPikalaxALT <PikalaxALT@gmail.com>2020-03-07 21:29:31 -0500
committerPikalaxALT <PikalaxALT@gmail.com>2020-03-07 21:29:31 -0500
commitc81edda7956500731d66b55b5b3c98cada723347 (patch)
treefead1c24884b2ac5a285721c89e7b6adb055dea5
parent40e4ef8f77caf47932d3b2c75481be9680eeea17 (diff)
through sub_8101F80
-rw-r--r--asm/easy_chat_2.s516
-rw-r--r--data/easy_chat_2.s64
-rw-r--r--include/easy_chat.h2
-rw-r--r--src/easy_chat_2.c2
-rw-r--r--src/easy_chat_3.c268
5 files changed, 270 insertions, 582 deletions
diff --git a/asm/easy_chat_2.s b/asm/easy_chat_2.s
index 5c66680e2..450329ec2 100644
--- a/asm/easy_chat_2.s
+++ b/asm/easy_chat_2.s
@@ -5,522 +5,6 @@
.text
- thumb_func_start sub_8101BC0
-sub_8101BC0: @ 8101BC0
- push {r4-r6,lr}
- mov r6, r8
- push {r6}
- ldr r6, _08101C38 @ =gUnknown_843F9B8
- adds r0, r6, 0
- movs r1, 0
- movs r2, 0
- movs r3, 0x3
- bl CreateSprite
- lsls r0, 24
- lsrs r0, 24
- ldr r5, _08101C3C @ =gUnknown_203ACEC
- 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, _08101C40 @ =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, _08101C44 @ =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_8101C80
- pop {r3}
- mov r8, r3
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_08101C38: .4byte gUnknown_843F9B8
-_08101C3C: .4byte gUnknown_203ACEC
-_08101C40: .4byte gSprites
-_08101C44: .4byte 0x0000ffe0
- thumb_func_end sub_8101BC0
-
- thumb_func_start sub_8101C48
-sub_8101C48: @ 8101C48
- push {r4-r6,lr}
- ldr r5, _08101C7C @ =gUnknown_203ACEC
- 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
- .align 2, 0
-_08101C7C: .4byte gUnknown_203ACEC
- thumb_func_end sub_8101C48
-
- thumb_func_start sub_8101C80
-sub_8101C80: @ 8101C80
- push {r4,lr}
- sub sp, 0x4
- ldr r0, _08101CC8 @ =gUnknown_203ACEC
- ldr r1, [r0]
- movs r2, 0xB7
- lsls r2, 2
- adds r0, r1, r2
- ldr r0, [r0]
- cmp r0, 0
- beq _08101CDC
- adds r2, 0x4
- adds r0, r1, r2
- ldr r0, [r0]
- cmp r0, 0
- beq _08101CDC
- mov r4, sp
- adds r4, 0x1
- mov r0, sp
- adds r1, r4, 0
- bl sub_80FFE08
- bl sub_80FFE1C
- lsls r0, 24
- cmp r0, 0
- bne _08101CCC
- mov r0, sp
- ldrb r0, [r0]
- lsls r0, 24
- asrs r0, 24
- movs r1, 0
- ldrsb r1, [r4, r1]
- bl sub_8101CE4
- b _08101CDC
- .align 2, 0
-_08101CC8: .4byte gUnknown_203ACEC
-_08101CCC:
- mov r0, sp
- ldrb r0, [r0]
- lsls r0, 24
- asrs r0, 24
- movs r1, 0
- ldrsb r1, [r4, r1]
- bl sub_8101D9C
-_08101CDC:
- add sp, 0x4
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_8101C80
-
- thumb_func_start sub_8101CE4
-sub_8101CE4: @ 8101CE4
- 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 _08101D48
- ldr r0, _08101D44 @ =gUnknown_203ACEC
- 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 _08101D8A
- .align 2, 0
-_08101D44: .4byte gUnknown_203ACEC
-_08101D48:
- ldr r6, _08101D98 @ =gUnknown_203ACEC
- 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]
-_08101D8A:
- ldr r0, [r0]
- strh r4, [r0, 0x22]
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08101D98: .4byte gUnknown_203ACEC
- thumb_func_end sub_8101CE4
-
- thumb_func_start sub_8101D9C
-sub_8101D9C: @ 8101D9C
- 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 _08101E2C
- 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 _08101DCE
- cmp r1, 0
- bne _08101DCE
- movs r7, 0x9D
- movs r6, 0x2
- b _08101DE4
-_08101DCE:
- ldr r3, _08101E24 @ =gUnknown_843F958
- lsls r1, r4, 24
- lsrs r0, r1, 24
- movs r2, 0
- cmp r0, 0x6
- bhi _08101DDC
- asrs r2, r1, 24
-_08101DDC:
- adds r0, r2, r3
- ldrb r0, [r0]
- adds r7, r0
- movs r6, 0x3
-_08101DE4:
- ldr r5, _08101E28 @ =gUnknown_203ACEC
- 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 _08101E72
- .align 2, 0
-_08101E24: .4byte gUnknown_843F958
-_08101E28: .4byte gUnknown_203ACEC
-_08101E2C:
- ldr r6, _08101E7C @ =gUnknown_203ACEC
- 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]
-_08101E72:
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08101E7C: .4byte gUnknown_203ACEC
- thumb_func_end sub_8101D9C
-
- thumb_func_start sub_8101E80
-sub_8101E80: @ 8101E80
- push {lr}
- ldr r0, _08101EC4 @ =gUnknown_843F968
- movs r1, 0
- movs r2, 0
- movs r3, 0x4
- bl CreateSprite
- lsls r0, 24
- lsrs r0, 24
- ldr r1, _08101EC8 @ =gUnknown_203ACEC
- ldr r2, [r1]
- movs r1, 0xB9
- lsls r1, 2
- adds r2, r1
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- ldr r0, _08101ECC @ =gSprites
- adds r1, r0
- str r1, [r2]
- ldr r0, _08101ED0 @ =sub_8101ED4
- 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_8101F04
- pop {r0}
- bx r0
- .align 2, 0
-_08101EC4: .4byte gUnknown_843F968
-_08101EC8: .4byte gUnknown_203ACEC
-_08101ECC: .4byte gSprites
-_08101ED0: .4byte sub_8101ED4
- thumb_func_end sub_8101E80
-
- thumb_func_start sub_8101ED4
-sub_8101ED4: @ 8101ED4
- 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 _08101EFA
- 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 _08101EFA
- ldr r0, _08101F00 @ =0x0000fffa
- strh r0, [r1, 0x24]
-_08101EFA:
- pop {r0}
- bx r0
- .align 2, 0
-_08101F00: .4byte 0x0000fffa
- thumb_func_end sub_8101ED4
-
- thumb_func_start sub_8101F04
-sub_8101F04: @ 8101F04
- push {r4,lr}
- sub sp, 0x4
- mov r4, sp
- adds r4, 0x1
- mov r0, sp
- adds r1, r4, 0
- bl sub_80FFE34
- mov r0, sp
- movs r1, 0
- ldrsb r1, [r0, r1]
- movs r0, 0xD
- muls r0, r1
- adds r0, 0x3
- lsls r0, 24
- lsrs r0, 24
- movs r1, 0
- ldrsb r1, [r4, r1]
- lsls r1, 25
- movs r2, 0xB0
- lsls r2, 20
- adds r1, r2
- lsrs r1, 24
- bl sub_8101F40
- add sp, 0x4
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_8101F04
-
- thumb_func_start sub_8101F40
-sub_8101F40: @ 8101F40
- push {r4,lr}
- lsls r0, 24
- lsrs r2, r0, 24
- lsls r1, 24
- lsrs r4, r1, 24
- ldr r0, _08101F7C @ =gUnknown_203ACEC
- ldr r0, [r0]
- movs r1, 0xB9
- lsls r1, 2
- adds r3, r0, r1
- ldr r1, [r3]
- cmp r1, 0
- beq _08101F74
- lsls r0, r2, 3
- adds r0, 0x4
- movs r2, 0
- strh r0, [r1, 0x20]
- ldr r1, [r3]
- adds r0, r4, 0x1
- lsls r0, 3
- adds r0, 0x1
- strh r0, [r1, 0x22]
- ldr r0, [r3]
- strh r2, [r0, 0x24]
- ldr r0, [r3]
- strh r2, [r0, 0x2E]
-_08101F74:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08101F7C: .4byte gUnknown_203ACEC
- thumb_func_end sub_8101F40
-
- thumb_func_start sub_8101F80
-sub_8101F80: @ 8101F80
- push {r4,lr}
- ldr r4, _08101FA8 @ =gUnknown_203ACEC
- ldr r0, [r4]
- movs r1, 0xB9
- lsls r1, 2
- adds r0, r1
- ldr r0, [r0]
- cmp r0, 0
- beq _08101FA2
- bl DestroySprite
- ldr r0, [r4]
- movs r1, 0xB9
- lsls r1, 2
- adds r0, r1
- movs r1, 0
- str r1, [r0]
-_08101FA2:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08101FA8: .4byte gUnknown_203ACEC
- thumb_func_end sub_8101F80
-
thumb_func_start sub_8101FAC
sub_8101FAC: @ 8101FAC
push {r4-r6,lr}
diff --git a/data/easy_chat_2.s b/data/easy_chat_2.s
index 8298f8cbb..854454238 100644
--- a/data/easy_chat_2.s
+++ b/data/easy_chat_2.s
@@ -7,70 +7,6 @@
.section .rodata
.align 2
-gUnknown_843F980::
- .4byte 0xc0004000, 0x00000400
-
-gUnknown_843F988::
- obj_image_anim_frame 0x0000, 0
- obj_image_anim_end
-
-gUnknown_843F990::
- obj_image_anim_frame 0x0020, 0
- obj_image_anim_end
-
-gUnknown_843F998::
- obj_image_anim_frame 0x0040, 0
- obj_image_anim_end
-
-gUnknown_843F9A0::
- obj_image_anim_frame 0x0060, 0
- obj_image_anim_end
-
-gUnknown_843F9A8::
- .4byte gUnknown_843F988
- .4byte gUnknown_843F990
- .4byte gUnknown_843F998
- .4byte gUnknown_843F9A0
-
-gUnknown_843F9B8:: @ 843F9B8 sprite_template
- spr_template 1, 1, gUnknown_843F980, gUnknown_843F9A8, NULL, gDummySpriteAffineAnimTable, sub_8101B20
-
-gUnknown_843F9D0::
- .4byte 0xc0004000, 0x00000400
-
-gUnknown_843F9D8::
- obj_image_anim_frame 0x0060, 0
- obj_image_anim_end
-
-gUnknown_843F9E0::
- obj_image_anim_frame 0x0040, 4
- obj_image_anim_frame 0x0020, 4
- obj_image_anim_end
-
-gUnknown_843F9EC::
- obj_image_anim_frame 0x0040, 4
- obj_image_anim_frame 0x0000, 4
- obj_image_anim_end
-
-gUnknown_843F9F8::
- obj_image_anim_frame 0x0040, 4
- obj_image_anim_frame 0x0060, 0
- obj_image_anim_end
-
-gUnknown_843FA04::
- obj_image_anim_frame 0x0040, 4
- obj_image_anim_end
-
-gUnknown_843FA0C::
- .4byte gUnknown_843F9D8
- .4byte gUnknown_843F9E0
- .4byte gUnknown_843F9EC
- .4byte gUnknown_843F9F8
- .4byte gUnknown_843FA04
-
-gUnknown_843FA20:: @ 843FA20 sprite_template
- spr_template 4, 2, gUnknown_843F9D0, gUnknown_843FA0C, NULL, gDummySpriteAffineAnimTable, SpriteCallbackDummy
-
gUnknown_843FA38::
.4byte 0xc0000000, 0x00000c00
diff --git a/include/easy_chat.h b/include/easy_chat.h
index 12c096136..5e918c887 100644
--- a/include/easy_chat.h
+++ b/include/easy_chat.h
@@ -66,7 +66,7 @@ void GetEasyChatConfirmDeletionText(const u8 **str1, const u8 **str2);
void sub_80FFE08(u8 *arg0, u8 *arg1);
u8 sub_80FFE1C(void);
u8 sub_80FFE28(void);
-void sub_80FFE34(u8 *arg0, u8 *arg1);
+void sub_80FFE34(s8 *arg0, s8 *arg1);
u8 sub_80FFE48(void);
u8 sub_80FFE54(void);
u8 unref_sub_80FFE60(void);
diff --git a/src/easy_chat_2.c b/src/easy_chat_2.c
index 28c091dc6..409c1a0f7 100644
--- a/src/easy_chat_2.c
+++ b/src/easy_chat_2.c
@@ -1271,7 +1271,7 @@ u8 sub_80FFE28(void)
return sEasyChatScreen->unk_0c;
}
-void sub_80FFE34(u8 *arg0, u8 *arg1)
+void sub_80FFE34(s8 *arg0, s8 *arg1)
{
*arg0 = sEasyChatScreen->unk_10;
*arg1 = sEasyChatScreen->unk_11;
diff --git a/src/easy_chat_3.c b/src/easy_chat_3.c
index 3f9b3c65b..419f32e56 100644
--- a/src/easy_chat_3.c
+++ b/src/easy_chat_3.c
@@ -110,8 +110,12 @@ void sub_8101BA8(void);
void sub_8101BC0(void);
void sub_8101C48(void);
void sub_8101C80(void);
+void sub_8101CE4(s8 a0, s8 a1);
+void sub_8101D9C(s8 a0, s8 a1);
void sub_8101E80(void);
+void sub_8101ED4(struct Sprite * sprite);
void sub_8101F04(void);
+void sub_8101F40(u8 x, u8 y);
void sub_8101F80(void);
void sub_8101FAC(void);
bool8 sub_8102018(void);
@@ -333,6 +337,119 @@ const struct SpriteTemplate gUnknown_843F968 = {
.callback = sub_8101B20
};
+const struct OamData gUnknown_843F980 = {
+ .y = 0,
+ .affineMode = ST_OAM_AFFINE_OFF,
+ .objMode = ST_OAM_OBJ_NORMAL,
+ .bpp = ST_OAM_4BPP,
+ .mosaic = FALSE,
+ .shape = SPRITE_SHAPE(64x32),
+ .x = 0,
+ .matrixNum = 0,
+ .size = SPRITE_SIZE(64x32),
+ .tileNum = 0x000,
+ .priority = 1,
+ .paletteNum = 0
+};
+
+const union AnimCmd gUnknown_843F988[] = {
+ ANIMCMD_FRAME(0x00, 0),
+ ANIMCMD_END
+};
+
+const union AnimCmd gUnknown_843F990[] = {
+ ANIMCMD_FRAME(0x20, 0),
+ ANIMCMD_END
+};
+
+const union AnimCmd gUnknown_843F998[] = {
+ ANIMCMD_FRAME(0x40, 0),
+ ANIMCMD_END
+};
+
+const union AnimCmd gUnknown_843F9A0[] = {
+ ANIMCMD_FRAME(0x60, 0),
+ ANIMCMD_END
+};
+
+const union AnimCmd *const gUnknown_843F9A8[] = {
+ gUnknown_843F988,
+ gUnknown_843F990,
+ gUnknown_843F998,
+ gUnknown_843F9A0
+};
+
+const struct SpriteTemplate gUnknown_843F9B8 = {
+ .tileTag = 1,
+ .paletteTag = 1,
+ .oam = &gUnknown_843F980,
+ .anims = gUnknown_843F9A8,
+ .images = NULL,
+ .affineAnims = gDummySpriteAffineAnimTable,
+ .callback = sub_8101B20
+};
+
+const struct OamData gUnknown_843F9D0 = {
+ .y = 0,
+ .affineMode = ST_OAM_AFFINE_OFF,
+ .objMode = ST_OAM_OBJ_NORMAL,
+ .bpp = ST_OAM_4BPP,
+ .mosaic = FALSE,
+ .shape = SPRITE_SHAPE(64x32),
+ .x = 0,
+ .matrixNum = 0,
+ .size = SPRITE_SIZE(64x32),
+ .tileNum = 0x000,
+ .priority = 1,
+ .paletteNum = 0
+};
+
+const union AnimCmd gUnknown_843F9D8[] = {
+ ANIMCMD_FRAME(0x60, 0),
+ ANIMCMD_END
+};
+
+const union AnimCmd gUnknown_843F9E0[] = {
+ ANIMCMD_FRAME(0x40, 4),
+ ANIMCMD_FRAME(0x20, 4),
+ ANIMCMD_END
+};
+
+const union AnimCmd gUnknown_843F9EC[] = {
+ ANIMCMD_FRAME(0x40, 4),
+ ANIMCMD_FRAME(0x00, 4),
+ ANIMCMD_END
+};
+
+const union AnimCmd gUnknown_843F9F8[] = {
+ ANIMCMD_FRAME(0x40, 4),
+ ANIMCMD_FRAME(0x60, 0),
+ ANIMCMD_END
+};
+
+const union AnimCmd gUnknown_843FA04[] = {
+ ANIMCMD_FRAME(0x40, 4),
+ ANIMCMD_END
+};
+
+const union AnimCmd *const gUnknown_843FA0C[] = {
+ gUnknown_843F9D8,
+ gUnknown_843F9E0,
+ gUnknown_843F9EC,
+ gUnknown_843F9F8,
+ gUnknown_843FA04
+};
+
+const struct SpriteTemplate gUnknown_843FA20 = {
+ .tileTag = 4,
+ .paletteTag = 2,
+ .oam = &gUnknown_843F9D0,
+ .anims = gUnknown_843FA0C,
+ .images = NULL,
+ .affineAnims = gDummySpriteAffineAnimTable,
+ .callback = SpriteCallbackDummy
+};
+
bool8 sub_80FFF80(void)
{
if (!sub_8100BF4())
@@ -1752,3 +1869,154 @@ void sub_8101BA8(void)
{
gUnknown_203ACEC->unk2D8->data[1] = 1;
}
+
+void sub_8101BC0(void)
+{
+ u8 spriteId = CreateSprite(&gUnknown_843F9B8, 0, 0, 3);
+ gUnknown_203ACEC->unk2DC = &gSprites[spriteId];
+ gUnknown_203ACEC->unk2DC->pos2.x = 32;
+
+ spriteId = CreateSprite(&gUnknown_843F9B8, 0, 0, 3);
+ gUnknown_203ACEC->unk2E0 = &gSprites[spriteId];
+ gUnknown_203ACEC->unk2E0->pos2.x = -32;
+
+ gUnknown_203ACEC->unk2DC->hFlip = 1;
+ sub_8101C80();
+}
+
+void sub_8101C48(void)
+{
+ DestroySprite(gUnknown_203ACEC->unk2DC);
+ gUnknown_203ACEC->unk2DC = NULL;
+ DestroySprite(gUnknown_203ACEC->unk2E0);
+ gUnknown_203ACEC->unk2E0 = NULL;
+}
+
+void sub_8101C80(void)
+{
+ u8 var0;
+ u8 var1;
+
+ if (gUnknown_203ACEC->unk2DC && gUnknown_203ACEC->unk2E0)
+ {
+ sub_80FFE08(&var0, &var1);
+ if (!sub_80FFE1C())
+ sub_8101CE4(var0, var1);
+ else
+ sub_8101D9C(var0, var1);
+ }
+}
+
+void sub_8101CE4(s8 arg0, s8 arg1)
+{
+ if (arg0 != -1)
+ {
+ StartSpriteAnim(gUnknown_203ACEC->unk2DC, 0);
+ gUnknown_203ACEC->unk2DC->pos1.x = arg0 * 84 + 58;
+ gUnknown_203ACEC->unk2DC->pos1.y = arg1 * 16 + 96;
+
+ StartSpriteAnim(gUnknown_203ACEC->unk2E0, 0);
+ gUnknown_203ACEC->unk2E0->pos1.x = arg0 * 84 + 58;
+ gUnknown_203ACEC->unk2E0->pos1.y = arg1 * 16 + 96;
+ }
+ else
+ {
+ StartSpriteAnim(gUnknown_203ACEC->unk2DC, 1);
+ gUnknown_203ACEC->unk2DC->pos1.x = 216;
+ gUnknown_203ACEC->unk2DC->pos1.y = arg1 * 16 + 112;
+
+ StartSpriteAnim(gUnknown_203ACEC->unk2E0, 1);
+ gUnknown_203ACEC->unk2E0->pos1.x = 216;
+ gUnknown_203ACEC->unk2E0->pos1.y = arg1 * 16 + 112;
+ }
+}
+
+void sub_8101D9C(s8 arg0, s8 arg1)
+{
+ int anim;
+ int x, y;
+
+ if (arg0 != -1)
+ {
+ y = arg1 * 16 + 96;
+ x = 32;
+ if (arg0 == 6 && arg1 == 0)
+ {
+ x = 157;
+ anim = 2;
+ }
+ else
+ {
+ x += gUnknown_843F958[arg0 < NELEMS(gUnknown_843F958) ? arg0 : 0];
+ anim = 3;
+ }
+
+ StartSpriteAnim(gUnknown_203ACEC->unk2DC, anim);
+ gUnknown_203ACEC->unk2DC->pos1.x = x;
+ gUnknown_203ACEC->unk2DC->pos1.y = y;
+
+ StartSpriteAnim(gUnknown_203ACEC->unk2E0, anim);
+ gUnknown_203ACEC->unk2E0->pos1.x = x;
+ gUnknown_203ACEC->unk2E0->pos1.y = y;
+ }
+ else
+ {
+ StartSpriteAnim(gUnknown_203ACEC->unk2DC, 1);
+ gUnknown_203ACEC->unk2DC->pos1.x = 216;
+ gUnknown_203ACEC->unk2DC->pos1.y = arg1 * 16 + 112;
+
+ StartSpriteAnim(gUnknown_203ACEC->unk2E0, 1);
+ gUnknown_203ACEC->unk2E0->pos1.x = 216;
+ gUnknown_203ACEC->unk2E0->pos1.y = arg1 * 16 + 112;
+ }
+}
+
+void sub_8101E80(void)
+{
+ u8 spriteId = CreateSprite(&gUnknown_843F968, 0, 0, 4);
+ gUnknown_203ACEC->unk2E4 = &gSprites[spriteId];
+ gUnknown_203ACEC->unk2E4->callback = sub_8101ED4;
+ gUnknown_203ACEC->unk2E4->oam.priority = 2;
+ sub_8101F04();
+}
+
+void sub_8101ED4(struct Sprite *sprite)
+{
+ if (++sprite->data[0] > 2)
+ {
+ sprite->data[0] = 0;
+ if (++sprite->pos2.x > 0)
+ sprite->pos2.x = -6;
+ }
+}
+
+void sub_8101F04(void)
+{
+ s8 var0, var1;
+ u8 x, y;
+
+ sub_80FFE34(&var0, &var1);
+ x = var0 * 13 + 3;
+ y = var1 * 2 + 11;
+ sub_8101F40(x, y);
+}
+
+void sub_8101F40(u8 x, u8 y)
+{
+ if (gUnknown_203ACEC->unk2E4)
+ {
+ gUnknown_203ACEC->unk2E4->pos1.x = x * 8 + 4;
+ gUnknown_203ACEC->unk2E4->pos1.y = (y + 1) * 8 + 1;
+ gUnknown_203ACEC->unk2E4->pos2.x = 0;
+ gUnknown_203ACEC->unk2E4->data[0] = 0;
+ }
+}
+
+void sub_8101F80(void)
+{
+ if (gUnknown_203ACEC->unk2E4)
+ {
+ DestroySprite(gUnknown_203ACEC->unk2E4);
+ gUnknown_203ACEC->unk2E4 = NULL;
+ }
+}