diff options
-rw-r--r-- | asm/easy_chat_2.s | 692 | ||||
-rw-r--r-- | data/easy_chat_2.s | 38 | ||||
-rw-r--r-- | include/easy_chat.h | 2 | ||||
-rw-r--r-- | include/strings.h | 1 | ||||
-rw-r--r-- | ld_script.txt | 2 | ||||
-rw-r--r-- | src/easy_chat_3.c | 271 |
6 files changed, 273 insertions, 733 deletions
diff --git a/asm/easy_chat_2.s b/asm/easy_chat_2.s deleted file mode 100644 index 450329ec2..000000000 --- a/asm/easy_chat_2.s +++ /dev/null @@ -1,692 +0,0 @@ - .include "asm/macros.inc" - .include "constants/constants.inc" - - .syntax unified - - .text - - thumb_func_start sub_8101FAC -sub_8101FAC: @ 8101FAC - push {r4-r6,lr} - ldr r0, _08102004 @ =gUnknown_843FA40 - movs r1, 0xD0 - movs r2, 0x80 - movs r3, 0x6 - bl CreateSprite - lsls r0, 24 - lsrs r0, 24 - ldr r5, _08102008 @ =gUnknown_203ACEC - ldr r2, [r5] - movs r1, 0xBA - lsls r1, 2 - adds r2, r1 - lsls r1, r0, 4 - adds r1, r0 - lsls r1, 2 - ldr r4, _0810200C @ =gSprites - adds r1, r4 - str r1, [r2] - movs r6, 0 - ldr r0, _08102010 @ =0x0000ffc0 - strh r0, [r1, 0x24] - ldr r0, _08102014 @ =gUnknown_843FA20 - 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 - .align 2, 0 -_08102004: .4byte gUnknown_843FA40 -_08102008: .4byte gUnknown_203ACEC -_0810200C: .4byte gSprites -_08102010: .4byte 0x0000ffc0 -_08102014: .4byte gUnknown_843FA20 - thumb_func_end sub_8101FAC - - thumb_func_start sub_8102018 -sub_8102018: @ 8102018 - push {r4,lr} - ldr r4, _0810202C @ =gUnknown_203ACEC - ldr r2, [r4] - ldrb r3, [r2, 0x9] - cmp r3, 0 - beq _08102030 - cmp r3, 0x1 - beq _08102088 - movs r0, 0 - b _081020A6 - .align 2, 0 -_0810202C: .4byte gUnknown_203ACEC -_08102030: - 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 _081020A4 - strh r3, [r2, 0x24] - bl sub_80FFE1C - lsls r0, 24 - cmp r0, 0 - bne _08102066 - ldr r0, [r4] - movs r1, 0xBB - lsls r1, 2 - adds r0, r1 - ldr r0, [r0] - movs r1, 0x1 - bl StartSpriteAnim - b _08102076 -_08102066: - ldr r0, [r4] - movs r1, 0xBB - lsls r1, 2 - adds r0, r1 - ldr r0, [r0] - movs r1, 0x2 - bl StartSpriteAnim -_08102076: - ldr r0, _08102084 @ =gUnknown_203ACEC - ldr r1, [r0] - ldrb r0, [r1, 0x9] - adds r0, 0x1 - strb r0, [r1, 0x9] - b _081020A4 - .align 2, 0 -_08102084: .4byte gUnknown_203ACEC -_08102088: - 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 _081020A4 - movs r0, 0x2 - strb r0, [r2, 0x9] - movs r0, 0 - b _081020A6 -_081020A4: - movs r0, 0x1 -_081020A6: - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_8102018 - - thumb_func_start sub_81020AC -sub_81020AC: @ 81020AC - push {lr} - ldr r2, _081020CC @ =gUnknown_203ACEC - 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 - .align 2, 0 -_081020CC: .4byte gUnknown_203ACEC - thumb_func_end sub_81020AC - - thumb_func_start sub_81020D0 -sub_81020D0: @ 81020D0 - push {r4-r6,lr} - ldr r5, _081020E4 @ =gUnknown_203ACEC - ldr r3, [r5] - ldrb r0, [r3, 0x9] - cmp r0, 0 - beq _081020E8 - cmp r0, 0x1 - beq _08102102 - movs r0, 0 - b _08102154 - .align 2, 0 -_081020E4: .4byte gUnknown_203ACEC -_081020E8: - 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 _08102152 - movs r0, 0x1 - strb r0, [r3, 0x9] - b _08102152 -_08102102: - 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 _08102152 - 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 _08102154 -_08102152: - movs r0, 0x1 -_08102154: - pop {r4-r6} - pop {r1} - bx r1 - thumb_func_end sub_81020D0 - - thumb_func_start sub_810215C -sub_810215C: @ 810215C - push {lr} - ldr r0, _08102174 @ =gUnknown_203ACEC - ldr r0, [r0] - movs r1, 0xBB - lsls r1, 2 - adds r0, r1 - ldr r0, [r0] - movs r1, 0x4 - bl StartSpriteAnim - pop {r0} - bx r0 - .align 2, 0 -_08102174: .4byte gUnknown_203ACEC - thumb_func_end sub_810215C - - thumb_func_start sub_8102178 -sub_8102178: @ 8102178 - push {lr} - bl sub_80FFE1C - lsls r0, 24 - cmp r0, 0 - bne _0810219C - ldr r0, _08102198 @ =gUnknown_203ACEC - ldr r0, [r0] - movs r1, 0xBB - lsls r1, 2 - adds r0, r1 - ldr r0, [r0] - movs r1, 0x1 - bl StartSpriteAnim - b _081021AE - .align 2, 0 -_08102198: .4byte gUnknown_203ACEC -_0810219C: - ldr r0, _081021B4 @ =gUnknown_203ACEC - ldr r0, [r0] - movs r1, 0xBB - lsls r1, 2 - adds r0, r1 - ldr r0, [r0] - movs r1, 0x2 - bl StartSpriteAnim -_081021AE: - pop {r0} - bx r0 - .align 2, 0 -_081021B4: .4byte gUnknown_203ACEC - thumb_func_end sub_8102178 - - thumb_func_start sub_81021B8 -sub_81021B8: @ 81021B8 - ldr r0, _081021D0 @ =gUnknown_203ACEC - 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 - .align 2, 0 -_081021D0: .4byte gUnknown_203ACEC - thumb_func_end sub_81021B8 - - thumb_func_start sub_81021D4 -sub_81021D4: @ 81021D4 - push {r4,lr} - ldr r4, _08102240 @ =gUnknown_843FA98 - 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 _08102202 - ldr r0, _08102244 @ =gUnknown_203ACEC - ldr r2, [r0] - movs r0, 0xBC - lsls r0, 2 - adds r2, r0 - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - ldr r1, _08102248 @ =gSprites - adds r0, r1 - str r0, [r2] -_08102202: - 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 _08102236 - ldr r0, _08102244 @ =gUnknown_203ACEC - ldr r2, [r0] - movs r0, 0xBD - lsls r0, 2 - adds r2, r0 - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - ldr r1, _08102248 @ =gSprites - adds r0, r1 - str r0, [r2] - adds r0, 0x3F - ldrb r1, [r0] - movs r2, 0x2 - orrs r1, r2 - strb r1, [r0] -_08102236: - bl sub_81022B0 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08102240: .4byte gUnknown_843FA98 -_08102244: .4byte gUnknown_203ACEC -_08102248: .4byte gSprites - thumb_func_end sub_81021D4 - - thumb_func_start sub_810224C -sub_810224C: @ 810224C - push {r4-r6,lr} - bl sub_80FFE64 - ldr r6, _081022AC @ =gUnknown_203ACEC - ldr r1, [r6] - movs r2, 0xBC - lsls r2, 2 - adds r1, r2 - ldr r1, [r1] - movs r2, 0 - cmp r0, 0 - bne _08102266 - movs r2, 0x1 -_08102266: - 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_80FFE98 - ldr r1, [r6] - movs r2, 0xBD - lsls r2, 2 - adds r1, r2 - ldr r1, [r1] - movs r2, 0 - cmp r0, 0 - bne _08102292 - movs r2, 0x1 -_08102292: - 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 - .align 2, 0 -_081022AC: .4byte gUnknown_203ACEC - thumb_func_end sub_810224C - - thumb_func_start sub_81022B0 -sub_81022B0: @ 81022B0 - ldr r3, _081022DC @ =gUnknown_203ACEC - 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 - .align 2, 0 -_081022DC: .4byte gUnknown_203ACEC - thumb_func_end sub_81022B0 - - thumb_func_start sub_81022E0 -sub_81022E0: @ 81022E0 - push {lr} - cmp r0, 0 - bne _081022FC - ldr r0, _081022F8 @ =gUnknown_203ACEC - ldr r2, [r0] - movs r1, 0xBC - lsls r1, 2 - adds r0, r2, r1 - ldr r0, [r0] - movs r1, 0x60 - b _0810230A - .align 2, 0 -_081022F8: .4byte gUnknown_203ACEC -_081022FC: - ldr r0, _0810231C @ =gUnknown_203ACEC - ldr r2, [r0] - movs r1, 0xBC - lsls r1, 2 - adds r0, r2, r1 - ldr r0, [r0] - movs r1, 0x78 -_0810230A: - 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 - .align 2, 0 -_0810231C: .4byte gUnknown_203ACEC - thumb_func_end sub_81022E0 - - thumb_func_start sub_8102320 -sub_8102320: @ 8102320 - push {r4,lr} - ldr r4, _08102388 @ =gUnknown_843FA80 - 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 _0810234E - ldr r0, _0810238C @ =gUnknown_203ACEC - ldr r2, [r0] - movs r0, 0xBE - lsls r0, 2 - adds r2, r0 - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - ldr r1, _08102390 @ =gSprites - adds r0, r1 - str r0, [r2] -_0810234E: - 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 _0810237E - ldr r0, _0810238C @ =gUnknown_203ACEC - ldr r2, [r0] - movs r0, 0xBF - lsls r0, 2 - adds r2, r0 - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - ldr r1, _08102390 @ =gSprites - adds r0, r1 - str r0, [r2] - movs r1, 0x1 - bl StartSpriteAnim -_0810237E: - bl sub_81023F8 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08102388: .4byte gUnknown_843FA80 -_0810238C: .4byte gUnknown_203ACEC -_08102390: .4byte gSprites - thumb_func_end sub_8102320 - - thumb_func_start sub_8102394 -sub_8102394: @ 8102394 - push {r4-r6,lr} - bl sub_80FFE64 - ldr r6, _081023F4 @ =gUnknown_203ACEC - ldr r1, [r6] - movs r2, 0xBE - lsls r2, 2 - adds r1, r2 - ldr r1, [r1] - movs r2, 0 - cmp r0, 0 - bne _081023AE - movs r2, 0x1 -_081023AE: - 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_80FFE98 - ldr r1, [r6] - movs r2, 0xBF - lsls r2, 2 - adds r1, r2 - ldr r1, [r1] - movs r2, 0 - cmp r0, 0 - bne _081023DA - movs r2, 0x1 -_081023DA: - 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 - .align 2, 0 -_081023F4: .4byte gUnknown_203ACEC - thumb_func_end sub_8102394 - - thumb_func_start sub_81023F8 -sub_81023F8: @ 81023F8 - ldr r3, _08102424 @ =gUnknown_203ACEC - 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 - .align 2, 0 -_08102424: .4byte gUnknown_203ACEC - thumb_func_end sub_81023F8 - - thumb_func_start sub_8102428 -sub_8102428: @ 8102428 - push {r4,lr} - sub sp, 0x14 - ldr r3, _081024A8 @ =0xffffff00 - ldr r0, [sp, 0xC] - ands r0, r3 - movs r1, 0x3 - orrs r0, r1 - ldr r2, _081024AC @ =0xffff00ff - ands r0, r2 - movs r1, 0x80 - lsls r1, 3 - orrs r0, r1 - ldr r1, _081024B0 @ =0xff00ffff - ands r0, r1 - movs r1, 0xB0 - lsls r1, 12 - orrs r0, r1 - ldr r1, _081024B4 @ =0x00ffffff - ands r0, r1 - movs r1, 0xC0 - lsls r1, 21 - orrs r0, r1 - str r0, [sp, 0xC] - ldr r0, [sp, 0x10] - ands r0, r3 - movs r1, 0x2 - orrs r0, r1 - ands r0, r2 - movs r1, 0xB0 - lsls r1, 4 - orrs r0, r1 - ldr r1, _081024B8 @ =0x0000ffff - ands r0, r1 - movs r1, 0xC0 - lsls r1, 14 - orrs r0, r1 - str r0, [sp, 0x10] - add r0, sp, 0xC - bl AddWindow - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - adds r0, r4, 0 - movs r1, 0x11 - bl FillWindowPixelBuffer - ldr r2, _081024BC @ =gUnknown_841EE2B - movs r0, 0 - str r0, [sp] - str r0, [sp, 0x4] - str r0, [sp, 0x8] - adds r0, r4, 0 - movs r1, 0x1 - movs r3, 0 - bl sub_8100D84 - adds r0, r4, 0 - bl PutWindowTilemap - add sp, 0x14 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_081024A8: .4byte 0xffffff00 -_081024AC: .4byte 0xffff00ff -_081024B0: .4byte 0xff00ffff -_081024B4: .4byte 0x00ffffff -_081024B8: .4byte 0x0000ffff -_081024BC: .4byte gUnknown_841EE2B - thumb_func_end sub_8102428 - - .align 2, 0 @ Don't pad with nop. diff --git a/data/easy_chat_2.s b/data/easy_chat_2.s deleted file mode 100644 index 854454238..000000000 --- a/data/easy_chat_2.s +++ /dev/null @@ -1,38 +0,0 @@ -#include "constants/region_map.h" -#include "constants/flags.h" -#include "constants/moves.h" -#define RGB(r, g, b) ((r) | ((g) << 5) | ((b) << 10)) - .include "asm/macros.inc" - .include "constants/constants.inc" - .section .rodata - .align 2 - -gUnknown_843FA38:: - .4byte 0xc0000000, 0x00000c00 - -gUnknown_843FA40:: @ 843FA40 sprite_template - spr_template 6, 2, gUnknown_843FA38, gDummySpriteAnimTable, NULL, gDummySpriteAffineAnimTable, SpriteCallbackDummy - -gUnknown_843FA58:: - .4byte 0x40004000, 0x00000400 - -gUnknown_843FA60:: - .4byte 0x40000000, 0x00000400 - -gUnknown_843FA68:: - obj_image_anim_frame 0x0000, 0 - obj_image_anim_end - -gUnknown_843FA70:: - obj_image_anim_frame 0x0004, 0 - obj_image_anim_end - -gUnknown_843FA78:: - .4byte gUnknown_843FA68 - .4byte gUnknown_843FA70 - -gUnknown_843FA80:: @ 843FA80 sprite_template - spr_template 3, 2, gUnknown_843FA58, gUnknown_843FA78, NULL, gDummySpriteAffineAnimTable, SpriteCallbackDummy - -gUnknown_843FA98:: @ 843FA98 sprite_template - spr_template 2, 2, gUnknown_843FA60, gUnknown_843FA78, NULL, gDummySpriteAffineAnimTable, SpriteCallbackDummy diff --git a/include/easy_chat.h b/include/easy_chat.h index 5e918c887..4830a134e 100644 --- a/include/easy_chat.h +++ b/include/easy_chat.h @@ -70,5 +70,7 @@ void sub_80FFE34(s8 *arg0, s8 *arg1); u8 sub_80FFE48(void); u8 sub_80FFE54(void); u8 unref_sub_80FFE60(void); +bool32 sub_80FFE64(void); +bool32 sub_80FFE98(void); #endif // GUARD_EASY_CHAT_H diff --git a/include/strings.h b/include/strings.h index 2c1ed13b0..443d84de2 100644 --- a/include/strings.h +++ b/include/strings.h @@ -1348,5 +1348,6 @@ extern const u8 gUnknown_8418A77[]; extern const u8 gUnknown_8418A87[]; extern const u8 gUnknown_8418AA1[]; extern const u8 gUnknown_8418AB2[]; +extern const u8 gUnknown_841EE2B[]; #endif //GUARD_STRINGS_H diff --git a/ld_script.txt b/ld_script.txt index 9bd1be612..b919db2ef 100644 --- a/ld_script.txt +++ b/ld_script.txt @@ -228,7 +228,6 @@ SECTIONS { src/AgbRfu_LinkManager.o(.text); src/easy_chat_2.o(.text); src/easy_chat_3.o(.text); - asm/easy_chat_2.o(.text); src/pokedex_screen.o(.text); asm/pokedex_screen.o(.text); src/list_menu.o(.text); @@ -521,7 +520,6 @@ SECTIONS { src/link_rfu_3.o(.rodata); src/easy_chat_2.o(.rodata); src/easy_chat_3.o(.rodata); - data/easy_chat_2.o(.rodata); src/pokedex_screen.o(.rodata); data/pokedex_screen.o(.rodata); src/list_menu.o(.rodata); diff --git a/src/easy_chat_3.c b/src/easy_chat_3.c index 419f32e56..ad6d293db 100644 --- a/src/easy_chat_3.c +++ b/src/easy_chat_3.c @@ -6,6 +6,7 @@ #include "graphics.h" #include "menu.h" #include "new_menu_helpers.h" +#include "strings.h" #include "text_window.h" struct Unk203A11C @@ -127,7 +128,7 @@ bool8 sub_81021B8(void); void sub_81021D4(void); void sub_810224C(void); void sub_81022B0(void); -void sub_81022E0(u8 a0); +void sub_81022E0(int a0); void sub_8102320(void); void sub_8102394(void); void sub_81023F8(void); @@ -450,6 +451,96 @@ const struct SpriteTemplate gUnknown_843FA20 = { .callback = SpriteCallbackDummy }; +const struct OamData gUnknown_843FA38 = { + .y = 0, + .affineMode = ST_OAM_AFFINE_OFF, + .objMode = ST_OAM_OBJ_NORMAL, + .mosaic = FALSE, + .bpp = ST_OAM_4BPP, + .shape = SPRITE_SHAPE(64x64), + .x = 0, + .matrixNum = 0, + .size = SPRITE_SIZE(64x64), + .tileNum = 0x000, + .priority = 3, + .paletteNum = 0 +}; + +const struct SpriteTemplate gUnknown_843FA40 = { + .tileTag = 6, + .paletteTag = 2, + .oam = &gUnknown_843FA38, + .anims = gDummySpriteAnimTable, + .images = NULL, + .affineAnims = gDummySpriteAffineAnimTable, + .callback = SpriteCallbackDummy +}; + +const struct OamData gUnknown_843FA58 = { + .y = 0, + .affineMode = ST_OAM_AFFINE_OFF, + .objMode = ST_OAM_OBJ_NORMAL, + .mosaic = FALSE, + .bpp = ST_OAM_4BPP, + .shape = SPRITE_SHAPE(32x8), + .x = 0, + .matrixNum = 0, + .size = SPRITE_SIZE(32x8), + .tileNum = 0x000, + .priority = 1, + .paletteNum = 0 +}; + +const struct OamData gUnknown_843FA60 = { + .y = 0, + .affineMode = ST_OAM_AFFINE_OFF, + .objMode = ST_OAM_OBJ_NORMAL, + .mosaic = FALSE, + .bpp = ST_OAM_4BPP, + .shape = SPRITE_SHAPE(16x16), + .x = 0, + .matrixNum = 0, + .size = SPRITE_SIZE(16x16), + .tileNum = 0x000, + .priority = 1, + .paletteNum = 0 +}; + +const union AnimCmd gUnknown_843FA68[] = { + ANIMCMD_FRAME(0, 0), + ANIMCMD_END, +}; + +const union AnimCmd gUnknown_843FA70[] = { + ANIMCMD_FRAME(4, 0), + ANIMCMD_END, +}; + +const union AnimCmd *const gUnknown_843FA78[] = { + gUnknown_843FA68, + gUnknown_843FA70, +}; + +const struct SpriteTemplate gUnknown_843FA80 = { + .tileTag = 3, + .paletteTag = 2, + .oam = &gUnknown_843FA58, + .anims = gUnknown_843FA78, + .images = NULL, + .affineAnims = gDummySpriteAffineAnimTable, + .callback = SpriteCallbackDummy, +}; + +const struct SpriteTemplate gUnknown_843FA98 = { + .tileTag = 2, + .paletteTag = 2, + .oam = &gUnknown_843FA60, + .anims = gUnknown_843FA78, + .images = NULL, + .affineAnims = gDummySpriteAffineAnimTable, + .callback = SpriteCallbackDummy, +}; + bool8 sub_80FFF80(void) { if (!sub_8100BF4()) @@ -2020,3 +2111,181 @@ void sub_8101F80(void) gUnknown_203ACEC->unk2E4 = NULL; } } + +void sub_8101FAC(void) +{ + u8 spriteId = CreateSprite(&gUnknown_843FA40, 208, 128, 6); + gUnknown_203ACEC->unk2E8 = &gSprites[spriteId]; + gUnknown_203ACEC->unk2E8->pos2.x = -64; + + spriteId = CreateSprite(&gUnknown_843FA20, 208, 80, 5); + gUnknown_203ACEC->unk2EC = &gSprites[spriteId]; + gUnknown_203ACEC->unk9 = 0; +} + +bool8 sub_8102018(void) +{ + switch (gUnknown_203ACEC->unk9) + { + default: + return FALSE; + case 0: + gUnknown_203ACEC->unk2E8->pos2.x += 8; + if (gUnknown_203ACEC->unk2E8->pos2.x >= 0) + { + gUnknown_203ACEC->unk2E8->pos2.x = 0; + if (!sub_80FFE1C()) + StartSpriteAnim(gUnknown_203ACEC->unk2EC, 1); + else + StartSpriteAnim(gUnknown_203ACEC->unk2EC, 2); + + gUnknown_203ACEC->unk9++; + } + break; + case 1: + if (gUnknown_203ACEC->unk2EC->animEnded) + { + gUnknown_203ACEC->unk9 = 2; + return FALSE; + } + } + + return TRUE; +} + +void sub_81020AC(void) +{ + gUnknown_203ACEC->unk9 = 0; + StartSpriteAnim(gUnknown_203ACEC->unk2EC, 3); +} + +bool8 sub_81020D0(void) +{ + switch (gUnknown_203ACEC->unk9) + { + default: + return FALSE; + case 0: + if (gUnknown_203ACEC->unk2EC->animEnded) + gUnknown_203ACEC->unk9 = 1; + break; + case 1: + gUnknown_203ACEC->unk2E8->pos2.x -= 8; + if (gUnknown_203ACEC->unk2E8->pos2.x <= -64) + { + DestroySprite(gUnknown_203ACEC->unk2EC); + DestroySprite(gUnknown_203ACEC->unk2E8); + gUnknown_203ACEC->unk2EC = NULL; + gUnknown_203ACEC->unk2E8 = NULL; + gUnknown_203ACEC->unk9++; + return FALSE; + } + } + + return TRUE; +} + +void sub_810215C(void) +{ + StartSpriteAnim(gUnknown_203ACEC->unk2EC, 4); +} + +void sub_8102178(void) +{ + if (!sub_80FFE1C()) + StartSpriteAnim(gUnknown_203ACEC->unk2EC, 1); + else + StartSpriteAnim(gUnknown_203ACEC->unk2EC, 2); +} + +bool8 sub_81021B8(void) +{ + return !gUnknown_203ACEC->unk2EC->animEnded; +} + +void sub_81021D4(void) +{ + u8 spriteId = CreateSprite(&gUnknown_843FA98, 96, 80, 0); + if (spriteId != MAX_SPRITES) + gUnknown_203ACEC->unk2F0 = &gSprites[spriteId]; + + spriteId = CreateSprite(&gUnknown_843FA98, 96, 156, 0); + if (spriteId != MAX_SPRITES) + { + gUnknown_203ACEC->unk2F4 = &gSprites[spriteId]; + gUnknown_203ACEC->unk2F4->vFlip = 1; + } + + sub_81022B0(); +} + +void sub_810224C(void) +{ + gUnknown_203ACEC->unk2F0->invisible = !sub_80FFE64(); + gUnknown_203ACEC->unk2F4->invisible = !sub_80FFE98(); +} + +void sub_81022B0(void) +{ + gUnknown_203ACEC->unk2F0->invisible = TRUE; + gUnknown_203ACEC->unk2F4->invisible = TRUE; +} + +void sub_81022E0(int arg0) +{ + if (!arg0) + { + gUnknown_203ACEC->unk2F0->pos1.x = 96; + gUnknown_203ACEC->unk2F4->pos1.x = 96; + } + else + { + gUnknown_203ACEC->unk2F0->pos1.x = 120; + gUnknown_203ACEC->unk2F4->pos1.x = 120; + } +} + +void sub_8102320(void) +{ + u8 spriteId = CreateSprite(&gUnknown_843FA80, 220, 84, 1); + if (spriteId != MAX_SPRITES) + gUnknown_203ACEC->unk2F8 = &gSprites[spriteId]; + + spriteId = CreateSprite(&gUnknown_843FA80, 220, 156, 1); + if (spriteId != MAX_SPRITES) + { + gUnknown_203ACEC->unk2FC = &gSprites[spriteId]; + StartSpriteAnim(gUnknown_203ACEC->unk2FC, 1); + } + + sub_81023F8(); +} + +void sub_8102394(void) +{ + gUnknown_203ACEC->unk2F8->invisible = !sub_80FFE64(); + gUnknown_203ACEC->unk2FC->invisible = !sub_80FFE98(); +} + +void sub_81023F8(void) +{ + gUnknown_203ACEC->unk2F8->invisible = TRUE; + gUnknown_203ACEC->unk2FC->invisible = TRUE; +} + +void sub_8102428(void) +{ + u16 windowId; + struct WindowTemplate template; + template.bg = 3; + template.tilemapLeft = 4; + template.tilemapTop = 11; + template.width = 24; + template.height = 2; + template.paletteNum = 11; + template.baseBlock = 0x030; + windowId = AddWindow(&template); + FillWindowPixelBuffer(windowId, PIXEL_FILL(1)); + sub_8100D84(windowId, 1, gUnknown_841EE2B, 0, 0, 0, NULL); + PutWindowTilemap(windowId); +} |