diff --git a/asm/warp_star.s b/asm/warp_star.s index 3a03bf4..01cbeaf 100644 --- a/asm/warp_star.s +++ b/asm/warp_star.s @@ -1,4 +1,3 @@ - .include "asm/macros.inc" .include "constants/constants.inc" @@ -6,3633 +5,6 @@ .text - thumb_func_start CreateWarpStar -CreateWarpStar: @ 0x0800BE10 - push {r4, r5, r6, r7, lr} - sub sp, #4 - adds r4, r0, #0 - lsls r1, r1, #0x18 - lsrs r5, r1, #0x18 - ldr r0, _0800BE44 @ =ObjectMain - movs r2, #0x80 - lsls r2, r2, #5 - ldr r1, _0800BE48 @ =ObjectDestroy - str r1, [sp] - movs r1, #0xc4 - movs r3, #0 - bl TaskCreate - adds r2, r0, #0 - ldrh r1, [r2, #0x12] - movs r0, #0x10 - ands r0, r1 - cmp r0, #0 - beq _0800BE4C - ldrh r0, [r2, #6] - lsls r0, r0, #2 - movs r1, #0x80 - lsls r1, r1, #0x12 - adds r7, r0, r1 - b _0800BE54 - .align 2, 0 -_0800BE44: .4byte ObjectMain -_0800BE48: .4byte ObjectDestroy -_0800BE4C: - ldrh r1, [r2, #6] - movs r0, #0xc0 - lsls r0, r0, #0x12 - adds r7, r1, r0 -_0800BE54: - adds r0, r7, #0 - adds r1, r4, #0 - adds r2, r5, #0 - bl InitObject - adds r0, r7, #0 - adds r0, #0xb6 - movs r6, #0 - movs r1, #0 - strh r1, [r0] - adds r0, #2 - strh r1, [r0] - adds r0, #2 - strh r1, [r0] - ldrb r1, [r4, #0xe] - subs r0, #6 - strb r1, [r0] - adds r0, #1 - strb r6, [r0] - ldrh r0, [r4, #0x1e] - adds r1, r7, #0 - adds r1, #0xbe - strh r0, [r1] - ldrh r1, [r4, #0x1a] - adds r0, r7, #0 - adds r0, #0xc0 - strh r1, [r0] - ldrh r0, [r4, #0x1c] - adds r2, r7, #0 - adds r2, #0xc2 - strh r0, [r2] - ldr r0, [r7, #8] - ldr r1, _0800BEF0 @ =0x0221C140 - orrs r0, r1 - str r0, [r7, #8] - ldr r0, [r7, #0x68] - movs r1, #8 - rsbs r1, r1, #0 - ands r0, r1 - str r0, [r7, #0x68] - movs r0, #0x81 - rsbs r0, r0, #0 - ands r0, r1 - str r0, [r7, #0x5c] - ldr r0, [r7, #0xc] - movs r1, #1 - orrs r0, r1 - str r0, [r7, #0xc] - movs r4, #0x10 - rsbs r4, r4, #0 - movs r5, #0x10 - str r5, [sp] - adds r0, r7, #0 - adds r1, r4, #0 - adds r2, r4, #0 - movs r3, #0x10 - bl sub_0803E2B0 - str r5, [sp] - adds r0, r7, #0 - adds r1, r4, #0 - adds r2, r4, #0 - movs r3, #0x10 - bl sub_0803E308 - adds r0, r7, #0 - adds r0, #0x83 - strb r6, [r0] - adds r0, r7, #0 - bl ObjectInitSprite - ldr r0, _0800BEF4 @ =sub_0800DC5C - str r0, [r7, #0x78] - adds r0, r7, #0 - add sp, #4 - pop {r4, r5, r6, r7} - pop {r1} - bx r1 - .align 2, 0 -_0800BEF0: .4byte 0x0221C140 -_0800BEF4: .4byte sub_0800DC5C - - thumb_func_start CreateGoalStar -CreateGoalStar: @ 0x0800BEF8 - push {r4, r5, r6, r7, lr} - sub sp, #4 - adds r4, r0, #0 - lsls r1, r1, #0x18 - lsrs r5, r1, #0x18 - ldr r0, _0800BF2C @ =ObjectMain - movs r2, #0x80 - lsls r2, r2, #5 - ldr r1, _0800BF30 @ =ObjectDestroy - str r1, [sp] - movs r1, #0xe8 - movs r3, #0 - bl TaskCreate - adds r2, r0, #0 - ldrh r1, [r2, #0x12] - movs r0, #0x10 - ands r0, r1 - cmp r0, #0 - beq _0800BF34 - ldrh r0, [r2, #6] - lsls r0, r0, #2 - movs r1, #0x80 - lsls r1, r1, #0x12 - adds r7, r0, r1 - b _0800BF3C - .align 2, 0 -_0800BF2C: .4byte ObjectMain -_0800BF30: .4byte ObjectDestroy -_0800BF34: - ldrh r1, [r2, #6] - movs r0, #0xc0 - lsls r0, r0, #0x12 - adds r7, r1, r0 -_0800BF3C: - adds r0, r7, #0 - adds r1, r4, #0 - adds r2, r5, #0 - bl InitObject - adds r0, r7, #0 - adds r0, #0xb6 - movs r6, #0 - movs r1, #0 - strh r1, [r0] - adds r0, #2 - strh r1, [r0] - adds r0, #2 - strh r1, [r0] - ldrb r1, [r4, #0xe] - subs r0, #6 - strb r1, [r0] - adds r0, #1 - strb r6, [r0] - ldr r0, [r7, #8] - ldr r1, _0800BFC0 @ =0x0221C140 - orrs r0, r1 - str r0, [r7, #8] - ldr r0, [r7, #0x68] - movs r1, #8 - rsbs r1, r1, #0 - ands r0, r1 - str r0, [r7, #0x68] - movs r0, #0x81 - rsbs r0, r0, #0 - ands r0, r1 - str r0, [r7, #0x5c] - ldr r0, [r7, #0xc] - movs r1, #1 - orrs r0, r1 - str r0, [r7, #0xc] - movs r4, #0x10 - rsbs r4, r4, #0 - movs r5, #0x10 - str r5, [sp] - adds r0, r7, #0 - adds r1, r4, #0 - adds r2, r4, #0 - movs r3, #0x10 - bl sub_0803E2B0 - str r5, [sp] - adds r0, r7, #0 - adds r1, r4, #0 - adds r2, r4, #0 - movs r3, #0x10 - bl sub_0803E308 - adds r0, r7, #0 - adds r0, #0x83 - strb r6, [r0] - adds r0, r7, #0 - bl ObjectInitSprite - ldr r0, _0800BFC4 @ =sub_0800DC8C - str r0, [r7, #0x78] - adds r0, r7, #0 - add sp, #4 - pop {r4, r5, r6, r7} - pop {r1} - bx r1 - .align 2, 0 -_0800BFC0: .4byte 0x0221C140 -_0800BFC4: .4byte sub_0800DC8C - - thumb_func_start sub_0800BFC8 -sub_0800BFC8: @ 0x0800BFC8 - push {r4, r5, r6, r7, lr} - mov r7, sb - mov r6, r8 - push {r6, r7} - adds r6, r0, #0 - adds r4, r6, #0 - adds r4, #0xb6 - ldrh r0, [r4] - cmp r0, #3 - bls _0800BFE8 - movs r1, #0 - strh r1, [r4] - adds r0, r6, #0 - adds r0, #0xb8 - strh r1, [r0] - b _0800C05E -_0800BFE8: - ldr r0, _0800C06C @ =gUnk_082DDE34 - mov r8, r0 - ldrh r0, [r4] - lsls r0, r0, #1 - add r0, r8 - adds r5, r6, #0 - adds r5, #0xb8 - ldrh r1, [r5] - adds r1, #1 - movs r2, #0 - mov sb, r2 - strh r1, [r5] - ldr r3, _0800C070 @ =0x0000FFFF - adds r7, r3, #0 - ldrh r0, [r0] - lsls r1, r1, #0x10 - lsrs r1, r1, #0x10 - cmp r0, r1 - bhs _0800C05E - ldr r3, _0800C074 @ =gRngVal - ldr r1, [r3] - ldr r0, _0800C078 @ =0x00196225 - adds r2, r1, #0 - muls r2, r0, r2 - ldr r0, _0800C07C @ =0x3C6EF35F - adds r2, r2, r0 - str r2, [r3] - lsrs r2, r2, #0x10 - movs r0, #7 - ands r2, r0 - mov r1, sb - strh r1, [r5] - ldrh r0, [r4] - adds r0, #1 - strh r0, [r4] - ldr r3, _0800C080 @ =gUnk_082DDE3C - lsls r2, r2, #2 - adds r0, r2, r3 - movs r1, #0 - ldrsh r0, [r0, r1] - ldr r1, [r6, #0x40] - adds r1, r1, r0 - adds r3, #2 - adds r2, r2, r3 - movs r3, #0 - ldrsh r0, [r2, r3] - ldr r2, [r6, #0x44] - adds r2, r2, r0 - adds r0, r6, #0 - bl sub_0800D5D8 - ldrh r0, [r4] - lsls r0, r0, #1 - add r0, r8 - ldrh r0, [r0] - cmp r0, r7 - bne _0800C05E - mov r0, sb - strh r0, [r4] -_0800C05E: - pop {r3, r4} - mov r8, r3 - mov sb, r4 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_0800C06C: .4byte gUnk_082DDE34 -_0800C070: .4byte 0x0000FFFF -_0800C074: .4byte gRngVal -_0800C078: .4byte 0x00196225 -_0800C07C: .4byte 0x3C6EF35F -_0800C080: .4byte gUnk_082DDE3C - - thumb_func_start sub_0800C084 -sub_0800C084: @ 0x0800C084 - push {r4, r5, r6, lr} - adds r4, r0, #0 - adds r2, r1, #0 - ldr r0, [r4, #8] - movs r1, #0x80 - lsls r1, r1, #0xb - ands r0, r1 - cmp r0, #0 - beq _0800C11C - ldr r5, [r4, #0x6c] - ldrb r6, [r5] - cmp r6, #0 - bne _0800C11C - cmp r2, #0 - beq _0800C0B0 - adds r0, r5, #0 - adds r0, #0x56 - ldr r1, _0800C114 @ =gUnk_0203AD30 - ldrb r0, [r0] - ldrb r1, [r1] - cmp r0, r1 - bhs _0800C11C -_0800C0B0: - adds r0, r5, #0 - bl sub_080525C0 - lsls r0, r0, #0x18 - cmp r0, #0 - beq _0800C11C - adds r2, r4, #0 - adds r2, #0xb5 - adds r1, r5, #0 - adds r1, #0x56 - movs r0, #1 - ldrb r1, [r1] - lsls r0, r1 - ldrb r1, [r2] - orrs r0, r1 - strb r0, [r2] - ldr r3, [r4, #0x6c] - ldr r1, _0800C118 @ =gCurLevelInfo - adds r0, r3, #0 - adds r0, #0x56 - ldrb r2, [r0] - movs r0, #0xcd - lsls r0, r0, #3 - muls r0, r2, r0 - movs r2, #0xf6 - lsls r2, r2, #1 - adds r1, r1, r2 - adds r0, r0, r1 - str r6, [r0] - adds r0, r4, #0 - adds r0, #0xbe - ldrh r0, [r0] - subs r2, #0xe6 - adds r1, r3, r2 - strh r0, [r1] - adds r0, r4, #0 - adds r0, #0xc0 - ldrh r1, [r0] - adds r2, #2 - adds r0, r3, r2 - strh r1, [r0] - adds r0, r4, #0 - adds r0, #0xc2 - ldrh r0, [r0] - adds r2, #2 - adds r1, r3, r2 - strh r0, [r1] - movs r0, #1 - b _0800C11E - .align 2, 0 -_0800C114: .4byte gUnk_0203AD30 -_0800C118: .4byte gCurLevelInfo -_0800C11C: - movs r0, #0 -_0800C11E: - pop {r4, r5, r6} - pop {r1} - bx r1 - - thumb_func_start sub_0800C124 -sub_0800C124: @ 0x0800C124 - push {r4, r5, r6, r7, lr} - adds r6, r0, #0 - movs r1, #1 - bl sub_0800C084 - cmp r0, #0 - beq _0800C158 - ldr r0, [r6, #8] - movs r1, #0x80 - lsls r1, r1, #3 - orrs r0, r1 - str r0, [r6, #8] - ldr r2, _0800C150 @ =0x00000292 - adds r0, r6, #0 - movs r1, #0 - movs r3, #0 - bl sub_0808AE30 - ldr r0, _0800C154 @ =sub_0800DC78 - str r0, [r6, #0x78] - b _0800C1B6 - .align 2, 0 -_0800C150: .4byte 0x00000292 -_0800C154: .4byte sub_0800DC78 -_0800C158: - adds r3, r6, #0 - adds r3, #0xba - ldrh r0, [r3] - adds r0, #8 - ldr r2, _0800C1BC @ =0x000003FF - adds r1, r2, #0 - ands r0, r1 - strh r0, [r3] - adds r2, r6, #0 - adds r2, #0xb0 - ldr r0, [r2] - movs r7, #6 - ldrsh r1, [r0, r7] - lsls r1, r1, #8 - adds r4, r1, #0 - str r1, [r6, #0x40] - ldr r0, [r2] - movs r2, #8 - ldrsh r0, [r0, r2] - lsls r0, r0, #8 - adds r5, r0, #0 - str r0, [r6, #0x44] - ldr r2, _0800C1C0 @ =gSineTable - ldrh r0, [r3] - lsls r0, r0, #1 - adds r0, r0, r2 - ldrh r0, [r0] - lsls r0, r0, #0x10 - asrs r0, r0, #0x16 - lsls r0, r0, #3 - adds r5, r5, r0 - subs r1, r4, r1 - adds r0, r6, #0 - adds r0, #0x50 - strh r1, [r0] - ldr r0, [r6, #0x44] - adds r1, r6, #0 - adds r1, #0x52 - subs r0, r0, r5 - strh r0, [r1] - adds r0, r6, #0 - bl sub_0800BFC8 - ldr r0, [r6, #8] - movs r1, #4 - orrs r0, r1 - str r0, [r6, #8] -_0800C1B6: - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_0800C1BC: .4byte 0x000003FF -_0800C1C0: .4byte gSineTable - - thumb_func_start sub_0800C1C4 -sub_0800C1C4: @ 0x0800C1C4 - push {r4, r5, r6, r7, lr} - adds r6, r0, #0 - adds r7, r6, #0 - movs r1, #0 - bl sub_0800C084 - cmp r0, #0 - beq _0800C1E0 - ldr r2, _0800C21C @ =0x00000292 - adds r0, r6, #0 - movs r1, #0 - movs r3, #0 - bl sub_0808AE30 -_0800C1E0: - adds r2, r6, #0 - adds r2, #0xb0 - ldr r0, [r2] - movs r3, #6 - ldrsh r1, [r0, r3] - lsls r1, r1, #8 - adds r4, r1, #0 - str r1, [r6, #0x40] - ldr r0, [r2] - movs r2, #8 - ldrsh r0, [r0, r2] - lsls r0, r0, #8 - adds r5, r0, #0 - str r0, [r6, #0x44] - subs r1, r4, r1 - adds r2, r6, #0 - adds r2, #0x50 - strh r1, [r2] - ldr r0, [r6, #0x44] - subs r0, r5, r0 - adds r1, r6, #0 - adds r1, #0x52 - strh r0, [r1] - movs r3, #0 - ldrsh r0, [r2, r3] - cmp r0, #0x80 - ble _0800C220 - movs r0, #0x80 - strh r0, [r2] - b _0800C22A - .align 2, 0 -_0800C21C: .4byte 0x00000292 -_0800C220: - movs r1, #0x80 - rsbs r1, r1, #0 - cmp r0, r1 - bge _0800C22A - strh r1, [r2] -_0800C22A: - ldr r0, [r7, #0x44] - subs r0, r5, r0 - adds r1, r7, #0 - adds r1, #0x52 - strh r0, [r1] - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - cmp r0, #0x80 - ble _0800C242 - movs r0, #0x80 - strh r0, [r1] - b _0800C24C -_0800C242: - movs r2, #0x80 - rsbs r2, r2, #0 - cmp r0, r2 - bge _0800C24C - strh r2, [r1] -_0800C24C: - ldrh r0, [r1] - rsbs r0, r0, #0 - strh r0, [r1] - ldr r1, [r7, #0x50] - cmp r1, #0 - bne _0800C266 - ldr r0, _0800C26C @ =sub_0800C270 - str r0, [r7, #0x78] - adds r0, r6, #0 - adds r0, #0xba - strh r1, [r0] - adds r0, #2 - strh r1, [r0] -_0800C266: - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_0800C26C: .4byte sub_0800C270 - - thumb_func_start sub_0800C270 -sub_0800C270: @ 0x0800C270 - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - sub sp, #8 - adds r6, r0, #0 - movs r1, #0 - bl sub_0800C084 - cmp r0, #0 - beq _0800C294 - ldr r2, _0800C32C @ =0x00000292 - adds r0, r6, #0 - movs r1, #0 - movs r3, #0 - bl sub_0808AE30 -_0800C294: - movs r2, #0 - movs r0, #0xb0 - adds r0, r0, r6 - mov r8, r0 - movs r1, #0xbc - adds r1, r1, r6 - mov sb, r1 - movs r7, #0xba - adds r7, r7, r6 - mov ip, r7 - adds r0, r6, #0 - adds r0, #0x50 - str r0, [sp, #4] - adds r1, r6, #0 - adds r1, #0x52 - str r1, [sp] - ldr r7, _0800C330 @ =gUnk_0203AD44 - ldrb r7, [r7] - cmp r2, r7 - bhs _0800C2F2 - ldr r0, _0800C334 @ =gCurLevelInfo+0x1EC - mov sl, r0 - adds r3, r6, #0 - adds r3, #0xb5 -_0800C2C4: - ldrb r0, [r3] - asrs r0, r2 - movs r1, #1 - ands r0, r1 - cmp r0, #0 - beq _0800C2E4 - movs r0, #0xcd - lsls r0, r0, #3 - muls r0, r2, r0 - mov r7, sl - adds r1, r0, r7 - ldr r0, [r1] - cmp r0, #1 - bne _0800C2E4 - movs r0, #2 - str r0, [r1] -_0800C2E4: - adds r0, r2, #1 - lsls r0, r0, #0x10 - lsrs r2, r0, #0x10 - ldr r0, _0800C330 @ =gUnk_0203AD44 - ldrb r0, [r0] - cmp r2, r0 - blo _0800C2C4 -_0800C2F2: - mov r1, r8 - ldr r0, [r1] - movs r2, #6 - ldrsh r0, [r0, r2] - lsls r0, r0, #8 - adds r4, r0, #0 - str r0, [r6, #0x40] - ldr r0, [r1] - movs r7, #8 - ldrsh r0, [r0, r7] - lsls r0, r0, #8 - adds r5, r0, #0 - str r0, [r6, #0x44] - mov r0, sb - ldrh r1, [r0] - lsls r0, r1, #1 - adds r0, r0, r1 - lsls r0, r0, #0xf - lsrs r0, r0, #0x10 - cmp r0, #1 - bls _0800C338 - adds r2, r0, #0 - movs r1, #0x80 - lsls r1, r1, #2 - cmp r0, r1 - bls _0800C328 - adds r2, r1, #0 -_0800C328: - adds r1, r2, #0 - b _0800C33A - .align 2, 0 -_0800C32C: .4byte 0x00000292 -_0800C330: .4byte gUnk_0203AD44 -_0800C334: .4byte gCurLevelInfo+0x1EC -_0800C338: - movs r1, #2 -_0800C33A: - mov r2, ip - ldrh r0, [r2] - adds r0, r0, r1 - ldr r1, _0800C3B0 @ =0x000003FF - ands r0, r1 - strh r0, [r2] - ldrh r0, [r2] - lsls r0, r0, #1 - ldr r7, _0800C3B4 @ =gSineTable - adds r0, r0, r7 - ldrh r0, [r0] - lsls r0, r0, #0x10 - asrs r0, r0, #0x16 - lsls r0, r0, #1 - adds r5, r5, r0 - ldr r0, [r6, #0x40] - subs r0, r4, r0 - ldr r1, [sp, #4] - strh r0, [r1] - ldr r0, [r6, #0x44] - subs r0, r0, r5 - ldr r2, [sp] - strh r0, [r2] - mov r7, sb - ldrh r0, [r7] - adds r0, #1 - strh r0, [r7] - lsls r0, r0, #0x10 - movs r1, #0x96 - lsls r1, r1, #0x11 - cmp r0, r1 - bls _0800C39E - mov r1, r8 - ldr r0, [r1] - ldrh r0, [r0, #6] - lsls r0, r0, #8 - ldr r1, [r6, #0x40] - subs r0, r0, r1 - ldr r2, [sp, #4] - strh r0, [r2] - mov r7, r8 - ldr r0, [r7] - ldrh r1, [r0, #8] - lsls r1, r1, #8 - ldr r0, [r6, #0x44] - subs r0, r0, r1 - ldr r1, [sp] - strh r0, [r1] - ldr r0, _0800C3B8 @ =sub_0800DCC0 - str r0, [r6, #0x78] -_0800C39E: - add sp, #8 - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_0800C3B0: .4byte 0x000003FF -_0800C3B4: .4byte gSineTable -_0800C3B8: .4byte sub_0800DCC0 - - thumb_func_start sub_0800C3BC -sub_0800C3BC: @ 0x0800C3BC - push {r4, r5, lr} - adds r4, r0, #0 - ldr r0, [r4, #8] - movs r1, #0x80 - lsls r1, r1, #0xb - ands r0, r1 - cmp r0, #0 - beq _0800C424 - ldr r2, [r4, #0x6c] - ldrb r0, [r2] - cmp r0, #0 - bne _0800C424 - adds r5, r2, #0 - adds r5, #0x56 - ldr r1, _0800C41C @ =gUnk_0203AD30 - ldrb r0, [r5] - ldrb r1, [r1] - cmp r0, r1 - bhs _0800C424 - adds r0, r2, #0 - bl sub_080525C0 - lsls r0, r0, #0x18 - cmp r0, #0 - beq _0800C424 - adds r2, r4, #0 - adds r2, #0xb5 - movs r0, #1 - ldrb r5, [r5] - lsls r0, r5 - ldrb r1, [r2] - orrs r0, r1 - strb r0, [r2] - ldr r0, [r4, #0x6c] - ldr r1, _0800C420 @ =gCurLevelInfo - adds r0, #0x56 - ldrb r2, [r0] - movs r0, #0xcd - lsls r0, r0, #3 - muls r0, r2, r0 - movs r2, #0xf6 - lsls r2, r2, #1 - adds r1, r1, r2 - adds r0, r0, r1 - movs r1, #2 - str r1, [r0] - movs r0, #1 - b _0800C426 - .align 2, 0 -_0800C41C: .4byte gUnk_0203AD30 -_0800C420: .4byte gCurLevelInfo -_0800C424: - movs r0, #0 -_0800C426: - pop {r4, r5} - pop {r1} - bx r1 - - thumb_func_start sub_0800C42C -sub_0800C42C: @ 0x0800C42C - push {r4, r5, r6, r7, lr} - mov r7, sb - mov r6, r8 - push {r6, r7} - adds r6, r0, #0 - movs r2, #0 - movs r4, #0 - movs r1, #0 - ldr r0, _0800C4A8 @ =gUnk_0203AD30 - ldrb r3, [r0] - cmp r2, r3 - bhs _0800C466 - adds r0, r6, #0 - adds r0, #0xb5 - ldrb r5, [r0] - movs r7, #1 -_0800C44C: - adds r0, r5, #0 - asrs r0, r1 - ands r0, r7 - cmp r0, #0 - beq _0800C45C - adds r0, r4, #1 - lsls r0, r0, #0x10 - lsrs r4, r0, #0x10 -_0800C45C: - adds r0, r1, #1 - lsls r0, r0, #0x10 - lsrs r1, r0, #0x10 - cmp r1, r3 - blo _0800C44C -_0800C466: - adds r0, r6, #0 - adds r0, #0xc2 - strh r4, [r0] - movs r1, #0 - mov r8, r0 - cmp r1, r4 - bhs _0800C4C2 - ldr r0, _0800C4A8 @ =gUnk_0203AD30 - ldrb r0, [r0] - mov sb, r0 -_0800C47A: - adds r5, r1, #1 - cmp r2, sb - bhs _0800C4B6 - movs r0, #0xb5 - adds r0, r0, r6 - mov ip, r0 - adds r0, r6, #0 - adds r0, #0xbe - adds r3, r0, r1 - ldr r0, _0800C4A8 @ =gUnk_0203AD30 - ldrb r1, [r0] - movs r4, #1 -_0800C492: - mov r7, ip - ldrb r0, [r7] - asrs r0, r2 - ands r0, r4 - cmp r0, #0 - beq _0800C4AC - strb r2, [r3] - adds r0, r2, #1 - lsls r0, r0, #0x10 - lsrs r2, r0, #0x10 - b _0800C4B6 - .align 2, 0 -_0800C4A8: .4byte gUnk_0203AD30 -_0800C4AC: - adds r0, r2, #1 - lsls r0, r0, #0x10 - lsrs r2, r0, #0x10 - cmp r2, r1 - blo _0800C492 -_0800C4B6: - lsls r0, r5, #0x10 - lsrs r1, r0, #0x10 - mov r0, r8 - ldrh r0, [r0] - cmp r1, r0 - blo _0800C47A -_0800C4C2: - pop {r3, r4} - mov r8, r3 - mov sb, r4 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 - - thumb_func_start sub_0800C4D0 -sub_0800C4D0: @ 0x0800C4D0 - push {r4, r5, r6, r7, lr} - mov r7, r8 - push {r7} - adds r3, r0, #0 - movs r6, #0 - movs r2, #0 - movs r0, #0xc2 - adds r0, r0, r3 - mov ip, r0 - ldrh r1, [r0] - cmp r6, r1 - bhs _0800C51A - adds r5, r3, #0 - adds r5, #0xbe - movs r0, #0xcd - lsls r0, r0, #3 - mov r8, r0 - ldr r7, _0800C54C @ =gCurLevelInfo - adds r4, r3, #0 - adds r4, #0xc8 -_0800C4F8: - adds r0, r5, r2 - ldrb r0, [r0] - mov r1, r8 - muls r1, r0, r1 - adds r1, r1, r7 - ldr r0, [r4] - rsbs r0, r0, #0 - asrs r0, r0, #8 - adds r1, #0x46 - strh r0, [r1] - adds r0, r2, #1 - lsls r0, r0, #0x10 - lsrs r2, r0, #0x10 - mov r1, ip - ldrh r1, [r1] - cmp r2, r1 - blo _0800C4F8 -_0800C51A: - adds r2, r3, #0 - adds r2, #0xc4 - ldr r0, [r2] - movs r1, #0xa0 - lsls r1, r1, #4 - adds r0, r0, r1 - str r0, [r2] - adds r2, #4 - ldr r3, [r2] - adds r1, r3, r1 - str r1, [r2] - ldr r0, _0800C550 @ =0x00013FFF - cmp r1, r0 - ble _0800C53E - ldr r1, _0800C554 @ =0xFFFECA00 - adds r0, r3, r1 - str r0, [r2] - movs r6, #1 -_0800C53E: - adds r0, r6, #0 - pop {r3} - mov r8, r3 - pop {r4, r5, r6, r7} - pop {r1} - bx r1 - .align 2, 0 -_0800C54C: .4byte gCurLevelInfo -_0800C550: .4byte 0x00013FFF -_0800C554: .4byte 0xFFFECA00 - - thumb_func_start sub_0800C558 -sub_0800C558: @ 0x0800C558 - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - sub sp, #4 - adds r6, r0, #0 - mov r8, r6 - bl sub_0800C3BC - cmp r0, #0 - beq _0800C586 - ldr r0, [r6, #8] - movs r1, #0x80 - lsls r1, r1, #3 - orrs r0, r1 - str r0, [r6, #8] - ldr r2, _0800C5E4 @ =0x00000292 - adds r0, r6, #0 - movs r1, #0 - movs r3, #0 - bl sub_0808AE30 -_0800C586: - adds r0, r6, #0 - adds r0, #0x60 - ldrh r0, [r0] - mov ip, r0 - movs r3, #0 - movs r2, #0 - ldr r0, _0800C5E8 @ =gUnk_0203AD30 - ldrb r0, [r0] - cmp r3, r0 - bhs _0800C5D4 - ldr r1, _0800C5EC @ =gKirbys - mov sl, r1 - str r0, [sp] - movs r7, #0xd4 - lsls r7, r7, #1 - mov sb, r7 -_0800C5A6: - mov r0, sb - muls r0, r2, r0 - mov r7, sl - adds r1, r0, r7 - adds r0, r1, #0 - adds r0, #0x60 - ldrh r0, [r0] - cmp ip, r0 - bne _0800C5C8 - adds r0, r1, #0 - adds r0, #0xd4 - ldrh r0, [r0] - cmp r0, #0x5a - bne _0800C5F4 - adds r0, r3, #1 - lsls r0, r0, #0x10 - lsrs r3, r0, #0x10 -_0800C5C8: - adds r0, r2, #1 - lsls r0, r0, #0x10 - lsrs r2, r0, #0x10 - ldr r0, [sp] - cmp r2, r0 - blo _0800C5A6 -_0800C5D4: - cmp r3, #0 - beq _0800C5F4 - mov r0, r8 - bl sub_0800C42C - ldr r0, _0800C5F0 @ =sub_0800DCAC - str r0, [r6, #0x78] - b _0800C648 - .align 2, 0 -_0800C5E4: .4byte 0x00000292 -_0800C5E8: .4byte gUnk_0203AD30 -_0800C5EC: .4byte gKirbys -_0800C5F0: .4byte sub_0800DCAC -_0800C5F4: - mov r2, r8 - adds r2, #0xba - ldrh r0, [r2] - adds r0, #8 - ldr r3, _0800C658 @ =0x000003FF - adds r1, r3, #0 - ands r0, r1 - strh r0, [r2] - adds r0, r6, #0 - adds r0, #0xb0 - ldr r1, [r0] - movs r7, #6 - ldrsh r0, [r1, r7] - lsls r4, r0, #8 - movs r3, #8 - ldrsh r0, [r1, r3] - lsls r5, r0, #8 - ldr r1, _0800C65C @ =gSineTable - ldrh r0, [r2] - lsls r0, r0, #1 - adds r0, r0, r1 - ldrh r0, [r0] - lsls r0, r0, #0x10 - asrs r0, r0, #0x16 - lsls r0, r0, #3 - adds r5, r5, r0 - ldr r0, [r6, #0x40] - subs r0, r4, r0 - adds r1, r6, #0 - adds r1, #0x50 - strh r0, [r1] - ldr r0, [r6, #0x44] - adds r1, #2 - subs r0, r0, r5 - strh r0, [r1] - mov r0, r8 - bl sub_0800BFC8 - ldr r0, [r6, #8] - movs r1, #4 - orrs r0, r1 - str r0, [r6, #8] -_0800C648: - add sp, #4 - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_0800C658: .4byte 0x000003FF -_0800C65C: .4byte gSineTable - - thumb_func_start sub_0800C660 -sub_0800C660: @ 0x0800C660 - push {r4, r5, lr} - mov ip, r0 - mov r5, ip - adds r0, #0xb0 - ldr r1, [r0] - movs r4, #6 - ldrsh r0, [r1, r4] - lsls r2, r0, #8 - movs r4, #8 - ldrsh r0, [r1, r4] - lsls r3, r0, #8 - mov r1, ip - ldr r0, [r1, #0x40] - subs r0, r2, r0 - mov r4, ip - adds r4, #0x50 - strh r0, [r4] - ldr r0, [r1, #0x44] - subs r0, r3, r0 - adds r1, #0x52 - strh r0, [r1] - movs r1, #0 - ldrsh r0, [r4, r1] - cmp r0, #0x80 - ble _0800C698 - movs r0, #0x80 - strh r0, [r4] - b _0800C6A2 -_0800C698: - movs r1, #0x80 - rsbs r1, r1, #0 - cmp r0, r1 - bge _0800C6A2 - strh r1, [r4] -_0800C6A2: - ldr r0, [r5, #0x44] - subs r0, r3, r0 - adds r1, r5, #0 - adds r1, #0x52 - strh r0, [r1] - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - cmp r0, #0x80 - ble _0800C6BA - movs r0, #0x80 - strh r0, [r1] - b _0800C6C4 -_0800C6BA: - movs r2, #0x80 - rsbs r2, r2, #0 - cmp r0, r2 - bge _0800C6C4 - strh r2, [r1] -_0800C6C4: - ldrh r0, [r1] - rsbs r0, r0, #0 - strh r0, [r1] - ldr r1, [r5, #0x50] - cmp r1, #0 - bne _0800C6DE - ldr r0, _0800C6E4 @ =sub_0800C6E8 - str r0, [r5, #0x78] - mov r0, ip - adds r0, #0xba - strh r1, [r0] - adds r0, #2 - strh r1, [r0] -_0800C6DE: - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_0800C6E4: .4byte sub_0800C6E8 - - thumb_func_start sub_0800C6E8 -sub_0800C6E8: @ 0x0800C6E8 - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - mov r8, r0 - mov r7, r8 - movs r5, #0 - adds r0, #0xc2 - ldrh r1, [r0] - cmp r5, r1 - bhs _0800C748 - ldr r2, _0800C7C0 @ =gUnk_082DDE5C - mov sl, r2 - adds r6, r0, #0 - mov sb, r5 -_0800C708: - adds r0, r7, #0 - adds r0, #0xbe - adds r0, r0, r5 - ldrb r1, [r0] - movs r0, #0xd4 - lsls r0, r0, #1 - adds r4, r1, #0 - muls r4, r0, r4 - ldr r0, _0800C7C4 @ =gKirbys - adds r4, r4, r0 - adds r0, r4, #0 - bl sub_080528E4 - lsls r1, r5, #1 - ldrh r0, [r6] - subs r0, #1 - lsls r0, r0, #3 - adds r1, r1, r0 - add r1, sl - ldrh r1, [r1] - adds r0, r4, #0 - adds r0, #0x50 - strh r1, [r0] - adds r4, #0x52 - mov r0, sb - strh r0, [r4] - adds r0, r5, #1 - lsls r0, r0, #0x10 - lsrs r5, r0, #0x10 - ldrh r1, [r6] - cmp r5, r1 - blo _0800C708 -_0800C748: - adds r0, r7, #0 - adds r0, #0xc2 - ldrh r0, [r0] - cmp r0, #1 - bne _0800C7E8 - ldr r1, _0800C7C4 @ =gKirbys - ldr r0, _0800C7C8 @ =gUnk_0203AD3C - ldrb r2, [r0] - movs r0, #0xd4 - lsls r0, r0, #1 - muls r0, r2, r0 - adds r0, r0, r1 - adds r0, #0x60 - mov r1, r8 - adds r1, #0x60 - ldrh r0, [r0] - ldrh r1, [r1] - cmp r0, r1 - bne _0800C7BC - mov r1, r8 - ldrb r0, [r1] - cmp r0, #0 - bne _0800C780 - mov r0, r8 - adds r0, #0x56 - ldrb r0, [r0] - cmp r0, r2 - bne _0800C7BC -_0800C780: - ldr r1, _0800C7CC @ =gUnk_08D60FA4 - ldr r4, _0800C7D0 @ =gSongTable - ldr r2, _0800C7D4 @ =0x00000FEC - adds r0, r4, r2 - ldrh r3, [r0] - lsls r0, r3, #2 - adds r0, r0, r1 - ldr r2, [r0] - ldr r0, [r2, #4] - cmp r0, #0 - blt _0800C7A4 - ldr r1, _0800C7D8 @ =0x00000FE8 - adds r0, r4, r1 - ldr r1, [r0] - ldrb r0, [r2, #9] - ldrb r1, [r1, #2] - cmp r0, r1 - bhi _0800C7BC -_0800C7A4: - cmp r3, #0 - beq _0800C7B6 - ldr r0, _0800C7DC @ =gUnk_0203AD10 - ldr r0, [r0] - movs r1, #0x80 - lsls r1, r1, #1 - ands r0, r1 - cmp r0, #0 - bne _0800C7BC -_0800C7B6: - ldr r0, _0800C7E0 @ =0x000001FD - bl m4aSongNumStart -_0800C7BC: - ldr r0, _0800C7E4 @ =sub_0800DD40 - b _0800C860 - .align 2, 0 -_0800C7C0: .4byte gUnk_082DDE5C -_0800C7C4: .4byte gKirbys -_0800C7C8: .4byte gUnk_0203AD3C -_0800C7CC: .4byte gUnk_08D60FA4 -_0800C7D0: .4byte gSongTable -_0800C7D4: .4byte 0x00000FEC -_0800C7D8: .4byte 0x00000FE8 -_0800C7DC: .4byte gUnk_0203AD10 -_0800C7E0: .4byte 0x000001FD -_0800C7E4: .4byte sub_0800DD40 -_0800C7E8: - ldr r2, _0800C874 @ =0x00000292 - mov r0, r8 - movs r1, #0 - movs r3, #0 - bl sub_0808AE30 - ldr r1, _0800C878 @ =gKirbys - ldr r0, _0800C87C @ =gUnk_0203AD3C - ldrb r2, [r0] - movs r0, #0xd4 - lsls r0, r0, #1 - muls r0, r2, r0 - adds r0, r0, r1 - adds r0, #0x60 - mov r1, r8 - adds r1, #0x60 - ldrh r0, [r0] - ldrh r1, [r1] - cmp r0, r1 - bne _0800C85E - mov r1, r8 - ldrb r0, [r1] - cmp r0, #0 - bne _0800C822 - mov r0, r8 - adds r0, #0x56 - ldrb r0, [r0] - cmp r0, r2 - bne _0800C85E -_0800C822: - ldr r1, _0800C880 @ =gUnk_08D60FA4 - ldr r4, _0800C884 @ =gSongTable - ldr r2, _0800C888 @ =0x0000103C - adds r0, r4, r2 - ldrh r3, [r0] - lsls r0, r3, #2 - adds r0, r0, r1 - ldr r2, [r0] - ldr r0, [r2, #4] - cmp r0, #0 - blt _0800C846 - ldr r1, _0800C88C @ =0x00001038 - adds r0, r4, r1 - ldr r1, [r0] - ldrb r0, [r2, #9] - ldrb r1, [r1, #2] - cmp r0, r1 - bhi _0800C85E -_0800C846: - cmp r3, #0 - beq _0800C858 - ldr r0, _0800C890 @ =gUnk_0203AD10 - ldr r0, [r0] - movs r1, #0x80 - lsls r1, r1, #1 - ands r0, r1 - cmp r0, #0 - bne _0800C85E -_0800C858: - ldr r0, _0800C894 @ =0x00000207 - bl m4aSongNumStart -_0800C85E: - ldr r0, _0800C898 @ =sub_0800C89C -_0800C860: - mov r2, r8 - str r0, [r2, #0x78] - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_0800C874: .4byte 0x00000292 -_0800C878: .4byte gKirbys -_0800C87C: .4byte gUnk_0203AD3C -_0800C880: .4byte gUnk_08D60FA4 -_0800C884: .4byte gSongTable -_0800C888: .4byte 0x0000103C -_0800C88C: .4byte 0x00001038 -_0800C890: .4byte gUnk_0203AD10 -_0800C894: .4byte 0x00000207 -_0800C898: .4byte sub_0800C89C - - thumb_func_start sub_0800C89C -sub_0800C89C: @ 0x0800C89C - push {r4, r5, r6, r7, lr} - adds r5, r0, #0 - mov ip, r5 - movs r4, #1 - movs r3, #0 - adds r0, #0xc2 - ldrh r0, [r0] - cmp r3, r0 - bhs _0800C904 - ldr r6, _0800C8DC @ =gKirbys -_0800C8B0: - mov r0, ip - adds r0, #0xbe - adds r0, r0, r3 - ldrb r1, [r0] - movs r0, #0xd4 - lsls r0, r0, #1 - muls r0, r1, r0 - adds r0, r0, r6 - adds r2, r0, #0 - adds r2, #0x50 - ldrh r0, [r2] - movs r7, #0 - ldrsh r1, [r2, r7] - cmp r1, #0 - ble _0800C8E0 - subs r0, #4 - movs r1, #0 - strh r0, [r2] - lsls r0, r0, #0x10 - cmp r0, #0 - bge _0800C8F2 - b _0800C8F0 - .align 2, 0 -_0800C8DC: .4byte gKirbys -_0800C8E0: - cmp r1, #0 - bge _0800C8F4 - adds r0, #4 - movs r1, #0 - strh r0, [r2] - lsls r0, r0, #0x10 - cmp r0, #0 - ble _0800C8F2 -_0800C8F0: - strh r1, [r2] -_0800C8F2: - movs r4, #0 -_0800C8F4: - adds r0, r3, #1 - lsls r0, r0, #0x10 - lsrs r3, r0, #0x10 - mov r0, ip - adds r0, #0xc2 - ldrh r0, [r0] - cmp r3, r0 - blo _0800C8B0 -_0800C904: - cmp r4, #0 - beq _0800C90C - ldr r0, _0800C914 @ =sub_0800DD40 - str r0, [r5, #0x78] -_0800C90C: - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_0800C914: .4byte sub_0800DD40 - - thumb_func_start sub_0800C918 -sub_0800C918: @ 0x0800C918 - push {r4, r5, r6, r7, lr} - mov r7, sb - mov r6, r8 - push {r6, r7} - adds r7, r0, #0 - adds r6, r7, #0 - movs r5, #0 - adds r0, #0xc2 - ldr r1, _0800C96C @ =gKirbys - mov ip, r1 - ldrh r0, [r0] - cmp r5, r0 - bhs _0800C98C - ldr r2, _0800C970 @ =0xFFFFF800 - mov sb, r2 - movs r4, #0x80 - lsls r4, r4, #0x14 - mov r8, r4 -_0800C93C: - adds r0, r6, #0 - adds r0, #0xbe - adds r0, r0, r5 - ldrb r1, [r0] - movs r0, #0xd4 - lsls r0, r0, #1 - muls r0, r1, r0 - mov r1, ip - adds r3, r0, r1 - adds r2, r3, #0 - adds r2, #0x52 - ldrh r0, [r2] - adds r1, r0, #4 - strh r1, [r2] - lsls r0, r1, #0x10 - asrs r0, r0, #0x10 - cmp r0, sb - blt _0800C974 - mov r4, r8 - asrs r2, r4, #0x10 - cmp r0, r2 - ble _0800C976 - adds r1, r2, #0 - b _0800C976 - .align 2, 0 -_0800C96C: .4byte gKirbys -_0800C970: .4byte 0xFFFFF800 -_0800C974: - mov r1, sb -_0800C976: - adds r0, r3, #0 - adds r0, #0x52 - strh r1, [r0] - adds r0, r5, #1 - lsls r0, r0, #0x10 - lsrs r5, r0, #0x10 - adds r0, r6, #0 - adds r0, #0xc2 - ldrh r0, [r0] - cmp r5, r0 - blo _0800C93C -_0800C98C: - adds r1, r6, #0 - adds r1, #0xbe - ldrb r0, [r1] - movs r3, #0xd4 - lsls r3, r3, #1 - muls r0, r3, r0 - add r0, ip - adds r0, #0x52 - movs r2, #0 - ldrsh r0, [r0, r2] - mov r8, r1 - cmp r0, #0 - blt _0800CA52 - ldr r0, _0800CA60 @ =gUnk_0203AD3C - ldrb r2, [r0] - adds r0, r2, #0 - muls r0, r3, r0 - add r0, ip - adds r0, #0x60 - adds r1, r7, #0 - adds r1, #0x60 - ldrh r0, [r0] - ldrh r1, [r1] - cmp r0, r1 - bne _0800CA0A - ldrb r0, [r7] - cmp r0, #0 - bne _0800C9CE - adds r0, r7, #0 - adds r0, #0x56 - ldrb r0, [r0] - cmp r0, r2 - bne _0800CA0A -_0800C9CE: - ldr r1, _0800CA64 @ =gUnk_08D60FA4 - ldr r4, _0800CA68 @ =gSongTable - ldr r2, _0800CA6C @ =0x0000116C - adds r0, r4, r2 - ldrh r3, [r0] - lsls r0, r3, #2 - adds r0, r0, r1 - ldr r2, [r0] - ldr r0, [r2, #4] - cmp r0, #0 - blt _0800C9F2 - ldr r1, _0800CA70 @ =0x00001168 - adds r0, r4, r1 - ldr r1, [r0] - ldrb r0, [r2, #9] - ldrb r1, [r1, #2] - cmp r0, r1 - bhi _0800CA0A -_0800C9F2: - cmp r3, #0 - beq _0800CA04 - ldr r0, _0800CA74 @ =gUnk_0203AD10 - ldr r0, [r0] - movs r1, #0x80 - lsls r1, r1, #1 - ands r0, r1 - cmp r0, #0 - bne _0800CA0A -_0800CA04: - ldr r0, _0800CA78 @ =0x0000022D - bl m4aSongNumStart -_0800CA0A: - movs r5, #0 - adds r0, r6, #0 - adds r0, #0xc2 - adds r6, r0, #0 - ldrh r2, [r6] - cmp r5, r2 - bhs _0800CA4E -_0800CA18: - mov r4, r8 - adds r0, r4, r5 - ldrb r1, [r0] - movs r0, #0xd4 - lsls r0, r0, #1 - adds r4, r1, #0 - muls r4, r0, r4 - ldr r0, _0800CA7C @ =gKirbys - adds r4, r4, r0 - ldr r1, [r4, #0x40] - ldr r2, [r4, #0x44] - movs r0, #0x80 - lsls r0, r0, #5 - adds r2, r2, r0 - adds r0, r7, #0 - bl sub_0800D6C0 - adds r4, #0x52 - movs r0, #0x80 - lsls r0, r0, #3 - strh r0, [r4] - adds r0, r5, #1 - lsls r0, r0, #0x10 - lsrs r5, r0, #0x10 - ldrh r1, [r6] - cmp r5, r1 - blo _0800CA18 -_0800CA4E: - ldr r0, _0800CA80 @ =sub_0800CA84 - str r0, [r7, #0x78] -_0800CA52: - pop {r3, r4} - mov r8, r3 - mov sb, r4 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_0800CA60: .4byte gUnk_0203AD3C -_0800CA64: .4byte gUnk_08D60FA4 -_0800CA68: .4byte gSongTable -_0800CA6C: .4byte 0x0000116C -_0800CA70: .4byte 0x00001168 -_0800CA74: .4byte gUnk_0203AD10 -_0800CA78: .4byte 0x0000022D -_0800CA7C: .4byte gKirbys -_0800CA80: .4byte sub_0800CA84 - - thumb_func_start sub_0800CA84 -sub_0800CA84: @ 0x0800CA84 - push {r4, r5, r6, r7, lr} - mov r7, sb - mov r6, r8 - push {r6, r7} - mov sb, r0 - mov r5, sb - movs r4, #0 - adds r0, #0xc2 - ldr r1, _0800CAD8 @ =gKirbys - mov ip, r1 - ldrh r0, [r0] - cmp r4, r0 - bhs _0800CAF8 - ldr r6, _0800CADC @ =0xFFFFF800 - movs r7, #0x80 - lsls r7, r7, #0x14 - mov r8, r7 -_0800CAA6: - adds r0, r5, #0 - adds r0, #0xbe - adds r0, r0, r4 - ldrb r1, [r0] - movs r0, #0xd4 - lsls r0, r0, #1 - muls r0, r1, r0 - mov r1, ip - adds r3, r0, r1 - adds r2, r3, #0 - adds r2, #0x52 - ldrh r0, [r2] - adds r1, r0, #4 - strh r1, [r2] - lsls r0, r1, #0x10 - asrs r0, r0, #0x10 - cmp r0, r6 - blt _0800CAE0 - mov r7, r8 - asrs r2, r7, #0x10 - cmp r0, r2 - ble _0800CAE2 - adds r1, r2, #0 - b _0800CAE2 - .align 2, 0 -_0800CAD8: .4byte gKirbys -_0800CADC: .4byte 0xFFFFF800 -_0800CAE0: - adds r1, r6, #0 -_0800CAE2: - adds r0, r3, #0 - adds r0, #0x52 - strh r1, [r0] - adds r0, r4, #1 - lsls r0, r0, #0x10 - lsrs r4, r0, #0x10 - adds r0, r5, #0 - adds r0, #0xc2 - ldrh r0, [r0] - cmp r4, r0 - blo _0800CAA6 -_0800CAF8: - adds r0, r5, #0 - adds r0, #0xbe - ldrb r1, [r0] - movs r0, #0xd4 - lsls r0, r0, #1 - muls r0, r1, r0 - mov r1, ip - adds r1, #0x44 - adds r0, r0, r1 - ldr r1, [r0] - ldr r0, _0800CB48 @ =0x00045FFF - cmp r1, r0 - bgt _0800CB3A - adds r0, r5, #0 - adds r0, #0xb5 - ldrb r0, [r0] - ldr r1, _0800CB4C @ =gUnk_0203AD3C - ldrb r2, [r1] - asrs r0, r2 - movs r1, #1 - ands r0, r1 - cmp r0, #0 - beq _0800CB2C - adds r0, r2, #0 - bl sub_0803CA20 -_0800CB2C: - adds r0, r5, #0 - adds r0, #0xcc - movs r1, #0 - strh r1, [r0] - ldr r0, _0800CB50 @ =sub_0800CB54 - mov r1, sb - str r0, [r1, #0x78] -_0800CB3A: - pop {r3, r4} - mov r8, r3 - mov sb, r4 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_0800CB48: .4byte 0x00045FFF -_0800CB4C: .4byte gUnk_0203AD3C -_0800CB50: .4byte sub_0800CB54 - - thumb_func_start sub_0800CB54 -sub_0800CB54: @ 0x0800CB54 - push {r4, r5, r6, r7, lr} - mov r7, sb - mov r6, r8 - push {r6, r7} - adds r5, r0, #0 - mov ip, r5 - movs r4, #0 - adds r0, #0xc2 - ldrh r0, [r0] - cmp r4, r0 - bhs _0800CBC8 - ldr r6, _0800CBA8 @ =0xFFFFF800 - movs r0, #0x80 - lsls r0, r0, #0x14 - mov r8, r0 - ldr r1, _0800CBAC @ =gKirbys - mov sb, r1 -_0800CB76: - mov r0, ip - adds r0, #0xbe - adds r0, r0, r4 - ldrb r1, [r0] - movs r0, #0xd4 - lsls r0, r0, #1 - muls r0, r1, r0 - mov r7, sb - adds r3, r0, r7 - adds r2, r3, #0 - adds r2, #0x52 - ldrh r0, [r2] - adds r1, r0, #4 - strh r1, [r2] - lsls r0, r1, #0x10 - asrs r0, r0, #0x10 - cmp r0, r6 - blt _0800CBB0 - mov r7, r8 - asrs r2, r7, #0x10 - cmp r0, r2 - ble _0800CBB2 - adds r1, r2, #0 - b _0800CBB2 - .align 2, 0 -_0800CBA8: .4byte 0xFFFFF800 -_0800CBAC: .4byte gKirbys -_0800CBB0: - adds r1, r6, #0 -_0800CBB2: - adds r0, r3, #0 - adds r0, #0x52 - strh r1, [r0] - adds r0, r4, #1 - lsls r0, r0, #0x10 - lsrs r4, r0, #0x10 - mov r0, ip - adds r0, #0xc2 - ldrh r0, [r0] - cmp r4, r0 - blo _0800CB76 -_0800CBC8: - mov r0, ip - adds r0, #0xcc - ldrh r1, [r0] - adds r2, r1, #1 - strh r2, [r0] - lsls r1, r1, #0x10 - lsrs r1, r1, #0x10 - cmp r1, #0x1e - bls _0800CBDE - ldr r0, _0800CBEC @ =sub_0800CBF0 - str r0, [r5, #0x78] -_0800CBDE: - pop {r3, r4} - mov r8, r3 - mov sb, r4 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_0800CBEC: .4byte sub_0800CBF0 - - thumb_func_start sub_0800CBF0 -sub_0800CBF0: @ 0x0800CBF0 - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - sub sp, #0x30 - adds r6, r0, #0 - mov r8, r6 - adds r4, r6, #0 - adds r4, #0xb5 - ldrb r0, [r4] - ldr r1, _0800CDBC @ =gUnk_0203AD3C - ldrb r1, [r1] - asrs r0, r1 - movs r1, #1 - ands r0, r1 - cmp r0, #0 - beq _0800CC1E - adds r0, r6, #0 - movs r1, #0xa4 - movs r2, #0x94 - bl sub_0800D9E8 -_0800CC1E: - movs r7, #0 - adds r0, r6, #0 - adds r0, #0xc2 - adds r1, r6, #0 - adds r1, #0xcc - str r1, [sp, #0x28] - movs r2, #0xc4 - adds r2, r2, r6 - mov sl, r2 - subs r1, #4 - str r1, [sp, #0x24] - adds r2, r6, #0 - adds r2, #0xd4 - str r2, [sp] - movs r1, #0xb4 - adds r1, r1, r6 - mov sb, r1 - adds r2, #4 - str r2, [sp, #4] - adds r1, r6, #0 - adds r1, #0xda - str r1, [sp, #8] - adds r2, #4 - str r2, [sp, #0xc] - adds r1, #6 - str r1, [sp, #0x10] - adds r2, #6 - str r2, [sp, #0x14] - subs r1, #0x80 - str r1, [sp, #0x20] - adds r2, #2 - str r2, [sp, #0x18] - str r4, [sp, #0x1c] - ldrh r0, [r0] - cmp r7, r0 - bhs _0800CD0E - movs r3, #0xa0 - lsls r3, r3, #0xa -_0800CC6A: - mov r0, r8 - adds r0, #0xbe - adds r0, r0, r7 - ldrb r1, [r0] - movs r0, #0xd4 - lsls r0, r0, #1 - adds r4, r1, #0 - muls r4, r0, r4 - ldr r0, _0800CDC0 @ =gKirbys - adds r4, r4, r0 - movs r0, #0xcd - lsls r0, r0, #3 - muls r1, r0, r1 - ldr r0, _0800CDC4 @ =gCurLevelInfo - adds r5, r1, r0 - adds r0, r4, #0 - str r3, [sp, #0x2c] - bl sub_08052BB4 - movs r0, #0xc0 - lsls r0, r0, #0xa - str r0, [r4, #0x44] - adds r0, r4, #0 - adds r0, #0x50 - movs r1, #0 - strh r1, [r0] - adds r4, #0x52 - strh r1, [r4] - movs r0, #0xf6 - lsls r0, r0, #1 - adds r1, r5, r0 - movs r0, #3 - str r0, [r1] - ldr r3, [sp, #0x2c] - str r3, [r5, #0x10] - ldr r0, [r5, #0x6c] - str r0, [r5, #0x7c] - adds r0, r5, #0 - adds r0, #0x80 - str r3, [r0] - str r3, [r5, #0x70] - adds r1, r5, #0 - adds r1, #0x84 - ldr r0, [r5, #0x74] - str r0, [r1] - str r0, [r5, #0x74] - adds r1, #4 - ldr r0, [r5, #0x70] - movs r2, #0xa0 - lsls r2, r2, #8 - adds r0, r0, r2 - str r0, [r1] - str r0, [r5, #0x78] - adds r2, r5, #0 - adds r2, #0x90 - adds r1, #0x18 - ldr r0, [r5, #0x6c] - str r0, [r1] - str r0, [r2] - adds r2, #4 - adds r1, #4 - ldr r0, [r5, #0x70] - str r0, [r1] - str r0, [r2] - adds r2, #4 - adds r1, #4 - ldr r0, [r5, #0x74] - str r0, [r1] - str r0, [r2] - adds r2, #4 - adds r1, #4 - ldr r0, [r5, #0x78] - str r0, [r1] - str r0, [r2] - adds r0, r7, #1 - lsls r0, r0, #0x10 - lsrs r7, r0, #0x10 - mov r0, r8 - adds r0, #0xc2 - ldrh r0, [r0] - cmp r7, r0 - blo _0800CC6A -_0800CD0E: - movs r3, #0 - ldr r0, [sp, #0x28] - strh r3, [r0] - mov r1, sl - str r3, [r1] - ldr r2, [sp, #0x24] - str r3, [r2] - ldr r1, _0800CDC8 @ =gUnk_08D60AA0 - mov r2, sb - ldrb r0, [r2] - lsls r0, r0, #2 - adds r0, r0, r1 - ldr r0, [r0] - ldr r1, [sp] - str r0, [r1] - ldr r2, [sp, #4] - strh r3, [r2] - ldr r0, [sp, #8] - strh r3, [r0] - ldr r2, _0800CDCC @ =gRngVal - ldr r1, [r2] - ldr r0, _0800CDD0 @ =0x00196225 - muls r0, r1, r0 - ldr r1, _0800CDD4 @ =0x3C6EF35F - adds r0, r0, r1 - str r0, [r2] - movs r2, #0 - lsrs r0, r0, #0x10 - movs r1, #0xff - ands r0, r1 - cmp r0, #0x19 - bhi _0800CD50 - movs r2, #1 -_0800CD50: - ldr r0, [sp, #0xc] - str r2, [r0] - movs r5, #1 - ldr r1, [sp, #0x10] - strh r5, [r1] - ldr r2, [sp, #0x14] - strh r3, [r2] - ldr r1, _0800CDD8 @ =gUnk_082DDE7C - mov r2, sb - ldrb r0, [r2] - lsls r0, r0, #1 - adds r0, r0, r1 - ldrh r0, [r0] - ldr r4, _0800CDDC @ =gForegroundPalettes - ldr r3, _0800CDE0 @ =gRoomProps - ldr r1, [sp, #0x20] - ldrh r2, [r1] - lsls r1, r2, #2 - adds r1, r1, r2 - lsls r1, r1, #3 - adds r1, r1, r3 - ldrh r1, [r1, #0x16] - lsls r1, r1, #2 - adds r1, r1, r4 - ldr r1, [r1] - ldr r1, [r1, #4] - ldr r1, [r1] - ldrh r1, [r1, #4] - subs r1, #1 - bl __divsi3 - ldr r2, [sp, #0x18] - strh r0, [r2] - ldr r1, [sp, #0x1c] - ldrb r0, [r1] - ldr r1, _0800CDBC @ =gUnk_0203AD3C - ldrb r1, [r1] - asrs r0, r1 - ands r0, r5 - cmp r0, #0 - beq _0800CDA8 - adds r0, r1, #0 - bl sub_0803C95C -_0800CDA8: - ldr r0, _0800CDE4 @ =sub_0800DDAC - str r0, [r6, #0x78] - add sp, #0x30 - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_0800CDBC: .4byte gUnk_0203AD3C -_0800CDC0: .4byte gKirbys -_0800CDC4: .4byte gCurLevelInfo -_0800CDC8: .4byte gUnk_08D60AA0 -_0800CDCC: .4byte gRngVal -_0800CDD0: .4byte 0x00196225 -_0800CDD4: .4byte 0x3C6EF35F -_0800CDD8: .4byte gUnk_082DDE7C -_0800CDDC: .4byte gForegroundPalettes -_0800CDE0: .4byte gRoomProps -_0800CDE4: .4byte sub_0800DDAC - - thumb_func_start sub_0800CDE8 -sub_0800CDE8: @ 0x0800CDE8 - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - sub sp, #0x18 - str r0, [sp] - str r0, [sp, #4] - bl sub_0800C4D0 - ldr r4, [sp] - adds r4, #0xd8 - ldrh r1, [r4] - ldr r3, [sp] - adds r3, #0xd4 - ldr r2, [r3] - lsls r0, r1, #4 - subs r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r2 - ldrh r1, [r0] - ldr r0, _0800CF08 @ =0x0000FFFF - cmp r1, r0 - bne _0800CE1A - b _0800CFC6 -_0800CE1A: - ldr r0, [sp] - adds r0, #0xda - str r0, [sp, #0x10] - ldrh r0, [r0] - cmp r1, r0 - beq _0800CE28 - b _0800CFC6 -_0800CE28: - str r3, [sp, #8] - str r4, [sp, #0xc] - movs r6, #0 -_0800CE2E: - ldr r2, [sp, #0xc] - ldrh r1, [r2] - lsls r0, r1, #4 - subs r0, r0, r1 - lsls r0, r0, #2 - ldr r3, [sp, #8] - ldr r1, [r3] - adds r1, r1, r0 - mov ip, r1 - ldr r0, _0800CF0C @ =gRngVal - ldr r1, [r0] - ldr r0, _0800CF10 @ =0x00196225 - muls r0, r1, r0 - ldr r1, _0800CF14 @ =0x3C6EF35F - adds r0, r0, r1 - ldr r2, _0800CF0C @ =gRngVal - str r0, [r2] - lsrs r2, r0, #0x10 - movs r0, #0xff - ands r2, r0 - movs r3, #0 - movs r7, #0 - mov r1, ip - ldrh r0, [r1, #2] - cmp r0, #0 - beq _0800CE68 - adds r3, r0, #0 - cmp r2, r3 - blo _0800CE8A -_0800CE68: - adds r0, r7, #1 - lsls r0, r0, #0x10 - lsrs r7, r0, #0x10 - cmp r7, #0x13 - bhi _0800CE8A - lsls r1, r7, #1 - mov r0, ip - adds r0, #2 - adds r0, r0, r1 - ldrh r0, [r0] - cmp r0, #0 - beq _0800CE68 - adds r0, r3, r0 - lsls r0, r0, #0x10 - lsrs r3, r0, #0x10 - cmp r2, r3 - bhs _0800CE68 -_0800CE8A: - ldr r2, _0800CF0C @ =gRngVal - ldr r1, [r2] - ldr r0, _0800CF10 @ =0x00196225 - muls r0, r1, r0 - ldr r3, _0800CF14 @ =0x3C6EF35F - adds r0, r0, r3 - str r0, [r2] - lsrs r2, r0, #0x10 - movs r0, #0xff - ands r2, r0 - movs r4, #0 - movs r3, #0 - mov r1, ip - ldrh r0, [r1, #0x2a] - cmp r0, #0 - beq _0800CEB0 - adds r4, r0, #0 - cmp r2, r4 - blo _0800CED2 -_0800CEB0: - adds r0, r3, #1 - lsls r0, r0, #0x10 - lsrs r3, r0, #0x10 - cmp r3, #7 - bhi _0800CED2 - lsls r1, r3, #1 - mov r0, ip - adds r0, #0x2a - adds r0, r0, r1 - ldrh r0, [r0] - cmp r0, #0 - beq _0800CEB0 - adds r0, r4, r0 - lsls r0, r0, #0x10 - lsrs r4, r0, #0x10 - cmp r2, r4 - bhs _0800CEB0 -_0800CED2: - cmp r7, #0x13 - bhi _0800CFA4 - cmp r3, #7 - bhi _0800CFA4 - movs r4, #0 - ldr r1, _0800CF18 @ =gUnk_020229D4 - movs r5, #1 - ldr r2, [r1] - adds r0, r2, #0 - ands r0, r5 - lsls r3, r3, #1 - mov ip, r3 - ldr r3, _0800CF1C @ =gUnk_020229E0 - mov r8, r3 - ldr r3, _0800CF20 @ =gUnk_082DE40C - mov sl, r3 - ldr r3, [sp, #4] - adds r3, #0x56 - mov sb, r3 - ldr r3, [sp, #4] - adds r3, #0xdc - str r3, [sp, #0x14] - cmp r0, #0 - bne _0800CF24 - orrs r2, r5 - b _0800CF3E - .align 2, 0 -_0800CF08: .4byte 0x0000FFFF -_0800CF0C: .4byte gRngVal -_0800CF10: .4byte 0x00196225 -_0800CF14: .4byte 0x3C6EF35F -_0800CF18: .4byte gUnk_020229D4 -_0800CF1C: .4byte gUnk_020229E0 -_0800CF20: .4byte gUnk_082DE40C -_0800CF24: - adds r0, r4, #1 - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - cmp r4, #0x1f - bhi _0800CF40 - movs r3, #1 - lsls r3, r4 - ldr r2, [r1] - adds r0, r2, #0 - ands r0, r3 - cmp r0, #0 - bne _0800CF24 - orrs r2, r3 -_0800CF3E: - str r2, [r1] -_0800CF40: - lsls r1, r4, #3 - adds r1, r1, r4 - lsls r1, r1, #2 - add r1, r8 - movs r0, #1 - strb r0, [r1] - movs r0, #0x24 - strb r0, [r1, #1] - mov r0, ip - add r0, sl - ldrh r0, [r0] - strh r0, [r1, #6] - mov r0, sb - ldrb r2, [r0] - movs r0, #0xcd - lsls r0, r0, #3 - muls r0, r2, r0 - ldr r2, _0800D048 @ =gCurLevelInfo - adds r2, #0x10 - adds r0, r0, r2 - ldr r0, [r0] - asrs r0, r0, #8 - subs r0, #0x10 - strh r0, [r1, #8] - strb r6, [r1, #2] - movs r0, #0x1f - strb r0, [r1, #3] - strb r6, [r1, #4] - strb r6, [r1, #5] - movs r0, #0x69 - strb r0, [r1, #0xc] - strb r7, [r1, #0xe] - strb r6, [r1, #0xf] - ldr r2, [sp, #0x14] - ldr r0, [r2] - strb r0, [r1, #0x10] - strh r6, [r1, #0x22] - strh r6, [r1, #0x1a] - strh r6, [r1, #0x1c] - strh r6, [r1, #0x1e] - strh r6, [r1, #0x20] - strb r6, [r1, #0x11] - strh r6, [r1, #0x12] - strh r6, [r1, #0x14] - strh r6, [r1, #0x16] - strh r6, [r1, #0x18] - mov r3, sb - ldrb r0, [r3] - bl CreateObject -_0800CFA4: - ldr r1, [sp, #0xc] - ldrh r0, [r1] - adds r0, #1 - strh r0, [r1] - ldrh r1, [r1] - ldr r3, [sp, #8] - ldr r2, [r3] - lsls r0, r1, #4 - subs r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r2 - ldrh r0, [r0] - ldr r1, [sp, #0x10] - ldrh r1, [r1] - cmp r0, r1 - bne _0800CFC6 - b _0800CE2E -_0800CFC6: - ldr r0, [sp, #4] - adds r0, #0xb5 - ldrb r0, [r0] - ldr r1, _0800D04C @ =gUnk_0203AD3C - ldrb r1, [r1] - asrs r0, r1 - movs r2, #1 - mov r8, r2 - ands r0, r2 - cmp r0, #0 - beq _0800D0A6 - ldr r3, _0800D050 @ =gForegroundPalettes - ldr r2, _0800D054 @ =gRoomProps - ldr r0, [sp, #4] - adds r0, #0x60 - ldrh r1, [r0] - lsls r0, r1, #2 - adds r0, r0, r1 - lsls r0, r0, #3 - adds r0, r0, r2 - ldrh r0, [r0, #0x16] - lsls r0, r0, #2 - adds r0, r0, r3 - ldr r0, [r0] - ldr r0, [r0, #4] - ldr r4, [r0] - ldr r0, [sp, #4] - adds r0, #0xe0 - ldrh r1, [r0] - adds r5, r0, #0 - ldrh r3, [r4, #4] - cmp r1, r3 - bhs _0800D0A6 - ldr r0, [sp, #4] - adds r0, #0xe2 - ldrh r1, [r0] - adds r1, #1 - strh r1, [r0] - ldr r2, [sp, #4] - adds r2, #0xe4 - lsls r1, r1, #0x10 - lsrs r1, r1, #0x10 - adds r7, r0, #0 - ldrh r2, [r2] - cmp r1, r2 - blo _0800D0A6 - ldr r6, _0800D058 @ =gUnk_03002440 - ldr r3, [r6] - movs r0, #0x80 - lsls r0, r0, #9 - ands r0, r3 - cmp r0, #0 - beq _0800D05C - ldrh r0, [r5] - ldr r1, [r4] - lsls r0, r0, #2 - adds r0, r0, r1 - ldr r0, [r0] - ldr r0, [r0] - ldrb r1, [r4, #6] - ldrh r2, [r4, #8] - bl sub_08158334 - b _0800D088 - .align 2, 0 -_0800D048: .4byte gCurLevelInfo -_0800D04C: .4byte gUnk_0203AD3C -_0800D050: .4byte gForegroundPalettes -_0800D054: .4byte gRoomProps -_0800D058: .4byte gUnk_03002440 -_0800D05C: - ldr r2, _0800D0DC @ =0x040000D4 - ldrh r0, [r5] - ldr r1, [r4] - lsls r0, r0, #2 - adds r0, r0, r1 - ldr r0, [r0] - ldr r0, [r0] - str r0, [r2] - ldrh r0, [r4, #6] - lsls r0, r0, #1 - ldr r1, _0800D0E0 @ =gBgPalette - adds r0, r0, r1 - str r0, [r2, #4] - ldrh r0, [r4, #8] - movs r1, #0x80 - lsls r1, r1, #0x18 - orrs r0, r1 - str r0, [r2, #8] - ldr r0, [r2, #8] - mov r0, r8 - orrs r3, r0 - str r3, [r6] -_0800D088: - ldrh r0, [r5] - ldr r1, [r4] - lsls r0, r0, #2 - adds r0, r0, r1 - ldr r0, [r0] - ldr r0, [r0] - ldrb r1, [r4, #6] - ldrh r2, [r4, #8] - bl sub_0803D21C - movs r0, #0 - strh r0, [r7] - ldrh r0, [r5] - adds r0, #1 - strh r0, [r5] -_0800D0A6: - ldr r0, [sp, #4] - adds r0, #0xda - ldrh r1, [r0] - adds r1, #1 - strh r1, [r0] - ldr r2, _0800D0E4 @ =gUnk_082DDE7C - ldr r0, [sp, #4] - adds r0, #0xb4 - ldrb r0, [r0] - lsls r0, r0, #1 - adds r0, r0, r2 - ldrh r0, [r0] - lsls r1, r1, #0x10 - lsrs r1, r1, #0x10 - cmp r0, r1 - bhs _0800D0CC - ldr r0, _0800D0E8 @ =sub_0800DDB8 - ldr r1, [sp] - str r0, [r1, #0x78] -_0800D0CC: - add sp, #0x18 - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_0800D0DC: .4byte 0x040000D4 -_0800D0E0: .4byte gBgPalette -_0800D0E4: .4byte gUnk_082DDE7C -_0800D0E8: .4byte sub_0800DDB8 - - thumb_func_start sub_0800D0EC -sub_0800D0EC: @ 0x0800D0EC - push {r4, r5, r6, r7, lr} - mov r7, sb - mov r6, r8 - push {r6, r7} - adds r5, r0, #0 - adds r6, r5, #0 - bl sub_0800C4D0 - cmp r0, #0 - beq _0800D180 - movs r4, #0 - adds r0, r5, #0 - adds r0, #0xc2 - ldr r1, _0800D18C @ =sub_0800D194 - mov sb, r1 - ldrh r0, [r0] - cmp r4, r0 - bhs _0800D17C - movs r2, #0xc8 - adds r2, r2, r5 - mov ip, r2 - movs r7, #0x80 - lsls r7, r7, #4 - ldr r0, _0800D190 @ =gCurLevelInfo - mov r8, r0 -_0800D11E: - adds r0, r6, #0 - adds r0, #0xbe - adds r0, r0, r4 - ldrb r1, [r0] - movs r0, #0xcd - lsls r0, r0, #3 - muls r0, r1, r0 - mov r1, r8 - adds r3, r0, r1 - ldr r0, [r3, #0x10] - mov r2, ip - ldr r1, [r2] - subs r0, r0, r1 - str r0, [r3, #0x10] - adds r1, r3, #0 - adds r1, #0x46 - movs r0, #0 - strh r0, [r1] - adds r2, r3, #0 - adds r2, #0x90 - adds r1, #0x5a - ldr r0, [r3, #0x6c] - str r0, [r1] - str r0, [r2] - subs r1, #0xc - adds r0, r3, #0 - adds r0, #0xa4 - str r7, [r0] - str r7, [r1] - adds r2, #8 - adds r1, #0x14 - ldr r0, [r3, #0x74] - str r0, [r1] - str r0, [r2] - adds r2, #4 - adds r1, #4 - ldr r0, [r3, #0x78] - str r0, [r1] - str r0, [r2] - adds r0, r4, #1 - lsls r0, r0, #0x10 - lsrs r4, r0, #0x10 - adds r0, r6, #0 - adds r0, #0xc2 - ldrh r0, [r0] - cmp r4, r0 - blo _0800D11E -_0800D17C: - mov r0, sb - str r0, [r5, #0x78] -_0800D180: - pop {r3, r4} - mov r8, r3 - mov sb, r4 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_0800D18C: .4byte sub_0800D194 -_0800D190: .4byte gCurLevelInfo - - thumb_func_start sub_0800D194 -sub_0800D194: @ 0x0800D194 - push {r4, r5, r6, r7, lr} - mov r7, sb - mov r6, r8 - push {r6, r7} - adds r5, r0, #0 - mov ip, r5 - movs r4, #0 - adds r0, #0xc2 - ldr r1, _0800D254 @ =gCurLevelInfo - mov sb, r1 - ldrh r0, [r0] - cmp r4, r0 - bhs _0800D226 - movs r3, #0xb0 - lsls r3, r3, #7 - ldr r7, _0800D258 @ =gKirbys - mov r8, r7 - movs r6, #0xf8 - lsls r6, r6, #8 -_0800D1BA: - mov r0, ip - adds r0, #0xbe - adds r0, r0, r4 - ldrb r2, [r0] - movs r0, #0xd4 - lsls r0, r0, #1 - adds r1, r2, #0 - muls r1, r0, r1 - add r1, r8 - movs r0, #0xcd - lsls r0, r0, #3 - muls r0, r2, r0 - mov r7, sb - adds r2, r0, r7 - ldr r0, [r2, #0x10] - ldr r7, _0800D25C @ =0xFFFFF600 - adds r0, r0, r7 - str r0, [r2, #0x10] - adds r1, #0x52 - movs r0, #0xa0 - lsls r0, r0, #4 - strh r0, [r1] - ldr r0, [r2, #0x10] - cmp r0, r3 - bgt _0800D216 - str r3, [r2, #0x10] - ldr r0, [r2, #0x6c] - str r0, [r2, #0x7c] - adds r0, r2, #0 - adds r0, #0x80 - str r3, [r0] - str r3, [r2, #0x70] - adds r1, r2, #0 - adds r1, #0x84 - ldr r0, [r2, #0x74] - str r0, [r1] - str r0, [r2, #0x74] - adds r0, r2, #0 - adds r0, #0x88 - str r6, [r0] - str r6, [r2, #0x78] - movs r0, #0xf6 - lsls r0, r0, #1 - adds r1, r2, r0 - movs r0, #1 - str r0, [r1] -_0800D216: - adds r0, r4, #1 - lsls r0, r0, #0x10 - lsrs r4, r0, #0x10 - mov r0, ip - adds r0, #0xc2 - ldrh r0, [r0] - cmp r4, r0 - blo _0800D1BA -_0800D226: - mov r0, ip - adds r0, #0xbe - ldrb r1, [r0] - movs r0, #0xcd - lsls r0, r0, #3 - muls r0, r1, r0 - mov r1, sb - adds r1, #0x10 - adds r0, r0, r1 - ldr r1, [r0] - movs r0, #0xb0 - lsls r0, r0, #7 - cmp r1, r0 - bgt _0800D246 - ldr r0, _0800D260 @ =sub_0800D264 - str r0, [r5, #0x78] -_0800D246: - pop {r3, r4} - mov r8, r3 - mov sb, r4 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_0800D254: .4byte gCurLevelInfo -_0800D258: .4byte gKirbys -_0800D25C: .4byte 0xFFFFF600 -_0800D260: .4byte sub_0800D264 - - thumb_func_start sub_0800D264 -sub_0800D264: @ 0x0800D264 - push {r4, r5, r6, r7, lr} - adds r6, r0, #0 - mov ip, r6 - movs r4, #0 - movs r3, #0 - adds r0, #0xc2 - ldrh r0, [r0] - cmp r4, r0 - bhs _0800D2C0 - movs r5, #0xe0 - lsls r5, r5, #6 - ldr r7, _0800D29C @ =gKirbys -_0800D27C: - mov r0, ip - adds r0, #0xbe - adds r0, r0, r3 - ldrb r1, [r0] - movs r0, #0xd4 - lsls r0, r0, #1 - muls r0, r1, r0 - adds r1, r0, r7 - ldr r0, [r1, #0x44] - cmp r0, r5 - ble _0800D2A0 - adds r1, #0x52 - movs r0, #0xa0 - lsls r0, r0, #4 - strh r0, [r1] - b _0800D2B0 - .align 2, 0 -_0800D29C: .4byte gKirbys -_0800D2A0: - adds r2, r1, #0 - adds r2, #0x52 - movs r0, #0 - strh r0, [r2] - str r5, [r1, #0x44] - adds r0, r4, #1 - lsls r0, r0, #0x10 - lsrs r4, r0, #0x10 -_0800D2B0: - adds r0, r3, #1 - lsls r0, r0, #0x10 - lsrs r3, r0, #0x10 - mov r0, ip - adds r0, #0xc2 - ldrh r0, [r0] - cmp r3, r0 - blo _0800D27C -_0800D2C0: - mov r0, ip - adds r0, #0xc2 - ldrh r0, [r0] - cmp r4, r0 - bne _0800D2D6 - mov r0, ip - adds r0, #0xce - movs r1, #0 - strh r1, [r0] - ldr r0, _0800D2DC @ =sub_0800D2E0 - str r0, [r6, #0x78] -_0800D2D6: - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_0800D2DC: .4byte sub_0800D2E0 - - thumb_func_start sub_0800D2E0 -sub_0800D2E0: @ 0x0800D2E0 - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - sub sp, #0x10 - adds r6, r0, #0 - str r6, [sp, #8] - adds r5, r6, #0 - adds r5, #0xce - ldrh r0, [r5] - adds r1, r0, #1 - strh r1, [r5] - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - cmp r0, #0x3c - bls _0800D38A - movs r7, #0 - movs r1, #0 - adds r3, r6, #0 - adds r3, #0xc2 - ldrh r0, [r3] - cmp r0, #1 - bls _0800D324 - ldr r2, _0800D39C @ =gRngVal - ldr r1, [r2] - ldr r0, _0800D3A0 @ =0x00196225 - muls r0, r1, r0 - ldr r1, _0800D3A4 @ =0x3C6EF35F - adds r0, r0, r1 - str r0, [r2] - lsrs r1, r0, #0x10 - movs r0, #1 - ands r1, r0 -_0800D324: - movs r4, #0 - mov sb, r5 - movs r5, #0xd0 - adds r5, r5, r6 - mov sl, r5 - ldrh r0, [r3] - cmp r4, r0 - bhs _0800D37C - str r3, [sp, #0xc] - lsls r1, r1, #0x18 - mov r8, r1 -_0800D33A: - ldr r0, [sp, #8] - adds r0, #0xbe - adds r0, r0, r4 - ldrb r1, [r0] - movs r0, #0xd4 - lsls r0, r0, #1 - muls r0, r1, r0 - ldr r1, _0800D3A8 @ =gKirbys - adds r0, r0, r1 - lsls r1, r7, #0x18 - lsrs r1, r1, #0x18 - ldr r3, [sp, #0xc] - ldrb r2, [r3] - movs r3, #0 - str r3, [sp] - ldr r3, [r0, #0x44] - lsls r3, r3, #0xc - asrs r3, r3, #0x18 - str r3, [sp, #4] - mov r5, r8 - lsrs r3, r5, #0x18 - bl sub_0804BD98 - adds r0, r7, #1 - lsls r0, r0, #0x10 - lsrs r7, r0, #0x10 - adds r0, r4, #1 - lsls r0, r0, #0x10 - lsrs r4, r0, #0x10 - ldr r0, [sp, #0xc] - ldrh r0, [r0] - cmp r4, r0 - blo _0800D33A -_0800D37C: - movs r0, #0 - mov r1, sb - strh r0, [r1] - mov r3, sl - strh r0, [r3] - ldr r0, _0800D3AC @ =sub_0800DE20 - str r0, [r6, #0x78] -_0800D38A: - add sp, #0x10 - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_0800D39C: .4byte gRngVal -_0800D3A0: .4byte 0x00196225 -_0800D3A4: .4byte 0x3C6EF35F -_0800D3A8: .4byte gKirbys -_0800D3AC: .4byte sub_0800DE20 - - thumb_func_start sub_0800D3B0 -sub_0800D3B0: @ 0x0800D3B0 - push {r4, r5, r6, r7, lr} - mov r7, r8 - push {r7} - mov ip, r0 - adds r0, #0xb0 - ldr r1, [r0] - movs r4, #6 - ldrsh r0, [r1, r4] - lsls r7, r0, #8 - adds r2, r7, #0 - movs r4, #8 - ldrsh r0, [r1, r4] - lsls r0, r0, #8 - mov r8, r0 - mov r3, r8 - mov r5, ip - adds r5, #0x50 - ldrh r0, [r5] - adds r0, #3 - movs r6, #0 - strh r0, [r5] - lsls r0, r0, #0x10 - ldr r1, _0800D444 @ =0xFF810000 - cmp r0, r1 - blt _0800D3E6 - ldr r0, _0800D448 @ =0x0000FF80 - strh r0, [r5] -_0800D3E6: - mov r1, ip - adds r1, #0x52 - ldrh r0, [r1] - adds r0, #8 - strh r0, [r1] - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - movs r4, #0x40 - rsbs r4, r4, #0 - cmp r0, r4 - ble _0800D3FE - strh r4, [r1] -_0800D3FE: - mov r4, ip - ldr r0, [r4, #0x40] - cmp r0, r2 - bge _0800D40A - strh r6, [r5] - str r7, [r4, #0x40] -_0800D40A: - mov r4, ip - ldr r0, [r4, #0x44] - cmp r0, r3 - ble _0800D418 - strh r6, [r1] - mov r0, r8 - str r0, [r4, #0x44] -_0800D418: - mov r4, ip - ldr r0, [r4, #0x40] - cmp r0, r2 - bne _0800D42C - ldr r0, [r4, #0x44] - cmp r0, r3 - bne _0800D42C - strh r6, [r1] - ldr r0, _0800D44C @ =sub_0800DC8C - str r0, [r4, #0x78] -_0800D42C: - mov r1, ip - ldr r0, [r1, #8] - movs r1, #4 - orrs r0, r1 - mov r4, ip - str r0, [r4, #8] - pop {r3} - mov r8, r3 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_0800D444: .4byte 0xFF810000 -_0800D448: .4byte 0x0000FF80 -_0800D44C: .4byte sub_0800DC8C - - thumb_func_start sub_0800D450 -sub_0800D450: @ 0x0800D450 - push {r4, r5, r6, r7, lr} - ldr r2, _0800D470 @ =gCurTask - ldr r3, [r2] - ldrh r1, [r3, #0x12] - movs r0, #0x10 - ands r0, r1 - adds r5, r2, #0 - cmp r0, #0 - beq _0800D474 - ldrh r0, [r3, #6] - lsls r0, r0, #2 - movs r1, #0x80 - lsls r1, r1, #0x12 - adds r0, r0, r1 - b _0800D47C - .align 2, 0 -_0800D470: .4byte gCurTask -_0800D474: - ldrh r1, [r3, #6] - movs r0, #0xc0 - lsls r0, r0, #0x12 - adds r0, r1, r0 -_0800D47C: - adds r3, r0, #0 - ldrh r1, [r3, #6] - movs r4, #0x80 - lsls r4, r4, #5 - adds r0, r4, #0 - ands r0, r1 - lsls r0, r0, #0x10 - lsrs r2, r0, #0x10 - cmp r2, #0 - beq _0800D498 - ldr r0, [r5] - bl TaskDestroy - b _0800D5C4 -_0800D498: - ldr r1, [r3, #0x44] - cmp r1, #0 - beq _0800D4E4 - ldrb r0, [r1] - cmp r0, #0 - beq _0800D4B0 - ldr r0, [r1, #8] - ands r0, r4 - cmp r0, #0 - beq _0800D4B0 - str r2, [r3, #0x44] - movs r1, #0 -_0800D4B0: - cmp r1, #0 - beq _0800D4E4 - ldr r0, _0800D4E0 @ =gUnk_03000510 - ldrb r2, [r0, #4] - adds r1, #0x56 - movs r0, #1 - ldrb r1, [r1] - lsls r0, r1 - movs r1, #0x10 - orrs r0, r1 - ands r2, r0 - cmp r2, #0 - beq _0800D554 - ldrh r1, [r3, #6] - movs r0, #0x80 - lsls r0, r0, #6 - ands r0, r1 - cmp r0, #0 - bne _0800D554 - adds r0, r3, #0 - bl sub_0803DBC8 - b _0800D5C4 - .align 2, 0 -_0800D4E0: .4byte gUnk_03000510 -_0800D4E4: - adds r5, r3, #0 - movs r4, #0 - ldr r2, _0800D54C @ =gKirbys - adds r0, r2, #0 - adds r0, #0x60 - adds r1, r3, #0 - adds r1, #0x42 - ldrh r0, [r0] - ldrh r1, [r1] - cmp r0, r1 - beq _0800D526 - movs r4, #1 - movs r6, #0x82 - lsls r6, r6, #2 - adds r0, r2, r6 - ldrh r0, [r0] - cmp r0, r1 - beq _0800D526 - movs r4, #2 - movs r7, #0xec - lsls r7, r7, #2 - adds r0, r2, r7 - ldrh r0, [r0] - cmp r0, r1 - beq _0800D526 - movs r4, #3 - movs r6, #0xab - lsls r6, r6, #3 - adds r0, r2, r6 - ldrh r0, [r0] - cmp r0, r1 - beq _0800D526 - movs r4, #4 -_0800D526: - ldr r0, _0800D550 @ =gUnk_03000510 - ldrb r2, [r0, #4] - movs r0, #1 - lsls r0, r4 - movs r1, #0x10 - orrs r0, r1 - ands r2, r0 - cmp r2, #0 - beq _0800D554 - ldrh r1, [r5, #6] - movs r0, #0x80 - lsls r0, r0, #6 - ands r0, r1 - cmp r0, #0 - bne _0800D554 - adds r0, r5, #0 - bl sub_0803DBC8 - b _0800D5C4 - .align 2, 0 -_0800D54C: .4byte gKirbys -_0800D550: .4byte gUnk_03000510 -_0800D554: - ldr r0, _0800D5CC @ =gUnk_0203AD44 - ldrb r0, [r0] - cmp r0, #0 - beq _0800D598 - ldr r6, _0800D5D0 @ =gCurLevelInfo - adds r1, r3, #0 - adds r1, #0x42 - ldrh r4, [r1] - ldr r5, _0800D5D4 @ =gUnk_02026D50 -_0800D566: - subs r2, r0, #1 - movs r0, #0xcd - lsls r0, r0, #3 - muls r0, r2, r0 - adds r1, r0, r6 - movs r7, #0xbf - lsls r7, r7, #3 - adds r0, r1, r7 - ldrh r0, [r0] - cmp r0, r4 - bne _0800D590 - adds r7, #0x66 - adds r0, r1, r7 - ldrb r0, [r0] - lsls r0, r0, #1 - adds r0, r0, r5 - ldrh r1, [r0] - movs r0, #8 - ands r0, r1 - cmp r0, #0 - beq _0800D5AA -_0800D590: - lsls r0, r2, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #0 - bne _0800D566 -_0800D598: - movs r0, #1 - cmp r0, #0 - beq _0800D5AA - ldrh r1, [r3, #6] - movs r2, #0x80 - lsls r2, r2, #5 - adds r0, r2, #0 - orrs r0, r1 - strh r0, [r3, #6] -_0800D5AA: - ldrh r1, [r3, #6] - movs r0, #2 - ands r0, r1 - cmp r0, #0 - beq _0800D5BE - movs r6, #0x80 - lsls r6, r6, #5 - adds r0, r6, #0 - orrs r0, r1 - strh r0, [r3, #6] -_0800D5BE: - adds r0, r3, #0 - bl sub_0806FAC8 -_0800D5C4: - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_0800D5CC: .4byte gUnk_0203AD44 -_0800D5D0: .4byte gCurLevelInfo -_0800D5D4: .4byte gUnk_02026D50 - - thumb_func_start sub_0800D5D8 -sub_0800D5D8: @ 0x0800D5D8 - push {r4, r5, r6, r7, lr} - mov r7, sb - mov r6, r8 - push {r6, r7} - sub sp, #8 - adds r5, r0, #0 - mov r8, r1 - mov sb, r2 - ldr r0, _0800D614 @ =sub_0800D450 - movs r2, #0xd4 - lsls r2, r2, #6 - ldr r1, _0800D618 @ =sub_0803DCCC - str r1, [sp] - movs r1, #0x48 - movs r3, #0 - bl TaskCreate - adds r2, r0, #0 - ldrh r1, [r2, #0x12] - movs r0, #0x10 - ands r0, r1 - cmp r0, #0 - beq _0800D61C - ldrh r0, [r2, #6] - lsls r0, r0, #2 - movs r1, #0x80 - lsls r1, r1, #0x12 - adds r4, r0, r1 - b _0800D624 - .align 2, 0 -_0800D614: .4byte sub_0800D450 -_0800D618: .4byte sub_0803DCCC -_0800D61C: - ldrh r1, [r2, #6] - movs r0, #0xc0 - lsls r0, r0, #0x12 - adds r4, r1, r0 -_0800D624: - adds r0, r4, #0 - bl sub_0803E3B0 - movs r0, #0 - mov ip, r0 - movs r0, #3 - strb r0, [r4] - ldr r0, [r5, #0x40] - str r0, [r4, #0x34] - ldr r0, [r5, #0x44] - str r0, [r4, #0x38] - str r5, [r4, #0x44] - adds r0, r5, #0 - adds r0, #0x60 - ldrh r0, [r0] - adds r1, r4, #0 - adds r1, #0x42 - movs r7, #0 - strh r0, [r1] - ldrh r0, [r4, #6] - movs r1, #0x80 - lsls r1, r1, #7 - adds r6, r1, #0 - adds r3, r0, #0 - orrs r3, r6 - orrs r3, r7 - strh r3, [r4, #6] - mov r0, r8 - str r0, [r4, #0x34] - mov r1, sb - str r1, [r4, #0x38] - mov r0, ip - strh r0, [r4, #4] - ldr r0, _0800D6B4 @ =gUnk_03000510 - ldrb r2, [r0, #4] - adds r1, r5, #0 - adds r1, #0x56 - movs r0, #1 - ldrb r1, [r1] - lsls r0, r1 - movs r1, #0x10 - orrs r0, r1 - ands r2, r0 - cmp r2, #0 - beq _0800D688 - movs r1, #0x80 - lsls r1, r1, #6 - adds r0, r1, #0 - orrs r3, r0 - strh r3, [r4, #6] -_0800D688: - ldrh r0, [r4, #6] - orrs r0, r6 - strh r0, [r4, #6] - adds r1, r4, #0 - adds r1, #0xc - ldr r2, _0800D6B8 @ =0x06012000 - ldr r3, _0800D6BC @ =0x000002AE - mov r0, ip - str r0, [sp] - movs r0, #0xa - str r0, [sp, #4] - adds r0, r4, #0 - bl sub_080709F8 - add sp, #8 - pop {r3, r4} - mov r8, r3 - mov sb, r4 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_0800D6B4: .4byte gUnk_03000510 -_0800D6B8: .4byte 0x06012000 -_0800D6BC: .4byte 0x000002AE - - thumb_func_start sub_0800D6C0 -sub_0800D6C0: @ 0x0800D6C0 - push {r4, r5, r6, r7, lr} - mov r7, sb - mov r6, r8 - push {r6, r7} - sub sp, #8 - adds r5, r0, #0 - mov r8, r1 - mov sb, r2 - ldr r0, _0800D6FC @ =sub_0800D450 - movs r2, #0xd4 - lsls r2, r2, #6 - ldr r1, _0800D700 @ =sub_0803DCCC - str r1, [sp] - movs r1, #0x48 - movs r3, #0 - bl TaskCreate - adds r2, r0, #0 - ldrh r1, [r2, #0x12] - movs r0, #0x10 - ands r0, r1 - cmp r0, #0 - beq _0800D704 - ldrh r0, [r2, #6] - lsls r0, r0, #2 - movs r1, #0x80 - lsls r1, r1, #0x12 - adds r4, r0, r1 - b _0800D70C - .align 2, 0 -_0800D6FC: .4byte sub_0800D450 -_0800D700: .4byte sub_0803DCCC -_0800D704: - ldrh r1, [r2, #6] - movs r0, #0xc0 - lsls r0, r0, #0x12 - adds r4, r1, r0 -_0800D70C: - adds r0, r4, #0 - bl sub_0803E3B0 - movs r0, #0 - mov ip, r0 - movs r0, #3 - strb r0, [r4] - ldr r0, [r5, #0x40] - str r0, [r4, #0x34] - ldr r0, [r5, #0x44] - str r0, [r4, #0x38] - str r5, [r4, #0x44] - adds r0, r5, #0 - adds r0, #0x60 - ldrh r0, [r0] - adds r1, r4, #0 - adds r1, #0x42 - movs r7, #0 - strh r0, [r1] - ldrh r0, [r4, #6] - movs r1, #0x80 - lsls r1, r1, #7 - adds r6, r1, #0 - adds r3, r0, #0 - orrs r3, r6 - orrs r3, r7 - strh r3, [r4, #6] - mov r0, r8 - str r0, [r4, #0x34] - mov r1, sb - str r1, [r4, #0x38] - mov r0, ip - strh r0, [r4, #4] - ldr r0, _0800D79C @ =gUnk_03000510 - ldrb r2, [r0, #4] - adds r1, r5, #0 - adds r1, #0x56 - movs r0, #1 - ldrb r1, [r1] - lsls r0, r1 - movs r1, #0x10 - orrs r0, r1 - ands r2, r0 - cmp r2, #0 - beq _0800D770 - movs r1, #0x80 - lsls r1, r1, #6 - adds r0, r1, #0 - orrs r3, r0 - strh r3, [r4, #6] -_0800D770: - ldrh r0, [r4, #6] - orrs r0, r6 - strh r0, [r4, #6] - adds r1, r4, #0 - adds r1, #0xc - ldr r2, _0800D7A0 @ =0x06012000 - ldr r3, _0800D7A4 @ =0x0000029B - mov r0, ip - str r0, [sp] - movs r0, #0xa - str r0, [sp, #4] - adds r0, r4, #0 - bl sub_080709F8 - add sp, #8 - pop {r3, r4} - mov r8, r3 - mov sb, r4 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_0800D79C: .4byte gUnk_03000510 -_0800D7A0: .4byte 0x06012000 -_0800D7A4: .4byte 0x0000029B - - thumb_func_start sub_0800D7A8 -sub_0800D7A8: @ 0x0800D7A8 - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - sub sp, #0xc - adds r7, r0, #0 - movs r0, #1 - str r0, [sp, #8] - mov r5, sp - lsls r4, r1, #0x10 - asrs r4, r4, #0x10 - movs r6, #0x64 - adds r0, r4, #0 - movs r1, #0x64 - bl __divsi3 - strh r0, [r5] - mov r0, sp - movs r1, #0 - ldrsh r0, [r0, r1] - muls r0, r6, r0 - subs r4, r4, r0 - mov r5, sp - lsls r4, r4, #0x10 - asrs r4, r4, #0x10 - adds r0, r4, #0 - movs r1, #0xa - bl __divsi3 - strh r0, [r5, #2] - mov r0, sp - movs r2, #2 - ldrsh r1, [r0, r2] - lsls r0, r1, #2 - adds r0, r0, r1 - lsls r0, r0, #1 - subs r4, r4, r0 - mov r0, sp - strh r4, [r0, #4] - movs r3, #0 - mov sb, r3 - ldr r5, _0800D84C @ =gCurLevelInfo - mov sl, r5 -_0800D800: - mov r1, sb - lsls r0, r1, #2 - add r0, sb - lsls r0, r0, #3 - adds r0, #0x48 - adds r4, r7, r0 - lsls r1, r1, #1 - mov r8, r1 - mov r2, sb - cmp r2, #2 - beq _0800D82A - mov r0, sp - add r0, r8 - movs r3, #0 - ldrsh r0, [r0, r3] - cmp r0, #0 - bne _0800D82A - ldr r5, [sp, #8] - cmp r5, #0 - beq _0800D82A - b _0800D9C6 -_0800D82A: - movs r0, #0 - str r0, [sp, #8] - mov r0, sp - add r0, r8 - ldrh r0, [r0] - strb r0, [r4, #0x1a] - ldrh r1, [r7, #6] - movs r0, #1 - ands r0, r1 - cmp r0, #0 - beq _0800D850 - ldr r0, [r4, #8] - movs r1, #0x80 - lsls r1, r1, #3 - orrs r0, r1 - b _0800D856 - .align 2, 0 -_0800D84C: .4byte gCurLevelInfo -_0800D850: - ldr r0, [r4, #8] - ldr r1, _0800D8C8 @ =0xFFFFFBFF - ands r0, r1 -_0800D856: - str r0, [r4, #8] - ldrh r2, [r7, #6] - movs r0, #8 - ands r0, r2 - lsls r0, r0, #0x10 - lsrs r1, r0, #0x10 - cmp r1, #0 - bne _0800D8E6 - ldrb r0, [r4, #0x1b] - ldrb r3, [r4, #0x1a] - cmp r0, r3 - bne _0800D876 - ldrh r0, [r4, #0x18] - ldrh r5, [r4, #0xc] - cmp r0, r5 - beq _0800D888 -_0800D876: - ldrb r0, [r4, #0x1c] - cmp r0, #0 - beq _0800D888 - strb r1, [r7, #1] - strh r1, [r7, #2] - ldr r1, _0800D8CC @ =0x0000FFFB - adds r0, r1, #0 - ands r0, r2 - strh r0, [r7, #6] -_0800D888: - adds r0, r4, #0 - bl sub_08155128 - adds r2, r0, #0 - cmp r2, #0 - bne _0800D8D0 - ldrh r0, [r7, #6] - movs r1, #2 - movs r3, #0 - orrs r1, r0 - strh r1, [r7, #6] - movs r0, #4 - ands r1, r0 - cmp r1, #0 - beq _0800D8E6 - ldrb r0, [r4, #0x1c] - cmp r0, #0 - beq _0800D8E6 - movs r0, #0xff - strb r0, [r4, #0x1b] - ldrh r0, [r7, #6] - ldr r5, _0800D8CC @ =0x0000FFFB - adds r1, r5, #0 - ands r0, r1 - strh r0, [r7, #6] - strb r3, [r7, #1] - strh r2, [r7, #2] - adds r0, r4, #0 - bl sub_08155128 - b _0800D8E6 - .align 2, 0 -_0800D8C8: .4byte 0xFFFFFBFF -_0800D8CC: .4byte 0x0000FFFB -_0800D8D0: - ldrb r1, [r4, #0x1c] - ldrh r0, [r7, #2] - adds r0, r0, r1 - strh r0, [r7, #2] - lsrs r0, r0, #4 - strb r0, [r7, #1] - ldrh r0, [r7, #6] - ldr r2, _0800D99C @ =0x0000FFFD - adds r1, r2, #0 - ands r0, r1 - strh r0, [r7, #6] -_0800D8E6: - ldr r2, [r7, #0x34] - asrs r2, r2, #8 - ldr r3, _0800D9A0 @ =gUnk_0203AD3C - mov ip, r3 - ldrb r0, [r3] - movs r3, #0xcd - lsls r3, r3, #3 - muls r0, r3, r0 - mov r1, sl - adds r1, #0xc - adds r0, r0, r1 - ldr r0, [r0] - asrs r0, r0, #8 - subs r2, r2, r0 - adds r5, r7, #0 - adds r5, #0x40 - movs r0, #0 - ldrsb r0, [r5, r0] - adds r0, r0, r2 - movs r6, #0 - strh r0, [r4, #0x10] - ldr r1, [r7, #0x38] - asrs r1, r1, #8 - mov r2, ip - ldrb r0, [r2] - muls r0, r3, r0 - ldr r3, _0800D9A4 @ =gCurLevelInfo+0x10 - adds r0, r0, r3 - ldr r0, [r0] - asrs r0, r0, #8 - subs r1, r1, r0 - adds r2, r7, #0 - adds r2, #0x41 - movs r0, #0 - ldrsb r0, [r2, r0] - adds r0, r0, r1 - strh r0, [r4, #0x12] - ldrb r0, [r4, #0x1c] - cmp r0, #0 - beq _0800D93A - strb r6, [r5] - strb r6, [r2] -_0800D93A: - ldr r0, [r7, #0x34] - asrs r0, r0, #8 - mov r5, sb - lsls r1, r5, #4 - adds r0, r0, r1 - add r0, r8 - strh r0, [r4, #0x10] - ldr r0, [r7, #0x38] - asrs r0, r0, #8 - strh r0, [r4, #0x12] - ldrh r0, [r7, #6] - ldr r2, _0800D9A8 @ =0x0000FBFF - adds r1, r2, #0 - ands r0, r1 - strh r0, [r7, #6] - ldr r2, _0800D9AC @ =gKirbys - mov r3, ip - ldrb r1, [r3] - movs r0, #0xd4 - lsls r0, r0, #1 - muls r0, r1, r0 - adds r0, r0, r2 - adds r0, #0x60 - adds r1, r7, #0 - adds r1, #0x42 - ldrh r0, [r0] - ldrh r1, [r1] - cmp r0, r1 - bne _0800D9BA - ldr r1, _0800D9B0 @ =gUnk_0203AD18 - ldrh r0, [r1] - ldrh r5, [r4, #0x10] - adds r0, r0, r5 - strh r0, [r4, #0x10] - ldrh r0, [r1, #2] - ldrh r1, [r4, #0x12] - adds r0, r0, r1 - strh r0, [r4, #0x12] - ldrh r0, [r7, #6] - movs r2, #0x80 - lsls r2, r2, #7 - adds r1, r2, #0 - ands r0, r1 - cmp r0, #0 - beq _0800D9B4 - adds r0, r4, #0 - bl sub_081564D8 - b _0800D9BA - .align 2, 0 -_0800D99C: .4byte 0x0000FFFD -_0800D9A0: .4byte gUnk_0203AD3C -_0800D9A4: .4byte gCurLevelInfo+0x10 -_0800D9A8: .4byte 0x0000FBFF -_0800D9AC: .4byte gKirbys -_0800D9B0: .4byte gUnk_0203AD18 -_0800D9B4: - adds r0, r4, #0 - bl sub_0815604C -_0800D9BA: - ldrh r1, [r7, #6] - movs r3, #0x80 - lsls r3, r3, #3 - adds r0, r3, #0 - orrs r0, r1 - strh r0, [r7, #6] -_0800D9C6: - mov r0, sb - adds r0, #1 - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - mov sb, r0 - cmp r0, #2 - bhi _0800D9D6 - b _0800D800 -_0800D9D6: - add sp, #0xc - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 - thumb_func_start sub_0800D9E8 sub_0800D9E8: @ 0x0800D9E8 push {r4, r5, r6, r7, lr} diff --git a/data/data_1.s b/data/data_1.s index 139ce25..a18fd97 100644 --- a/data/data_1.s +++ b/data/data_1.s @@ -9938,63 +9938,3 @@ gUnk_082D9244:: @ 082D9244 gUnk_082D9254:: @ 082D9254 .incbin "baserom.gba", 0x2D9254, 0x0000010 - -gUnk_082D9264:: @ 082D9264 - .incbin "baserom.gba", 0x2D9264, 0x0001038 - -gUnk_082DA29C:: @ 082DA29C - .incbin "baserom.gba", 0x2DA29C, 0x0000C30 - -gUnk_082DAECC:: @ 082DAECC - .incbin "baserom.gba", 0x2DAECC, 0x0000C48 - -gUnk_082DBB14:: @ 082DBB14 - .incbin "baserom.gba", 0x2DBB14, 0x00007B0 - -gUnk_082DC2C4:: @ 082DC2C4 - .incbin "baserom.gba", 0x2DC2C4, 0x0000B40 - -gUnk_082DCE04:: @ 082DCE04 - .incbin "baserom.gba", 0x2DCE04, 0x0000978 - -gUnk_082DD77C:: @ 082DD77C - .incbin "baserom.gba", 0x2DD77C, 0x000056A - -gUnk_082DDCE6:: @ 082DDCE6 - .incbin "baserom.gba", 0x2DDCE6, 0x000013E - -gUnk_082DDE24:: @ 082DDE24 - .incbin "baserom.gba", 0x2DDE24, 0x0000008 - -gUnk_082DDE2C:: @ 082DDE2C - .incbin "baserom.gba", 0x2DDE2C, 0x0000008 - -gUnk_082DDE34:: @ 082DDE34 - .incbin "baserom.gba", 0x2DDE34, 0x0000008 - -gUnk_082DDE3C:: @ 082DDE3C - .incbin "baserom.gba", 0x2DDE3C, 0x0000020 - -gUnk_082DDE5C:: @ 082DDE5C - .incbin "baserom.gba", 0x2DDE5C, 0x0000020 - -gUnk_082DDE7C:: @ 082DDE7C - .incbin "baserom.gba", 0x2DDE7C, 0x0000008 - -gUnk_082DDE84:: @ 082DDE84 - .incbin "baserom.gba", 0x2DDE84, 0x000006C - -gUnk_082DDEF0:: @ 082DDEF0 - .incbin "baserom.gba", 0x2DDEF0, 0x000006C - -gUnk_082DDF5C:: @ 082DDF5C - .incbin "baserom.gba", 0x2DDF5C, 0x000006C - -gUnk_082DDFC8:: @ 082DDFC8 - .incbin "baserom.gba", 0x2DDFC8, 0x000006C - -gUnk_082DE034:: @ 082DE034 - .incbin "baserom.gba", 0x2DE034, 0x0000040 - -gUnk_082DE074:: @ 082DE074 - .incbin "baserom.gba", 0x2DE074, 0x0000020 diff --git a/data/data_17.s b/data/data_17.s new file mode 100644 index 0000000..baa61d8 --- /dev/null +++ b/data/data_17.s @@ -0,0 +1,112 @@ + .include "asm/macros.inc" + .include "constants/constants.inc" + + .section .rodata + +gUnk_082EB4A0:: @ 082EB4A0 + .incbin "baserom.gba", 0x2EB4A0, 0x0000014 + +gUnk_082EB4B4:: @ 082EB4B4 + .incbin "baserom.gba", 0x2EB4B4, 0x0000002 + +gUnk_082EB4B6:: @ 082EB4B6 + .incbin "baserom.gba", 0x2EB4B6, 0x0000036 + +gUnk_082EB4EC:: @ 082EB4EC + .incbin "baserom.gba", 0x2EB4EC, 0x0000004 + +gUnk_082EB4F0:: @ 082EB4F0 + .incbin "baserom.gba", 0x2EB4F0, 0x0000024 + +gUnk_082EB514:: @ 082EB514 + .incbin "baserom.gba", 0x2EB514, 0x0000028 + +gUnk_082EB53C:: @ 082EB53C + .incbin "baserom.gba", 0x2EB53C, 0x0000028 + +gUnk_082EB564:: @ 082EB564 + .incbin "baserom.gba", 0x2EB564, 0x0000028 + +gUnk_082EB58C:: @ 082EB58C + .incbin "baserom.gba", 0x2EB58C, 0x0000028 + +gUnk_082EB5B4:: @ 082EB5B4 + .incbin "baserom.gba", 0x2EB5B4, 0x000000C + +gUnk_082EB5C0:: @ 082EB5C0 + .incbin "baserom.gba", 0x2EB5C0, 0x0000004 + +gUnk_082EB5C4:: @ 082EB5C4 + .incbin "baserom.gba", 0x2EB5C4, 0x000001C + +gUnk_082EB5E0:: @ 082EB5E0 + .incbin "baserom.gba", 0x2EB5E0, 0x0000030 + +gUnk_082EB610:: @ 082EB610 + .incbin "baserom.gba", 0x2EB610, 0x0000020 + +gUnk_082EB630:: @ 082EB630 + .incbin "baserom.gba", 0x2EB630, 0x0000004 + +gUnk_082EB634:: @ 082EB634 + .incbin "baserom.gba", 0x2EB634, 0x000000C + +gUnk_082EB640:: @ 082EB640 + .incbin "baserom.gba", 0x2EB640, 0x0000090 + +gUnk_082EB6D0:: @ 082EB6D0 + .incbin "baserom.gba", 0x2EB6D0, 0x000000C + +gUnk_082EB6DC:: @ 082EB6DC + .incbin "baserom.gba", 0x2EB6DC, 0x0000010 + +gUnk_082EB6EC:: @ 082EB6EC + .incbin "baserom.gba", 0x2EB6EC, 0x0000010 + +gUnk_082EB6FC:: @ 082EB6FC + .incbin "baserom.gba", 0x2EB6FC, 0x0000004 + +gUnk_082EB700:: @ 082EB700 + .incbin "baserom.gba", 0x2EB700, 0x0000040 + +gUnk_082EB740:: @ 082EB740 + .incbin "baserom.gba", 0x2EB740, 0x0000090 + +gUnk_082EB7D0:: @ 082EB7D0 + .incbin "baserom.gba", 0x2EB7D0, 0x0000028 + +gUnk_082EB7F8:: @ 082EB7F8 + .incbin "baserom.gba", 0x2EB7F8, 0x0000008 + +gUnk_082EB800:: @ 082EB800 + .incbin "baserom.gba", 0x2EB800, 0x0000008 + +gUnk_082EB808:: @ 082EB808 + .incbin "baserom.gba", 0x2EB808, 0x0000020 + +gUnk_082EB828:: @ 082EB828 + .incbin "baserom.gba", 0x2EB828, 0x0000020 + +gUnk_082EB848:: @ 082EB848 + .incbin "baserom.gba", 0x2EB848, 0x0000020 + +gUnk_082EB868:: @ 082EB868 + .incbin "baserom.gba", 0x2EB868, 0x0000028 + +gUnk_082EB890:: @ 082EB890 + .incbin "baserom.gba", 0x2EB890, 0x0000028 + +gUnk_082EB8B8:: @ 082EB8B8 + .incbin "baserom.gba", 0x2EB8B8, 0x0000024 + +gUnk_082EB8DC:: @ 082EB8DC + .incbin "baserom.gba", 0x2EB8DC, 0x000003C + +gUnk_082EB918:: @ 082EB918 + .incbin "baserom.gba", 0x2EB918, 0x000003C + +gUnk_082EB954:: @ 082EB954 + .incbin "baserom.gba", 0x2EB954, 0x0000030 + +gUnk_082EB984:: @ 082EB984 + .incbin "baserom.gba", 0x2EB984, 0x0000020 diff --git a/data/data_6.s b/data/data_6.s index 286c3c1..1fc7783 100644 --- a/data/data_6.s +++ b/data/data_6.s @@ -3,123 +3,6 @@ .section .rodata -gUnk_082EB4A0:: @ 082EB4A0 - .incbin "baserom.gba", 0x2EB4A0, 0x0000014 - -gUnk_082EB4B4:: @ 082EB4B4 - .incbin "baserom.gba", 0x2EB4B4, 0x0000002 - -gUnk_082EB4B6:: @ 082EB4B6 - .incbin "baserom.gba", 0x2EB4B6, 0x0000036 - -gUnk_082EB4EC:: @ 082EB4EC - .incbin "baserom.gba", 0x2EB4EC, 0x0000004 - -gUnk_082EB4F0:: @ 082EB4F0 - .incbin "baserom.gba", 0x2EB4F0, 0x0000024 - -gUnk_082EB514:: @ 082EB514 - .incbin "baserom.gba", 0x2EB514, 0x0000028 - -gUnk_082EB53C:: @ 082EB53C - .incbin "baserom.gba", 0x2EB53C, 0x0000028 - -gUnk_082EB564:: @ 082EB564 - .incbin "baserom.gba", 0x2EB564, 0x0000028 - -gUnk_082EB58C:: @ 082EB58C - .incbin "baserom.gba", 0x2EB58C, 0x0000028 - -gUnk_082EB5B4:: @ 082EB5B4 - .incbin "baserom.gba", 0x2EB5B4, 0x000000C - -gUnk_082EB5C0:: @ 082EB5C0 - .incbin "baserom.gba", 0x2EB5C0, 0x0000004 - -gUnk_082EB5C4:: @ 082EB5C4 - .incbin "baserom.gba", 0x2EB5C4, 0x000001C - -gUnk_082EB5E0:: @ 082EB5E0 - .incbin "baserom.gba", 0x2EB5E0, 0x0000030 - -gUnk_082EB610:: @ 082EB610 - .incbin "baserom.gba", 0x2EB610, 0x0000020 - -gUnk_082EB630:: @ 082EB630 - .incbin "baserom.gba", 0x2EB630, 0x0000004 - -gUnk_082EB634:: @ 082EB634 - .incbin "baserom.gba", 0x2EB634, 0x000000C - -gUnk_082EB640:: @ 082EB640 - .incbin "baserom.gba", 0x2EB640, 0x0000090 - -gUnk_082EB6D0:: @ 082EB6D0 - .incbin "baserom.gba", 0x2EB6D0, 0x000000C - -gUnk_082EB6DC:: @ 082EB6DC - .incbin "baserom.gba", 0x2EB6DC, 0x0000010 - -gUnk_082EB6EC:: @ 082EB6EC - .incbin "baserom.gba", 0x2EB6EC, 0x0000010 - -gUnk_082EB6FC:: @ 082EB6FC - .incbin "baserom.gba", 0x2EB6FC, 0x0000004 - -gUnk_082EB700:: @ 082EB700 - .incbin "baserom.gba", 0x2EB700, 0x0000040 - -gUnk_082EB740:: @ 082EB740 - .incbin "baserom.gba", 0x2EB740, 0x0000090 - -gUnk_082EB7D0:: @ 082EB7D0 - .incbin "baserom.gba", 0x2EB7D0, 0x0000028 - -gUnk_082EB7F8:: @ 082EB7F8 - .incbin "baserom.gba", 0x2EB7F8, 0x0000008 - -gUnk_082EB800:: @ 082EB800 - .incbin "baserom.gba", 0x2EB800, 0x0000008 - -gUnk_082EB808:: @ 082EB808 - .incbin "baserom.gba", 0x2EB808, 0x0000020 - -gUnk_082EB828:: @ 082EB828 - .incbin "baserom.gba", 0x2EB828, 0x0000020 - -gUnk_082EB848:: @ 082EB848 - .incbin "baserom.gba", 0x2EB848, 0x0000020 - -gUnk_082EB868:: @ 082EB868 - .incbin "baserom.gba", 0x2EB868, 0x0000028 - -gUnk_082EB890:: @ 082EB890 - .incbin "baserom.gba", 0x2EB890, 0x0000028 - -gUnk_082EB8B8:: @ 082EB8B8 - .incbin "baserom.gba", 0x2EB8B8, 0x0000024 - -gUnk_082EB8DC:: @ 082EB8DC - .incbin "baserom.gba", 0x2EB8DC, 0x000003C - -gUnk_082EB918:: @ 082EB918 - .incbin "baserom.gba", 0x2EB918, 0x000003C - -gUnk_082EB954:: @ 082EB954 - .incbin "baserom.gba", 0x2EB954, 0x0000030 - -gUnk_082EB984:: @ 082EB984 - .incbin "baserom.gba", 0x2EB984, 0x0000020 - -gUnk_082EB9A4:: @ 082EB9A4 - .incbin "baserom.gba", 0x2EB9A4, 0x0000258 - -gUnk_082EBBFC:: @ 082EBBFC - .incbin "baserom.gba", 0x2EBBFC, 0x0000438 - -gUnk_082EC034:: @ 082EC034 - .incbin "baserom.gba", 0x2EC034, 0x0000744 - gUnk_082EC778:: @ 082EC778 .incbin "baserom.gba", 0x2EC778, 0x000000C diff --git a/data/data_7.s b/data/data_7.s new file mode 100644 index 0000000..9a07324 --- /dev/null +++ b/data/data_7.s @@ -0,0 +1,22 @@ + .include "asm/macros.inc" + .include "constants/constants.inc" + + .section .rodata + +gUnk_082DDE84:: @ 082DDE84 + .incbin "baserom.gba", 0x2DDE84, 0x000006C + +gUnk_082DDEF0:: @ 082DDEF0 + .incbin "baserom.gba", 0x2DDEF0, 0x000006C + +gUnk_082DDF5C:: @ 082DDF5C + .incbin "baserom.gba", 0x2DDF5C, 0x000006C + +gUnk_082DDFC8:: @ 082DDFC8 + .incbin "baserom.gba", 0x2DDFC8, 0x000006C + +gUnk_082DE034:: @ 082DE034 + .incbin "baserom.gba", 0x2DE034, 0x0000040 + +gUnk_082DE074:: @ 082DE074 + .incbin "baserom.gba", 0x2DE074, 0x0000020 diff --git a/include/kirby.h b/include/kirby.h index 218cb25..981d2e3 100644 --- a/include/kirby.h +++ b/include/kirby.h @@ -105,6 +105,7 @@ u8 sub_0804BAD8(struct Kirby *); void sub_0804BD00(struct Kirby *); bool8 sub_0804BD98(struct Kirby *, u8, u8, u8, s8, s8); bool8 sub_080525C0(struct Kirby *); +bool8 sub_080528E4(struct Kirby *); void sub_08052BB4(struct Kirby *); void sub_08052E2C(struct Kirby *); void sub_080531B4(struct Kirby *, const struct Unk_08353510 *); diff --git a/include/object.h b/include/object.h index f499cf1..13c2063 100644 --- a/include/object.h +++ b/include/object.h @@ -290,50 +290,50 @@ sub_0815604C(sprite); \ }) -#define Macro_080FC150(objBase /* obj4 */) ({ \ +#define Macro_080FC150(objBase /* obj4 */, sprite) ({ \ if ((objBase)->flags & 1) \ { \ - struct Sprite *_r0 = &(objBase)->sprite; \ + struct Sprite *_r0 = (sprite); \ \ - _r0->unk8 = (objBase)->sprite.unk8 | 0x400; \ + _r0->unk8 = (sprite)->unk8 | 0x400; \ } \ else \ { \ - struct Sprite *_r0 = &(objBase)->sprite; \ + struct Sprite *_r0 = (sprite); \ \ - _r0->unk8 = (objBase)->sprite.unk8 & ~0x400; \ + _r0->unk8 = (sprite)->unk8 & ~0x400; \ } \ if (!((objBase)->flags & 8)) \ { \ - if (((objBase)->sprite.unk1B != (objBase)->sprite.variant || (objBase)->sprite.unk18 != (objBase)->sprite.animId) \ - && (objBase)->sprite.unk1C) \ + if (((sprite)->unk1B != (sprite)->variant || (sprite)->unk18 != (sprite)->animId) \ + && (sprite)->unk1C) \ { \ (objBase)->unk1 = 0; \ (objBase)->unk2 = 0; \ (objBase)->flags &= ~4; \ } \ - if (!sub_08155128(&(objBase)->sprite)) \ + if (!sub_08155128(sprite)) \ { \ (objBase)->flags |= 2; \ - if ((objBase)->flags & 4 && (objBase)->sprite.unk1C) \ + if ((objBase)->flags & 4 && (sprite)->unk1C) \ { \ - (objBase)->sprite.unk1B = 0xFF; \ + (sprite)->unk1B = 0xFF; \ (objBase)->flags &= ~4; \ (objBase)->unk1 = 0; \ (objBase)->unk2 = 0; \ - sub_08155128(&(objBase)->sprite); \ + sub_08155128(sprite); \ } \ } \ else \ { \ - (objBase)->unk2 += (objBase)->sprite.unk1C; \ + (objBase)->unk2 += (sprite)->unk1C; \ (objBase)->unk1 = (objBase)->unk2 >> 4; \ (objBase)->flags &= ~2; \ } \ } \ - (objBase)->sprite.x = ((objBase)->x >> 8) - (gCurLevelInfo[gUnk_0203AD3C].unkC >> 8) + (objBase)->objBase54; \ - (objBase)->sprite.y = ((objBase)->y >> 8) - (gCurLevelInfo[gUnk_0203AD3C].unk10 >> 8) + (objBase)->objBase55; \ - if ((objBase)->sprite.unk1C) \ + (sprite)->x = ((objBase)->x >> 8) - (gCurLevelInfo[gUnk_0203AD3C].unkC >> 8) + (objBase)->objBase54; \ + (sprite)->y = ((objBase)->y >> 8) - (gCurLevelInfo[gUnk_0203AD3C].unk10 >> 8) + (objBase)->objBase55; \ + if ((sprite)->unk1C) \ { \ (objBase)->objBase54 = 0; \ (objBase)->objBase55 = 0; \ diff --git a/include/warp_star.h b/include/warp_star.h new file mode 100644 index 0000000..d5121ab --- /dev/null +++ b/include/warp_star.h @@ -0,0 +1,71 @@ +#ifndef GUARD_WARP_STAR_H +#define GUARD_WARP_STAR_H + +#include "global.h" +#include "data.h" + +struct StarShared +{ + struct Object2 obj2; + u8 unkB4; + u8 unkB5; + u16 unkB6; + u16 unkB8; + u16 unkBA; +}; /* size = 0xBC */ + +struct WarpStar +{ + struct StarShared unk0; + u16 unkBC; + u16 unkBE; + s16 unkC0; + s16 unkC2; +}; /* size = 0xC4 */ + +struct GoalStar_D4 +{ + u16 unk0; + u16 unk2[0x14]; + u16 unk2A[8]; +}; /* size = 0x3C */ + +struct GoalStar +{ + struct StarShared unk0; + u16 unkBC; + u8 unkBE[4]; + u16 unkC2; + u32 unkC4; + s32 unkC8; + u16 unkCC; + u16 unkCE; + u16 unkD0; + const struct GoalStar_D4 *unkD4; + u16 unkD8; + u16 unkDA; + u32 unkDC; + u16 unkE0; + u16 unkE2; + u16 unkE4; +}; /* size = 0xE8 */ + +struct Unk_0800D9E8 +{ + struct Object4 obj4; + struct Sprite sprites[3]; + void (*unkC0)(struct Unk_0800D9E8 *); + struct GoalStar *unkC4; + u16 unkC8; +}; /* size = 0xCC */ + +void *CreateWarpStar(struct Object *, u8); +void *CreateGoalStar(struct Object *, u8); + +void nullsub_101(struct WarpStar *); +void nullsub_102(struct GoalStar *); + +extern const struct Unk_02021590 gUnk_082DDE24[]; +extern const struct Unk_02021590 gUnk_082DDE2C[]; + +#endif diff --git a/linker.ld b/linker.ld index f8d9666..ad42b19 100644 --- a/linker.ld +++ b/linker.ld @@ -234,6 +234,7 @@ SECTIONS { src/code_080023A4.o(.text); src/save.o(.text); asm/chest.o(.text); + src/warp_star.o(.text); asm/warp_star.o(.text); src/code_08019CB8.o(.text); src/multi_08019F28.o(.text); @@ -409,6 +410,8 @@ SECTIONS { *libc.a:memcpy.o(.text); *libc.a:memset.o(.text); data/data_1.o(.rodata); + src/warp_star.o(.rodata); + data/data_7.o(.rodata); src/multi_08019F28.o(.rodata); data/data_15.o(.rodata); src/shard.o(.rodata); @@ -418,6 +421,8 @@ SECTIONS { src/shadow_kirby.o(.rodata); data/data_11.o(.rodata); src/special_doors.o(.rodata); + data/data_17.o(.rodata); + src/warp_star_data.o(.rodata); data/data_6.o(.rodata); src/cupie.o(.rodata); src/waddle_dee.o(.rodata); diff --git a/src/dark_meta_knight.c b/src/dark_meta_knight.c index 574a59c..3d48c21 100644 --- a/src/dark_meta_knight.c +++ b/src/dark_meta_knight.c @@ -2886,7 +2886,7 @@ static void sub_080FC150(void) objBase->flags |= 0x200; } } - Macro_080FC150(objBase); + Macro_080FC150(objBase, &objBase->sprite); if (!(objBase->flags & 0x400) && gKirbys[gUnk_0203AD3C].base.base.base.roomId == objBase->roomId) { @@ -3661,7 +3661,7 @@ static void sub_080FEA70(void) _080FEC9C: KirbySomething(obj4); } - Macro_080FC150(obj4); + Macro_080FC150(obj4, &obj4->sprite); if (obj4->sprite.variant > 0xD && obj4->flags & 2) { obj4->flags |= 0x1000; @@ -3739,7 +3739,7 @@ static void sub_080FEFB0(void) ++obj4->sprite.variant; if (obj4->sprite.variant == 8 && objBase2->counter == 0xA) ++obj4->sprite.variant; - Macro_080FC150(obj4); + Macro_080FC150(obj4, &obj4->sprite); if ((obj4->sprite.variant == 0xB || obj4->sprite.variant == 9) && obj4->flags & 2) { obj4->flags |= 0x1000; @@ -3834,7 +3834,7 @@ static void sub_080FF5B0(void) obj4->y = y; return; } - Macro_080FC150(obj4); + Macro_080FC150(obj4, &obj4->sprite); for (i = 0; i < 4; ++i) { if ((obj4->unk4 >> i) & 1) diff --git a/src/dark_mind.c b/src/dark_mind.c index 11af00c..b0b65fd 100644 --- a/src/dark_mind.c +++ b/src/dark_mind.c @@ -4132,7 +4132,7 @@ static void sub_08106BE0(void) r6->x = r8->unk48 - r8->xspeed - r8->xspeed; r6->y = r8->unk4C + r8->yspeed + r8->yspeed; if (!Macro_0810B1F4(r8)) - Macro_080FC150(r6); + Macro_080FC150(r6, &r6->sprite); Macro_08108368(r6, 0, 0); r6->x = r8->unk48; r6->y = r8->unk4C; @@ -4143,7 +4143,7 @@ static void sub_08106BE0(void) r6->x = r8->unk48; r6->y = r8->unk4C; if (!Macro_0810B1F4(r8)) - Macro_080FC150(r6); + Macro_080FC150(r6, &r6->sprite); else { r6->sprite.x = (r6->x >> 8) - (gCurLevelInfo[gUnk_0203AD3C].unkC >> 8); @@ -4558,7 +4558,7 @@ static void sub_08108368(void) return; } r6->flags |= 4; - Macro_080FC150(r6); + Macro_080FC150(r6, &r6->sprite); } Macro_08108368(r6, 0x3000, 0); Macro_08108368(r6, 0x7000, 0); @@ -4613,7 +4613,7 @@ static void sub_08108A50(void) return; } r6->flags |= 4; - Macro_080FC150(r6); + Macro_080FC150(r6, &r6->sprite); } r6->sprite.unk8 ^= 0x400; Macro_08108368(r6, 0x1400, -0x2400); @@ -4706,7 +4706,7 @@ static void sub_081094C4(void) } else { - Macro_080FC150(r6); + Macro_080FC150(r6, &r6->sprite); for (r8 = 0; r8 < 4; ++r8) { sp2C->unk48[r8][1] -= sp2C->unk68[r8][0]; @@ -9441,7 +9441,7 @@ static void sub_08112880(void) { if (!r7->laserShower || r7->laserShower->base.flags & 0x1000) r5->unk4 = 1; - Macro_080FC150(r5); + Macro_080FC150(r5, &r5->sprite); for (r8 = 0; r8 < 4; ++r8) { sp2C->unk48[r8][1] -= sp2C->unk68[r8]; diff --git a/src/kracko.c b/src/kracko.c index 41daf3e..44026fa 100644 --- a/src/kracko.c +++ b/src/kracko.c @@ -969,7 +969,7 @@ static void sub_080DD044(void) obj4->sprite.variant = 9; break; } - Macro_080FC150(obj4); + Macro_080FC150(obj4, &obj4->sprite); obj4->sprite.unk8 &= ~0x800; obj4->sprite.palId = obj4->unk8; if (!(obj4->flags & 0x400) && gKirbys[gUnk_0203AD3C].base.base.base.roomId == obj4->roomId) diff --git a/src/warp_star.c b/src/warp_star.c new file mode 100644 index 0000000..f5023c4 --- /dev/null +++ b/src/warp_star.c @@ -0,0 +1,2511 @@ +// TODO: need a better file name +#include "warp_star.h" +#include "random.h" +#include "functions.h" +#include "kirby.h" +#include "object.h" +#include "trig.h" +#include "palette.h" + +void sub_0800C270(struct WarpStar *); +void sub_0800C6E8(struct GoalStar *); +void sub_0800C89C(struct GoalStar *); +void sub_0800CA84(struct GoalStar *); +void sub_0800CB54(struct GoalStar *); +void sub_0800CBF0(struct GoalStar *); +void sub_0800D194(struct GoalStar *); +void sub_0800D264(struct GoalStar *); +void sub_0800D2E0(struct GoalStar *); +void sub_0800D5D8(struct StarShared *, s32, s32); +void sub_0800D6C0(struct GoalStar *, s32, s32); +void sub_0800D9E8(struct GoalStar *, s16, s16); +void sub_0800DC5C(struct WarpStar *); +void sub_0800DC78(struct WarpStar *); +void sub_0800DC8C(struct GoalStar *); +void sub_0800DCAC(struct GoalStar *); +void sub_0800DCC0(struct WarpStar *); +void sub_0800DD40(struct GoalStar *); +void sub_0800DDAC(struct GoalStar *); +void sub_0800DDB8(struct GoalStar *); +void sub_0800DE20(struct GoalStar *); + +const struct Unk_08353510 gUnk_082D9264[] = { + { 0x0, 0x0, 0x1, 0x5A, 0xFF, 0x0 }, + { 0x0, -0x477, 0x1, 0x5A, 0xFF, 0x0 }, + { 0x0, 0x0, 0x1, 0x5A, 0xFF, 0x0 }, + { 0x0, -0x433, 0x1, 0x5A, 0xFF, 0x0 }, + { 0x0, -0x411, 0x1, 0x5A, 0xFF, 0x0 }, + { 0x0, -0x3EE, 0x1, 0x5A, 0xFF, 0x0 }, + { 0x0, -0x3CC, 0x1, 0x5A, 0xFF, 0x0 }, + { 0x0, -0x3AA, 0x1, 0x5A, 0xFF, 0x0 }, + { 0x0, -0x388, 0x1, 0x5A, 0xFF, 0x0 }, + { 0x0, -0x366, 0x1, 0x5A, 0xFF, 0x0 }, + { 0x0, -0x344, 0x1, 0x5A, 0x17, 0x0 }, + { 0x0, -0x322, 0x1, 0x5A, 0xFF, 0x0 }, + { 0x0, -0x300, 0x1, 0x5A, 0xFF, 0x0 }, + { 0x0, -0x2DD, 0x1, 0x5A, 0xFF, 0x0 }, + { 0x0, -0x2BB, 0x1, 0x5A, 0xFF, 0x0 }, + { 0x0, -0x299, 0x1, 0x5A, 0xFF, 0x0 }, + { 0x0, -0x277, 0x1, 0x5A, 0xFF, 0x0 }, + { 0x0, -0x255, 0x1, 0x5A, 0xFF, 0x0 }, + { 0x0, -0x233, 0x1, 0x5A, 0xFF, 0x0 }, + { 0x0, -0x211, 0x1, 0x5A, 0xFF, 0x0 }, + { 0x0, -0x1EE, 0x1, 0x5A, 0xFF, 0x0 }, + { 0x0, -0x1CC, 0x1, 0x5A, 0xFF, 0x0 }, + { 0x0, -0x1AA, 0x1, 0x5A, 0xFF, 0x0 }, + { 0x0, -0x188, 0x1, 0x5A, 0xFF, 0x0 }, + { 0x0, -0x166, 0x1, 0x5A, 0xFF, 0x0 }, + { 0x0, -0x144, 0x1, 0x5A, 0xFF, 0x0 }, + { 0x0, -0x122, 0x1, 0x5A, 0xFF, 0x0 }, + { 0x0, -0xFF, 0x1, 0x5A, 0xFF, 0x0 }, + { 0x0, -0xDD, 0x1, 0x5A, 0xFF, 0x0 }, + { 0x0, -0xBB, 0x1, 0x5A, 0xFF, 0x0 }, + { 0x0, 0x0, 0x1, 0x5A, 0xFF, 0x0 }, + { 0x0, 0x12A, 0x1, 0x5A, 0xFF, 0x0 }, + { 0x0, 0xD5, 0x1, 0x5A, 0xFF, 0x0 }, + { 0x0, 0x80, 0x1, 0x5A, 0xFF, 0x0 }, + { 0x0, 0x2A, 0x1, 0x5A, 0xFF, 0x0 }, + { 0x0, -0x2A, 0x1, 0x5A, 0xFF, 0x0 }, + { 0x0, -0x80, 0x1, 0x5A, 0xFF, 0x0 }, + { 0x0, -0xD5, 0x1, 0x5A, 0xFF, 0x0 }, + { 0x0, -0x12A, 0x1, 0x5A, 0xFF, 0x0 }, + { 0x0, -0x180, 0x1, 0x5A, 0xFF, 0x0 }, + { 0x0, 0x0, 0x1, 0x5A, 0xFF, 0x0 }, + { 0x0, -0x100, 0x1, 0x5A, 0xFF, 0x0 }, + { 0x0, 0x0, 0x1, 0x5A, 0xFF, 0x0 }, + { 0x0, 0x100, 0x1, 0x5A, 0xFF, 0x0 }, + { 0x0, 0x0, 0x1, 0x5A, 0xFF, 0x0 }, + { 0x0, -0x100, 0x1, 0x5A, 0xFF, 0x0 }, + { 0x0, 0x0, 0x1, 0x5A, 0xFF, 0x0 }, + { 0x0, 0x100, 0x1, 0x5A, 0xFF, 0x0 }, + { 0x0, 0x0, 0x1, 0x5A, 0xFF, 0x0 }, + { 0x0, -0x100, 0x1, 0x5A, 0xFF, 0x0 }, + { 0x0, 0x0, 0x1, 0x5A, 0xFF, 0x0 }, + { 0x0, 0x100, 0x1, 0x5A, 0xFF, 0x0 }, + { 0x0, 0x0, 0x1, 0x5A, 0xFF, 0x0 }, + { 0x0, -0x100, 0x1, 0x5A, 0xFF, 0x0 }, + { 0x0, 0x0, 0x1, 0x5A, 0xFF, 0x0 }, + { 0x0, 0x100, 0x1, 0x5A, 0xFF, 0x0 }, + { 0x0, 0x0, 0x1, 0x5A, 0xFF, 0x0 }, + { 0xA0, -0x1C0, 0x1, 0x5A, 0xFF, 0x0 }, + { 0x0, 0x0, 0x1, 0x5A, 0xFF, 0x0 }, + { 0x235, -0xF5, 0x1, 0x5A, 0xFF, 0x0 }, + { 0x0, 0x0, 0x1, 0x5A, 0xFF, 0x0 }, + { 0xF5, -0xF5, 0x1, 0x5A, 0xFF, 0x0 }, + { 0x8A, -0x8A, 0x1, 0x5A, 0xFF, 0x0 }, + { 0x20, -0x20, 0x1, 0x5A, 0xFF, 0x0 }, + { 0x36, -0x55, 0x1, 0x5A, 0xB, 0x0 }, + { -0x136, 0x155, 0x1, 0x5A, 0xFF, 0x0 }, + { -0x76D, 0xA7C, 0x1, 0x5A, 0xC, 0x0 }, + { -0x6F1, 0x928, 0x1, 0x5A, 0xC, 0x0 }, + { -0x675, 0x7D4, 0x1, 0x5A, 0xC, 0x0 }, + { -0x5F9, 0x680, 0x1, 0x5A, 0xC, 0x0 }, + { -0x57D, 0x52C, 0x1, 0x5A, 0xC, 0x0 }, + { -0x501, 0x3D8, 0x1, 0x5A, 0xC, 0x0 }, + { -0x49C, 0x163, 0x1, 0x5A, 0xC, 0x0 }, + { -0x411, 0xD0, 0x1, 0x5A, 0xC, 0x0 }, + { -0x386, 0x3C, 0x1, 0x5A, 0xC, 0x0 }, + { -0x2FB, -0x56, 0x1, 0x5A, 0xC, 0x0 }, + { -0x270, -0xE9, 0x1, 0x5A, 0x1B, 0x0 }, + { -0x1E6, -0x17C, 0x1, 0x5A, 0xFF, 0x0 }, + { -0x15B, -0x20F, 0x1, 0x5A, 0xFF, 0x0 }, + { -0xD0, -0x2A3, 0x1, 0x5A, 0xFF, 0x0 }, + { 0x0, 0x0, 0x1, 0x5A, 0xFF, 0x0 }, + { 0x0, -0x300, 0x1, 0x5A, 0xFF, 0x0 }, + { 0x0, 0x0, 0x1, 0x5A, 0xFF, 0x0 }, + { 0x0, -0x120, 0x1, 0x5A, 0xFF, 0x0 }, + { -0x7D, -0x100, 0x1, 0x5A, 0xC, 0x0 }, + { 0x7D, 0x100, 0x1, 0x5A, 0xC, 0x0 }, + { 0x6C8, 0xFF6, 0x1, 0x5A, 0xC, 0x0 }, + { 0x696, 0xF15, 0x1, 0x5A, 0xC, 0x0 }, + { 0x664, 0xE33, 0x1, 0x5A, 0xC, 0x0 }, + { 0x632, 0xD52, 0x1, 0x5A, 0xC, 0x0 }, + { 0x600, 0xC70, 0x1, 0x5A, 0xC, 0x0 }, + { 0x5CE, 0xB8F, 0x1, 0x5A, 0xC, 0x0 }, + { 0x59C, 0xAAD, 0x1, 0x5A, 0xC, 0x0 }, + { 0x56A, 0x9CC, 0x1, 0x5A, 0xC, 0x0 }, + { 0x538, 0x8EA, 0x1, 0x5A, 0xC, 0x0 }, + { 0x506, 0x809, 0x1, 0x5A, 0xC, 0x0 }, + { 0x200, 0x2A4, 0x1, 0x5A, 0xC, 0x0 }, + { 0x23D, 0x274, 0x1, 0x5A, 0xC, 0x0 }, + { 0x27B, 0x244, 0x1, 0x5A, 0xC, 0x0 }, + { 0x2B8, 0x214, 0x1, 0x5A, 0xC, 0x0 }, + { 0x2F5, 0x1E5, 0x1, 0x5A, 0xC, 0x0 }, + { 0x333, 0x1B5, 0x1, 0x5A, 0xC, 0x0 }, + { 0x370, 0x185, 0x1, 0x5A, 0xC, 0x0 }, + { 0x3AD, 0x155, 0x1, 0x5A, 0xC, 0x0 }, + { 0x3EB, 0x126, 0x1, 0x5A, 0xC, 0x0 }, + { 0x428, 0xF6, 0x1, 0x5A, 0xC, 0x0 }, + { 0x466, 0xC6, 0x1, 0x5A, 0xC, 0x0 }, + { 0x4A3, 0x96, 0x1, 0x5A, 0xC, 0x0 }, + { 0x4E0, 0x67, 0x1, 0x5A, 0xC, 0x0 }, + { 0x51E, 0x37, 0x1, 0x5A, 0xC, 0x0 }, + { 0x6AB, 0x20, 0x1, 0x5A, 0xC, 0x0 }, + { 0x608, -0x1F, 0x1, 0x5A, 0xC, 0x0 }, + { 0x566, -0x60, 0x1, 0x5A, 0xC, 0x0 }, + { 0x4C3, -0xA0, 0x1, 0x5A, 0xC, 0x0 }, + { 0x420, -0xE0, 0x1, 0x5A, 0x1B, 0x0 }, + { 0x37E, -0x120, 0x1, 0x5A, 0xFF, 0x0 }, + { 0x2DB, -0x160, 0x1, 0x5A, 0xFF, 0x0 }, + { 0x239, -0x1A0, 0x1, 0x5A, 0xFF, 0x0 }, + { 0x196, -0x1E0, 0x1, 0x5A, 0xFF, 0x0 }, + { 0xF3, -0x220, 0x1, 0x5A, 0xFF, 0x0 }, + { 0x0, 0x0, 0x1, 0x5A, 0xFF, 0x0 }, + { 0x0, -0x280, 0x1, 0x5A, 0xFF, 0x0 }, + { 0x0, 0x0, 0x1, 0x5A, 0xFF, 0x0 }, + { 0x0, -0x1E0, 0x1, 0x5A, 0xFF, 0x0 }, + { -0x18, -0x66, 0x1, 0x5A, 0xC, 0x0 }, + { 0x18, 0x66, 0x1, 0x5A, 0xC, 0x0 }, + { -0x7C, 0x6A9, 0x1, 0x5A, 0xC, 0x0 }, + { -0x2D, 0x6A0, 0x1, 0x5A, 0xC, 0x0 }, + { 0x20, 0x696, 0x1, 0x5A, 0xC, 0x0 }, + { 0x6F, 0x68D, 0x1, 0x5A, 0xC, 0x0 }, + { 0xBE, 0x684, 0x1, 0x5A, 0xC, 0x0 }, + { 0x10C, 0x67B, 0x1, 0x5A, 0xC, 0x0 }, + { 0x15B, 0x672, 0x1, 0x5A, 0xC, 0x0 }, + { 0x1A9, 0x669, 0x1, 0x5A, 0xC, 0x0 }, + { 0x1F8, 0x65F, 0x1, 0x5A, 0xC, 0x0 }, + { 0x246, 0x656, 0x1, 0x5A, 0xC, 0x0 }, + { 0x295, 0x64D, 0x1, 0x5A, 0xC, 0x0 }, + { 0x2E4, 0x644, 0x1, 0x5A, 0xC, 0x0 }, + { 0x332, 0x63B, 0x1, 0x5A, 0xC, 0x0 }, + { 0x381, 0x632, 0x1, 0x5A, 0xC, 0x0 }, + { 0x531, 0x600, 0x1, 0x5A, 0xC, 0x0 }, + { 0x531, 0x600, 0x1, 0x5A, 0xC, 0x0 }, + { 0x531, 0x600, 0x1, 0x5A, 0xC, 0x0 }, + { 0x531, 0x600, 0x1, 0x5A, 0xC, 0x0 }, + { 0x531, 0x600, 0x1, 0x5A, 0xC, 0x0 }, + { 0x531, 0x5FF, 0x1, 0x5A, 0xC, 0x0 }, + { 0x531, 0x600, 0x1, 0x5A, 0xC, 0x0 }, + { 0x531, 0x600, 0x1, 0x5A, 0xC, 0x0 }, + { 0x531, 0x5FF, 0x1, 0x5A, 0xC, 0x0 }, + { 0x531, 0x600, 0x1, 0x5A, 0xC, 0x0 }, + { 0x531, 0x600, 0x1, 0x5A, 0xC, 0x0 }, + { 0x531, 0x600, 0x1, 0x5A, 0xC, 0x0 }, + { 0x702, 0x819, 0x1, 0x5A, 0xC, 0x0 }, + { 0x67D, 0x780, 0x1, 0x5A, 0xC, 0x0 }, + { 0x5F8, 0x6E6, 0x1, 0x5A, 0xC, 0x0 }, + { 0x573, 0x64C, 0x1, 0x5A, 0xFF, 0x0 }, + { 0x4EE, 0x5B3, 0x1, 0x5A, 0xFF, 0x0 }, + { 0x469, 0x519, 0x1, 0x5A, 0xFF, 0x0 }, + { 0x3E5, 0x480, 0x1, 0x5A, 0xFF, 0x0 }, + { 0x360, 0x3E6, 0x1, 0x5A, 0xFF, 0x0 }, + { 0x0, 0x0, 0x1, 0x5A, 0xFF, 0x0 }, + { 0x0, 0x0, 0x1, 0x5A, 0xFF, 0x0 }, + { 0x0, 0x0, 0x1, 0x5A, 0xFF, 0x0 }, + { 0x0, 0x0, 0x1, 0x5A, 0xFF, 0x0 }, + { 0x0, 0x0, 0x1, 0x5A, 0xFF, 0x0 }, + { 0x0, 0x0, 0x1, 0x5A, 0xFF, 0x0 }, + { 0x0, 0x0, 0x1, 0x5A, 0xFF, 0x0 }, + { 0x0, 0x0, 0x1, 0x5A, 0xFF, 0x0 }, + { 0x0, 0x0, 0x1, 0x5A, 0xFF, 0x0 }, + { 0x0, 0x0, 0x1, 0x5A, 0xFF, 0x0 }, + { 0x0, 0x0, 0x1, 0x5A, 0xFF, 0x0 }, + { 0x0, 0x0, 0x1, 0x5A, 0xFF, 0x0 }, + { 0x0, 0x0, 0x1, 0x5A, 0x0, 0x0 }, + { 0x0, 0x0, 0x1, 0x5A, 0xFF, 0x0 }, + { 0x0, 0x0, 0x1, 0x5A, 0xFF, 0x0 }, + { 0x0, 0x0, 0x1, 0x5A, 0xFF, 0x0 }, + { 0x0, 0x0, 0x1, 0x5A, 0xFF, 0x0 }, + { 0x0, 0x0, 0x1, 0x5A, 0xFF, 0x0 }, + { 0x0, 0x0, 0x1, 0x5A, 0xFF, 0x0 }, + { 0x0, 0x0, 0x1, 0x5A, 0xFF, 0x0 }, + { 0x0, 0x0, 0x1, 0x5A, 0xFF, 0x0 }, + { 0x0, 0x0, 0x1, 0x5A, 0xFF, 0x0 }, + { 0x0, 0x0, 0x1, 0x5A, 0xFF, 0x0 }, + { 0x0, 0x0, 0x1, 0x5A, 0xFF, 0x0 }, + { 0x0, 0x0, 0x1, 0x5A, 0xFF, 0x0 }, + { 0x0, 0x0, 0x1, 0x5A, 0xFF, 0x0 }, + { 0x0, 0x0, 0x1, 0x5A, 0xFF, 0x0 }, + { 0x0, 0x0, 0x1, 0x5A, 0xFF, 0x0 }, + { 0x0, 0x0, 0x1, 0x5A, 0xFF, 0x0 }, + { 0x0, 0x0, 0x1, 0x5A, 0xFF, 0x0 }, + { 0x0, 0x0, 0x1, 0x5A, 0xFF, 0x0 }, + { 0x0, 0x0, 0x1, 0x5A, 0xFF, 0x0 }, + { 0x0, 0x0, 0x1, 0x5A, 0xFF, 0x0 }, + { 0x0, 0x0, 0x1, 0x5A, 0xFF, 0x0 }, + { 0x0, 0x0, 0x1, 0x5A, 0xFF, 0x0 }, + { 0x0, 0x0, 0x1, 0x5A, 0xFF, 0x0 }, + { 0x0, 0x0, 0x1, 0x5A, 0xFF, 0x0 }, + { 0x0, 0x0, 0x1, 0x5A, 0xFF, 0x0 }, + { 0x0, 0x0, 0x1, 0x5A, 0xFF, 0x0 }, + { 0x0, 0x0, 0x1, 0x5A, 0xFF, 0x0 }, + { 0x0, 0x0, 0x0, 0x5A, 0xFF, 0x40 }, + { 0x0, 0x0, 0x1, 0x5A, 0xFF, 0x0 }, + { 0x0, 0x0, 0x1, 0x5A, 0xFF, 0x0 }, + { 0x0, 0x0, 0x1, 0x5A, 0xFF, 0x0 }, + { 0x0, 0x0, 0x1, 0x5A, 0xFF, 0x0 }, + { 0x0, 0x0, 0x1, 0x5A, 0xFF, 0x0 }, + { 0x0, 0x0, 0x1, 0x5A, 0xFF, 0x0 }, + { 0x0, 0x0, 0x1, 0x5A, 0xFF, 0x0 }, + { 0x0, 0x0, 0x1, 0x5A, 0xFF, 0x0 }, + { 0x0, 0x0, 0x1, 0x5A, 0xFF, 0x0 }, + { 0x0, 0x0, 0x1, 0x5A, 0xFF, 0x0 }, + { 0x0, 0x0, 0x1, 0x5A, 0xFF, 0x0 }, + { 0x0, 0x0, 0x1, 0x5A, 0xFF, 0x0 }, + { 0x0, 0x0, 0x1, 0x5A, 0xFF, 0x0 }, + { 0x0, 0x0, 0x1, 0x5A, 0xFF, 0x0 }, + { 0x0, 0x0, 0x1, 0x5A, 0xFF, 0x0 }, + { 0x0, 0x0, 0x1, 0x5A, 0xFF, 0x0 }, + { 0x0, 0x0, 0x1, 0x5A, 0xFF, 0x0 }, + { 0x0, 0x0, 0x1, 0x5A, 0xFF, 0x0 }, + { 0x0, 0x0, 0x1, 0x5A, 0xFF, 0x0 }, + { 0x0, 0x0, 0x1, 0x5A, 0xFF, 0x0 }, + { 0x0, 0x0, 0x1, 0x5A, 0xFF, 0x0 }, + { 0x0, 0x0, 0x1, 0x5A, 0xFF, 0x0 }, + { 0x0, 0x0, 0x1, 0x5A, 0xFF, 0x0 }, + { 0x0, 0x0, 0x1, 0x5A, 0xFF, 0x0 }, + { 0x0, 0x0, 0x1, 0x5A, 0xFF, 0x0 }, + { 0x0, 0x0, 0x1, 0x5A, 0xFF, 0x0 }, + { 0x0, 0x0, 0x1, 0x5A, 0xFF, 0x0 }, + { 0x0, 0x0, 0x1, 0x5A, 0xFF, 0x0 }, + { 0x0, 0x0, 0x1, 0x5A, 0xFF, 0x0 }, + { 0x20, -0x25, 0x1, 0x5A, 0xFF, 0x0 }, + { 0x494, -0x7A9, 0x1, 0x5A, 0xC, 0x0 }, + { 0x48A, -0x774, 0x1, 0x5A, 0xC, 0x0 }, + { 0x480, -0x740, 0x1, 0x5A, 0xC, 0x0 }, + { 0x475, -0x70B, 0x1, 0x5A, 0xC, 0x0 }, + { 0x46B, -0x6D6, 0x1, 0x5A, 0xC, 0x0 }, + { 0x461, -0x6A1, 0x1, 0x5A, 0xC, 0x0 }, + { 0x457, -0x66C, 0x1, 0x5A, 0xC, 0x0 }, + { 0x44C, -0x637, 0x1, 0x5A, 0xC, 0x0 }, + { 0x442, -0x602, 0x1, 0x5A, 0xC, 0x0 }, + { 0x438, -0x5CD, 0x1, 0x5A, 0xC, 0x0 }, + { 0x42E, -0x598, 0x1, 0x5A, 0xC, 0x0 }, + { 0x423, -0x563, 0x1, 0x5A, 0xC, 0x0 }, + { 0x419, -0x52E, 0x1, 0x5A, 0xC, 0x0 }, + { 0x40F, -0x4FA, 0x1, 0x5A, 0xC, 0x0 }, + { 0x405, -0x4C5, 0x1, 0x5A, 0xC, 0x0 }, + { 0x3FA, -0x490, 0x1, 0x5A, 0xC, 0x0 }, + { 0x3F0, -0x45B, 0x1, 0x5A, 0xC, 0x0 }, + { 0x3E6, -0x426, 0x1, 0x5A, 0xC, 0x0 }, + { 0x3DC, -0x3F1, 0x1, 0x5A, 0xC, 0x0 }, + { 0x3D1, -0x3BC, 0x1, 0x5A, 0xC, 0x0 }, + { 0x3C7, -0x387, 0x1, 0x5A, 0xC, 0x0 }, + { 0x3BD, -0x352, 0x1, 0x5A, 0xC, 0x0 }, + { 0x3B3, -0x31D, 0x1, 0x5A, 0xC, 0x0 }, + { 0x3A8, -0x2E8, 0x1, 0x5A, 0xC, 0x0 }, + { 0x39E, -0x2B4, 0x1, 0x5A, 0xC, 0x0 }, + { 0x394, -0x27F, 0x1, 0x5A, 0xC, 0x0 }, + { 0x38A, -0x24A, 0x1, 0x5A, 0xC, 0x0 }, + { 0x380, -0x215, 0x1, 0x5A, 0xC, 0x0 }, + { 0x375, -0x1E0, 0x1, 0x5A, 0xC, 0x0 }, + { 0x36B, -0x1AB, 0x1, 0x5A, 0xC, 0x0 }, + { 0x4E6, 0x6, 0x1, 0x5A, 0xC, 0x0 }, + { 0x4B3, 0x13, 0x1, 0x5A, 0xC, 0x0 }, + { 0x480, 0x20, 0x1, 0x5A, 0xC, 0x0 }, + { 0x44C, 0x2C, 0x1, 0x5A, 0xC, 0x0 }, + { 0x419, 0x39, 0x1, 0x5A, 0xC, 0x0 }, + { 0x3E6, 0x46, 0x1, 0x5A, 0xC, 0x0 }, + { 0x3B3, 0x53, 0x1, 0x5A, 0xC, 0x0 }, + { 0x380, 0x60, 0x1, 0x5A, 0xC, 0x0 }, + { 0x34C, 0x6C, 0x1, 0x5A, 0xC, 0x0 }, + { 0x319, 0x79, 0x1, 0x5A, 0xC, 0x0 }, + { 0x2E6, 0x86, 0x1, 0x5A, 0xC, 0x0 }, + { 0x2B3, 0x93, 0x1, 0x5A, 0xC, 0x0 }, + { 0x27F, 0xA0, 0x1, 0x5A, 0xC, 0x0 }, + { 0x24C, 0xAC, 0x1, 0x5A, 0xC, 0x0 }, + { 0x219, 0xB9, 0x1, 0x5A, 0xC, 0x0 }, + { 0x1E6, 0xC6, 0x1, 0x5A, 0xC, 0x0 }, + { 0x1B3, 0xD3, 0x1, 0x5A, 0xC, 0x0 }, + { 0x180, 0xE0, 0x1, 0x5A, 0xC, 0x0 }, + { 0x14C, 0xEC, 0x1, 0x5A, 0xC, 0x0 }, + { 0x119, 0xF9, 0x1, 0x5A, 0xC, 0x0 }, + { -0x5D, 0x252, 0x1, 0x5A, 0xC, 0x0 }, + { -0x6E, 0x23C, 0x1, 0x5A, 0xC, 0x0 }, + { -0x7F, 0x226, 0x1, 0x5A, 0xC, 0x0 }, + { -0x91, 0x210, 0x1, 0x5A, 0xC, 0x0 }, + { -0xA2, 0x1FA, 0x1, 0x5A, 0xC, 0x0 }, + { -0xB3, 0x1E3, 0x1, 0x5A, 0xC, 0x0 }, + { -0xC4, 0x1CD, 0x1, 0x5A, 0xFF, 0x0 }, + { -0xD5, 0x1B7, 0x1, 0x5A, 0xFF, 0x0 }, + { -0xE6, 0x1A1, 0x1, 0x5A, 0xFF, 0x0 }, + { -0xF7, 0x18B, 0x1, 0x5A, 0xFF, 0x0 }, + { -0x108, 0x174, 0x1, 0x5A, 0xFF, 0x0 }, + { -0x119, 0x15E, 0x1, 0x5A, 0xFF, 0x0 }, + { -0x12A, 0x148, 0x1, 0x5A, 0xFF, 0x0 }, + { -0x13B, 0x132, 0x1, 0x5A, 0xFF, 0x0 }, + { -0x14C, 0x11C, 0x1, 0x5A, 0xFF, 0x0 }, + { -0x15D, 0x105, 0x1, 0x5A, 0xFF, 0x0 }, + { -0x16E, 0xEF, 0x1, 0x5A, 0xFF, 0x0 }, + { -0x180, 0xD9, 0x1, 0x5A, 0xFF, 0x0 }, + { -0x191, 0xC3, 0x1, 0x5A, 0xFF, 0x0 }, + { -0x1A2, 0xAD, 0x1, 0x5A, 0xFF, 0x0 }, + { 0x0, 0x0, 0x1, 0x5A, 0xFF, 0x0 }, + { -0x252, 0xE6, 0x1, 0x5A, 0xFF, 0x0 }, + { -0x23B, 0xB3, 0x1, 0x5A, 0xFF, 0x0 }, + { -0x223, 0x80, 0x1, 0x5A, 0xFF, 0x0 }, + { -0x20B, 0x4C, 0x1, 0x5A, 0xFF, 0x0 }, + { -0x1F4, 0x19, 0x1, 0x5A, 0xFF, 0x0 }, + { -0x1DC, -0x19, 0x1, 0x5A, 0xFF, 0x0 }, + { -0x1C4, -0x4C, 0x1, 0x5A, 0xFF, 0x0 }, + { -0x1AD, -0x7F, 0x1, 0x5A, 0xFF, 0x0 }, + { -0x195, -0xB3, 0x1, 0x5A, 0xFF, 0x0 }, + { 0x0, 0x0, 0x1, 0x5A, 0xFF, 0x0 }, + { -0x163, -0xC0, 0x1, 0x5A, 0xFF, 0x0 }, + { 0x0, 0x0, 0x1, 0x5A, 0xFF, 0x0 }, + { -0x12A, -0x6A, 0x1, 0x5A, 0xFF, 0x0 }, + { 0x0, 0x0, 0x1, 0x5A, 0xFF, 0x0 }, + { -0xF1, -0x209, 0x1, 0x5A, 0xFF, 0x0 }, + { -0xD5, -0x2E6, 0x1, 0x5A, 0xFF, 0x0 }, + { -0xB8, -0x3C3, 0x1, 0x5A, 0xFF, 0x0 }, + { -0x9C, -0x4A0, 0x1, 0x5A, 0xFF, 0x0 }, + { -0x80, -0x57D, 0x1, 0x5A, 0xFF, 0x0 }, + { 0x0, 0x0, 0x1, 0x5A, 0xFF, 0x0 }, + { 0x0, -0xCD0, 0x1, 0x5A, 0xFF, 0x0 }, + { 0x0, -0xB70, 0x1, 0x5A, 0xFF, 0x0 }, + { 0x0, -0xA10, 0x1, 0x5A, 0xFF, 0x0 }, + { 0x0, -0x8B0, 0x1, 0x5A, 0xFF, 0x0 }, + { 0x0, -0x750, 0x1, 0x5A, 0xFF, 0x0 }, + { 0x0, -0x5F0, 0x1, 0x5A, 0xFF, 0x0 }, + { 0x0, -0x490, 0x1, 0x5A, 0xFF, 0x0 }, + { 0x0, 0x0, 0x1, 0x5A, 0xFF, 0x0 }, + { 0x0, -0x280, 0x1, 0x5A, 0xFF, 0x0 }, + { 0x0, 0x0, 0x1, 0x5A, 0xFF, 0x0 }, + { 0x0, -0x215, 0x1, 0x5A, 0xFF, 0x0 }, + { 0x0, -0x2EA, 0x1, 0x5A, 0xFF, 0x0 }, + { 0x0, -0x3C0, 0x1, 0x5A, 0xFF, 0x0 }, + { 0x0, 0x0, 0x1, 0x5A, 0xFF, 0x0 }, + { 0x0, -0x1E0, 0x1, 0x5A, 0xFF, 0x0 }, + { 0x0, 0x0, 0x1, 0x5A, 0xFF, 0x0 }, + { 0x0, 0x500, 0x1, 0x5A, 0xFF, 0x0 }, + { 0x0, -0x3C0, 0x1, 0x5A, 0x1B, 0x0 }, + { 0x0, -0x140, 0x1, 0x5A, 0xFF, 0x0 }, + { 0x0, 0x0, 0x1, 0x5A, 0xFF, 0x0 }, + { 0x0, 0x280, 0x1, 0x5A, 0xFF, 0x0 }, + { 0x0, 0x0, 0x1, 0x5A, 0xFF, 0x0 }, + { 0x0, 0x280, 0x1, 0x5A, 0xFF, 0x0 }, + { 0x0, 0x0, 0x0, 0x5A, 0xFF, 0x80 }, +}; + +const struct Unk_08353510 gUnk_082DA29C[] = { + { 0x0, 0x0, 0x1, 0x5A, 0xFF, 0x0 }, + { 0x256, -0x3F5, 0x1, 0x5A, 0xFF, 0x0 }, + { 0x252, -0x3AF, 0x1, 0x5A, 0x17, 0x0 }, + { 0x24F, -0x369, 0x1, 0x5A, 0xFF, 0x0 }, + { 0x24B, -0x323, 0x1, 0x5A, 0xFF, 0x0 }, + { 0x248, -0x2DC, 0x1, 0x5A, 0xFF, 0x0 }, + { 0x244, -0x296, 0x1, 0x5A, 0xC, 0x0 }, + { 0x240, -0x250, 0x1, 0x5A, 0xC, 0x0 }, + { 0x23D, -0x20A, 0x1, 0x5A, 0xC, 0x0 }, + { 0x239, -0x1C4, 0x1, 0x5A, 0xC, 0x0 }, + { 0x26A, -0x129, 0x1, 0x5A, 0xC, 0x0 }, + { 0x257, -0xFB, 0x1, 0x5A, 0xC, 0x0 }, + { 0x245, -0xCD, 0x1, 0x5A, 0xC, 0x0 }, + { 0x232, -0x9F, 0x1, 0x5A, 0xC, 0x0 }, + { 0x21F, -0x72, 0x1, 0x5A, 0xC, 0x0 }, + { 0x20D, -0x44, 0x1, 0x5A, 0xC, 0x0 }, + { 0x1FA, -0x16, 0x1, 0x5A, 0xC, 0x0 }, + { 0x1E7, 0x16, 0x1, 0x5A, 0xC, 0x0 }, + { 0x1D5, 0x3B, 0x1, 0x5A, 0xC, 0x0 }, + { 0x1C2, 0x6C, 0x1, 0x5A, 0xC, 0x0 }, + { 0x1B0, 0x9E, 0x1, 0x5A, 0xC, 0x0 }, + { 0x19D, 0xCF, 0x1, 0x5A, 0xC, 0x0 }, + { 0x18A, 0x100, 0x1, 0x5A, 0xC, 0x0 }, + { 0x178, 0x132, 0x1, 0x5A, 0xC, 0x0 }, + { 0x3E7, 0x39D, 0x1, 0x5A, 0xC, 0x0 }, + { 0x372, 0x376, 0x1, 0x5A, 0xC, 0x0 }, + { 0x2FC, 0x350, 0x1, 0x5A, 0xC, 0x0 }, + { 0x287, 0x32A, 0x1, 0x5A, 0xC, 0x0 }, + { 0x212, 0x304, 0x1, 0x5A, 0xC, 0x0 }, + { 0x19C, 0x2DD, 0x1, 0x5A, 0xC, 0x0 }, + { 0x127, 0x2B7, 0x1, 0x5A, 0xC, 0x0 }, + { 0xB1, 0x291, 0x1, 0x5A, 0xC, 0x0 }, + { 0x3C, 0x26B, 0x1, 0x5A, 0xC, 0x0 }, + { -0x39, 0x244, 0x1, 0x5A, 0xC, 0x0 }, + { -0xAE, 0x21E, 0x1, 0x5A, 0xC, 0x0 }, + { -0x124, 0x1F8, 0x1, 0x5A, 0xC, 0x0 }, + { -0x199, 0x1D2, 0x1, 0x5A, 0xC, 0x0 }, + { -0x20F, 0x1AC, 0x1, 0x5A, 0xC, 0x0 }, + { -0x228, 0x3C5, 0x1, 0x5A, 0xC, 0x0 }, + { -0x2B8, 0x2FA, 0x1, 0x5A, 0xC, 0x0 }, + { -0x348, 0x230, 0x1, 0x5A, 0xC, 0x0 }, + { -0x3D8, 0x165, 0x1, 0x5A, 0xC, 0x0 }, + { -0x468, 0x9A, 0x1, 0x5A, 0xC, 0x0 }, + { -0x4F8, -0x30, 0x1, 0x5A, 0xC, 0x0 }, + { -0x588, -0xFA, 0x1, 0x5A, 0xC, 0x0 }, + { -0x618, -0x1C5, 0x1, 0x5A, 0xC, 0x0 }, + { -0x7EA, -0x404, 0x1, 0x5A, 0xC, 0x0 }, + { -0x7A3, -0x3D6, 0x1, 0x5A, 0xC, 0x0 }, + { -0x75C, -0x3A9, 0x1, 0x5A, 0xC, 0x0 }, + { -0x715, -0x37B, 0x1, 0x5A, 0xC, 0x0 }, + { -0x840, -0x5B3, 0x1, 0x5A, 0xC, 0x0 }, + { -0x7C0, -0x527, 0x1, 0x5A, 0xC, 0x0 }, + { -0x73F, -0x49B, 0x1, 0x5A, 0xC, 0x0 }, + { -0x6C0, -0x40F, 0x1, 0x5A, 0xC, 0x0 }, + { -0x640, -0x383, 0x1, 0x5A, 0xC, 0x0 }, + { -0x5BF, -0x2F6, 0x1, 0x5A, 0xC, 0x0 }, + { -0x540, -0x26A, 0x1, 0x5A, 0xC, 0x0 }, + { -0x4C0, -0x1DE, 0x1, 0x5A, 0xC, 0x0 }, + { -0x440, -0x152, 0x1, 0x5A, 0xC, 0x0 }, + { -0x3C0, -0xC6, 0x1, 0x5A, 0xC, 0x0 }, + { -0x340, -0x39, 0x1, 0x5A, 0xC, 0x0 }, + { -0x2C0, 0x52, 0x1, 0x5A, 0xC, 0x0 }, + { -0x23F, 0xDE, 0x1, 0x5A, 0xC, 0x0 }, + { -0x1C0, 0x16A, 0x1, 0x5A, 0xC, 0x0 }, + { -0x7F, 0x3CE, 0x1, 0x5A, 0xC, 0x0 }, + { -0x4C, 0x39E, 0x1, 0x5A, 0xC, 0x0 }, + { -0x19, 0x36D, 0x1, 0x5A, 0xC, 0x0 }, + { 0x19, 0x33D, 0x1, 0x5A, 0xC, 0x0 }, + { 0x4C, 0x30C, 0x1, 0x5A, 0xC, 0x0 }, + { 0x7F, 0x2DC, 0x1, 0x5A, 0xC, 0x0 }, + { 0x24B, 0x2A8, 0x1, 0x5A, 0xC, 0x0 }, + { 0x247, 0x278, 0x1, 0x5A, 0xC, 0x0 }, + { 0x244, 0x248, 0x1, 0x5A, 0xC, 0x0 }, + { 0x240, 0x218, 0x1, 0x5A, 0xC, 0x0 }, + { 0x23C, 0x1E8, 0x1, 0x5A, 0xC, 0x0 }, + { 0x239, 0x1B8, 0x1, 0x5A, 0xC, 0x0 }, + { 0x235, 0x188, 0x1, 0x5A, 0xC, 0x0 }, + { 0x231, 0x158, 0x1, 0x5A, 0xC, 0x0 }, + { 0x22E, 0x127, 0x1, 0x5A, 0xC, 0x0 }, + { 0x22A, 0xF7, 0x1, 0x5A, 0xC, 0x0 }, + { 0x226, 0xC7, 0x1, 0x5A, 0xC, 0x0 }, + { 0x223, 0x97, 0x1, 0x5A, 0xC, 0x0 }, + { 0x21F, 0x67, 0x1, 0x5A, 0xC, 0x0 }, + { 0x21B, 0x37, 0x1, 0x5A, 0xC, 0x0 }, + { 0x218, 0x7, 0x1, 0x5A, 0xC, 0x0 }, + { 0x214, -0x28, 0x1, 0x5A, 0xC, 0x0 }, + { 0x352, -0x224, 0x1, 0x5A, 0xC, 0x0 }, + { 0x328, -0x21E, 0x1, 0x5A, 0xC, 0x0 }, + { 0x2FF, -0x218, 0x1, 0x5A, 0xC, 0x0 }, + { 0x2D5, -0x212, 0x1, 0x5A, 0xC, 0x0 }, + { 0x2AC, -0x20C, 0x1, 0x5A, 0xC, 0x0 }, + { 0x282, -0x206, 0x1, 0x5A, 0xC, 0x0 }, + { 0x259, -0x200, 0x1, 0x5A, 0xC, 0x0 }, + { 0x22F, -0x1FA, 0x1, 0x5A, 0xC, 0x0 }, + { 0x206, -0x1F4, 0x1, 0x5A, 0xC, 0x0 }, + { 0x1DD, -0x1EE, 0x1, 0x5A, 0xC, 0x0 }, + { 0x1B3, -0x1E8, 0x1, 0x5A, 0xC, 0x0 }, + { 0x18A, -0x1E2, 0x1, 0x5A, 0xC, 0x0 }, + { 0x160, -0x1DD, 0x1, 0x5A, 0xC, 0x0 }, + { 0x137, -0x1D7, 0x1, 0x5A, 0xC, 0x0 }, + { 0x10D, -0x1D1, 0x1, 0x5A, 0xC, 0x0 }, + { 0xE4, -0x1CB, 0x1, 0x5A, 0xC, 0x0 }, + { 0xBA, -0x1C5, 0x1, 0x5A, 0xC, 0x0 }, + { 0x91, -0x1BF, 0x1, 0x5A, 0xC, 0x0 }, + { 0x0, -0x1AA, 0x1, 0x5A, 0xC, 0x0 }, + { 0x0, -0x1AA, 0x1, 0x5A, 0xC, 0x0 }, + { 0x0, -0x1AA, 0x1, 0x5A, 0xC, 0x0 }, + { 0x0, -0x1AA, 0x1, 0x5A, 0xC, 0x0 }, + { 0x0, -0x1AA, 0x1, 0x5A, 0xC, 0x0 }, + { 0x0, -0x1AA, 0x1, 0x5A, 0xC, 0x0 }, + { 0x0, -0x2B5, 0x1, 0x5A, 0xC, 0x0 }, + { 0x0, -0x24A, 0x1, 0x5A, 0xC, 0x0 }, + { 0x0, -0x1E0, 0x1, 0x5A, 0xC, 0x0 }, + { 0x0, -0x175, 0x1, 0x5A, 0xC, 0x0 }, + { 0x0, -0x10A, 0x1, 0x5A, 0xC, 0x0 }, + { 0x0, -0xA0, 0x1, 0x5A, 0xC, 0x0 }, + { 0x0, 0xA0, 0x1, 0x5A, 0xC, 0x0 }, + { 0x0, -0xA0, 0x1, 0x5A, 0xC, 0x0 }, + { 0x0, -0x320, 0x1, 0x5A, 0xC, 0x0 }, + { 0x0, -0x1E0, 0x1, 0x5A, 0xC, 0x0 }, + { 0x0, 0x230, 0x1, 0x5A, 0xC, 0x0 }, + { 0x0, 0x190, 0x1, 0x5A, 0xC, 0x0 }, + { 0x0, 0xF0, 0x1, 0x5A, 0xC, 0x0 }, + { 0x0, 0x50, 0x1, 0x5A, 0xC, 0x0 }, + { 0x0, -0x230, 0x1, 0x5A, 0xC, 0x0 }, + { 0x0, -0x190, 0x1, 0x5A, 0xC, 0x0 }, + { 0x0, -0xF0, 0x1, 0x5A, 0xC, 0x0 }, + { 0x0, -0x50, 0x1, 0x5A, 0xC, 0x0 }, + { 0x0, 0x230, 0x1, 0x5A, 0xC, 0x0 }, + { 0x0, 0x190, 0x1, 0x5A, 0xC, 0x0 }, + { 0x0, 0xF0, 0x1, 0x5A, 0xC, 0x0 }, + { 0x0, 0x50, 0x1, 0x5A, 0xC, 0x0 }, + { 0x0, -0x230, 0x1, 0x5A, 0xC, 0x0 }, + { 0x0, -0x190, 0x1, 0x5A, 0xC, 0x0 }, + { 0x0, -0xF0, 0x1, 0x5A, 0xC, 0x0 }, + { 0x0, -0x50, 0x1, 0x5A, 0xC, 0x0 }, + { 0x0, 0x230, 0x1, 0x5A, 0xC, 0x0 }, + { 0x0, 0x190, 0x1, 0x5A, 0xC, 0x0 }, + { 0x0, 0xF0, 0x1, 0x5A, 0xC, 0x0 }, + { 0x0, 0x50, 0x1, 0x5A, 0xC, 0x0 }, + { 0x0, -0x140, 0x1, 0x5A, 0xC, 0x0 }, + { 0x0, -0x140, 0x1, 0x5A, 0xC, 0x0 }, + { 0x0, -0x140, 0x1, 0x5A, 0xC, 0x0 }, + { 0x0, -0x140, 0x1, 0x5A, 0xC, 0x0 }, + { 0x0, -0x140, 0x1, 0x5A, 0xC, 0x0 }, + { 0x0, -0x140, 0x1, 0x5A, 0xC, 0x0 }, + { 0x0, -0x140, 0x1, 0x5A, 0xC, 0x0 }, + { 0x0, -0x140, 0x1, 0x5A, 0xC, 0x0 }, + { 0x0, -0x140, 0x1, 0x5A, 0xC, 0x0 }, + { 0x0, -0x140, 0x1, 0x5A, 0xC, 0x0 }, + { 0x0, -0x140, 0x1, 0x5A, 0xC, 0x0 }, + { 0x0, -0x140, 0x1, 0x5A, 0xC, 0x0 }, + { 0x0, -0x168, 0x1, 0x5A, 0xC, 0x0 }, + { 0x0, -0x14D, 0x1, 0x5A, 0xC, 0x0 }, + { 0x0, -0x132, 0x1, 0x5A, 0xC, 0x0 }, + { 0x0, -0x118, 0x1, 0x5A, 0xC, 0x0 }, + { 0x0, -0x4C1, 0x1, 0x5A, 0xC, 0x0 }, + { 0x0, -0x393, 0x1, 0x5A, 0xC, 0x0 }, + { 0x0, -0x265, 0x1, 0x5A, 0xC, 0x0 }, + { 0x0, -0x137, 0x1, 0x5A, 0xC, 0x0 }, + { 0x0, -0x8, 0x1, 0x5A, 0xC, 0x0 }, + { 0x0, 0x125, 0x1, 0x5A, 0xC, 0x0 }, + { 0x0, 0x253, 0x1, 0x5A, 0xC, 0x0 }, + { 0x0, 0x381, 0x1, 0x5A, 0xC, 0x0 }, + { 0x0, 0x547, 0x1, 0x5A, 0xB, 0x0 }, + { 0x0, 0x547, 0x1, 0x5A, 0xFF, 0x0 }, + { 0x0, 0x547, 0x1, 0x5A, 0xC, 0x0 }, + { 0x0, 0x547, 0x1, 0x5A, 0xC, 0x0 }, + { 0x0, 0x547, 0x1, 0x5A, 0xC, 0x0 }, + { 0x0, 0x547, 0x1, 0x5A, 0xC, 0x0 }, + { 0x0, 0x547, 0x1, 0x5A, 0xC, 0x0 }, + { 0x0, 0x547, 0x1, 0x5A, 0xC, 0x0 }, + { 0x0, 0x547, 0x1, 0x5A, 0x0, 0x0 }, + { 0x0, 0x547, 0x1, 0x5A, 0xFF, 0x0 }, + { 0x0, 0x547, 0x1, 0x5A, 0xFF, 0x0 }, + { 0x0, 0x547, 0x1, 0x5A, 0xFF, 0x0 }, + { 0x0, 0x547, 0x1, 0x5A, 0xFF, 0x0 }, + { 0x0, 0x547, 0x1, 0x5A, 0xFF, 0x0 }, + { 0x0, 0x547, 0x1, 0x5A, 0xFF, 0x0 }, + { 0x0, 0x547, 0x1, 0x5A, 0xFF, 0x0 }, + { 0x0, 0x547, 0x1, 0x5A, 0xFF, 0x0 }, + { 0x0, 0x547, 0x1, 0x5A, 0xFF, 0x0 }, + { 0x0, 0x547, 0x1, 0x5A, 0xFF, 0x0 }, + { 0x0, 0x547, 0x1, 0x5A, 0xFF, 0x0 }, + { 0x0, 0x547, 0x1, 0x5A, 0xFF, 0x0 }, + { 0x0, 0x547, 0x1, 0x5A, 0xFF, 0x0 }, + { 0x0, 0x547, 0x1, 0x5A, 0xFF, 0x0 }, + { 0x0, 0x547, 0x1, 0x5A, 0xFF, 0x0 }, + { 0x0, 0x547, 0x1, 0x5A, 0xFF, 0x0 }, + { 0x0, 0x547, 0x1, 0x5A, 0xFF, 0x0 }, + { 0x0, 0x547, 0x1, 0x5A, 0xFF, 0x0 }, + { 0x0, 0x547, 0x1, 0x5A, 0xFF, 0x0 }, + { 0x0, 0x547, 0x1, 0x5A, 0xFF, 0x0 }, + { 0x0, 0x547, 0x1, 0x5A, 0xFF, 0x0 }, + { 0x0, 0x547, 0x1, 0x5A, 0xFF, 0x0 }, + { 0x0, 0x547, 0x1, 0x5A, 0xFF, 0x0 }, + { 0x0, 0x547, 0x1, 0x5A, 0xFF, 0x0 }, + { 0x0, 0x547, 0x1, 0x5A, 0xFF, 0x0 }, + { 0x0, 0x547, 0x1, 0x5A, 0xFF, 0x0 }, + { 0x0, 0x547, 0x1, 0x5A, 0xFF, 0x0 }, + { 0x0, 0x0, 0x0, 0x5A, 0xFF, 0x40 }, + { 0x0, 0x9F5, 0x1, 0x5A, 0xC, 0x0 }, + { 0x0, 0x9B1, 0x1, 0x5A, 0xC, 0x0 }, + { 0x0, 0x96E, 0x1, 0x5A, 0xC, 0x0 }, + { 0x0, 0x92A, 0x1, 0x5A, 0xC, 0x0 }, + { 0x0, 0x8E6, 0x1, 0x5A, 0xC, 0x0 }, + { 0x0, 0x8A2, 0x1, 0x5A, 0xC, 0x0 }, + { 0x0, 0x85F, 0x1, 0x5A, 0xC, 0x0 }, + { 0x0, 0x81B, 0x1, 0x5A, 0xC, 0x0 }, + { 0x0, 0x7D7, 0x1, 0x5A, 0xC, 0x0 }, + { 0x0, 0x793, 0x1, 0x5A, 0xC, 0x0 }, + { 0x0, 0x74F, 0x1, 0x5A, 0xC, 0x0 }, + { 0x0, 0x70C, 0x1, 0x5A, 0xC, 0x0 }, + { 0x0, 0x6C8, 0x1, 0x5A, 0xC, 0x0 }, + { 0x0, 0x684, 0x1, 0x5A, 0xC, 0x0 }, + { 0x0, 0x640, 0x1, 0x5A, 0xC, 0x0 }, + { 0x0, 0x5FD, 0x1, 0x5A, 0xC, 0x0 }, + { 0x0, 0x5B9, 0x1, 0x5A, 0xC, 0x0 }, + { 0x0, 0x575, 0x1, 0x5A, 0xC, 0x0 }, + { 0x0, 0x531, 0x1, 0x5A, 0xC, 0x0 }, + { 0x0, 0x4ED, 0x1, 0x5A, 0xC, 0x0 }, + { 0x0, 0x4AA, 0x1, 0x5A, 0xC, 0x0 }, + { 0x0, 0x466, 0x1, 0x5A, 0xC, 0x0 }, + { 0x0, 0x422, 0x1, 0x5A, 0xC, 0x0 }, + { 0x0, 0x3DE, 0x1, 0x5A, 0xC, 0x0 }, + { 0x0, 0x39A, 0x1, 0x5A, 0xC, 0x0 }, + { 0x0, 0x357, 0x1, 0x5A, 0xC, 0x0 }, + { 0x0, 0x313, 0x1, 0x5A, 0xC, 0x0 }, + { 0x0, 0x2CF, 0x1, 0x5A, 0xC, 0x0 }, + { 0x0, 0x28B, 0x1, 0x5A, 0xC, 0x0 }, + { 0x0, 0x248, 0x1, 0x5A, 0xC, 0x0 }, + { 0x0, 0x204, 0x1, 0x5A, 0xC, 0x0 }, + { 0x0, 0x1C0, 0x1, 0x5A, 0xFF, 0x0 }, + { 0x0, 0x17C, 0x1, 0x5A, 0xFF, 0x0 }, + { 0x0, 0x138, 0x1, 0x5A, 0xFF, 0x0 }, + { 0x0, 0xF5, 0x1, 0x5A, 0xFF, 0x0 }, + { 0x0, 0xB1, 0x1, 0x5A, 0xFF, 0x0 }, + { 0x0, 0x6D, 0x1, 0x5A, 0xFF, 0x0 }, + { 0x0, 0x29, 0x1, 0x5A, 0xFF, 0x0 }, + { 0x0, -0x19, 0x1, 0x5A, 0xFF, 0x0 }, + { 0x0, -0x5D, 0x1, 0x5A, 0xFF, 0x0 }, + { 0x0, -0xA1, 0x1, 0x5A, 0xFF, 0x0 }, + { 0x0, -0xE5, 0x1, 0x5A, 0xFF, 0x0 }, + { 0x0, -0x129, 0x1, 0x5A, 0xFF, 0x0 }, + { 0x0, -0x16C, 0x1, 0x5A, 0xFF, 0x0 }, + { 0x0, -0x1B0, 0x1, 0x5A, 0xFF, 0x0 }, + { 0x0, -0x1F4, 0x1, 0x5A, 0xFF, 0x0 }, + { 0x0, -0x238, 0x1, 0x5A, 0xFF, 0x0 }, + { 0x0, -0x27C, 0x1, 0x5A, 0xFF, 0x0 }, + { 0x0, -0x2BF, 0x1, 0x5A, 0xFF, 0x0 }, + { 0x0, -0x303, 0x1, 0x5A, 0xFF, 0x0 }, + { 0x0, -0x347, 0x1, 0x5A, 0xFF, 0x0 }, + { 0x0, -0x38B, 0x1, 0x5A, 0xFF, 0x0 }, + { 0x0, -0x3CE, 0x1, 0x5A, 0xFF, 0x0 }, + { 0x0, -0x412, 0x1, 0x5A, 0xFF, 0x0 }, + { 0x0, -0x456, 0x1, 0x5A, 0xFF, 0x0 }, + { 0x0, -0x49A, 0x1, 0x5A, 0xFF, 0x0 }, + { 0x0, -0x500, 0x1, 0x5A, 0xC, 0x0 }, + { 0x0, -0x500, 0x1, 0x5A, 0xC, 0x0 }, + { 0x0, 0x0, 0x0, 0x5A, 0xFF, 0x80 }, +}; + +const struct Unk_08353510 gUnk_082DAECC[] = { + { 0x25A, -0x43B, 0x1, 0x5A, 0xC, 0x0 }, + { 0x256, -0x3F5, 0x1, 0x5A, 0xC, 0x0 }, + { 0x252, -0x3AF, 0x1, 0x5A, 0xC, 0x0 }, + { 0x24F, -0x369, 0x1, 0x5A, 0xC, 0x0 }, + { 0x24B, -0x323, 0x1, 0x5A, 0xC, 0x0 }, + { 0x248, -0x2DC, 0x1, 0x5A, 0xC, 0x0 }, + { 0x244, -0x296, 0x1, 0x5A, 0xC, 0x0 }, + { 0x240, -0x250, 0x1, 0x5A, 0xC, 0x0 }, + { 0x23D, -0x20A, 0x1, 0x5A, 0xC, 0x0 }, + { 0x239, -0x1C4, 0x1, 0x5A, 0xC, 0x0 }, + { 0x26A, -0x129, 0x1, 0x5A, 0xC, 0x0 }, + { 0x257, -0xFB, 0x1, 0x5A, 0xC, 0x0 }, + { 0x245, -0xCD, 0x1, 0x5A, 0xC, 0x0 }, + { 0x232, -0x9F, 0x1, 0x5A, 0xC, 0x0 }, + { 0x21F, -0x72, 0x1, 0x5A, 0xC, 0x0 }, + { 0x20D, -0x44, 0x1, 0x5A, 0xC, 0x0 }, + { 0x1FA, -0x16, 0x1, 0x5A, 0xC, 0x0 }, + { 0x1E7, 0x16, 0x1, 0x5A, 0xC, 0x0 }, + { 0x1D5, 0x4D, 0x1, 0x5A, 0x17, 0x0 }, + { 0x1C2, 0x77, 0x1, 0x5A, 0xFF, 0x0 }, + { 0x1B0, 0xA1, 0x1, 0x5A, 0xFF, 0x0 }, + { 0x19D, 0xCB, 0x1, 0x5A, 0xFF, 0x0 }, + { 0x18A, 0xF5, 0x1, 0x5A, 0xFF, 0x0 }, + { 0x178, 0x11F, 0x1, 0x5A, 0xFF, 0x0 }, + { 0x3E7, 0x2DD, 0x1, 0x5A, 0xC, 0x0 }, + { 0x372, 0x2C9, 0x1, 0x5A, 0xC, 0x0 }, + { 0x2FC, 0x2B5, 0x1, 0x5A, 0xC, 0x0 }, + { 0x287, 0x2A1, 0x1, 0x5A, 0xC, 0x0 }, + { 0x212, 0x28D, 0x1, 0x5A, 0xC, 0x0 }, + { 0x19C, 0x279, 0x1, 0x5A, 0xC, 0x0 }, + { 0x127, 0x265, 0x1, 0x5A, 0xC, 0x0 }, + { 0xB1, 0x251, 0x1, 0x5A, 0xC, 0x0 }, + { 0x3C, 0x23D, 0x1, 0x5A, 0xC, 0x0 }, + { -0x39, 0x229, 0x1, 0x5A, 0xC, 0x0 }, + { -0xAE, 0x215, 0x1, 0x5A, 0xC, 0x0 }, + { -0x124, 0x201, 0x1, 0x5A, 0xC, 0x0 }, + { -0x199, 0x1ED, 0x1, 0x5A, 0xC, 0x0 }, + { -0x20F, 0x1D9, 0x1, 0x5A, 0xC, 0x0 }, + { -0x228, 0x490, 0x1, 0x5A, 0xC, 0x0 }, + { -0x2B8, 0x3B0, 0x1, 0x5A, 0xC, 0x0 }, + { -0x348, 0x2D0, 0x1, 0x5A, 0xC, 0x0 }, + { -0x3D8, 0x1F0, 0x1, 0x5A, 0xC, 0x0 }, + { -0x468, 0x110, 0x1, 0x5A, 0xC, 0x0 }, + { -0x4F8, 0x30, 0x1, 0x5A, 0xC, 0x0 }, + { -0x588, -0xB0, 0x1, 0x5A, 0xC, 0x0 }, + { -0x618, -0x190, 0x1, 0x5A, 0xC, 0x0 }, + { -0x7EA, -0x404, 0x1, 0x5A, 0xC, 0x0 }, + { -0x7A3, -0x3D6, 0x1, 0x5A, 0xC, 0x0 }, + { -0x75C, -0x3A9, 0x1, 0x5A, 0xC, 0x0 }, + { -0x715, -0x37B, 0x1, 0x5A, 0xC, 0x0 }, + { -0x840, -0x5B3, 0x1, 0x5A, 0xC, 0x0 }, + { -0x7C0, -0x527, 0x1, 0x5A, 0xC, 0x0 }, + { -0x73F, -0x49B, 0x1, 0x5A, 0xC, 0x0 }, + { -0x6C0, -0x40F, 0x1, 0x5A, 0xC, 0x0 }, + { -0x640, -0x383, 0x1, 0x5A, 0xC, 0x0 }, + { -0x5BF, -0x2F6, 0x1, 0x5A, 0xC, 0x0 }, + { -0x540, -0x26A, 0x1, 0x5A, 0xC, 0x0 }, + { -0x4C0, -0x1DE, 0x1, 0x5A, 0xC, 0x0 }, + { -0x440, -0x152, 0x1, 0x5A, 0xC, 0x0 }, + { -0x3C0, -0xC6, 0x1, 0x5A, 0xC, 0x0 }, + { -0x340, -0x39, 0x1, 0x5A, 0xC, 0x0 }, + { -0x2C0, 0x52, 0x1, 0x5A, 0xC, 0x0 }, + { -0x23F, 0xDE, 0x1, 0x5A, 0xC, 0x0 }, + { -0x1C0, 0x16A, 0x1, 0x5A, 0xC, 0x0 }, + { -0x7F, 0x3CE, 0x1, 0x5A, 0xC, 0x0 }, + { -0x4C, 0x39E, 0x1, 0x5A, 0xC, 0x0 }, + { -0x19, 0x36D, 0x1, 0x5A, 0xC, 0x0 }, + { 0x19, 0x33D, 0x1, 0x5A, 0xC, 0x0 }, + { 0x4C, 0x30C, 0x1, 0x5A, 0xC, 0x0 }, + { 0x7F, 0x2DC, 0x1, 0x5A, 0xC, 0x0 }, + { 0x24B, 0x2A8, 0x1, 0x5A, 0xC, 0x0 }, + { 0x247, 0x278, 0x1, 0x5A, 0xC, 0x0 }, + { 0x244, 0x248, 0x1, 0x5A, 0xC, 0x0 }, + { 0x240, 0x218, 0x1, 0x5A, 0xC, 0x0 }, + { 0x23C, 0x1E8, 0x1, 0x5A, 0xC, 0x0 }, + { 0x239, 0x1B8, 0x1, 0x5A, 0xC, 0x0 }, + { 0x235, 0x188, 0x1, 0x5A, 0xC, 0x0 }, + { 0x231, 0x158, 0x1, 0x5A, 0xC, 0x0 }, + { 0x22E, 0x127, 0x1, 0x5A, 0xC, 0x0 }, + { 0x22A, 0xF7, 0x1, 0x5A, 0xC, 0x0 }, + { 0x226, 0xC7, 0x1, 0x5A, 0xC, 0x0 }, + { 0x223, 0x97, 0x1, 0x5A, 0xC, 0x0 }, + { 0x21F, 0x67, 0x1, 0x5A, 0xC, 0x0 }, + { 0x21B, 0x37, 0x1, 0x5A, 0xC, 0x0 }, + { 0x218, 0x7, 0x1, 0x5A, 0xC, 0x0 }, + { 0x214, -0x28, 0x1, 0x5A, 0xC, 0x0 }, + { 0x352, -0x224, 0x1, 0x5A, 0xC, 0x0 }, + { 0x328, -0x21E, 0x1, 0x5A, 0xC, 0x0 }, + { 0x2FF, -0x218, 0x1, 0x5A, 0xC, 0x0 }, + { 0x2D5, -0x212, 0x1, 0x5A, 0xC, 0x0 }, + { 0x2AC, -0x20C, 0x1, 0x5A, 0xC, 0x0 }, + { 0x282, -0x206, 0x1, 0x5A, 0xC, 0x0 }, + { 0x259, -0x200, 0x1, 0x5A, 0xC, 0x0 }, + { 0x22F, -0x1FA, 0x1, 0x5A, 0xC, 0x0 }, + { 0x206, -0x1F4, 0x1, 0x5A, 0xC, 0x0 }, + { 0x1DD, -0x1EE, 0x1, 0x5A, 0xC, 0x0 }, + { 0x1B3, -0x1E8, 0x1, 0x5A, 0xC, 0x0 }, + { 0x18A, -0x1E2, 0x1, 0x5A, 0xC, 0x0 }, + { 0x160, -0x1DD, 0x1, 0x5A, 0xC, 0x0 }, + { 0x137, -0x1D7, 0x1, 0x5A, 0xC, 0x0 }, + { 0x10D, -0x1D1, 0x1, 0x5A, 0xC, 0x0 }, + { 0xE4, -0x1CB, 0x1, 0x5A, 0xC, 0x0 }, + { 0xBA, -0x1C5, 0x1, 0x5A, 0xC, 0x0 }, + { 0x91, -0x1BF, 0x1, 0x5A, 0xC, 0x0 }, + { 0x0, -0x1AA, 0x1, 0x5A, 0xC, 0x0 }, + { 0x0, -0x1AA, 0x1, 0x5A, 0xC, 0x0 }, + { 0x0, -0x1AA, 0x1, 0x5A, 0xC, 0x0 }, + { 0x0, -0x1AA, 0x1, 0x5A, 0xC, 0x0 }, + { 0x0, -0x1AA, 0x1, 0x5A, 0xC, 0x0 }, + { 0x0, -0x1AA, 0x1, 0x5A, 0xC, 0x0 }, + { 0x0, -0x2B5, 0x1, 0x5A, 0xC, 0x0 }, + { 0x0, -0x24A, 0x1, 0x5A, 0xC, 0x0 }, + { 0x0, -0x1E0, 0x1, 0x5A, 0xC, 0x0 }, + { 0x0, -0x175, 0x1, 0x5A, 0xC, 0x0 }, + { 0x0, -0x10A, 0x1, 0x5A, 0xC, 0x0 }, + { 0x0, -0xA0, 0x1, 0x5A, 0xC, 0x0 }, + { 0x0, 0xA0, 0x1, 0x5A, 0xC, 0x0 }, + { 0x0, -0xA0, 0x1, 0x5A, 0xC, 0x0 }, + { 0x0, -0x320, 0x1, 0x5A, 0xC, 0x0 }, + { 0x0, -0x1E0, 0x1, 0x5A, 0xC, 0x0 }, + { 0x0, 0x230, 0x1, 0x5A, 0xC, 0x0 }, + { 0x0, 0x190, 0x1, 0x5A, 0xC, 0x0 }, + { 0x0, 0xF0, 0x1, 0x5A, 0xC, 0x0 }, + { 0x0, 0x50, 0x1, 0x5A, 0xC, 0x0 }, + { 0x0, -0x230, 0x1, 0x5A, 0xC, 0x0 }, + { 0x0, -0x190, 0x1, 0x5A, 0xC, 0x0 }, + { 0x0, -0xF0, 0x1, 0x5A, 0xC, 0x0 }, + { 0x0, -0x50, 0x1, 0x5A, 0xC, 0x0 }, + { 0x0, 0x230, 0x1, 0x5A, 0xC, 0x0 }, + { 0x0, 0x190, 0x1, 0x5A, 0xC, 0x0 }, + { 0x0, 0xF0, 0x1, 0x5A, 0xC, 0x0 }, + { 0x0, 0x50, 0x1, 0x5A, 0xC, 0x0 }, + { 0x0, -0x230, 0x1, 0x5A, 0xC, 0x0 }, + { 0x0, -0x190, 0x1, 0x5A, 0xC, 0x0 }, + { 0x0, -0xF0, 0x1, 0x5A, 0xC, 0x0 }, + { 0x0, -0x50, 0x1, 0x5A, 0xC, 0x0 }, + { 0x0, 0x230, 0x1, 0x5A, 0xC, 0x0 }, + { 0x0, 0x190, 0x1, 0x5A, 0xC, 0x0 }, + { 0x0, 0xF0, 0x1, 0x5A, 0xC, 0x0 }, + { 0x0, 0x50, 0x1, 0x5A, 0xC, 0x0 }, + { 0x0, -0x140, 0x1, 0x5A, 0xC, 0x0 }, + { 0x0, -0x140, 0x1, 0x5A, 0xC, 0x0 }, + { 0x0, -0x140, 0x1, 0x5A, 0xC, 0x0 }, + { 0x0, -0x140, 0x1, 0x5A, 0xC, 0x0 }, + { 0x0, -0x140, 0x1, 0x5A, 0xC, 0x0 }, + { 0x0, -0x140, 0x1, 0x5A, 0xC, 0x0 }, + { 0x0, -0x140, 0x1, 0x5A, 0xC, 0x0 }, + { 0x0, -0x140, 0x1, 0x5A, 0xC, 0x0 }, + { 0x0, -0x140, 0x1, 0x5A, 0xC, 0x0 }, + { 0x0, -0x140, 0x1, 0x5A, 0xC, 0x0 }, + { 0x0, -0x140, 0x1, 0x5A, 0xC, 0x0 }, + { 0x0, -0x140, 0x1, 0x5A, 0xC, 0x0 }, + { 0x0, -0x168, 0x1, 0x5A, 0xC, 0x0 }, + { 0x0, -0x14D, 0x1, 0x5A, 0xC, 0x0 }, + { 0x0, -0x132, 0x1, 0x5A, 0xC, 0x0 }, + { 0x0, -0x118, 0x1, 0x5A, 0xC, 0x0 }, + { 0x0, -0x4C1, 0x1, 0x5A, 0xC, 0x0 }, + { 0x0, -0x393, 0x1, 0x5A, 0xC, 0x0 }, + { 0x0, -0x265, 0x1, 0x5A, 0xC, 0x0 }, + { 0x0, -0x137, 0x1, 0x5A, 0xC, 0x0 }, + { 0x0, -0x8, 0x1, 0x5A, 0xC, 0x0 }, + { 0x0, 0x125, 0x1, 0x5A, 0xC, 0x0 }, + { 0x0, 0x253, 0x1, 0x5A, 0xC, 0x0 }, + { 0x0, 0x381, 0x1, 0x5A, 0xC, 0x0 }, + { 0x0, 0x547, 0x1, 0x5A, 0xB, 0x0 }, + { 0x0, 0x547, 0x1, 0x5A, 0xFF, 0x0 }, + { 0x0, 0x0, 0x1, 0x5A, 0xFF, 0x0 }, + { 0x0, 0x547, 0x1, 0x5A, 0xFF, 0x0 }, + { 0x0, 0x547, 0x1, 0x5A, 0xFF, 0x0 }, + { 0x0, 0x547, 0x1, 0x5A, 0xFF, 0x0 }, + { 0x0, 0x547, 0x1, 0x5A, 0xFF, 0x0 }, + { 0x0, 0x547, 0x1, 0x5A, 0xFF, 0x0 }, + { 0x0, 0x547, 0x1, 0x5A, 0xFF, 0x0 }, + { 0x0, 0x547, 0x1, 0x5A, 0xFF, 0x0 }, + { 0x0, 0x547, 0x1, 0x5A, 0x0, 0x0 }, + { 0x0, 0x547, 0x1, 0x5A, 0xFF, 0x0 }, + { 0x0, 0x547, 0x1, 0x5A, 0xFF, 0x0 }, + { 0x0, 0x547, 0x1, 0x5A, 0xFF, 0x0 }, + { 0x0, 0x547, 0x1, 0x5A, 0xFF, 0x0 }, + { 0x0, 0x547, 0x1, 0x5A, 0xFF, 0x0 }, + { 0x0, 0x547, 0x1, 0x5A, 0xFF, 0x0 }, + { 0x0, 0x547, 0x1, 0x5A, 0xFF, 0x0 }, + { 0x0, 0x547, 0x1, 0x5A, 0xFF, 0x0 }, + { 0x0, 0x547, 0x1, 0x5A, 0xFF, 0x0 }, + { 0x0, 0x547, 0x1, 0x5A, 0xFF, 0x0 }, + { 0x0, 0x547, 0x1, 0x5A, 0xFF, 0x0 }, + { 0x0, 0x547, 0x1, 0x5A, 0xFF, 0x0 }, + { 0x0, 0x547, 0x1, 0x5A, 0xFF, 0x0 }, + { 0x0, 0x547, 0x1, 0x5A, 0xFF, 0x0 }, + { 0x0, 0x547, 0x1, 0x5A, 0xFF, 0x0 }, + { 0x0, 0x547, 0x1, 0x5A, 0xFF, 0x0 }, + { 0x0, 0x547, 0x1, 0x5A, 0xFF, 0x0 }, + { 0x0, 0x547, 0x1, 0x5A, 0xFF, 0x0 }, + { 0x0, 0x547, 0x1, 0x5A, 0xFF, 0x0 }, + { 0x0, 0x547, 0x1, 0x5A, 0xFF, 0x0 }, + { 0x0, 0x547, 0x1, 0x5A, 0xFF, 0x0 }, + { 0x0, 0x547, 0x1, 0x5A, 0xFF, 0x0 }, + { 0x0, 0x547, 0x1, 0x5A, 0xFF, 0x0 }, + { 0x0, 0x547, 0x1, 0x5A, 0xFF, 0x0 }, + { 0x0, 0x547, 0x1, 0x5A, 0xFF, 0x0 }, + { 0x0, 0x0, 0x0, 0x5A, 0xFF, 0x40 }, + { 0xEF4, -0x157F, 0x1, 0x5A, 0xC, 0x0 }, + { 0xE82, -0x1450, 0x1, 0x5A, 0xC, 0x0 }, + { 0xE10, -0x1322, 0x1, 0x5A, 0xC, 0x0 }, + { 0xD9D, -0x11F4, 0x1, 0x5A, 0xC, 0x0 }, + { 0xD2B, -0x10C5, 0x1, 0x5A, 0xC, 0x0 }, + { 0xCB9, -0xF97, 0x1, 0x5A, 0xC, 0x0 }, + { 0xC46, -0xE68, 0x1, 0x5A, 0xC, 0x0 }, + { 0xBD4, -0xD3A, 0x1, 0x5A, 0xC, 0x0 }, + { 0xB62, -0xC0C, 0x1, 0x5A, 0xC, 0x0 }, + { 0xAEF, -0xADD, 0x1, 0x5A, 0xC, 0x0 }, + { 0xA7D, -0x9AF, 0x1, 0x5A, 0xC, 0x0 }, + { 0xA0B, -0x880, 0x1, 0x5A, 0xC, 0x0 }, + { 0x842, 0xC7, 0x1, 0x5A, 0xC, 0x0 }, + { 0x7FD, 0xE1, 0x1, 0x5A, 0xC, 0x0 }, + { 0x7B9, 0xFB, 0x1, 0x5A, 0xC, 0x0 }, + { 0x774, 0x115, 0x1, 0x5A, 0xC, 0x0 }, + { 0x730, 0x12F, 0x1, 0x5A, 0xC, 0x0 }, + { 0x6EB, 0x149, 0x1, 0x5A, 0xC, 0x0 }, + { 0x6A6, 0x162, 0x1, 0x5A, 0xC, 0x0 }, + { 0x662, 0x17C, 0x1, 0x5A, 0xC, 0x0 }, + { 0x61D, 0x196, 0x1, 0x5A, 0xC, 0x0 }, + { 0x5D9, 0x1B0, 0x1, 0x5A, 0xC, 0x0 }, + { 0x594, 0x1CA, 0x1, 0x5A, 0xC, 0x0 }, + { 0x54F, 0x1E4, 0x1, 0x5A, 0xC, 0x0 }, + { 0x50B, 0x1FD, 0x1, 0x5A, 0xC, 0x0 }, + { 0x4C6, 0x217, 0x1, 0x5A, 0xC, 0x0 }, + { 0x482, 0x231, 0x1, 0x5A, 0xC, 0x0 }, + { 0x43D, 0x24B, 0x1, 0x5A, 0xC, 0x0 }, + { 0x36A, 0x2B5, 0x1, 0x5A, 0xC, 0x0 }, + { 0x33F, 0x2C0, 0x1, 0x5A, 0xC, 0x0 }, + { 0x315, 0x2CB, 0x1, 0x5A, 0xC, 0x0 }, + { 0x2EA, 0x2D6, 0x1, 0x5A, 0xC, 0x0 }, + { 0x2C0, 0x2E2, 0x1, 0x5A, 0xC, 0x0 }, + { 0x295, 0x2ED, 0x1, 0x5A, 0xC, 0x0 }, + { 0x26A, 0x2F8, 0x1, 0x5A, 0xC, 0x0 }, + { 0x240, 0x304, 0x1, 0x5A, 0xC, 0x0 }, + { 0x215, 0x30F, 0x1, 0x5A, 0xC, 0x0 }, + { 0x1EA, 0x31A, 0x1, 0x5A, 0xC, 0x0 }, + { 0x1C0, 0x325, 0x1, 0x5A, 0xC, 0x0 }, + { 0x195, 0x331, 0x1, 0x5A, 0xC, 0x0 }, + { 0x0, 0xAEE, 0x1, 0x5A, 0xC, 0x0 }, + { 0x0, 0xA11, 0x1, 0x5A, 0xC, 0x0 }, + { 0x0, 0x935, 0x1, 0x5A, 0xC, 0x0 }, + { 0x0, 0x858, 0x1, 0x5A, 0xC, 0x0 }, + { 0x0, 0x77C, 0x1, 0x5A, 0xC, 0x0 }, + { 0x0, 0x6A0, 0x1, 0x5A, 0xC, 0x0 }, + { 0x0, 0x5C3, 0x1, 0x5A, 0xC, 0x0 }, + { 0x0, 0x4E7, 0x1, 0x5A, 0xC, 0x0 }, + { 0x0, 0x40A, 0x1, 0x5A, 0xC, 0x0 }, + { 0x0, 0x32E, 0x1, 0x5A, 0xC, 0x0 }, + { 0x0, 0x251, 0x1, 0x5A, 0xC, 0x0 }, + { 0x0, 0x175, 0x1, 0x5A, 0xC, 0x0 }, + { 0x0, 0x98, 0x1, 0x5A, 0xC, 0x0 }, + { 0x0, -0x43, 0x1, 0x5A, 0xC, 0x0 }, + { 0x0, -0x11F, 0x1, 0x5A, 0xC, 0x0 }, + { 0x0, -0x1FC, 0x1, 0x5A, 0xC, 0x0 }, + { 0x0, -0x2D8, 0x1, 0x5A, 0xC, 0x0 }, + { 0x0, -0x3B5, 0x1, 0x5A, 0xC, 0x0 }, + { 0x0, -0x500, 0x1, 0x5A, 0xC, 0x0 }, + { 0x0, -0x500, 0x1, 0x5A, 0xC, 0x0 }, + { 0x0, 0x0, 0x0, 0x5A, 0xFF, 0x80 }, +}; + +const struct Unk_08353510 gUnk_082DBB14[] = { + { 0x0, 0x0, 0x1, 0x5A, 0xFF, 0x0 }, + { 0x0, -0x210, 0x1, 0x5A, 0xFF, 0x0 }, + { 0x0, 0x0, 0x1, 0x5A, 0xFF, 0x0 }, + { 0x0, -0x153, 0x1, 0x5A, 0xFF, 0x0 }, + { 0x0, -0x15D, 0x1, 0x5A, 0x17, 0x0 }, + { 0x0, -0x167, 0x1, 0x5A, 0xFF, 0x0 }, + { 0x0, 0x0, 0x1, 0x5A, 0xFF, 0x0 }, + { 0x0, -0x17A, 0x1, 0x5A, 0xFF, 0x0 }, + { 0x0, -0x184, 0x1, 0x5A, 0xFF, 0x0 }, + { 0x0, -0x18E, 0x1, 0x5A, 0xFF, 0x0 }, + { 0x0, -0x198, 0x1, 0x5A, 0xFF, 0x0 }, + { 0x0, -0x1A2, 0x1, 0x5A, 0xFF, 0x0 }, + { 0x0, -0x1AC, 0x1, 0x5A, 0xFF, 0x0 }, + { 0x0, -0x1B5, 0x1, 0x5A, 0xFF, 0x0 }, + { 0x0, -0x1BF, 0x1, 0x5A, 0xFF, 0x0 }, + { 0x0, -0x1C9, 0x1, 0x5A, 0xFF, 0x0 }, + { 0x0, -0x1D3, 0x1, 0x5A, 0xFF, 0x0 }, + { 0x0, -0x1DD, 0x1, 0x5A, 0xFF, 0x0 }, + { 0x0, -0x1E7, 0x1, 0x5A, 0xFF, 0x0 }, + { 0x0, -0x1F1, 0x1, 0x5A, 0xFF, 0x0 }, + { 0x0, -0x1FA, 0x1, 0x5A, 0xFF, 0x0 }, + { 0x0, -0x204, 0x1, 0x5A, 0xFF, 0x0 }, + { 0x0, -0x20E, 0x1, 0x5A, 0xFF, 0x0 }, + { 0x0, -0x218, 0x1, 0x5A, 0xFF, 0x0 }, + { 0x0, -0x222, 0x1, 0x5A, 0xFF, 0x0 }, + { 0x0, -0x22C, 0x1, 0x5A, 0xFF, 0x0 }, + { 0x0, -0x236, 0x1, 0x5A, 0xFF, 0x0 }, + { 0x0, -0x23F, 0x1, 0x5A, 0xFF, 0x0 }, + { 0x0, -0x249, 0x1, 0x5A, 0xFF, 0x0 }, + { 0x0, -0x253, 0x1, 0x5A, 0xFF, 0x0 }, + { 0x0, -0x25D, 0x1, 0x5A, 0xFF, 0x0 }, + { 0x0, -0x267, 0x1, 0x5A, 0xFF, 0x0 }, + { 0x0, 0x0, 0x1, 0x5A, 0xFF, 0x0 }, + { 0x0, -0x29A, 0x1, 0x5A, 0xFF, 0x0 }, + { 0x0, -0x265, 0x1, 0x5A, 0xFF, 0x0 }, + { 0x0, -0x230, 0x1, 0x5A, 0xFF, 0x0 }, + { 0x0, 0x0, 0x1, 0x5A, 0xFF, 0x0 }, + { 0x0, -0x140, 0x1, 0x5A, 0xFF, 0x0 }, + { 0x0, -0x140, 0x1, 0x5A, 0xFF, 0x0 }, + { 0x0, -0x140, 0x1, 0x5A, 0xFF, 0x0 }, + { 0x0, -0x140, 0x1, 0x5A, 0xFF, 0x0 }, + { 0x0, -0x140, 0x1, 0x5A, 0xFF, 0x0 }, + { 0x0, -0x140, 0x1, 0x5A, 0xFF, 0x0 }, + { 0x0, -0x140, 0x1, 0x5A, 0xFF, 0x0 }, + { 0x0, -0x230, 0x1, 0x5A, 0xC, 0x0 }, + { 0x0, -0x190, 0x1, 0x5A, 0xC, 0x0 }, + { 0x0, -0xF0, 0x1, 0x5A, 0xC, 0x0 }, + { 0x0, -0x50, 0x1, 0x5A, 0xC, 0x0 }, + { 0x0, 0x230, 0x1, 0x5A, 0xC, 0x0 }, + { 0x0, 0x190, 0x1, 0x5A, 0xC, 0x0 }, + { 0x0, 0xF0, 0x1, 0x5A, 0xC, 0x0 }, + { 0x0, 0x50, 0x1, 0x5A, 0xC, 0x0 }, + { 0x0, -0x230, 0x1, 0x5A, 0xC, 0x0 }, + { 0x0, -0x190, 0x1, 0x5A, 0xC, 0x0 }, + { 0x0, -0xF0, 0x1, 0x5A, 0xC, 0x0 }, + { 0x0, -0x50, 0x1, 0x5A, 0xC, 0x0 }, + { 0x0, 0x230, 0x1, 0x5A, 0xC, 0x0 }, + { 0x0, 0x190, 0x1, 0x5A, 0xC, 0x0 }, + { 0x0, 0xF0, 0x1, 0x5A, 0xC, 0x0 }, + { 0x0, 0x50, 0x1, 0x5A, 0xC, 0x0 }, + { 0x0, -0x1B8, 0x1, 0x5A, 0xC, 0x0 }, + { 0x0, -0x168, 0x1, 0x5A, 0xC, 0x0 }, + { 0x0, -0x118, 0x1, 0x5A, 0xC, 0x0 }, + { 0x0, -0xC8, 0x1, 0x5A, 0xC, 0x0 }, + { 0x0, 0x0, 0x1, 0x5A, 0xC, 0x0 }, + { 0x0, 0x0, 0x1, 0x5A, 0xC, 0x0 }, + { 0x0, 0x0, 0x1, 0x5A, 0xC, 0x0 }, + { 0x0, 0x0, 0x1, 0x5A, 0xC, 0x0 }, + { 0x0, -0x78, 0x1, 0x5A, 0xC, 0x0 }, + { 0x0, -0x28, 0x1, 0x5A, 0xC, 0x0 }, + { 0x0, 0x28, 0x1, 0x5A, 0xC, 0x0 }, + { 0x0, 0x78, 0x1, 0x5A, 0xC, 0x0 }, + { 0x0, 0x230, 0x1, 0x5A, 0xC, 0x0 }, + { 0x0, 0x190, 0x1, 0x5A, 0xC, 0x0 }, + { 0x0, 0xF0, 0x1, 0x5A, 0xC, 0x0 }, + { 0x0, 0x50, 0x1, 0x5A, 0xC, 0x0 }, + { 0xD5, 0xA0, 0x1, 0x5A, 0xC, 0x0 }, + { 0x47, -0xA0, 0x1, 0x5A, 0xC, 0x0 }, + { -0x47, -0x1E0, 0x1, 0x5A, 0xC, 0x0 }, + { -0xD5, -0x320, 0x1, 0x5A, 0xC, 0x0 }, + { -0x27F, -0x6E0, 0x1, 0x5A, 0xC, 0x0 }, + { -0xD5, -0x320, 0x1, 0x5A, 0xC, 0x0 }, + { 0xD5, 0xA0, 0x1, 0x5A, 0x0, 0x0 }, + { 0x27F, 0x460, 0x1, 0x5A, 0xFF, 0x0 }, + { 0x500, 0xAA0, 0x1, 0x5A, 0xB, 0x0 }, + { 0x500, 0x960, 0x1, 0x5A, 0xFF, 0x0 }, + { 0x0, 0x0, 0x1, 0x5A, 0xFF, 0x0 }, + { 0x4E7, 0x762, 0x1, 0x5A, 0xFF, 0x0 }, + { 0x2BA, 0x4C5, 0xB, 0x5A, 0xC, 0x0 }, + { 0x2BA, 0x4C5, 0x1, 0x5A, 0xFF, 0x0 }, + { 0x2BA, 0x4C5, 0x1, 0x5A, 0xFF, 0x0 }, + { 0x2BA, 0x4C5, 0x1, 0x5A, 0xFF, 0x0 }, + { 0x2BA, 0x4C5, 0x1, 0x5A, 0xFF, 0x0 }, + { 0x2BA, 0x4C5, 0x1, 0x5A, 0xFF, 0x0 }, + { 0x2BA, 0x4C5, 0x1, 0x5A, 0xFF, 0x0 }, + { 0x2BA, 0x4C5, 0x1, 0x5A, 0xFF, 0x0 }, + { 0x2BA, 0x4C5, 0x1, 0x5A, 0xFF, 0x0 }, + { 0x2BA, 0x4C5, 0x1, 0x5A, 0xFF, 0x0 }, + { 0x2BA, 0x4C5, 0x1, 0x5A, 0xFF, 0x0 }, + { 0x2BA, 0x4C5, 0x1, 0x5A, 0xFF, 0x0 }, + { 0x0, 0x0, 0x0, 0x5A, 0xFF, 0x40 }, + { 0x0, 0x0, 0x1, 0x5A, 0xC, 0x0 }, + { 0xA33, 0x894, 0x1, 0x5A, 0xC, 0x0 }, + { 0x9B9, 0x85E, 0x1, 0x5A, 0xC, 0x0 }, + { 0x93F, 0x828, 0x1, 0x5A, 0xC, 0x0 }, + { 0x8C5, 0x7F2, 0x1, 0x5A, 0xC, 0x0 }, + { 0x84B, 0x7BB, 0x1, 0x5A, 0xC, 0x0 }, + { 0x7D1, 0x785, 0x1, 0x5A, 0xC, 0x0 }, + { 0x757, 0x74F, 0x1, 0x5A, 0xC, 0x0 }, + { 0x6DD, 0x718, 0x1, 0x5A, 0xC, 0x0 }, + { 0x663, 0x6E2, 0x1, 0x5A, 0xC, 0x0 }, + { 0x5E9, 0x6AC, 0x1, 0x5A, 0xC, 0x0 }, + { 0x56F, 0x676, 0x1, 0x5A, 0xC, 0x0 }, + { 0x4F5, 0x63F, 0x1, 0x5A, 0xC, 0x0 }, + { 0x47B, 0x609, 0x1, 0x5A, 0xC, 0x0 }, + { 0x401, 0x5D3, 0x1, 0x5A, 0xC, 0x0 }, + { 0x387, 0x59D, 0x1, 0x5A, 0xC, 0x0 }, + { 0x30D, 0x566, 0x1, 0x5A, 0xC, 0x0 }, + { 0x293, 0x530, 0x1, 0x5A, 0xC, 0x0 }, + { 0x219, 0x4FA, 0x1, 0x5A, 0xC, 0x0 }, + { 0x19F, 0x4C4, 0x1, 0x5A, 0xC, 0x0 }, + { 0x128, 0x518, 0x1, 0x5A, 0xC, 0x0 }, + { 0xAD, 0x4C3, 0x1, 0x5A, 0xC, 0x0 }, + { 0x32, 0x46E, 0x1, 0x5A, 0xC, 0x0 }, + { -0x47, 0x419, 0x1, 0x5A, 0xC, 0x0 }, + { -0xC2, 0x3C4, 0x1, 0x5A, 0xC, 0x0 }, + { -0x13D, 0x36F, 0x1, 0x5A, 0xC, 0x0 }, + { -0x1B8, 0x31A, 0x1, 0x5A, 0xC, 0x0 }, + { -0x232, 0x2C5, 0x1, 0x5A, 0xC, 0x0 }, + { -0x2AD, 0x26F, 0x1, 0x5A, 0xC, 0x0 }, + { -0x328, 0x21A, 0x1, 0x5A, 0xC, 0x0 }, + { -0x60C, 0x122, 0x1, 0x5A, 0xC, 0x0 }, + { -0x5ED, 0xF6, 0x1, 0x5A, 0xC, 0x0 }, + { -0x5CD, 0xCA, 0x1, 0x5A, 0xC, 0x0 }, + { -0x5AD, 0x9E, 0x1, 0x5A, 0xC, 0x0 }, + { -0x58E, 0x71, 0x1, 0x5A, 0xC, 0x0 }, + { -0x56E, 0x45, 0x1, 0x5A, 0xC, 0x0 }, + { -0x54F, 0x19, 0x1, 0x5A, 0xC, 0x0 }, + { -0x52F, -0x12, 0x1, 0x5A, 0xC, 0x0 }, + { -0x50F, -0x3F, 0x1, 0x5A, 0xC, 0x0 }, + { -0x51E, -0x13F, 0x1, 0x5A, 0xC, 0x0 }, + { -0x4F3, -0x136, 0x1, 0x5A, 0xC, 0x0 }, + { -0x4C8, -0x12E, 0x1, 0x5A, 0xC, 0x0 }, + { -0x49D, -0x125, 0x1, 0x5A, 0xC, 0x0 }, + { -0x471, -0x11C, 0x1, 0x5A, 0xC, 0x0 }, + { -0x446, -0x113, 0x1, 0x5A, 0xC, 0x0 }, + { -0x41B, -0x10A, 0x1, 0x5A, 0xC, 0x0 }, + { -0x3EF, -0x101, 0x1, 0x5A, 0xC, 0x0 }, + { -0x3C4, -0xF9, 0x1, 0x5A, 0xC, 0x0 }, + { -0x280, -0xB6, 0x1, 0x5A, 0xC, 0x0 }, + { -0x280, -0xB6, 0x1, 0x5A, 0xC, 0x0 }, + { -0x280, -0xB6, 0x1, 0x5A, 0xC, 0x0 }, + { -0x27F, -0xB6, 0x1, 0x5A, 0xC, 0x0 }, + { -0x280, -0xB6, 0x1, 0x5A, 0xC, 0x0 }, + { -0x27F, -0xB6, 0x1, 0x5A, 0xC, 0x0 }, + { -0x280, -0xB6, 0x1, 0x5A, 0xC, 0x0 }, + { -0x280, -0xB6, 0x1, 0x5A, 0xC, 0x0 }, + { -0x27F, -0xB6, 0x1, 0x5A, 0xC, 0x0 }, + { -0x280, -0xB6, 0x1, 0x5A, 0xC, 0x0 }, + { -0x280, -0xB6, 0x1, 0x5A, 0xC, 0x0 }, + { -0x280, -0xB6, 0x1, 0x5A, 0xC, 0x0 }, + { -0x27F, -0xB6, 0x1, 0x5A, 0xC, 0x0 }, + { -0x280, -0xB6, 0x1, 0x5A, 0xC, 0x0 }, + { 0x0, 0x0, 0x0, 0x5A, 0xFF, 0x80 }, +}; + +const struct Unk_08353510 gUnk_082DC2C4[] = { + { 0x25A, -0x43B, 0x1, 0x5A, 0xC, 0x0 }, + { 0x256, -0x3F5, 0x1, 0x5A, 0xC, 0x0 }, + { 0x252, -0x3AF, 0x1, 0x5A, 0xC, 0x0 }, + { 0x24F, -0x369, 0x1, 0x5A, 0xC, 0x0 }, + { 0x24B, -0x323, 0x1, 0x5A, 0xC, 0x0 }, + { 0x248, -0x2DC, 0x1, 0x5A, 0xC, 0x0 }, + { 0x244, -0x296, 0x1, 0x5A, 0xC, 0x0 }, + { 0x240, -0x250, 0x1, 0x5A, 0xC, 0x0 }, + { 0x23D, -0x20A, 0x1, 0x5A, 0xC, 0x0 }, + { 0x239, -0x1C4, 0x1, 0x5A, 0xC, 0x0 }, + { 0x26A, -0x129, 0x1, 0x5A, 0xC, 0x0 }, + { 0x257, -0xFB, 0x1, 0x5A, 0xC, 0x0 }, + { 0x245, -0xCD, 0x1, 0x5A, 0xC, 0x0 }, + { 0x232, -0x9F, 0x1, 0x5A, 0xC, 0x0 }, + { 0x21F, -0x72, 0x1, 0x5A, 0xC, 0x0 }, + { 0x20D, -0x44, 0x1, 0x5A, 0xC, 0x0 }, + { 0x1FA, -0x16, 0x1, 0x5A, 0xC, 0x0 }, + { 0x1E7, 0x16, 0x1, 0x5A, 0xC, 0x0 }, + { 0x1D5, 0x44, 0x1, 0x5A, 0x17, 0x0 }, + { 0x1C2, 0x72, 0x1, 0x5A, 0xFF, 0x0 }, + { 0x1B0, 0xA0, 0x1, 0x5A, 0xFF, 0x0 }, + { 0x19D, 0xCD, 0x1, 0x5A, 0xFF, 0x0 }, + { 0x18A, 0xFB, 0x1, 0x5A, 0xFF, 0x0 }, + { 0x178, 0x129, 0x1, 0x5A, 0xFF, 0x0 }, + { 0x3E7, 0x362, 0x1, 0x5A, 0xC, 0x0 }, + { 0x372, 0x340, 0x1, 0x5A, 0xC, 0x0 }, + { 0x2FC, 0x31D, 0x1, 0x5A, 0xC, 0x0 }, + { 0x287, 0x2FA, 0x1, 0x5A, 0xC, 0x0 }, + { 0x212, 0x2D7, 0x1, 0x5A, 0xC, 0x0 }, + { 0x19C, 0x2B4, 0x1, 0x5A, 0xC, 0x0 }, + { 0x127, 0x291, 0x1, 0x5A, 0xC, 0x0 }, + { 0xB1, 0x26E, 0x1, 0x5A, 0xC, 0x0 }, + { 0x3C, 0x24B, 0x1, 0x5A, 0xC, 0x0 }, + { -0x39, 0x228, 0x1, 0x5A, 0xC, 0x0 }, + { -0xAE, 0x205, 0x1, 0x5A, 0xC, 0x0 }, + { -0x124, 0x1E2, 0x1, 0x5A, 0xC, 0x0 }, + { -0x199, 0x1C0, 0x1, 0x5A, 0xC, 0x0 }, + { -0x20F, 0x19D, 0x1, 0x5A, 0xC, 0x0 }, + { -0x228, 0x37A, 0x1, 0x5A, 0xC, 0x0 }, + { -0x2B8, 0x2C5, 0x1, 0x5A, 0xC, 0x0 }, + { -0x348, 0x210, 0x1, 0x5A, 0xC, 0x0 }, + { -0x3D8, 0x15A, 0x1, 0x5A, 0xC, 0x0 }, + { -0x468, 0xA5, 0x1, 0x5A, 0xC, 0x0 }, + { -0x4F8, -0x10, 0x1, 0x5A, 0xC, 0x0 }, + { -0x588, -0xC5, 0x1, 0x5A, 0xC, 0x0 }, + { -0x618, -0x17A, 0x1, 0x5A, 0xC, 0x0 }, + { -0x7EA, -0x36F, 0x1, 0x5A, 0xC, 0x0 }, + { -0x7A3, -0x34F, 0x1, 0x5A, 0xC, 0x0 }, + { -0x75C, -0x330, 0x1, 0x5A, 0xC, 0x0 }, + { -0x715, -0x310, 0x1, 0x5A, 0xC, 0x0 }, + { -0x840, -0x5B3, 0x1, 0x5A, 0xC, 0x0 }, + { -0x7C0, -0x527, 0x1, 0x5A, 0xC, 0x0 }, + { -0x73F, -0x49B, 0x1, 0x5A, 0xC, 0x0 }, + { -0x6C0, -0x40F, 0x1, 0x5A, 0xC, 0x0 }, + { -0x640, -0x383, 0x1, 0x5A, 0xC, 0x0 }, + { -0x5BF, -0x2F6, 0x1, 0x5A, 0xC, 0x0 }, + { -0x540, -0x26A, 0x1, 0x5A, 0xC, 0x0 }, + { -0x4C0, -0x1DE, 0x1, 0x5A, 0xC, 0x0 }, + { -0x440, -0x152, 0x1, 0x5A, 0xC, 0x0 }, + { -0x3C0, -0xC6, 0x1, 0x5A, 0xC, 0x0 }, + { -0x340, -0x39, 0x1, 0x5A, 0xC, 0x0 }, + { -0x2C0, 0x52, 0x1, 0x5A, 0xC, 0x0 }, + { -0x23F, 0xDE, 0x1, 0x5A, 0xC, 0x0 }, + { -0x1C0, 0x16A, 0x1, 0x5A, 0xC, 0x0 }, + { -0x7F, 0x3CE, 0x1, 0x5A, 0xC, 0x0 }, + { -0x4C, 0x39E, 0x1, 0x5A, 0xC, 0x0 }, + { -0x19, 0x36D, 0x1, 0x5A, 0xC, 0x0 }, + { 0x19, 0x33D, 0x1, 0x5A, 0xC, 0x0 }, + { 0x4C, 0x30C, 0x1, 0x5A, 0xC, 0x0 }, + { 0x7F, 0x2DC, 0x1, 0x5A, 0xC, 0x0 }, + { 0x24B, 0x2A8, 0x1, 0x5A, 0xC, 0x0 }, + { 0x247, 0x278, 0x1, 0x5A, 0xC, 0x0 }, + { 0x244, 0x248, 0x1, 0x5A, 0xC, 0x0 }, + { 0x240, 0x218, 0x1, 0x5A, 0xC, 0x0 }, + { 0x23C, 0x1E8, 0x1, 0x5A, 0xC, 0x0 }, + { 0x239, 0x1B8, 0x1, 0x5A, 0xC, 0x0 }, + { 0x235, 0x188, 0x1, 0x5A, 0xC, 0x0 }, + { 0x231, 0x158, 0x1, 0x5A, 0xC, 0x0 }, + { 0x22E, 0x127, 0x1, 0x5A, 0xC, 0x0 }, + { 0x22A, 0xF7, 0x1, 0x5A, 0xC, 0x0 }, + { 0x226, 0xC7, 0x1, 0x5A, 0xC, 0x0 }, + { 0x223, 0x97, 0x1, 0x5A, 0xC, 0x0 }, + { 0x21F, 0x67, 0x1, 0x5A, 0xC, 0x0 }, + { 0x21B, 0x37, 0x1, 0x5A, 0xC, 0x0 }, + { 0x218, 0x7, 0x1, 0x5A, 0xC, 0x0 }, + { 0x214, -0x28, 0x1, 0x5A, 0xC, 0x0 }, + { 0x352, -0x224, 0x1, 0x5A, 0xC, 0x0 }, + { 0x328, -0x21E, 0x1, 0x5A, 0xC, 0x0 }, + { 0x2FF, -0x218, 0x1, 0x5A, 0xC, 0x0 }, + { 0x2D5, -0x212, 0x1, 0x5A, 0xC, 0x0 }, + { 0x2AC, -0x20C, 0x1, 0x5A, 0xC, 0x0 }, + { 0x282, -0x206, 0x1, 0x5A, 0xC, 0x0 }, + { 0x259, -0x200, 0x1, 0x5A, 0xC, 0x0 }, + { 0x22F, -0x1FA, 0x1, 0x5A, 0xC, 0x0 }, + { 0x206, -0x1F4, 0x1, 0x5A, 0xC, 0x0 }, + { 0x1DD, -0x1EE, 0x1, 0x5A, 0xC, 0x0 }, + { 0x1B3, -0x1E8, 0x1, 0x5A, 0xC, 0x0 }, + { 0x18A, -0x1E2, 0x1, 0x5A, 0xC, 0x0 }, + { 0x160, -0x1DD, 0x1, 0x5A, 0xC, 0x0 }, + { 0x137, -0x1D7, 0x1, 0x5A, 0xC, 0x0 }, + { 0x10D, -0x1D1, 0x1, 0x5A, 0xC, 0x0 }, + { 0xE4, -0x1CB, 0x1, 0x5A, 0xC, 0x0 }, + { 0xBA, -0x1C5, 0x1, 0x5A, 0xC, 0x0 }, + { 0x91, -0x1BF, 0x1, 0x5A, 0xC, 0x0 }, + { 0x0, -0x1AA, 0x1, 0x5A, 0xC, 0x0 }, + { 0x0, -0x1AA, 0x1, 0x5A, 0xC, 0x0 }, + { 0x0, -0x1AA, 0x1, 0x5A, 0xC, 0x0 }, + { 0x0, -0x1AA, 0x1, 0x5A, 0xC, 0x0 }, + { 0x0, -0x1AA, 0x1, 0x5A, 0xC, 0x0 }, + { 0x0, -0x1AA, 0x1, 0x5A, 0xC, 0x0 }, + { 0x0, -0x2B5, 0x1, 0x5A, 0xC, 0x0 }, + { 0x0, -0x24A, 0x1, 0x5A, 0xC, 0x0 }, + { 0x0, -0x1E0, 0x1, 0x5A, 0xC, 0x0 }, + { 0x0, -0x175, 0x1, 0x5A, 0xC, 0x0 }, + { 0x0, -0x10A, 0x1, 0x5A, 0xC, 0x0 }, + { 0x0, -0xA0, 0x1, 0x5A, 0xC, 0x0 }, + { 0x0, 0xA0, 0x1, 0x5A, 0xC, 0x0 }, + { 0x0, -0xA0, 0x1, 0x5A, 0xC, 0x0 }, + { 0x0, -0x320, 0x1, 0x5A, 0xC, 0x0 }, + { 0x0, -0x1E0, 0x1, 0x5A, 0xC, 0x0 }, + { 0x0, 0x230, 0x1, 0x5A, 0xC, 0x0 }, + { 0x0, 0x190, 0x1, 0x5A, 0xC, 0x0 }, + { 0x0, 0xF0, 0x1, 0x5A, 0xC, 0x0 }, + { 0x0, 0x50, 0x1, 0x5A, 0xC, 0x0 }, + { 0x0, -0x230, 0x1, 0x5A, 0xC, 0x0 }, + { 0x0, -0x190, 0x1, 0x5A, 0xC, 0x0 }, + { 0x0, -0xF0, 0x1, 0x5A, 0xC, 0x0 }, + { 0x0, -0x50, 0x1, 0x5A, 0xC, 0x0 }, + { 0x0, 0x230, 0x1, 0x5A, 0xC, 0x0 }, + { 0x0, 0x190, 0x1, 0x5A, 0xC, 0x0 }, + { 0x0, 0xF0, 0x1, 0x5A, 0xC, 0x0 }, + { 0x0, 0x50, 0x1, 0x5A, 0xC, 0x0 }, + { 0x0, -0x230, 0x1, 0x5A, 0xC, 0x0 }, + { 0x0, -0x190, 0x1, 0x5A, 0xC, 0x0 }, + { 0x0, -0xF0, 0x1, 0x5A, 0xC, 0x0 }, + { 0x0, -0x50, 0x1, 0x5A, 0xC, 0x0 }, + { 0x0, 0x280, 0x1, 0x5A, 0xC, 0x0 }, + { 0x0, 0x1AA, 0x1, 0x5A, 0xC, 0x0 }, + { 0x0, 0xD5, 0x1, 0x5A, 0xC, 0x0 }, + { 0x0, 0x0, 0x1, 0x5A, 0xC, 0x0 }, + { 0x0, -0x140, 0x1, 0x5A, 0xC, 0x0 }, + { 0x0, -0x140, 0x1, 0x5A, 0xC, 0x0 }, + { 0x0, -0x13F, 0x1, 0x5A, 0xC, 0x0 }, + { 0x0, -0x140, 0x1, 0x5A, 0xC, 0x0 }, + { 0x0, -0x140, 0x1, 0x5A, 0xC, 0x0 }, + { 0x0, -0x140, 0x1, 0x5A, 0xC, 0x0 }, + { 0x0, -0x140, 0x1, 0x5A, 0xC, 0x0 }, + { 0x0, -0x140, 0x1, 0x5A, 0xC, 0x0 }, + { 0x0, -0x140, 0x1, 0x5A, 0xC, 0x0 }, + { 0x0, -0x140, 0x1, 0x5A, 0xC, 0x0 }, + { 0x0, -0x140, 0x1, 0x5A, 0xC, 0x0 }, + { 0x0, -0x140, 0x1, 0x5A, 0xC, 0x0 }, + { 0x0, -0x168, 0x1, 0x5A, 0xC, 0x0 }, + { 0x0, -0x14D, 0x1, 0x5A, 0xC, 0x0 }, + { 0x0, -0x132, 0x1, 0x5A, 0xC, 0x0 }, + { 0x0, -0x118, 0x1, 0x5A, 0xC, 0x0 }, + { 0x0, -0x4C1, 0x1, 0x5A, 0xC, 0x0 }, + { 0x0, -0x393, 0x1, 0x5A, 0xC, 0x0 }, + { 0x0, -0x265, 0x1, 0x5A, 0xC, 0x0 }, + { 0x0, -0x137, 0x1, 0x5A, 0xC, 0x0 }, + { 0x0, -0x8, 0x1, 0x5A, 0xC, 0x0 }, + { 0x0, 0x125, 0x1, 0x5A, 0xC, 0x0 }, + { 0x0, 0x253, 0x1, 0x5A, 0xC, 0x0 }, + { 0x0, 0x381, 0x1, 0x5A, 0xC, 0x0 }, + { 0x0, 0x547, 0x1, 0x5A, 0xB, 0x0 }, + { 0x0, 0x547, 0x1, 0x5A, 0xFF, 0x0 }, + { 0x0, 0x547, 0x1, 0x5A, 0xC, 0x0 }, + { 0x0, 0x547, 0x1, 0x5A, 0xC, 0x0 }, + { 0x0, 0x547, 0x1, 0x5A, 0xC, 0x0 }, + { 0x0, 0x547, 0x1, 0x5A, 0xC, 0x0 }, + { 0x0, 0x547, 0x1, 0x5A, 0xC, 0x0 }, + { 0x0, 0x547, 0x1, 0x5A, 0xC, 0x0 }, + { 0x0, 0x547, 0x1, 0x5A, 0x0, 0x0 }, + { 0x0, 0x547, 0x1, 0x5A, 0xFF, 0x0 }, + { 0x0, 0x547, 0x1, 0x5A, 0xFF, 0x0 }, + { 0x0, 0x547, 0x1, 0x5A, 0xFF, 0x0 }, + { 0x0, 0x547, 0x1, 0x5A, 0xFF, 0x0 }, + { 0x0, 0x547, 0x1, 0x5A, 0xFF, 0x0 }, + { 0x0, 0x547, 0x1, 0x5A, 0xFF, 0x0 }, + { 0x0, 0x547, 0x1, 0x5A, 0xFF, 0x0 }, + { 0x0, 0x547, 0x1, 0x5A, 0xFF, 0x0 }, + { 0x0, 0x547, 0x1, 0x5A, 0xFF, 0x0 }, + { 0x0, 0x547, 0x1, 0x5A, 0xFF, 0x0 }, + { 0x0, 0x547, 0x1, 0x5A, 0xFF, 0x0 }, + { 0x0, 0x547, 0x1, 0x5A, 0xFF, 0x0 }, + { 0x0, 0x547, 0x1, 0x5A, 0xFF, 0x0 }, + { 0x0, 0x547, 0x1, 0x5A, 0xFF, 0x0 }, + { 0x0, 0x547, 0x1, 0x5A, 0xFF, 0x0 }, + { 0x0, 0x547, 0x1, 0x5A, 0xFF, 0x0 }, + { 0x0, 0x547, 0x1, 0x5A, 0xFF, 0x0 }, + { 0x0, 0x547, 0x1, 0x5A, 0xFF, 0x0 }, + { 0x0, 0x547, 0x1, 0x5A, 0xFF, 0x0 }, + { 0x0, 0x547, 0x1, 0x5A, 0xFF, 0x0 }, + { 0x0, 0x547, 0x1, 0x5A, 0xFF, 0x0 }, + { 0x0, 0x547, 0x1, 0x5A, 0xFF, 0x0 }, + { 0x0, 0x547, 0x1, 0x5A, 0xFF, 0x0 }, + { 0x0, 0x547, 0x1, 0x5A, 0xFF, 0x0 }, + { 0x0, 0x547, 0x1, 0x5A, 0xFF, 0x0 }, + { 0x0, 0x547, 0x1, 0x5A, 0xFF, 0x0 }, + { 0x0, 0x547, 0x1, 0x5A, 0xFF, 0x0 }, + { 0x0, 0x0, 0x0, 0x5A, 0xFF, 0x40 }, + { 0x0, 0x748, 0x17, 0x5A, 0xC, 0x0 }, + { 0x0, 0x42E, 0x1, 0x5A, 0xFF, 0x0 }, + { 0x0, 0x3EC, 0x1, 0x5A, 0xFF, 0x0 }, + { 0x0, 0x3A9, 0x1, 0x5A, 0xFF, 0x0 }, + { 0x0, 0x367, 0x1, 0x5A, 0xFF, 0x0 }, + { 0x0, 0x325, 0x1, 0x5A, 0xFF, 0x0 }, + { 0x0, 0x2E3, 0x1, 0x5A, 0xFF, 0x0 }, + { 0x0, 0x2A1, 0x1, 0x5A, 0xFF, 0x0 }, + { 0x0, 0x25E, 0x1, 0x5A, 0xFF, 0x0 }, + { 0x0, 0x21C, 0x1, 0x5A, 0xFF, 0x0 }, + { 0x0, 0x1DA, 0x1, 0x5A, 0xFF, 0x0 }, + { 0x0, 0x198, 0x1, 0x5A, 0xFF, 0x0 }, + { 0x0, 0x156, 0x1, 0x5A, 0xFF, 0x0 }, + { 0x0, 0x113, 0x1, 0x5A, 0xFF, 0x0 }, + { 0x0, 0xD1, 0x1, 0x5A, 0xFF, 0x0 }, + { 0x0, 0x8F, 0x1, 0x5A, 0xFF, 0x0 }, + { 0x0, 0x4D, 0x1, 0x5A, 0xFF, 0x0 }, + { 0x0, 0xB, 0x1, 0x5A, 0xFF, 0x0 }, + { 0x0, -0x37, 0x1, 0x5A, 0xFF, 0x0 }, + { 0x0, -0x79, 0x1, 0x5A, 0xFF, 0x0 }, + { 0x0, -0xBB, 0x1, 0x5A, 0xFF, 0x0 }, + { 0x0, -0xFD, 0x1, 0x5A, 0xFF, 0x0 }, + { 0x0, -0x13F, 0x1, 0x5A, 0xFF, 0x0 }, + { 0x0, -0x182, 0x1, 0x5A, 0xFF, 0x0 }, + { 0x0, -0x1C4, 0x1, 0x5A, 0xFF, 0x0 }, + { 0x0, -0x206, 0x1, 0x5A, 0xFF, 0x0 }, + { 0x0, -0x248, 0x1, 0x5A, 0xFF, 0x0 }, + { 0x0, -0x28B, 0x1, 0x5A, 0xFF, 0x0 }, + { 0x0, -0x2CD, 0x1, 0x5A, 0xFF, 0x0 }, + { 0x0, -0x30F, 0x1, 0x5A, 0xFF, 0x0 }, + { 0x0, -0x351, 0x1, 0x5A, 0xFF, 0x0 }, + { 0x0, -0x393, 0x1, 0x5A, 0xFF, 0x0 }, + { 0x0, -0x3D6, 0x1, 0x5A, 0xFF, 0x0 }, + { 0x0, -0x418, 0x1, 0x5A, 0xFF, 0x0 }, + { 0x0, -0x45A, 0x1, 0x5A, 0xFF, 0x0 }, + { 0x0, -0x49C, 0x1, 0x5A, 0xFF, 0x0 }, + { 0x0, 0x0, 0x1, 0x5A, 0xFF, 0x0 }, + { 0x0, -0x500, 0x1, 0x5A, 0xFF, 0x0 }, + { 0x0, 0x0, 0x0, 0x5A, 0xFF, 0x80 }, +}; + +const struct Unk_08353510 gUnk_082DCE04[] = { + { 0x0, 0x0, 0x1, 0x5A, 0xFF, 0x0 }, + { -0x273, -0x8E, 0x1, 0x5A, 0xFF, 0x0 }, + { 0x0, 0x0, 0x1, 0x5A, 0xFF, 0x0 }, + { -0x253, -0x9A, 0x1, 0x5A, 0xFF, 0x0 }, + { -0x1C8, -0x9F, 0x1, 0x5A, 0x16, 0x0 }, + { -0x1C1, -0xA5, 0x1, 0x5A, 0xFF, 0x0 }, + { -0x1BA, -0xAB, 0x1, 0x5A, 0xFF, 0x0 }, + { -0x1B3, -0xB1, 0x1, 0x5A, 0xFF, 0x0 }, + { -0x1AD, -0xB7, 0x1, 0x5A, 0xFF, 0x0 }, + { -0x1A6, -0xBD, 0x1, 0x5A, 0xFF, 0x0 }, + { -0x19F, -0xC2, 0x1, 0x5A, 0xFF, 0x0 }, + { -0x198, -0xC8, 0x1, 0x5A, 0xFF, 0x0 }, + { -0x191, -0xCE, 0x1, 0x5A, 0xFF, 0x0 }, + { -0x18A, -0xD4, 0x1, 0x5A, 0xFF, 0x0 }, + { -0x183, -0xDA, 0x1, 0x5A, 0xFF, 0x0 }, + { -0x17C, -0xE0, 0x1, 0x5A, 0xFF, 0x0 }, + { -0x175, -0xE5, 0x1, 0x5A, 0xFF, 0x0 }, + { -0x16E, -0xEB, 0x1, 0x5A, 0xFF, 0x0 }, + { -0x167, -0xF1, 0x1, 0x5A, 0xFF, 0x0 }, + { -0x161, -0xF7, 0x1, 0x5A, 0xFF, 0x0 }, + { 0x0, 0x0, 0x1, 0x5A, 0xFF, 0x0 }, + { -0x129, -0xC3, 0x1, 0x5A, 0xFF, 0x0 }, + { -0x126, -0xCF, 0x1, 0x5A, 0xFF, 0x0 }, + { -0x123, -0xDB, 0x1, 0x5A, 0xFF, 0x0 }, + { -0x120, -0xE7, 0x1, 0x5A, 0xFF, 0x0 }, + { -0x11D, -0xF2, 0x1, 0x5A, 0xFF, 0x0 }, + { -0x11A, -0xFE, 0x1, 0x5A, 0xFF, 0x0 }, + { -0x118, -0x10A, 0x1, 0x5A, 0xFF, 0x0 }, + { -0x115, -0x116, 0x1, 0x5A, 0xFF, 0x0 }, + { -0x112, -0x122, 0x1, 0x5A, 0xFF, 0x0 }, + { -0x10F, -0x12E, 0x1, 0x5A, 0xFF, 0x0 }, + { -0x10C, -0x13A, 0x1, 0x5A, 0xFF, 0x0 }, + { -0x109, -0x145, 0x1, 0x5A, 0xFF, 0x0 }, + { -0x106, -0x151, 0x1, 0x5A, 0xFF, 0x0 }, + { -0x103, -0x15D, 0x1, 0x5A, 0xFF, 0x0 }, + { -0x100, -0x169, 0x1, 0x5A, 0xFF, 0x0 }, + { -0xFD, -0x175, 0x1, 0x5A, 0xFF, 0x0 }, + { -0xFA, -0x181, 0x1, 0x5A, 0xFF, 0x0 }, + { -0xF7, -0x18D, 0x1, 0x5A, 0xFF, 0x0 }, + { -0xF4, -0x198, 0x1, 0x5A, 0xFF, 0x0 }, + { -0xF1, -0x1A4, 0x1, 0x5A, 0xFF, 0x0 }, + { -0xEE, -0x1B0, 0x1, 0x5A, 0xFF, 0x0 }, + { -0xEB, -0x1BC, 0x1, 0x5A, 0xFF, 0x0 }, + { -0xE8, -0x1C8, 0x1, 0x5A, 0xFF, 0x0 }, + { 0x0, 0x0, 0x1, 0x5A, 0xFF, 0x0 }, + { -0x150, -0x198, 0x1, 0x5A, 0xFF, 0x0 }, + { -0x134, -0x1B4, 0x1, 0x5A, 0xFF, 0x0 }, + { -0x119, -0x1CF, 0x1, 0x5A, 0xFF, 0x0 }, + { -0xFE, -0x1EB, 0x1, 0x5A, 0xFF, 0x0 }, + { -0xE2, -0x207, 0x1, 0x5A, 0xFF, 0x0 }, + { -0xC7, -0x223, 0x1, 0x5A, 0xFF, 0x0 }, + { -0xAC, -0x23E, 0x1, 0x5A, 0xFF, 0x0 }, + { -0x91, -0x25A, 0x1, 0x5A, 0xFF, 0x0 }, + { -0x75, -0x276, 0x1, 0x5A, 0xFF, 0x0 }, + { -0x5A, -0x292, 0x1, 0x5A, 0xFF, 0x0 }, + { -0x3F, -0x2AD, 0x1, 0x5A, 0xFF, 0x0 }, + { -0xAF, -0x3A1, 0x1, 0x5A, 0xC, 0x0 }, + { -0x5C, -0x366, 0x1, 0x5A, 0xC, 0x0 }, + { -0x9, -0x32C, 0x1, 0x5A, 0xC, 0x0 }, + { 0x4A, -0x2F1, 0x1, 0x5A, 0xC, 0x0 }, + { 0x9D, -0x2B7, 0x1, 0x5A, 0xC, 0x0 }, + { 0xF0, -0x27C, 0x1, 0x5A, 0xC, 0x0 }, + { 0x144, -0x241, 0x1, 0x5A, 0xC, 0x0 }, + { 0x197, -0x207, 0x1, 0x5A, 0xC, 0x0 }, + { 0x1EA, -0x1CC, 0x1, 0x5A, 0xC, 0x0 }, + { 0x23D, -0x192, 0x1, 0x5A, 0xC, 0x0 }, + { 0x291, -0x157, 0x1, 0x5A, 0xC, 0x0 }, + { 0x2E4, -0x11C, 0x1, 0x5A, 0xC, 0x0 }, + { 0x337, -0xE2, 0x1, 0x5A, 0xC, 0x0 }, + { 0x38B, -0xA7, 0x1, 0x5A, 0xC, 0x0 }, + { 0x5A2, -0x6D, 0x1, 0x5A, 0xC, 0x0 }, + { 0x591, -0x32, 0x1, 0x5A, 0xC, 0x0 }, + { 0x580, 0x8, 0x1, 0x5A, 0xC, 0x0 }, + { 0x56E, 0x42, 0x1, 0x5A, 0xC, 0x0 }, + { 0x55D, 0x7D, 0x1, 0x5A, 0xC, 0x0 }, + { 0x54C, 0xB8, 0x1, 0x5A, 0xC, 0x0 }, + { 0x53B, 0xF2, 0x1, 0x5A, 0xC, 0x0 }, + { 0x52A, 0x12D, 0x1, 0x5A, 0xC, 0x0 }, + { 0x519, 0x168, 0x1, 0x5A, 0xC, 0x0 }, + { 0x508, 0x1A2, 0x1, 0x5A, 0xC, 0x0 }, + { 0x537, 0x223, 0x1, 0x5A, 0xC, 0x0 }, + { 0x4A6, 0x1D1, 0x1, 0x5A, 0xC, 0x0 }, + { 0x3AA, 0x108, 0x1, 0x5A, 0xC, 0x0 }, + { 0x3EE, 0x1A1, 0x1, 0x5A, 0xC, 0x0 }, + { 0x433, 0x23A, 0x1, 0x5A, 0x0, 0x0 }, + { 0x477, 0x2D3, 0x1, 0x5A, 0xFF, 0x0 }, + { 0x4BB, 0x36C, 0x1, 0x5A, 0xFF, 0x0 }, + { 0x500, 0x405, 0x1, 0x5A, 0xFF, 0x0 }, + { 0x544, 0x49E, 0x1, 0x5A, 0xFF, 0x0 }, + { 0x588, 0x537, 0x1, 0x5A, 0xFF, 0x0 }, + { 0x8A6, 0xA26, 0x1, 0x5A, 0xC, 0x0 }, + { 0x848, 0x9C8, 0x1, 0x5A, 0xC, 0x0 }, + { 0x7EA, 0x96A, 0x1, 0x5A, 0xC, 0x0 }, + { 0x78C, 0x90C, 0x1, 0x5A, 0xC, 0x0 }, + { 0x72E, 0x8AE, 0x1, 0x5A, 0xC, 0x0 }, + { 0x6D1, 0x851, 0x1, 0x5A, 0xC, 0x0 }, + { 0x673, 0x7F3, 0x1, 0x5A, 0xC, 0x0 }, + { 0x615, 0x795, 0x1, 0x5A, 0xC, 0x0 }, + { 0x5B7, 0x737, 0x1, 0x5A, 0xC, 0x0 }, + { 0x559, 0x6D9, 0x1, 0x5A, 0xC, 0x0 }, + { 0x180, 0x300, 0x1, 0x5A, 0xC, 0x0 }, + { 0x180, 0x300, 0x1, 0x5A, 0xC, 0x0 }, + { 0x180, 0x300, 0x1, 0x5A, 0xC, 0x0 }, + { 0x180, 0x300, 0x1, 0x5A, 0xC, 0x0 }, + { 0x180, 0x300, 0x1, 0x5A, 0xC, 0x0 }, + { 0x180, 0x300, 0x1, 0x5A, 0xC, 0x0 }, + { 0x180, 0x300, 0x1, 0x5A, 0xC, 0x0 }, + { 0x180, 0x300, 0x1, 0x5A, 0xC, 0x0 }, + { 0x180, 0x300, 0x1, 0x5A, 0xC, 0x0 }, + { 0x180, 0x300, 0x1, 0x5A, 0xC, 0x0 }, + { 0x180, 0x300, 0x1, 0x5A, 0xC, 0x0 }, + { 0x180, 0x300, 0x1, 0x5A, 0xC, 0x0 }, + { 0x180, 0x300, 0x1, 0x5A, 0xC, 0x0 }, + { 0x180, 0x300, 0x1, 0x5A, 0xC, 0x0 }, + { 0x180, 0x300, 0x1, 0x5A, 0xC, 0x0 }, + { 0x180, 0x300, 0x1, 0x5A, 0xC, 0x0 }, + { 0x180, 0x300, 0x1, 0x5A, 0xC, 0x0 }, + { 0x180, 0x300, 0x1, 0x5A, 0xC, 0x0 }, + { 0x180, 0x300, 0x1, 0x5A, 0xC, 0x0 }, + { 0x180, 0x300, 0x1, 0x5A, 0xC, 0x0 }, + { 0x0, 0x0, 0x0, 0x5A, 0xFF, 0x40 }, + { 0x5E1, -0xF73, 0x1, 0x5A, 0xC, 0x0 }, + { 0x5BF, -0xE9A, 0x1, 0x5A, 0xC, 0x0 }, + { 0x59E, -0xDC1, 0x1, 0x5A, 0xC, 0x0 }, + { 0x57D, -0xCE8, 0x1, 0x5A, 0xC, 0x0 }, + { 0x55C, -0xC0F, 0x1, 0x5A, 0xC, 0x0 }, + { 0x53B, -0xB37, 0x1, 0x5A, 0xC, 0x0 }, + { 0x51A, -0x305, 0x1, 0x5A, 0xC, 0x0 }, + { 0x4F8, -0x2D0, 0x1, 0x5A, 0xC, 0x0 }, + { 0x4D7, -0x29A, 0x1, 0x5A, 0xC, 0x0 }, + { 0x4B6, -0x265, 0x1, 0x5A, 0xC, 0x0 }, + { 0x495, -0x22F, 0x1, 0x5A, 0xC, 0x0 }, + { 0x474, -0x1FA, 0x1, 0x5A, 0xC, 0x0 }, + { 0x452, -0x1C5, 0x1, 0x5A, 0xC, 0x0 }, + { 0x431, -0x190, 0x1, 0x5A, 0xC, 0x0 }, + { 0x410, -0x15A, 0x1, 0x5A, 0xC, 0x0 }, + { 0x3EF, -0x125, 0x1, 0x5A, 0xC, 0x0 }, + { 0x3CE, -0xF0, 0x1, 0x5A, 0xC, 0x0 }, + { 0x3AD, -0xBA, 0x1, 0x5A, 0xC, 0x0 }, + { 0x38B, -0x85, 0x1, 0x5A, 0xC, 0x0 }, + { 0x36A, -0x4F, 0x1, 0x5A, 0xC, 0x0 }, + { 0x349, -0x1A, 0x1, 0x5A, 0xC, 0x0 }, + { 0x328, 0x1A, 0x1, 0x5A, 0xC, 0x0 }, + { 0x307, 0x50, 0x1, 0x5A, 0xC, 0x0 }, + { 0x2E5, 0x85, 0x1, 0x5A, 0xC, 0x0 }, + { 0x2C4, 0xBA, 0x1, 0x5A, 0xC, 0x0 }, + { 0x2A3, 0xF0, 0x1, 0x5A, 0xC, 0x0 }, + { 0x282, 0x125, 0x1, 0x5A, 0xC, 0x0 }, + { 0x261, 0x15A, 0x1, 0x5A, 0xC, 0x0 }, + { 0x240, 0x18F, 0x1, 0x5A, 0xC, 0x0 }, + { 0x21E, 0x1C5, 0x1, 0x5A, 0xC, 0x0 }, + { 0x2EE, 0x246, 0x1, 0x5A, 0xC, 0x0 }, + { 0x26C, 0x25D, 0x1, 0x5A, 0xC, 0x0 }, + { 0x1EB, 0x274, 0x1, 0x5A, 0xC, 0x0 }, + { 0x169, 0x28B, 0x1, 0x5A, 0xC, 0x0 }, + { 0xE8, 0x2A2, 0x1, 0x5A, 0xC, 0x0 }, + { 0x66, 0x2B9, 0x1, 0x5A, 0xC, 0x0 }, + { -0x190, 0x4F0, 0x1, 0x5A, 0xC, 0x0 }, + { -0x1A6, 0x46B, 0x1, 0x5A, 0xC, 0x0 }, + { -0x1BD, 0x3E6, 0x1, 0x5A, 0xC, 0x0 }, + { -0x1D4, 0x362, 0x1, 0x5A, 0xC, 0x0 }, + { -0x1EB, 0x2DD, 0x1, 0x5A, 0xC, 0x0 }, + { -0x202, 0x259, 0x1, 0x5A, 0xC, 0x0 }, + { -0x219, 0x1D4, 0x1, 0x5A, 0xC, 0x0 }, + { -0x230, 0x150, 0x1, 0x5A, 0xC, 0x0 }, + { 0x0, 0x0, 0x1, 0x5A, 0xFF, 0x0 }, + { -0x370, 0x10, 0x1, 0x5A, 0xFF, 0x0 }, + { -0x2D0, -0x50, 0x1, 0x5A, 0xFF, 0x0 }, + { -0x22F, -0xB0, 0x1, 0x5A, 0xFF, 0x0 }, + { -0x190, -0x110, 0x1, 0x5A, 0xFF, 0x0 }, + { -0xF0, -0x170, 0x1, 0x5A, 0xFF, 0x0 }, + { 0x0, 0x0, 0x1, 0x5A, 0xFF, 0x0 }, + { 0x0, -0x1FF, 0x1, 0x5A, 0xFF, 0x0 }, + { 0x0, 0x0, 0x1, 0x5A, 0xFF, 0x0 }, + { 0x0, -0x1E4, 0x1, 0x5A, 0xFF, 0x0 }, + { 0x0, -0x1E4, 0x1, 0x5A, 0xFF, 0x0 }, + { 0x0, -0x1E4, 0x1, 0x5A, 0xFF, 0x0 }, + { 0x0, -0x1E4, 0x1, 0x5A, 0xFF, 0x0 }, + { 0x0, -0x1E4, 0x1, 0x5A, 0xFF, 0x0 }, + { 0x0, -0x1E4, 0x1, 0x5A, 0xFF, 0x0 }, + { 0x0, -0x1E4, 0x1, 0x5A, 0xFF, 0x0 }, + { 0x0, -0x1E4, 0x1, 0x5A, 0xFF, 0x0 }, + { 0x0, -0x1E4, 0x1, 0x5A, 0xFF, 0x0 }, + { 0x0, -0x1E4, 0x1, 0x5A, 0xFF, 0x0 }, + { 0x0, -0x1E4, 0x1, 0x5A, 0xFF, 0x0 }, + { 0x0, -0x1E4, 0x1, 0x5A, 0xFF, 0x0 }, + { 0x0, -0x1E4, 0x1, 0x5A, 0xFF, 0x0 }, + { 0x0, -0x1E4, 0x1, 0x5A, 0xFF, 0x0 }, + { 0x0, -0x1E4, 0x1, 0x5A, 0xFF, 0x0 }, + { 0x0, -0x1E4, 0x1, 0x5A, 0xFF, 0x0 }, + { 0x0, -0x1E4, 0x1, 0x5A, 0xFF, 0x0 }, + { 0x0, -0x1E4, 0x1, 0x5A, 0xFF, 0x0 }, + { 0x0, -0x1E4, 0x1, 0x5A, 0xFF, 0x0 }, + { 0x0, -0x1E4, 0x1, 0x5A, 0xFF, 0x0 }, + { 0x0, -0x1E4, 0x1, 0x5A, 0xFF, 0x0 }, + { 0x0, -0x1E4, 0x1, 0x5A, 0xFF, 0x0 }, + { 0x0, -0x1E4, 0x1, 0x5A, 0xFF, 0x0 }, + { 0x0, -0x1E4, 0x1, 0x5A, 0xFF, 0x0 }, + { 0x0, -0x1E4, 0x1, 0x5A, 0xFF, 0x0 }, + { 0x0, -0x1E4, 0x1, 0x5A, 0xFF, 0x0 }, + { 0x0, -0x1E4, 0x1, 0x5A, 0xFF, 0x0 }, + { 0x0, 0x0, 0x0, 0x5A, 0xFF, 0x80 }, +}; + +const struct Unk_08353510 gUnk_082DD77C[] = { + { 0x0, 0x0, 0x1, 0x5A, 0x15, 0x0 }, + { 0x0, 0x0, 0x1, 0x5A, 0xFF, 0x0 }, + { 0x2E7, 0x5, 0x1, 0x5A, 0xFF, 0x0 }, + { 0x28A, -0x30, 0x1, 0x5A, 0xFF, 0x0 }, + { 0x22E, -0x65, 0x1, 0x5A, 0xFF, 0x0 }, + { 0x1D1, -0x9A, 0x1, 0x5A, 0xFF, 0x0 }, + { 0x175, -0xCF, 0x1, 0x5A, 0xFF, 0x0 }, + { 0x118, -0x105, 0x1, 0x5A, 0xFF, 0x0 }, + { 0xBC, -0x13A, 0x1, 0x5A, 0xFF, 0x0 }, + { 0x60, -0x170, 0x1, 0x5A, 0xFF, 0x0 }, + { 0x0, 0x0, 0x1, 0x5A, 0xFF, 0x0 }, + { -0x85, -0x30D, 0x1, 0x5A, 0xFF, 0x0 }, + { -0xD0, -0x2C8, 0x1, 0x5A, 0xFF, 0x0 }, + { -0x11A, -0x282, 0x1, 0x5A, 0xFF, 0x0 }, + { -0x165, -0x23D, 0x1, 0x5A, 0xFF, 0x0 }, + { -0x1B0, -0x1F8, 0x1, 0x5A, 0xFF, 0x0 }, + { -0x1FA, -0x1B2, 0x1, 0x5A, 0xFF, 0x0 }, + { -0x245, -0x16D, 0x1, 0x5A, 0xFF, 0x0 }, + { 0x0, 0x0, 0x1, 0x5A, 0xFF, 0x0 }, + { -0x5E0, -0x1E9, 0x1, 0x5A, 0xFF, 0x0 }, + { -0x57F, -0x169, 0x1, 0x5A, 0xFF, 0x0 }, + { -0x51D, -0xEA, 0x1, 0x5A, 0xFF, 0x0 }, + { -0x4BC, -0x6A, 0x1, 0x5A, 0xFF, 0x0 }, + { -0x45B, 0x15, 0x1, 0x5A, 0xFF, 0x0 }, + { -0x3FA, 0x95, 0x1, 0x5A, 0xFF, 0x0 }, + { -0x398, 0x114, 0x1, 0x5A, 0xFF, 0x0 }, + { -0x337, 0x194, 0x1, 0x5A, 0xFF, 0x0 }, + { -0x2D6, 0x214, 0x1, 0x5A, 0xFF, 0x0 }, + { -0x275, 0x294, 0x1, 0x5A, 0xFF, 0x0 }, + { -0x213, 0x313, 0x1, 0x5A, 0xFF, 0x0 }, + { 0x0, 0x0, 0x1, 0x5A, 0xFF, 0x0 }, + { -0x183, 0x4AF, 0x1, 0x5A, 0xFF, 0x0 }, + { -0xF0, 0x493, 0x1, 0x5A, 0xFF, 0x0 }, + { -0x5C, 0x477, 0x1, 0x5A, 0xFF, 0x0 }, + { 0x36, 0x45A, 0x1, 0x5A, 0xFF, 0x0 }, + { 0x0, 0x0, 0x1, 0x5A, 0xFF, 0x0 }, + { 0x15C, 0x422, 0x1, 0x5A, 0xFF, 0x0 }, + { 0x1F0, 0x406, 0x1, 0x5A, 0xFF, 0x0 }, + { 0x283, 0x3EA, 0x1, 0x5A, 0x0, 0x0 }, + { 0x316, 0x3CE, 0x1, 0x5A, 0xFF, 0x0 }, + { 0x0, 0x0, 0x1, 0x5A, 0xFF, 0x0 }, + { 0x640, 0x39E, 0x1, 0x5A, 0xFF, 0x0 }, + { 0x640, 0x380, 0x1, 0x5A, 0xFF, 0x0 }, + { 0x63F, 0x361, 0x1, 0x5A, 0xFF, 0x0 }, + { 0x640, 0x342, 0x1, 0x5A, 0xFF, 0x0 }, + { 0x640, 0x323, 0x1, 0x5A, 0xFF, 0x0 }, + { 0x63F, 0x305, 0x1, 0x5A, 0xFF, 0x0 }, + { 0x640, 0x2E6, 0x1, 0x5A, 0xFF, 0x0 }, + { 0x63F, 0x2C7, 0x1, 0x5A, 0xFF, 0x0 }, + { 0x640, 0x2A8, 0x1, 0x5A, 0xFF, 0x0 }, + { 0x0, 0x0, 0x1, 0x5A, 0xFF, 0x0 }, + { 0x640, 0x200, 0x1, 0x5A, 0xFF, 0x0 }, + { 0x640, 0x200, 0x1, 0x5A, 0xFF, 0x0 }, + { 0x640, 0x200, 0x1, 0x5A, 0xFF, 0x0 }, + { 0x640, 0x200, 0x1, 0x5A, 0xFF, 0x0 }, + { 0x640, 0x200, 0x1, 0x5A, 0xFF, 0x0 }, + { 0x640, 0x200, 0x1, 0x5A, 0xFF, 0x0 }, + { 0x640, 0x200, 0x1, 0x5A, 0xFF, 0x0 }, + { 0x640, 0x200, 0x1, 0x5A, 0xFF, 0x0 }, + { 0x640, 0x200, 0x1, 0x5A, 0xFF, 0x0 }, + { 0x0, 0x0, 0x0, 0x5A, 0xFF, 0x40 }, + { 0x0, 0x0, 0x1, 0x5A, 0xFF, 0x0 }, + { 0x500, -0xC73, 0x1, 0x5A, 0xFF, 0x0 }, + { 0x500, -0xBBF, 0x1, 0x5A, 0xFF, 0x0 }, + { 0x500, -0xB0C, 0x1, 0x5A, 0xFF, 0x0 }, + { 0x500, -0xA59, 0x1, 0x5A, 0xFF, 0x0 }, + { 0x500, -0x9A6, 0x1, 0x5A, 0xFF, 0x0 }, + { 0x500, -0x8F3, 0x1, 0x5A, 0xFF, 0x0 }, + { 0x500, -0x840, 0x1, 0x5A, 0xFF, 0x0 }, + { 0x4FF, -0x78C, 0x1, 0x5A, 0xFF, 0x0 }, + { 0x500, -0x6D9, 0x1, 0x5A, 0xFF, 0x0 }, + { 0x0, 0x0, 0x1, 0x5A, 0xFF, 0x0 }, + { 0x488, -0x4DD, 0x1, 0x5A, 0xFF, 0x0 }, + { 0x4AA, -0x455, 0x1, 0x5A, 0xFF, 0x0 }, + { 0x4CC, -0x3CC, 0x1, 0x5A, 0xFF, 0x0 }, + { 0x4EE, -0x344, 0x1, 0x5A, 0xFF, 0x0 }, + { 0x511, -0x2BB, 0x1, 0x5A, 0xFF, 0x0 }, + { 0x533, -0x233, 0x1, 0x5A, 0xFF, 0x0 }, + { 0x555, -0x1AA, 0x1, 0x5A, 0xFF, 0x0 }, + { 0x577, -0x122, 0x1, 0x5A, 0xFF, 0x0 }, + { 0x599, -0x99, 0x1, 0x5A, 0xFF, 0x0 }, + { 0x0, 0x0, 0x1, 0x5A, 0xFF, 0x0 }, + { 0x6A3, 0xEE, 0x1, 0x5A, 0xFF, 0x0 }, + { 0x600, 0x100, 0x1, 0x5A, 0xFF, 0x0 }, + { 0x55C, 0x111, 0x1, 0x5A, 0xFF, 0x0 }, + { 0x4B8, 0x122, 0x1, 0x5A, 0xFF, 0x0 }, + { 0x0, 0x0, 0x1, 0x5A, 0xFF, 0x0 }, + { 0x1F2, 0x144, 0x1, 0x5A, 0xFF, 0x0 }, + { 0x1BB, 0x155, 0x1, 0x5A, 0xFF, 0x0 }, + { 0x185, 0x166, 0x1, 0x5A, 0xFF, 0x0 }, + { 0x14E, 0x177, 0x1, 0x5A, 0xFF, 0x0 }, + { 0x117, 0x188, 0x1, 0x5A, 0xFF, 0x0 }, + { 0xE1, 0x199, 0x1, 0x5A, 0xFF, 0x0 }, + { 0xAA, 0x1AA, 0x1, 0x5A, 0xFF, 0x0 }, + { 0x74, 0x1BB, 0x1, 0x5A, 0xFF, 0x0 }, + { 0x3D, 0x1CC, 0x1, 0x5A, 0xFF, 0x0 }, + { 0x0, 0x0, 0x1, 0x5A, 0xFF, 0x0 }, + { -0x51, 0x217, 0x1, 0x5A, 0xFF, 0x0 }, + { -0x66, 0x200, 0x1, 0x5A, 0xFF, 0x0 }, + { -0x7A, 0x1E8, 0x1, 0x5A, 0xFF, 0x0 }, + { -0x8F, 0x1D0, 0x1, 0x5A, 0xFF, 0x0 }, + { 0x0, 0x0, 0x1, 0x5A, 0xFF, 0x0 }, + { -0x6A, 0x1F3, 0x1, 0x5A, 0xFF, 0x0 }, + { -0x95, 0x1C3, 0x1, 0x5A, 0xFF, 0x0 }, + { -0xBF, 0x194, 0x1, 0x5A, 0xFF, 0x0 }, + { -0xEA, 0x164, 0x1, 0x5A, 0xFF, 0x0 }, + { -0x115, 0x134, 0x1, 0x5A, 0xFF, 0x0 }, + { -0x140, 0x105, 0x1, 0x5A, 0xFF, 0x0 }, + { -0x16A, 0xD5, 0x1, 0x5A, 0xFF, 0x0 }, + { -0x195, 0xA6, 0x1, 0x5A, 0xFF, 0x0 }, + { -0x1BF, 0x76, 0x1, 0x5A, 0xFF, 0x0 }, + { 0x0, 0x0, 0x1, 0x5A, 0xFF, 0x0 }, + { -0x27F, 0x82, 0x1, 0x5A, 0xFF, 0x0 }, + { -0x280, 0x28, 0x1, 0x5A, 0xFF, 0x0 }, + { -0x27F, -0x32, 0x1, 0x5A, 0xFF, 0x0 }, + { -0x280, -0x8D, 0x1, 0x5A, 0xFF, 0x0 }, + { -0x280, -0xE8, 0x1, 0x5A, 0xFF, 0x0 }, + { -0x280, -0x142, 0x1, 0x5A, 0xFF, 0x0 }, + { -0x280, -0x19D, 0x1, 0x5A, 0xFF, 0x0 }, + { 0x0, 0x0, 0x1, 0x5A, 0xFF, 0x0 }, + { -0x2DB, -0x1E7, 0x1, 0x5A, 0xFF, 0x0 }, + { -0x224, -0x318, 0x1, 0x5A, 0xFF, 0x0 }, + { -0x16D, -0x449, 0x1, 0x5A, 0xFF, 0x0 }, + { 0x0, 0x0, 0x1, 0x5A, 0xFF, 0x0 }, + { 0x0, -0x6AA, 0x1, 0x5A, 0xFF, 0x0 }, + { 0x0, -0x64D, 0x1, 0x5A, 0xFF, 0x0 }, + { 0x0, 0x0, 0x1, 0x5A, 0xFF, 0x0 }, + { 0x0, -0x630, 0x1, 0x5A, 0xFF, 0x0 }, + { 0x0, -0x5B6, 0x1, 0x5A, 0xFF, 0x0 }, + { 0x0, -0x53C, 0x1, 0x5A, 0xFF, 0x0 }, + { 0x0, -0x4C3, 0x1, 0x5A, 0xFF, 0x0 }, + { 0x0, -0x449, 0x1, 0x5A, 0xFF, 0x0 }, + { 0x0, -0x3CF, 0x1, 0x5A, 0xFF, 0x0 }, + { 0x0, -0x355, 0x1, 0x5A, 0xFF, 0x0 }, + { 0x0, -0x2DB, 0x1, 0x5A, 0xFF, 0x0 }, + { 0x0, -0x261, 0x1, 0x5A, 0xFF, 0x0 }, + { 0x0, -0x1E7, 0x1, 0x5A, 0xFF, 0x0 }, + { 0x0, -0x16D, 0x1, 0x5A, 0xFF, 0x0 }, + { 0x0, -0xF3, 0x1, 0x5A, 0xFF, 0x0 }, + { 0x0, -0x79, 0x1, 0x5A, 0xFF, 0x0 }, + { 0x0, 0x0, 0x1, 0x5A, 0xA, 0x0 }, + { 0x0, 0x0, 0x0, 0x5A, 0xFF, 0x80 }, +}; + +const struct Unk_02021590 gUnk_082DDE24[] = { + { 0x29C, 1, 0 }, + { 0x29C, 1, 0 }, +}; + +const struct Unk_02021590 gUnk_082DDE2C[] = { + { 0x29C, 1, 0 }, + { 0x29C, 1, 0 }, +}; + +const u16 gUnk_082DDE34[] = { 0x25, 0xD, 9, 0xFFFF }; + +const s16 gUnk_082DDE3C[][2] = { + { 0, -0x1000 }, + { 0xC00, -0xC00 }, + { 0x1000, 0 }, + { 0xC00, 0xC00 }, + { 0, 0x1000 }, + { -0xC00, 0xC00 }, + { -0x1000, 0 }, + { -0xC00, -0xC00 }, +}; + +const s16 gUnk_082DDE5C[][4] = { + { 0, 0, 0, 0 }, + { -0x100, 0x100, 0, 0 }, + { 0, -0x120, 0x120, 0 }, + { -0x100, 0x100, -0x160, 0x160 }, +}; + +const u16 gUnk_082DDE7C[] = { 0x12C, 0x258, 0x384, 0 }; + +extern const s16 gUnk_082DE40C[]; + +extern const struct Unk_08353510 *const gUnk_08D60A84[]; +extern const struct GoalStar_D4 *const gUnk_08D60AA0[]; + +void *CreateWarpStar(struct Object *template, u8 a2) +{ + struct Task *t = TaskCreate(ObjectMain, sizeof(struct WarpStar), 0x1000, 0, ObjectDestroy); // in iwram, weird + struct WarpStar *ws = TaskGetStructPtr(t); + + InitObject(&ws->unk0.obj2, template, a2); + ws->unk0.unkB6 = 0; + ws->unk0.unkB8 = 0; + ws->unk0.unkBA = 0; + ws->unk0.unkB4 = template->subtype1; + ws->unk0.unkB5 = 0; + ws->unkBE = template->unk1E; + ws->unkC0 = template->unk1A; + ws->unkC2 = template->unk1C; + ws->unk0.obj2.base.flags |= 0x221C140; + ws->unk0.obj2.base.unk68 &= ~7; + ws->unk0.obj2.base.unk5C = ~0x80; + ws->unk0.obj2.base.unk5C &= ~7; // do nothing + ws->unk0.obj2.base.unkC |= 1; + sub_0803E2B0(&ws->unk0.obj2.base, -0x10, -0x10, 0x10, 0x10); + sub_0803E308(&ws->unk0.obj2.base, -0x10, -0x10, 0x10, 0x10); + ws->unk0.obj2.unk83 = 0; + ObjectInitSprite(&ws->unk0.obj2); + ws->unk0.obj2.unk78 = sub_0800DC5C; + return ws; +} + +void *CreateGoalStar(struct Object *template, u8 a2) +{ + struct Task *t = TaskCreate(ObjectMain, sizeof(struct GoalStar), 0x1000, 0, ObjectDestroy); // in iwram, weird + struct GoalStar *gs = TaskGetStructPtr(t); + + InitObject(&gs->unk0.obj2, template, a2); + gs->unk0.unkB6 = 0; + gs->unk0.unkB8 = 0; + gs->unk0.unkBA = 0; + gs->unk0.unkB4 = template->subtype1; + gs->unk0.unkB5 = 0; + gs->unk0.obj2.base.flags |= 0x221C140; + gs->unk0.obj2.base.unk68 &= ~7; + gs->unk0.obj2.base.unk5C = ~0x80; + gs->unk0.obj2.base.unk5C &= ~7; // do nothing + gs->unk0.obj2.base.unkC |= 1; + sub_0803E2B0(&gs->unk0.obj2.base, -0x10, -0x10, 0x10, 0x10); + sub_0803E308(&gs->unk0.obj2.base, -0x10, -0x10, 0x10, 0x10); + gs->unk0.obj2.unk83 = 0; + ObjectInitSprite(&gs->unk0.obj2); + gs->unk0.obj2.unk78 = sub_0800DC8C; + return gs; +} + +void sub_0800BFC8(struct StarShared *ss) +{ + if (ss->unkB6 > 3) + { + ss->unkB6 = 0; + ss->unkB8 = 0; + } + else if (gUnk_082DDE34[ss->unkB6] < ++ss->unkB8) + { + u16 r = Rand16() & 7; + + ss->unkB8 = 0; + ++ss->unkB6; + sub_0800D5D8(ss, ss->obj2.base.x + gUnk_082DDE3C[r][0], ss->obj2.base.y + gUnk_082DDE3C[r][1]); + if (gUnk_082DDE34[ss->unkB6] == 0xFFFF) + ss->unkB6 = 0; + } +} + +bool32 sub_0800C084(struct WarpStar *ws, bool32 a2) +{ + struct Kirby *kirby, *kirby2; + + if (ws->unk0.obj2.base.flags & 0x40000 + && !(kirby2 = (struct Kirby *)ws->unk0.obj2.base.unk6C)->base.base.base.unk0 + && (!a2 || kirby2->base.base.base.unk56 < gUnk_0203AD30) + && sub_080525C0(kirby2)) + { + ws->unk0.unkB5 |= 1 << kirby2->base.base.base.unk56; + kirby = (struct Kirby *)ws->unk0.obj2.base.unk6C; + gCurLevelInfo[kirby->base.base.base.unk56].unk1EC = 0; + kirby->unk106 = ws->unkBE; + kirby->unk108 = ws->unkC0; + kirby->unk10A = ws->unkC2; + return TRUE; + } + return FALSE; +} + +void sub_0800C124(struct WarpStar *ws) +{ + if (sub_0800C084(ws, TRUE)) + { + ws->unk0.obj2.base.flags |= 0x400; + sub_0808AE30(&ws->unk0.obj2.base, 0, 0x292, 0); + ws->unk0.obj2.unk78 = sub_0800DC78; + } + else + { + s32 a[2]; + + ws->unk0.unkBA = (ws->unk0.unkBA + 8) & 0x3FF; + a[0] = ws->unk0.obj2.object->x * 0x100; + ws->unk0.obj2.base.x = ws->unk0.obj2.object->x * 0x100; + a[1] = ws->unk0.obj2.object->y * 0x100; + ws->unk0.obj2.base.y = ws->unk0.obj2.object->y * 0x100; + a[1] += 8 * (gSineTable[ws->unk0.unkBA] >> 6); + ws->unk0.obj2.base.xspeed = a[0] - ws->unk0.obj2.base.x; // always 0 + ws->unk0.obj2.base.yspeed = a[1] - ws->unk0.obj2.base.y; + ws->unk0.obj2.base.yspeed = -ws->unk0.obj2.base.yspeed; + sub_0800BFC8(&ws->unk0); + ws->unk0.obj2.base.flags |= 4; + } +} + +void sub_0800C1C4(struct WarpStar *ws) +{ + s32 a[2]; + struct WarpStar *wsAlias = ws; + + if (sub_0800C084(ws, FALSE)) + sub_0808AE30(&ws->unk0.obj2.base, 0, 0x292, 0); + a[0] = ws->unk0.obj2.object->x * 0x100; + ws->unk0.obj2.base.x = ws->unk0.obj2.object->x * 0x100; + a[1] = ws->unk0.obj2.object->y * 0x100; + ws->unk0.obj2.base.y = ws->unk0.obj2.object->y * 0x100; + ws->unk0.obj2.base.xspeed = a[0] - ws->unk0.obj2.base.x; // always 0 + ws->unk0.obj2.base.yspeed = a[1] - ws->unk0.obj2.base.y; // always 0 + if (ws->unk0.obj2.base.xspeed > 0x80) + ws->unk0.obj2.base.xspeed = 0x80; + else if (ws->unk0.obj2.base.xspeed < -0x80) + ws->unk0.obj2.base.xspeed = -0x80; + wsAlias->unk0.obj2.base.yspeed = a[1] - wsAlias->unk0.obj2.base.y; + if (wsAlias->unk0.obj2.base.yspeed > 0x80) + wsAlias->unk0.obj2.base.yspeed = 0x80; + else if (wsAlias->unk0.obj2.base.yspeed < -0x80) + wsAlias->unk0.obj2.base.yspeed = -0x80; + wsAlias->unk0.obj2.base.yspeed = -wsAlias->unk0.obj2.base.yspeed; + if (!wsAlias->unk0.obj2.base.xspeed && !wsAlias->unk0.obj2.base.yspeed) + { + wsAlias->unk0.obj2.unk78 = sub_0800C270; + ws->unk0.unkBA = 0; + ws->unkBC = 0; + } +} + +void sub_0800C270(struct WarpStar *ws) +{ + s32 a[2]; + u16 i; +#ifndef NONMATCHING + register u32 var asm("r1"), r2 asm("r2"); +#else + u32 var, r2; +#endif + u16 exp; + + if (sub_0800C084(ws, FALSE)) + sub_0808AE30(&ws->unk0.obj2.base, 0, 0x292, 0); + for (i = 0; i < gUnk_0203AD44; ++i) + if ((ws->unk0.unkB5 >> i) & 1 && gCurLevelInfo[i].unk1EC == 1) + gCurLevelInfo[i].unk1EC = 2; + a[0] = ws->unk0.obj2.object->x * 0x100; + ws->unk0.obj2.base.x = ws->unk0.obj2.object->x * 0x100; + a[1] = ws->unk0.obj2.object->y * 0x100; + ws->unk0.obj2.base.y = ws->unk0.obj2.object->y * 0x100; + exp = ws->unkBC * 3u / 2; + if (exp > 1) + { + r2 = exp; + r2 = exp > 0x200 ? 0x200 : r2; + var = r2; + } + else + var = 2; + ws->unk0.unkBA = (ws->unk0.unkBA + var) % 0x400; + a[1] += 2 * (gSineTable[ws->unk0.unkBA] >> 6); + ws->unk0.obj2.base.xspeed = a[0] - ws->unk0.obj2.base.x; // always 0 + ws->unk0.obj2.base.yspeed = a[1] - ws->unk0.obj2.base.y; + ws->unk0.obj2.base.yspeed = -ws->unk0.obj2.base.yspeed; + if (++ws->unkBC > 0x12C) + { + // TODO: The two expressions need << 8 instead of * 0x100 to match. UB? + ws->unk0.obj2.base.xspeed = (ws->unk0.obj2.object->x << 8) - ws->unk0.obj2.base.x; + ws->unk0.obj2.base.yspeed = (ws->unk0.obj2.object->y << 8) - ws->unk0.obj2.base.y; + ws->unk0.obj2.base.yspeed = -ws->unk0.obj2.base.yspeed; +#ifndef NONMATCHING + if ((u16)ws->unk0.obj2.base.yspeed & 0x10000) + ws->unk0.obj2.unk78 = sub_0800DCC0; + else + ws->unk0.obj2.unk78 = sub_0800DCC0; +#else + ws->unk0.obj2.unk78 = sub_0800DCC0; +#endif + } +} + +bool32 sub_0800C3BC(struct GoalStar *gs) +{ + struct Kirby *kirby, *kirby2; + + if (gs->unk0.obj2.base.flags & 0x40000 + && !(kirby2 = (struct Kirby *)gs->unk0.obj2.base.unk6C)->base.base.base.unk0 + && kirby2->base.base.base.unk56 < gUnk_0203AD30 + && sub_080525C0(kirby2)) + { + gs->unk0.unkB5 |= 1 << kirby2->base.base.base.unk56; + kirby = (struct Kirby *)gs->unk0.obj2.base.unk6C; + gCurLevelInfo[kirby->base.base.base.unk56].unk1EC = 2; + + return TRUE; + } + return FALSE; +} + +#define Macro_0800C42C(gs) \ +({ \ + u16 _j = 0, _k; \ + \ + for (_k = 0; _k < gUnk_0203AD30; ++_k) \ + if (((gs)->unk0.unkB5 >> _k) & 1) \ + ++_j; \ + _j; \ +}) + + +void sub_0800C42C(struct GoalStar *gs) +{ + u16 i = 0, k; + + gs->unkC2 = Macro_0800C42C(gs); + for (k = 0; k < gs->unkC2; ++k) + { + for (; i < gUnk_0203AD30; ++i) + { + if ((gs->unk0.unkB5 >> i) & 1) + { + gs->unkBE[k] = i; + ++i; + break; + } + } + } +} + +bool32 sub_0800C4D0(struct GoalStar *gs) +{ + u16 i; + bool32 ret = FALSE; + struct LevelInfo *li; + + for (i = 0; i < gs->unkC2; ++i) + { + li = gCurLevelInfo + gs->unkBE[i]; + li->unk46 = -gs->unkC8 >> 8; + } + gs->unkC4 += 0xA00; + gs->unkC8 += 0xA00; + if (gs->unkC8 >= 0x14000) + { + gs->unkC8 -= 0x14000; + ret = TRUE; + } + return ret; +} + +void sub_0800C558(struct GoalStar *gs) +{ + struct GoalStar *gsAlias = gs; + u16 i, j, roomId; + + if (sub_0800C3BC(gs)) + { + gs->unk0.obj2.base.flags |= 0x400; + sub_0808AE30(&gs->unk0.obj2.base, 0, 0x292, 0); + } + roomId = gs->unk0.obj2.base.roomId; + i = 0; + for (j = 0; j < gUnk_0203AD30; ++j) + { + if (roomId == gKirbys[j].base.base.base.roomId) + { + if (gKirbys[j].unkD4 != 0x5A) + { + i = 0; + break; + } + ++i; + } + } + if (i) + { + sub_0800C42C(gsAlias); + gs->unk0.obj2.unk78 = sub_0800DCAC; + } + else + { + s32 a[2]; + u16 *ptr = &gsAlias->unk0.unkBA; + + gsAlias->unk0.unkBA = (gsAlias->unk0.unkBA + 8) & 0x3FF; + a[0] = gs->unk0.obj2.object->x * 0x100; + a[1] = gs->unk0.obj2.object->y * 0x100; + a[1] += 8 * (gSineTable[*ptr] >> 6); + gs->unk0.obj2.base.xspeed = a[0] - gs->unk0.obj2.base.x; + gs->unk0.obj2.base.yspeed = a[1] - gs->unk0.obj2.base.y; + gs->unk0.obj2.base.yspeed = -gs->unk0.obj2.base.yspeed; + sub_0800BFC8(&gsAlias->unk0); + gs->unk0.obj2.base.flags |= 4; + } +} + +void sub_0800C660(struct GoalStar *gs) +{ + struct GoalStar *gsAlias = gs; + s32 a[2]; + + a[0] = gs->unk0.obj2.object->x * 0x100; + a[1] = gs->unk0.obj2.object->y * 0x100; + gs->unk0.obj2.base.xspeed = a[0] - gs->unk0.obj2.base.x; + gs->unk0.obj2.base.yspeed = a[1] - gs->unk0.obj2.base.y; + if (gs->unk0.obj2.base.xspeed > 0x80) + gs->unk0.obj2.base.xspeed = 0x80; + else if (gs->unk0.obj2.base.xspeed < -0x80) + gs->unk0.obj2.base.xspeed = -0x80; + gsAlias->unk0.obj2.base.yspeed = a[1] - gsAlias->unk0.obj2.base.y; + if (gsAlias->unk0.obj2.base.yspeed > 0x80) + gsAlias->unk0.obj2.base.yspeed = 0x80; + else if (gsAlias->unk0.obj2.base.yspeed < -0x80) + gsAlias->unk0.obj2.base.yspeed = -0x80; + gsAlias->unk0.obj2.base.yspeed = -gsAlias->unk0.obj2.base.yspeed; + if (!gsAlias->unk0.obj2.base.xspeed && !gsAlias->unk0.obj2.base.yspeed) + { + gsAlias->unk0.obj2.unk78 = sub_0800C6E8; + gs->unk0.unkBA = 0; + gs->unkBC = 0; + } +} + +void sub_0800C6E8(struct GoalStar *gs) +{ + struct GoalStar *gsAlias = gs; + u16 i; + + for (i = 0; i < gsAlias->unkC2; ++i) + { + struct Kirby *kirby = gKirbys + gsAlias->unkBE[i]; + + sub_080528E4(kirby); + kirby->base.base.base.xspeed = gUnk_082DDE5C[gsAlias->unkC2 - 1][i]; + kirby->base.base.base.yspeed = 0; + } + if (gsAlias->unkC2 == 1) + { + PlaySfx(&gs->unk0.obj2.base, 509); + gs->unk0.obj2.unk78 = sub_0800DD40; + } + else + { + sub_0808AE30(&gs->unk0.obj2.base, 0, 0x292, 0); + PlaySfx(&gs->unk0.obj2.base, 519); + gs->unk0.obj2.unk78 = sub_0800C89C; + } +} + +void sub_0800C89C(struct GoalStar *gs) +{ + struct GoalStar *gsAlias = gs; + bool32 var = TRUE; + u16 i; + + for (i = 0; i < gsAlias->unkC2; ++i) + { + struct Kirby *kirby = gKirbys + gsAlias->unkBE[i]; + + if (kirby->base.base.base.xspeed > 0) + { + kirby->base.base.base.xspeed -= 4; + if (kirby->base.base.base.xspeed < 0) + kirby->base.base.base.xspeed = 0; + var = FALSE; + } + else if (kirby->base.base.base.xspeed < 0) + { + kirby->base.base.base.xspeed += 4; + if (kirby->base.base.base.xspeed > 0) + kirby->base.base.base.xspeed = 0; + var = FALSE; + } + } + if (var) + gs->unk0.obj2.unk78 = sub_0800DD40; +} + +void sub_0800C918(struct GoalStar *gs) +{ + struct GoalStar *gsAlias = gs; + u16 i; + + for (i = 0; i < gsAlias->unkC2; ++i) + { + struct Kirby *kirby = gKirbys + gsAlias->unkBE[i]; + + kirby->base.base.base.yspeed += 4; + kirby->base.base.base.yspeed = (kirby->base.base.base.yspeed >= -0x800 + ? (kirby->base.base.base.yspeed <= 0x800 ? kirby->base.base.base.yspeed : 0x800) + : -0x800); + } + if (gKirbys[gsAlias->unkBE[0]].base.base.base.yspeed >= 0) + { + PlaySfx(&gs->unk0.obj2.base, 557); + for (i = 0; i < gsAlias->unkC2; ++i) + { + struct Kirby *kirby = gKirbys + gsAlias->unkBE[i]; + + sub_0800D6C0(gs, kirby->base.base.base.x, kirby->base.base.base.y + 0x1000); + kirby->base.base.base.yspeed = 0x400; + } + gs->unk0.obj2.unk78 = sub_0800CA84; + } +} + +void sub_0800CA84(struct GoalStar *gs) +{ + struct GoalStar *gsAlias = gs; + u16 i; + + for (i = 0; i < gsAlias->unkC2; ++i) + { + struct Kirby *kirby = gKirbys + gsAlias->unkBE[i]; + + kirby->base.base.base.yspeed += 4; + kirby->base.base.base.yspeed = (kirby->base.base.base.yspeed >= -0x800 + ? (kirby->base.base.base.yspeed <= 0x800 ? kirby->base.base.base.yspeed : 0x800) + : -0x800); + } + if (gKirbys[gsAlias->unkBE[0]].base.base.base.y < 0x46000) + { + if ((gsAlias->unk0.unkB5 >> gUnk_0203AD3C) & 1) + sub_0803CA20(gUnk_0203AD3C); + gsAlias->unkCC = 0; + gs->unk0.obj2.unk78 = sub_0800CB54; + } +} + +void sub_0800CB54(struct GoalStar *gs) +{ + struct GoalStar *gsAlias = gs; + u16 i; + + for (i = 0; i < gsAlias->unkC2; ++i) + { + struct Kirby *kirby = gKirbys + gsAlias->unkBE[i]; + + kirby->base.base.base.yspeed += 4; + kirby->base.base.base.yspeed = (kirby->base.base.base.yspeed >= -0x800 + ? (kirby->base.base.base.yspeed <= 0x800 ? kirby->base.base.base.yspeed : 0x800) + : -0x800); + } + if (gsAlias->unkCC++ > 0x1E) + gs->unk0.obj2.unk78 = sub_0800CBF0; +} + +void sub_0800CBF0(struct GoalStar *gs) +{ + struct GoalStar *gsAlias = gs; + u16 i; + + if ((gsAlias->unk0.unkB5 >> gUnk_0203AD3C) & 1) + sub_0800D9E8(gs, 0xA4, 0x94); + for (i = 0; i < gsAlias->unkC2; ++i) + { + struct Kirby *kirby = gKirbys + gsAlias->unkBE[i]; + struct LevelInfo *li = gCurLevelInfo + gsAlias->unkBE[i]; + + sub_08052BB4(kirby); + kirby->base.base.base.y = 0x30000; + kirby->base.base.base.xspeed = 0; + kirby->base.base.base.yspeed = 0; + li->unk1EC = 3; + li->unk10 = 0x28000; + li->unk7C = li->unk6C; + li->unk70 = li->unk80 = li->unk10; + li->unk74 = li->unk84 = li->unk74; // duh + li->unk78 = li->unk88 = li->unk70 + 0xA000; + li->unk90 = li->unkA0 = li->unk6C; + li->unk94 = li->unkA4 = li->unk70; + li->unk98 = li->unkA8 = li->unk74; + li->unk9C = li->unkAC = li->unk78; + } + gsAlias->unkCC = 0; + gsAlias->unkC4 = 0; + gsAlias->unkC8 = 0; + gsAlias->unkD4 = gUnk_08D60AA0[gsAlias->unk0.unkB4]; + gsAlias->unkD8 = 0; + gsAlias->unkDA = 0; + gsAlias->unkDC = (Rand16() & 0xFF) < 0x1A; + gsAlias->unkE0 = 1; + gsAlias->unkE2 = 0; + gsAlias->unkE4 = gUnk_082DDE7C[gsAlias->unk0.unkB4] / (gForegroundPalettes[gRoomProps[gs->unk0.obj2.base.roomId].paletteDataIdx]->unk4[0]->unk4[0] - 1); + if ((gsAlias->unk0.unkB5 >> gUnk_0203AD3C) & 1) + sub_0803C95C(gUnk_0203AD3C); + gs->unk0.obj2.unk78 = sub_0800DDAC; +} + +void sub_0800CDE8(struct GoalStar *gs) +{ + struct GoalStar *gsAlias = gs; + + sub_0800C4D0(gs); + if (gsAlias->unkD4[gsAlias->unkD8].unk0 != 0xFFFF) + { + for (; gsAlias->unkD4[gsAlias->unkD8].unk0 == gsAlias->unkDA; ++gsAlias->unkD8) + { + const struct GoalStar_D4 *gsD4 = gsAlias->unkD4 + gsAlias->unkD8; + u16 r = Rand16() & 0xFF; + u16 var = 0, var2, i, j; + + for (i = 0; i < 0x14; ++i) + { + if (gsD4->unk2[i]) + { + var += gsD4->unk2[i]; + if (r < var) break; + } + } + r = Rand16() & 0xFF; + var2 = 0; + for (j = 0; j < 8; ++j) + { + if (gsD4->unk2A[j]) + { + var2 += gsD4->unk2A[j]; + if (r < var2) break; + } + } + if (i < 0x14 && j < 8) + { + CreateObjTemplateAndObj(gsAlias->unk0.obj2.base.unk56, 1, 0x24, + gUnk_082DE40C[j], (gCurLevelInfo[gsAlias->unk0.obj2.base.unk56].unk10 >> 8) - 0x10, + 0, 0x1F, 0, 0, OBJ_GOAL_GAME_BONUS, i, 0, gsAlias->unkDC, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0); + } + } + } + if ((gsAlias->unk0.unkB5 >> gUnk_0203AD3C) & 1) + { + struct ForegroundPalette_4pp *r4 = gForegroundPalettes[gRoomProps[gsAlias->unk0.obj2.base.roomId].paletteDataIdx]->unk4[0]; + + if (gsAlias->unkE0 < r4->unk4[0] + && ++gsAlias->unkE2 >= gsAlias->unkE4) + { + if (gUnk_03002440 & 0x10000) + sub_08158334(r4->unk0.u16ppp[gsAlias->unkE0][0], r4->unk4[1], r4->unk8); + else + { + DmaCopy16(3, r4->unk0.u16ppp[gsAlias->unkE0][0], &gBgPalette[r4->unk4[1]], r4->unk8 * sizeof(u16)); + gUnk_03002440 |= 1; + } + sub_0803D21C(r4->unk0.u16ppp[gsAlias->unkE0][0], r4->unk4[1], r4->unk8); + gsAlias->unkE2 = 0; + ++gsAlias->unkE0; + } + } + ++gsAlias->unkDA; + if (gUnk_082DDE7C[gsAlias->unk0.unkB4] < gsAlias->unkDA) + gs->unk0.obj2.unk78 = sub_0800DDB8; +} + +void sub_0800D0EC(struct GoalStar *gs) +{ + struct GoalStar *gsAlias = gs; + u16 i; + + if (sub_0800C4D0(gs)) + { + for (i = 0; i < gsAlias->unkC2; ++i) + { + struct LevelInfo *li = gCurLevelInfo + gsAlias->unkBE[i]; + + li->unk10 -= gsAlias->unkC8; + li->unk46 = 0; + li->unk90 = li->unkA0 = li->unk6C; + li->unk94 = li->unkA4 = 0x800; + li->unk98 = li->unkA8 = li->unk74; + li->unk9C = li->unkAC = li->unk78; + } + gs->unk0.obj2.unk78 = sub_0800D194; + } +} + +void sub_0800D194(struct GoalStar *gs) +{ + struct GoalStar *gsAlias = gs; + u16 i; + + for (i = 0; i < gsAlias->unkC2; ++i) + { + struct Kirby *kirby = gKirbys + gsAlias->unkBE[i]; + struct LevelInfo *li = gCurLevelInfo + gsAlias->unkBE[i]; + + li->unk10 -= 0xA00; + kirby->base.base.base.yspeed = 0xA00; + if (li->unk10 <= 0x5800) + { + li->unk10 = 0x5800; + li->unk7C = li->unk6C; + li->unk70 = li->unk80 = 0x5800; + li->unk74 = li->unk84 = li->unk74; // duh + li->unk78 = li->unk88 = 0xF800; + li->unk1EC = 1; + } + } + if (gCurLevelInfo[gsAlias->unkBE[0]].unk10 <= 0x5800) + gs->unk0.obj2.unk78 = sub_0800D264; +} + +void sub_0800D264(struct GoalStar *gs) +{ + struct GoalStar *gsAlias = gs; + u16 i, var = 0; + + for (i = 0; i < gsAlias->unkC2; ++i) + { + struct Kirby *kirby = gKirbys + gsAlias->unkBE[i]; + + if (kirby->base.base.base.y > 0x3800) + kirby->base.base.base.yspeed = 0xA00; + else + { + kirby->base.base.base.yspeed = 0; + kirby->base.base.base.y = 0x3800; + ++var; + } + } + if (var == gsAlias->unkC2) + { + gsAlias->unkCE = 0; + gs->unk0.obj2.unk78 = sub_0800D2E0; + } +} + +void sub_0800D2E0(struct GoalStar *gs) +{ + struct GoalStar *gsAlias = gs; + + if (gsAlias->unkCE++ > 0x3C) + { + u16 var = 0, i; + u32 r = 0; + + if (gs->unkC2 > 1) + r = Rand16() & 1; + for (i = 0; i < gsAlias->unkC2; ++i) + { + struct Kirby *kirby = gKirbys + gsAlias->unkBE[i]; + + sub_0804BD98(kirby, var, gsAlias->unkC2, r, 0, kirby->base.base.base.y >> 12); + ++var; + } + gsAlias->unkCE = 0; + gsAlias->unkD0 = 0; + gs->unk0.obj2.unk78 = sub_0800DE20; + } +} + +void sub_0800D3B0(struct GoalStar *gs) +{ + s32 a[] = { gs->unk0.obj2.object->x * 0x100, gs->unk0.obj2.object->y * 0x100 }; + + gs->unk0.obj2.base.xspeed += 3; + if (gs->unk0.obj2.base.xspeed > -0x80) + gs->unk0.obj2.base.xspeed = -0x80; + gs->unk0.obj2.base.yspeed += 8; + if (gs->unk0.obj2.base.yspeed > -0x40) + gs->unk0.obj2.base.yspeed = -0x40; + if (gs->unk0.obj2.base.x < a[0]) + { + gs->unk0.obj2.base.xspeed = 0; + gs->unk0.obj2.base.x = a[0]; + } + if (gs->unk0.obj2.base.y > a[1]) + { + gs->unk0.obj2.base.yspeed = 0; + gs->unk0.obj2.base.y = a[1]; + } + if (gs->unk0.obj2.base.x == a[0] && gs->unk0.obj2.base.y == a[1]) + { + gs->unk0.obj2.base.yspeed = 0; + gs->unk0.obj2.unk78 = sub_0800DC8C; + } + gs->unk0.obj2.base.flags |= 4; +} + +void sub_0800D450(void) +{ + struct Object4 *tmp = TaskGetStructPtr(gCurTask), *obj4 = tmp; + + if (obj4->flags & 0x1000) + TaskDestroy(gCurTask); + else + { + struct StarShared *ss = obj4->parent; + + if (ss) + { + if (ss->obj2.base.unk0 && ss->obj2.base.flags & 0x1000) + { + obj4->parent = NULL; + ss = NULL; + } + if (!ss) + goto label; + if (Macro_0810B1F4(&ss->obj2.base) && !(obj4->flags & 0x2000)) + { + sub_0803DBC8(obj4); + return; + } + } + else + { + label: + KirbySomething(obj4); + } + Macro_0809E55C(obj4); + if (obj4->flags & 2) + obj4->flags |= 0x1000; + sub_0806FAC8(obj4); + } +} + +void sub_0800D5D8(struct StarShared *ss, s32 a2, s32 a3) +{ + struct Task *t = TaskCreate(sub_0800D450, sizeof(struct Object4), 0x3500, 0, sub_0803DCCC); // in iwram, weird + struct Object4 *obj4 = TaskGetStructPtr(t); + + sub_0803E3B0(obj4); + obj4->unk0 = 3; + obj4->x = ss->obj2.base.x; + obj4->y = ss->obj2.base.y; + obj4->parent = ss; + obj4->roomId = ss->obj2.base.roomId; + obj4->flags |= 0x4000; + obj4->x = a2; + obj4->y = a3; + obj4->unk4 = 0; + if (Macro_0810B1F4(&ss->obj2.base)) + obj4->flags |= 0x2000; + obj4->flags |= 0x4000; // why do it twice lol + sub_080709F8(obj4, &obj4->sprite, 0x6012000, 0x2AE, 0, 0xA); +} + +void sub_0800D6C0(struct GoalStar *gs, s32 a2, s32 a3) +{ + struct Task *t = TaskCreate(sub_0800D450, sizeof(struct Object4), 0x3500, 0, sub_0803DCCC); // in iwram, weird + struct Object4 *obj4 = TaskGetStructPtr(t); + + sub_0803E3B0(obj4); + obj4->unk0 = 3; + obj4->x = gs->unk0.obj2.base.x; + obj4->y = gs->unk0.obj2.base.y; + obj4->parent = gs; + obj4->roomId = gs->unk0.obj2.base.roomId; + obj4->flags |= 0x4000; + obj4->x = a2; + obj4->y = a3; + obj4->unk4 = 0; + if (Macro_0810B1F4(&gs->unk0.obj2.base)) + obj4->flags |= 0x2000; + obj4->flags |= 0x4000; // why do it twice lol + sub_080709F8(obj4, &obj4->sprite, 0x6012000, 0x29B, 0, 0xA); +} + +void sub_0800D7A8(struct Unk_0800D9E8 *a1, s16 a2) +{ + bool32 var = TRUE; + s16 stack[3]; + u16 i; + + stack[0] = a2 / 100; + a2 -= stack[0] * 100; + stack[1] = a2 / 10; + a2 -= stack[1] * 10; + stack[2] = a2; + for (i = 0; i < 3; ++i) + { + struct Sprite *sprite = a1->sprites + i; + + if (i == 2 || stack[i] || !var) + { + var = FALSE; + sprite->variant = stack[i]; + Macro_080FC150(&a1->obj4, sprite); + sprite->x = (a1->obj4.x >> 8) + 0x10 * i + 2 * i; + sprite->y = a1->obj4.y >> 8; + a1->obj4.flags &= ~0x400; + if (gKirbys[gUnk_0203AD3C].base.base.base.roomId == a1->obj4.roomId) + { + sprite->x += gUnk_0203AD18[0]; + sprite->y += gUnk_0203AD18[1]; + Macro_0803DBC8(&a1->obj4, sprite); + } + a1->obj4.flags |= 0x400; + } + } +} diff --git a/src/warp_star_data.c b/src/warp_star_data.c new file mode 100644 index 0000000..e1e2f3a --- /dev/null +++ b/src/warp_star_data.c @@ -0,0 +1,306 @@ +// TODO: need a better file name +#include "warp_star.h" + +const struct GoalStar_D4 gUnk_082EB9A4[] = { + { + .unk0 = 0x1E, + .unk2 = { 0x32, 0x32, 0x32, 0x32, 0x32, 0x6, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0 }, + .unk2A = { 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20 }, + }, + { + .unk0 = 0x3C, + .unk2 = { 0x0, 0x19, 0x19, 0xC, 0xC, 0x0, 0x0, 0x0, 0x0, 0x32, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0 }, + .unk2A = { 0x0, 0x0, 0x40, 0x40, 0x40, 0x40, 0x0, 0x0 }, + }, + { + .unk0 = 0x5A, + .unk2 = { 0x19, 0x19, 0x19, 0x19, 0x19, 0x19, 0x19, 0x19, 0x19, 0x1F, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0 }, + .unk2A = { 0x30, 0x30, 0x10, 0x10, 0x10, 0x10, 0x30, 0x30 }, + }, + { + .unk0 = 0x78, + .unk2 = { 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x32, 0xA, 0x1E, 0xA, 0xA, 0xA, 0x1E, 0xA, 0xA, 0xA }, + .unk2A = { 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20 }, + }, + { + .unk0 = 0x96, + .unk2 = { 0x32, 0x32, 0x32, 0x32, 0x32, 0x6, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0 }, + .unk2A = { 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20 }, + }, + { + .unk0 = 0xB4, + .unk2 = { 0x0, 0x19, 0x19, 0xC, 0xC, 0x0, 0x0, 0x0, 0x0, 0x64, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0 }, + .unk2A = { 0x0, 0x0, 0x40, 0x40, 0x40, 0x40, 0x0, 0x0 }, + }, + { + .unk0 = 0xD2, + .unk2 = { 0x19, 0x19, 0x19, 0x19, 0x19, 0x19, 0x19, 0x19, 0x19, 0x1F, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0 }, + .unk2A = { 0x30, 0x30, 0x10, 0x10, 0x10, 0x10, 0x30, 0x30 }, + }, + { + .unk0 = 0xF0, + .unk2 = { 0x0, 0x0, 0x0, 0x0, 0x0, 0x14, 0x24, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0 }, + .unk2A = { 0x32, 0x32, 0x1C, 0x0, 0x0, 0x1C, 0x32, 0x32 }, + }, + { + .unk0 = 0x10E, + .unk2 = { 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x32, 0xA, 0x1E, 0xA, 0xA, 0xA, 0x1E, 0xA, 0xA, 0xA }, + .unk2A = { 0x32, 0x32, 0x1C, 0x0, 0x0, 0x1C, 0x32, 0x32 }, + }, + { + .unk0 = 0xFFFF, + .unk2 = { 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0 }, + .unk2A = { 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0 }, + }, +}; + +const struct GoalStar_D4 gUnk_082EBBFC[] = { + { + .unk0 = 0x1E, + .unk2 = { 0x32, 0x32, 0x32, 0x32, 0x32, 0x6, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0 }, + .unk2A = { 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20 }, + }, + { + .unk0 = 0x3C, + .unk2 = { 0x0, 0x19, 0x19, 0xC, 0xC, 0x0, 0x0, 0x0, 0x0, 0x64, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0 }, + .unk2A = { 0x0, 0x0, 0x40, 0x40, 0x40, 0x40, 0x0, 0x0 }, + }, + { + .unk0 = 0x78, + .unk2 = { 0x19, 0x19, 0x19, 0x19, 0x19, 0xA, 0xA, 0xA, 0xA, 0x1F, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0 }, + .unk2A = { 0x30, 0x30, 0x10, 0x10, 0x10, 0x10, 0x30, 0x30 }, + }, + { + .unk0 = 0x96, + .unk2 = { 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x32, 0xA, 0x1E, 0xA, 0xA, 0xA, 0x1E, 0xA, 0xA, 0xA }, + .unk2A = { 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20 }, + }, + { + .unk0 = 0xB4, + .unk2 = { 0x32, 0x32, 0x32, 0x32, 0x32, 0x6, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0 }, + .unk2A = { 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20 }, + }, + { + .unk0 = 0xD2, + .unk2 = { 0x0, 0x19, 0x19, 0xC, 0xC, 0x0, 0x0, 0x0, 0x0, 0x64, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0 }, + .unk2A = { 0x0, 0x0, 0x40, 0x40, 0x40, 0x40, 0x0, 0x0 }, + }, + { + .unk0 = 0xF0, + .unk2 = { 0x19, 0x19, 0x19, 0x19, 0x19, 0x19, 0x19, 0x19, 0x19, 0x1F, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0 }, + .unk2A = { 0x30, 0x30, 0x10, 0x10, 0x10, 0x10, 0x30, 0x30 }, + }, + { + .unk0 = 0x10E, + .unk2 = { 0x0, 0xA, 0x1E, 0x0, 0x0, 0xA, 0x12, 0x32, 0x32, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0 }, + .unk2A = { 0x32, 0x32, 0x1C, 0x0, 0x0, 0x1C, 0x32, 0x32 }, + }, + { + .unk0 = 0x12C, + .unk2 = { 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x32, 0xA, 0x1E, 0xA, 0xA, 0xA, 0x1E, 0xA, 0xA, 0xA }, + .unk2A = { 0x32, 0x32, 0x1C, 0x0, 0x0, 0x1C, 0x32, 0x32 }, + }, + { + .unk0 = 0x14A, + .unk2 = { 0x0, 0x32, 0x96, 0x0, 0x19, 0x0, 0x0, 0x0, 0x0, 0x1F, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0 }, + .unk2A = { 0x64, 0x64, 0x38, 0x0, 0x0, 0x0, 0x0, 0x0 }, + }, + { + .unk0 = 0x168, + .unk2 = { 0x0, 0x96, 0x32, 0x0, 0x19, 0x0, 0x0, 0x0, 0x0, 0x1F, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0 }, + .unk2A = { 0x0, 0x0, 0x0, 0x0, 0x0, 0x38, 0x64, 0x64 }, + }, + { + .unk0 = 0x186, + .unk2 = { 0x0, 0x64, 0x0, 0x0, 0x0, 0x14, 0x24, 0x32, 0x32, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0 }, + .unk2A = { 0x0, 0x0, 0x40, 0x40, 0x40, 0x40, 0x0, 0x0 }, + }, + { + .unk0 = 0x1A4, + .unk2 = { 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x64, 0x0, 0x64, 0x0, 0x0, 0x0, 0x0, 0x0, 0x38 }, + .unk2A = { 0x0, 0x0, 0x1C, 0x64, 0x64, 0x1C, 0x0, 0x0 }, + }, + { + .unk0 = 0x1C2, + .unk2 = { 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xC8, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0 }, + .unk2A = { 0x0, 0x0, 0x0, 0x0, 0x0, 0x38, 0x64, 0x64 }, + }, + { + .unk0 = 0x1E0, + .unk2 = { 0x19, 0x19, 0x19, 0x19, 0x19, 0x19, 0x19, 0x19, 0x19, 0x1F, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0 }, + .unk2A = { 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20 }, + }, + { + .unk0 = 0x1FE, + .unk2 = { 0x0, 0x0, 0x32, 0x0, 0x0, 0x0, 0x0, 0x0, 0x32, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0 }, + .unk2A = { 0x0, 0x0, 0x40, 0x40, 0x40, 0x40, 0x0, 0x0 }, + }, + { + .unk0 = 0x21C, + .unk2 = { 0x0, 0x0, 0x64, 0x0, 0x0, 0x0, 0x0, 0x64, 0x0, 0x0, 0x0, 0x38, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0 }, + .unk2A = { 0x30, 0x30, 0x10, 0x10, 0x10, 0x10, 0x30, 0x30 }, + }, + { + .unk0 = 0xFFFF, + .unk2 = { 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0 }, + .unk2A = { 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0 }, + }, +}; + +const struct GoalStar_D4 gUnk_082EC034[] = { + { + .unk0 = 0x1E, + .unk2 = { 0xF9, 0x0, 0x7, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0 }, + .unk2A = { 0x0, 0x100, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0 }, + }, + { + .unk0 = 0x28, + .unk2 = { 0xF2, 0x0, 0xE, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0 }, + .unk2A = { 0x0, 0x100, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0 }, + }, + { + .unk0 = 0x32, + .unk2 = { 0xE4, 0x0, 0x1C, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0 }, + .unk2A = { 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x100, 0x0 }, + }, + { + .unk0 = 0x3C, + .unk2 = { 0xC8, 0x0, 0x38, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0 }, + .unk2A = { 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x100, 0x0 }, + }, + { + .unk0 = 0x5A, + .unk2 = { 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xC8, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x38 }, + .unk2A = { 0x0, 0x0, 0x0, 0x0, 0x0, 0x38, 0x96, 0x32 }, + }, + { + .unk0 = 0x64, + .unk2 = { 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xC8, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x38 }, + .unk2A = { 0x32, 0x96, 0x38, 0x0, 0x0, 0x0, 0x0, 0x0 }, + }, + { + .unk0 = 0x82, + .unk2 = { 0x0, 0x0, 0x0, 0x64, 0x0, 0x0, 0x64, 0x0, 0x38, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0 }, + .unk2A = { 0x40, 0x40, 0x0, 0x0, 0x0, 0x0, 0x40, 0x40 }, + }, + { + .unk0 = 0x83, + .unk2 = { 0x0, 0x0, 0x0, 0x0, 0x64, 0x64, 0x0, 0x0, 0x38, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0 }, + .unk2A = { 0x0, 0x0, 0x40, 0x40, 0x40, 0x40, 0x0, 0x0 }, + }, + { + .unk0 = 0xA0, + .unk2 = { 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xC8, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x38 }, + .unk2A = { 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20 }, + }, + { + .unk0 = 0xBE, + .unk2 = { 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xC8, 0x0, 0x0, 0x0, 0x0, 0x0, 0x38 }, + .unk2A = { 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20 }, + }, + { + .unk0 = 0xD2, + .unk2 = { 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x100, 0x0, 0x0, 0x0, 0x0 }, + .unk2A = { 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20 }, + }, + { + .unk0 = 0x10E, + .unk2 = { 0x0, 0x0, 0x0, 0xC8, 0x38, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0 }, + .unk2A = { 0x64, 0x1C, 0x0, 0x0, 0x0, 0x0, 0x1C, 0x64 }, + }, + { + .unk0 = 0x12C, + .unk2 = { 0x0, 0x0, 0x0, 0xC8, 0x38, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0 }, + .unk2A = { 0x64, 0x1C, 0x0, 0x0, 0x0, 0x0, 0x1C, 0x64 }, + }, + { + .unk0 = 0x14A, + .unk2 = { 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x64, 0x0, 0x38, 0x64, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0 }, + .unk2A = { 0x0, 0x0, 0x1C, 0x64, 0x64, 0x1C, 0x0, 0x0 }, + }, + { + .unk0 = 0x168, + .unk2 = { 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x64, 0x38, 0x64, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0 }, + .unk2A = { 0x0, 0x0, 0x1C, 0x64, 0x64, 0x1C, 0x0, 0x0 }, + }, + { + .unk0 = 0x186, + .unk2 = { 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xC8, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x38 }, + .unk2A = { 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20 }, + }, + { + .unk0 = 0x1A4, + .unk2 = { 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xC8, 0x0, 0x0, 0x0, 0x0, 0x0, 0x38 }, + .unk2A = { 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20 }, + }, + { + .unk0 = 0x1C2, + .unk2 = { 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x100, 0x0, 0x0, 0x0, 0x0 }, + .unk2A = { 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20 }, + }, + { + .unk0 = 0x1FE, + .unk2 = { 0x0, 0x0, 0x0, 0x0, 0x0, 0x64, 0x0, 0x0, 0x0, 0x9C, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0 }, + .unk2A = { 0x0, 0x0, 0x40, 0x40, 0x40, 0x40, 0x0, 0x0 }, + }, + { + .unk0 = 0x21C, + .unk2 = { 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x64, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0 }, + .unk2A = { 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20 }, + }, + { + .unk0 = 0x23A, + .unk2 = { 0x9C, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x64, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0 }, + .unk2A = { 0x64, 0x1C, 0x0, 0x0, 0x0, 0x0, 0x1C, 0x64 }, + }, + { + .unk0 = 0x258, + .unk2 = { 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xC8, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0 }, + .unk2A = { 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20 }, + }, + { + .unk0 = 0x276, + .unk2 = { 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xC8, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x38 }, + .unk2A = { 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20 }, + }, + { + .unk0 = 0x294, + .unk2 = { 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xC8, 0x0, 0x0, 0x0, 0x0, 0x0, 0x38 }, + .unk2A = { 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20 }, + }, + { + .unk0 = 0x2B2, + .unk2 = { 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x100, 0x0, 0x0, 0x0, 0x0 }, + .unk2A = { 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20 }, + }, + { + .unk0 = 0x2D0, + .unk2 = { 0xC8, 0x0, 0x38, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0 }, + .unk2A = { 0xC8, 0x38, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0 }, + }, + { + .unk0 = 0x2EE, + .unk2 = { 0xC8, 0x0, 0x38, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0 }, + .unk2A = { 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x38, 0xC8 }, + }, + { + .unk0 = 0x30C, + .unk2 = { 0x0, 0x64, 0x0, 0x0, 0x0, 0x64, 0x38, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0 }, + .unk2A = { 0xC8, 0x38, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0 }, + }, + { + .unk0 = 0x32A, + .unk2 = { 0x0, 0x0, 0x64, 0x0, 0x0, 0x0, 0x38, 0x64, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0 }, + .unk2A = { 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x38, 0xC8 }, + }, + { + .unk0 = 0x348, + .unk2 = { 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x38, 0x0, 0x32, 0x0, 0x32, 0x0, 0x32, 0x0, 0x32 }, + .unk2A = { 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20 }, + }, + { + .unk0 = 0xFFFF, + .unk2 = { 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0 }, + .unk2A = { 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0 }, + }, +};