diff --git a/asm/code_080A5574.s b/asm/code_080A5574.s index a3ce04d6..09d85cb3 100644 --- a/asm/code_080A5574.s +++ b/asm/code_080A5574.s @@ -4409,10296 +4409,83 @@ _080A7EFC: adds r0, r4, #0 pop {r4, r5, pc} - thumb_func_start sub_080A7F00 -sub_080A7F00: @ 0x080A7F00 - push {r4, lr} - adds r4, r0, #0 - ldrb r0, [r4, #0xc] - cmp r0, #0 - bne _080A7F26 - movs r0, #1 - strb r0, [r4, #0xc] - adds r0, r4, #0 - bl sub_080A7F80 - ldrb r0, [r4, #0xa] - cmp r0, #3 - bne _080A7F26 - ldr r0, [r4, #0x50] - ldrb r1, [r0, #0x14] - adds r1, #0x18 - adds r0, r4, #0 - bl InitAnimationForceUpdate -_080A7F26: - ldr r0, [r4, #0x50] - cmp r0, #0 - beq _080A7F34 - adds r0, #0x45 - ldrb r0, [r0] - cmp r0, #0 - bne _080A7F38 -_080A7F34: - bl DeleteThisEntity -_080A7F38: - adds r2, r4, #0 - adds r2, #0x41 - ldrb r1, [r2] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - beq _080A7F56 - ldr r1, [r4, #0x4c] - ldr r0, _080A7F7C @ =gPlayerEntity - cmp r1, r0 - bne _080A7F56 - adds r1, r4, #0 - adds r1, #0x3d - movs r0, #0xd3 - strb r0, [r1] -_080A7F56: - movs r0, #0 - strb r0, [r2] - ldr r0, [r4, #0x50] - adds r1, r4, #0 - bl CopyPositionAndSpriteOffset - adds r0, r4, #0 - bl sub_080A7F9C - ldrb r0, [r4, #0xa] - cmp r0, #3 - bne _080A7F7A - ldrh r0, [r4, #0x32] - adds r0, #1 - strh r0, [r4, #0x32] - adds r0, r4, #0 - bl UpdateAnimationSingleFrame -_080A7F7A: - pop {r4, pc} - .align 2, 0 -_080A7F7C: .4byte gPlayerEntity - - thumb_func_start sub_080A7F80 -sub_080A7F80: @ 0x080A7F80 - ldr r3, _080A7F98 @ =gUnk_081293B8 - ldr r2, [r0, #0x50] - ldrb r1, [r0, #0xa] - lsls r1, r1, #2 - ldrb r2, [r2, #0xa] - adds r1, r1, r2 - adds r1, r1, r3 - ldrb r1, [r1] - adds r0, #0x3f - strb r1, [r0] - bx lr - .align 2, 0 -_080A7F98: .4byte gUnk_081293B8 - - thumb_func_start sub_080A7F9C -sub_080A7F9C: @ 0x080A7F9C - push {lr} - ldr r2, _080A7FB0 @ =gUnk_081293CC - ldrb r1, [r0, #0xa] - lsls r1, r1, #2 - adds r1, r1, r2 - ldr r1, [r1] - bl _call_via_r1 - pop {pc} - .align 2, 0 -_080A7FB0: .4byte gUnk_081293CC - - thumb_func_start sub_080A7FB4 -sub_080A7FB4: @ 0x080A7FB4 - ldr r1, [r0, #0x50] - ldr r3, _080A7FD4 @ =gUnk_081293E0 - ldrb r2, [r1, #0x14] - lsls r2, r2, #2 - adds r2, r2, r3 - adds r1, #0x5a - ldrb r3, [r1] - movs r1, #0xf - ands r1, r3 - ldr r2, [r2] - lsls r1, r1, #2 - adds r1, r1, r2 - subs r1, #4 - ldr r1, [r1] - str r1, [r0, #0x48] - bx lr - .align 2, 0 -_080A7FD4: .4byte gUnk_081293E0 - - thumb_func_start sub_080A7FD8 -sub_080A7FD8: @ 0x080A7FD8 - ldr r1, [r0, #0x50] - ldr r2, _080A7FE8 @ =gUnk_081293F0 - ldrb r1, [r1, #0x14] - lsls r1, r1, #2 - adds r1, r1, r2 - ldr r1, [r1] - str r1, [r0, #0x48] - bx lr - .align 2, 0 -_080A7FE8: .4byte gUnk_081293F0 - - thumb_func_start sub_080A7FEC -sub_080A7FEC: @ 0x080A7FEC - push {lr} - adds r3, r0, #0 - ldr r2, [r3, #0x50] - adds r0, r2, #0 - adds r0, #0x5a - ldrb r1, [r0] - movs r0, #0x10 - ands r0, r1 - cmp r0, #0 - beq _080A8008 - ldr r0, _080A8004 @ =gUnk_08129410 - b _080A800A - .align 2, 0 -_080A8004: .4byte gUnk_08129410 -_080A8008: - ldr r0, _080A8018 @ =gUnk_08129400 -_080A800A: - ldrb r1, [r2, #0x14] - lsls r1, r1, #2 - adds r1, r1, r0 - ldr r0, [r1] - str r0, [r3, #0x48] - pop {pc} - .align 2, 0 -_080A8018: .4byte gUnk_08129400 - - thumb_func_start sub_080A801C -sub_080A801C: @ 0x080A801C - ldr r1, [r0, #0x50] - ldr r2, _080A802C @ =gUnk_08129420 - ldrb r1, [r1, #0x14] - lsls r1, r1, #2 - adds r1, r1, r2 - ldr r1, [r1] - str r1, [r0, #0x48] - bx lr - .align 2, 0 -_080A802C: .4byte gUnk_08129420 - - thumb_func_start sub_080A8030 -sub_080A8030: @ 0x080A8030 - push {r4, r5, lr} - adds r5, r0, #0 - ldr r4, _080A8048 @ =gUnk_081295D0 - bl GetNextFunction - lsls r0, r0, #2 - adds r0, r0, r4 - ldr r1, [r0] - adds r0, r5, #0 - bl _call_via_r1 - pop {r4, r5, pc} - .align 2, 0 -_080A8048: .4byte gUnk_081295D0 - - thumb_func_start sub_080A804C -sub_080A804C: @ 0x080A804C - push {lr} - ldr r2, _080A8060 @ =gUnk_081295E4 - ldrb r1, [r0, #0xc] - lsls r1, r1, #2 - adds r1, r1, r2 - ldr r1, [r1] - bl _call_via_r1 - pop {pc} - .align 2, 0 -_080A8060: .4byte gUnk_081295E4 - - thumb_func_start sub_080A8064 -sub_080A8064: @ 0x080A8064 - push {lr} - adds r1, r0, #0 - adds r0, #0x41 - ldrb r0, [r0] - cmp r0, #0x80 - bne _080A8078 - adds r0, r1, #0 - bl DeleteEntity - b _080A8086 -_080A8078: - adds r0, r1, #0 - adds r0, #0x3e - ldrb r0, [r0] - strb r0, [r1, #0x15] - adds r0, r1, #0 - bl sub_080A8178 -_080A8086: - pop {pc} - - thumb_func_start sub_080A8088 -sub_080A8088: @ 0x080A8088 - push {lr} - movs r1, #1 - strb r1, [r0, #0xc] - movs r1, #0x30 - strb r1, [r0, #0xe] - movs r1, #0xa0 - lsls r1, r1, #8 - str r1, [r0, #0x20] - movs r1, #0 - bl InitializeAnimation - pop {pc} - - thumb_func_start sub_080A80A0 -sub_080A80A0: @ 0x080A80A0 - push {r4, lr} - adds r4, r0, #0 - bl GetNextFrame - adds r0, r4, #0 - bl sub_080AF090 - cmp r0, #0 - beq _080A80DC - adds r0, r4, #0 - bl sub_080A7EB0 - cmp r0, #0 - beq _080A80C4 - adds r0, r4, #0 - bl DeleteEntity - b _080A80F0 -_080A80C4: - adds r0, r4, #0 - bl sub_08016AD2 - ldrb r0, [r4, #0xe] - subs r0, #1 - strb r0, [r4, #0xe] - lsls r0, r0, #0x18 - cmp r0, #0 - bne _080A80F0 - movs r0, #3 - strb r0, [r4, #0xc] - b _080A80F0 -_080A80DC: - ldrh r1, [r4, #0x2a] - adds r0, r4, #0 - bl sub_0800417E - adds r0, r4, #0 - bl sub_080A8178 - adds r0, r4, #0 - bl sub_08016AD2 -_080A80F0: - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_080A80F4 -sub_080A80F4: @ 0x080A80F4 - push {r4, lr} - adds r4, r0, #0 - bl sub_0806F69C - adds r0, r4, #0 - bl GetNextFrame - movs r1, #0xc0 - lsls r1, r1, #5 - adds r0, r4, #0 - bl sub_08003FC4 - cmp r0, #0 - bne _080A8116 - adds r0, r4, #0 - bl DeleteEntity -_080A8116: - pop {r4, pc} - - thumb_func_start sub_080A8118 -sub_080A8118: @ 0x080A8118 - push {r4, lr} - adds r4, r0, #0 - bl GetNextFrame - adds r0, r4, #0 - bl sub_080AF090 - movs r1, #0xa0 - lsls r1, r1, #6 - adds r0, r4, #0 - bl sub_080044EC - cmp r0, #0 - beq _080A813A - cmp r0, #1 - beq _080A8142 - b _080A815A -_080A813A: - adds r0, r4, #0 - bl DeleteEntity - b _080A8176 -_080A8142: - ldrb r1, [r4, #0x10] - movs r0, #0x7f - ands r0, r1 - strb r0, [r4, #0x10] - movs r0, #0x90 - lsls r0, r0, #1 - strh r0, [r4, #0x24] - adds r0, r4, #0 - bl sub_0800442E - cmp r0, #0 - bne _080A8176 -_080A815A: - ldrb r1, [r4, #0x10] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - bne _080A8176 - ldrb r2, [r4, #0x18] - lsls r1, r2, #0x1e - lsrs r1, r1, #0x1e - movs r0, #1 - eors r1, r0 - subs r0, #5 - ands r0, r2 - orrs r0, r1 - strb r0, [r4, #0x18] -_080A8176: - pop {r4, pc} - - thumb_func_start sub_080A8178 -sub_080A8178: @ 0x080A8178 - movs r1, #2 - strb r1, [r0, #0xc] - ldrb r2, [r0, #0x10] - movs r1, #0x7f - ands r1, r2 - strb r1, [r0, #0x10] - movs r1, #0x40 - strh r1, [r0, #0x24] - movs r1, #0xa0 - lsls r1, r1, #9 - str r1, [r0, #0x20] - bx lr - - thumb_func_start sub_080A8190 -sub_080A8190: @ 0x080A8190 - push {r4, r5, lr} - adds r5, r0, #0 - ldr r4, _080A81A8 @ =gUnk_0812960C - bl GetNextFunction - lsls r0, r0, #2 - adds r0, r0, r4 - ldr r1, [r0] - adds r0, r5, #0 - bl _call_via_r1 - pop {r4, r5, pc} - .align 2, 0 -_080A81A8: .4byte gUnk_0812960C - - thumb_func_start sub_080A81AC -sub_080A81AC: @ 0x080A81AC - push {lr} - ldr r2, _080A81C0 @ =gUnk_08129620 - ldrb r1, [r0, #0xc] - lsls r1, r1, #2 - adds r1, r1, r2 - ldr r1, [r1] - bl _call_via_r1 - pop {pc} - .align 2, 0 -_080A81C0: .4byte gUnk_08129620 - - thumb_func_start sub_080A81C4 -sub_080A81C4: @ 0x080A81C4 - push {lr} - adds r1, r0, #0 - adds r0, #0x41 - ldrb r0, [r0] - cmp r0, #0x80 - bne _080A81D8 - adds r0, r1, #0 - bl DeleteEntity - b _080A81DE -_080A81D8: - adds r0, r1, #0 - bl sub_080A82D8 -_080A81DE: - pop {pc} - - thumb_func_start sub_080A81E0 -sub_080A81E0: @ 0x080A81E0 - push {lr} - movs r1, #1 - strb r1, [r0, #0xc] - movs r1, #0x3c - strb r1, [r0, #0xe] - ldr r1, _080A81F8 @ =0x0000FFFE - strh r1, [r0, #0x36] - movs r1, #0 - bl InitializeAnimation - pop {pc} - .align 2, 0 -_080A81F8: .4byte 0x0000FFFE - - thumb_func_start sub_080A81FC -sub_080A81FC: @ 0x080A81FC - push {r4, lr} - adds r4, r0, #0 - bl GetNextFrame - adds r0, r4, #0 - bl sub_080AF090 - ldrh r0, [r4, #0x2a] - cmp r0, #0 - bne _080A8240 - adds r0, r4, #0 - bl sub_080A7EB0 - cmp r0, #0 - beq _080A8222 - adds r0, r4, #0 - bl DeleteEntity - b _080A8246 -_080A8222: - adds r0, r4, #0 - bl sub_08016AD2 - ldrb r0, [r4, #0xe] - subs r0, #1 - strb r0, [r4, #0xe] - lsls r0, r0, #0x18 - cmp r0, #0 - bne _080A8246 - movs r0, #2 - strb r0, [r4, #0xc] - movs r0, #0x90 - lsls r0, r0, #1 - strh r0, [r4, #0x24] - b _080A8246 -_080A8240: - adds r0, r4, #0 - bl sub_080A82D8 -_080A8246: - pop {r4, pc} - - thumb_func_start sub_080A8248 -sub_080A8248: @ 0x080A8248 - push {r4, lr} - adds r4, r0, #0 - bl GetNextFrame - adds r0, r4, #0 - bl sub_080AF090 - movs r1, #0xc0 - lsls r1, r1, #5 - adds r0, r4, #0 - bl sub_08003FC4 - cmp r0, #0 - bne _080A827A - movs r0, #3 - strb r0, [r4, #0xc] - ldrb r1, [r4, #0x10] - movs r0, #0x7f - ands r0, r1 - strb r0, [r4, #0x10] - movs r0, #0xe0 - strh r0, [r4, #0x24] - movs r0, #0xe0 - lsls r0, r0, #8 - str r0, [r4, #0x20] -_080A827A: - pop {r4, pc} - - thumb_func_start sub_080A827C -sub_080A827C: @ 0x080A827C - push {r4, lr} - adds r4, r0, #0 - ldrb r2, [r4, #0x18] - lsls r1, r2, #0x1e - lsrs r1, r1, #0x1e - movs r0, #1 - eors r1, r0 - subs r0, #5 - ands r0, r2 - orrs r0, r1 - strb r0, [r4, #0x18] - adds r0, r4, #0 - bl sub_0806F69C - adds r0, r4, #0 - bl GetNextFrame - movs r1, #0xc0 - lsls r1, r1, #5 - adds r0, r4, #0 - bl sub_080044EC - cmp r0, #0 - bne _080A82B2 - adds r0, r4, #0 - bl DeleteEntity -_080A82B2: - pop {r4, pc} - - thumb_func_start sub_080A82B4 -sub_080A82B4: @ 0x080A82B4 - push {r4, lr} - adds r4, r0, #0 - bl GetNextFrame - adds r0, r4, #0 - bl sub_0806F69C - movs r1, #0xc0 - lsls r1, r1, #5 - adds r0, r4, #0 - bl sub_08003FC4 - cmp r0, #0 - bne _080A82D6 - adds r0, r4, #0 - bl DeleteEntity -_080A82D6: - pop {r4, pc} - - thumb_func_start sub_080A82D8 -sub_080A82D8: @ 0x080A82D8 - movs r1, #4 - strb r1, [r0, #0xc] - ldrb r2, [r0, #0x10] - movs r1, #0x7f - ands r1, r2 - strb r1, [r0, #0x10] - movs r1, #0x80 - lsls r1, r1, #9 - str r1, [r0, #0x20] - ldrb r1, [r0, #0x15] - movs r2, #0x10 - eors r1, r2 - strb r1, [r0, #0x15] - movs r1, #0x80 - strh r1, [r0, #0x24] - bx lr - - thumb_func_start sub_080A82F8 -sub_080A82F8: @ 0x080A82F8 - push {r4, r5, lr} - adds r5, r0, #0 - ldr r4, _080A8310 @ =gUnk_08129650 - bl GetNextFunction - lsls r0, r0, #2 - adds r0, r0, r4 - ldr r1, [r0] - adds r0, r5, #0 - bl _call_via_r1 - pop {r4, r5, pc} - .align 2, 0 -_080A8310: .4byte gUnk_08129650 - - thumb_func_start sub_080A8314 -sub_080A8314: @ 0x080A8314 - push {lr} - ldr r2, _080A8328 @ =gUnk_08129664 - ldrb r1, [r0, #0xc] - lsls r1, r1, #2 - adds r1, r1, r2 - ldr r1, [r1] - bl _call_via_r1 - pop {pc} - .align 2, 0 -_080A8328: .4byte gUnk_08129664 - - thumb_func_start sub_080A832C -sub_080A832C: @ 0x080A832C - push {lr} - adds r3, r0, #0 - adds r2, r3, #0 - adds r2, #0x41 - ldrb r0, [r2] - cmp r0, #0x80 - bne _080A8358 - adds r1, r3, #0 - adds r1, #0x3d - movs r0, #0x10 - strb r0, [r1] - adds r1, #5 - movs r0, #0xc - strb r0, [r1] - adds r1, #4 - movs r0, #0xc0 - lsls r0, r0, #1 - strh r0, [r1] - ldr r0, [r3, #0x50] - ldrb r1, [r2] - adds r0, #0x41 - strb r1, [r0] -_080A8358: - adds r0, r3, #0 - adds r0, #0x3d - ldrb r1, [r0] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - beq _080A836A - ldr r0, [r3, #0x50] - b _080A836E -_080A836A: - ldr r0, [r3, #0x50] - rsbs r1, r1, #0 -_080A836E: - adds r0, #0x3d - strb r1, [r0] - ldr r0, [r3, #0x50] - movs r1, #0x42 - adds r1, r1, r3 - mov ip, r1 - ldrb r1, [r1] - adds r0, #0x42 - strb r1, [r0] - ldr r0, [r3, #0x50] - adds r1, r3, #0 - adds r1, #0x46 - ldrh r1, [r1] - adds r0, #0x46 - movs r2, #0 - strh r1, [r0] - ldr r0, [r3, #0x50] - adds r1, r3, #0 - adds r1, #0x3e - ldrb r1, [r1] - adds r0, #0x3e - strb r1, [r0] - mov r0, ip - strb r2, [r0] - pop {pc} - - thumb_func_start sub_080A83A0 -sub_080A83A0: @ 0x080A83A0 - push {r4, lr} - adds r4, r0, #0 - bl AllocMutableHitbox - cmp r0, #0 - beq _080A83B0 - movs r0, #1 - strb r0, [r4, #0xc] -_080A83B0: - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_080A83B4 -sub_080A83B4: @ 0x080A83B4 - push {r4, r5, lr} - adds r4, r0, #0 - ldr r5, [r4, #0x50] - cmp r5, #0 - bne _080A83C2 - bl DeleteThisEntity -_080A83C2: - ldr r0, [r5, #4] - cmp r0, #0 - bne _080A83CC - bl DeleteThisEntity -_080A83CC: - adds r0, r5, #0 - adds r0, #0x5a - ldrb r0, [r0] - lsls r0, r0, #0x1a - lsrs r0, r0, #0x18 - ldr r1, _080A8424 @ =gUnk_0812966C - adds r2, r0, r1 - ldr r1, [r4, #0x48] - ldrb r0, [r2] - strb r0, [r1] - adds r2, #1 - adds r0, r5, #0 - adds r0, #0x5b - ldrb r0, [r0] - cmp r0, #0x40 - bne _080A83F4 - ldr r1, [r4, #0x48] - ldrb r0, [r1] - rsbs r0, r0, #0 - strb r0, [r1] -_080A83F4: - ldr r1, [r4, #0x48] - ldrb r0, [r2] - strb r0, [r1, #1] - adds r2, #1 - ldr r1, [r4, #0x48] - ldrb r0, [r2] - strb r0, [r1, #6] - ldr r1, [r4, #0x48] - ldrb r0, [r2, #1] - strb r0, [r1, #7] - adds r0, r5, #0 - adds r0, #0x43 - ldrb r0, [r0] - cmp r0, #0 - beq _080A8428 - ldrb r1, [r4, #0x10] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - beq _080A8438 - movs r0, #0x7f - ands r0, r1 - b _080A8436 - .align 2, 0 -_080A8424: .4byte gUnk_0812966C -_080A8428: - ldrb r1, [r4, #0x10] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - bne _080A8438 - movs r0, #0x80 - orrs r0, r1 -_080A8436: - strb r0, [r4, #0x10] -_080A8438: - pop {r4, r5, pc} - .align 2, 0 - - thumb_func_start sub_080A843C -sub_080A843C: @ 0x080A843C - push {r4, r5, lr} - adds r5, r0, #0 - ldr r4, _080A8454 @ =gUnk_081296F0 - bl GetNextFunction - lsls r0, r0, #2 - adds r0, r0, r4 - ldr r1, [r0] - adds r0, r5, #0 - bl _call_via_r1 - pop {r4, r5, pc} - .align 2, 0 -_080A8454: .4byte gUnk_081296F0 - - thumb_func_start sub_080A8458 -sub_080A8458: @ 0x080A8458 - push {lr} - ldr r2, _080A846C @ =gUnk_08129704 - ldrb r1, [r0, #0xc] - lsls r1, r1, #2 - adds r1, r1, r2 - ldr r1, [r1] - bl _call_via_r1 - pop {pc} - .align 2, 0 -_080A846C: .4byte gUnk_08129704 - - thumb_func_start sub_080A8470 -sub_080A8470: @ 0x080A8470 - push {r4, lr} - adds r4, r0, #0 - adds r2, r4, #0 - adds r2, #0x41 - ldrb r0, [r2] - cmp r0, #0x80 - bne _080A8496 - adds r0, r4, #0 - adds r0, #0x3f - ldrb r0, [r0] - cmp r0, #0x68 - bne _080A848E - movs r0, #0x86 - bl EnqueueSFX -_080A848E: - adds r0, r4, #0 - bl DeleteEntity - b _080A84C6 -_080A8496: - adds r0, r4, #0 - adds r0, #0x3e - ldrb r0, [r0] - adds r0, #4 - movs r1, #0x18 - ands r0, r1 - strb r0, [r4, #0x15] - ldrb r0, [r2] - adds r0, #0x7e - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #1 - bhi _080A84B8 - adds r0, r4, #0 - bl sub_080A8680 - b _080A84C6 -_080A84B8: - adds r0, r4, #0 - movs r1, #0x19 - bl InitializeAnimation - adds r0, r4, #0 - bl sub_080A86A0 -_080A84C6: - pop {r4, pc} - - thumb_func_start sub_080A84C8 -sub_080A84C8: @ 0x080A84C8 - push {r4, lr} - adds r4, r0, #0 - movs r1, #0 - movs r0, #1 - strb r0, [r4, #0xc] - movs r0, #0x30 - strb r0, [r4, #0xe] - strb r1, [r4, #0xf] - ldrh r0, [r4, #0x36] - subs r0, #4 - strh r0, [r4, #0x36] - movs r0, #0x15 - bl CheckGlobalFlag - cmp r0, #0 - bne _080A84F0 - adds r1, r4, #0 - adds r1, #0x3f - movs r0, #0x68 - strb r0, [r1] -_080A84F0: - ldr r0, _080A8500 @ =0x0000018D - bl EnqueueSFX - adds r0, r4, #0 - movs r1, #0x18 - bl InitializeAnimation - pop {r4, pc} - .align 2, 0 -_080A8500: .4byte 0x0000018D - - thumb_func_start sub_080A8504 -sub_080A8504: @ 0x080A8504 - push {r4, r5, lr} - adds r4, r0, #0 - bl GetNextFrame - adds r0, r4, #0 - bl sub_080AF090 - cmp r0, #0 - beq _080A853C - adds r0, r4, #0 - bl sub_080A7EB0 - cmp r0, #0 - beq _080A8524 - bl DeleteThisEntity -_080A8524: - adds r0, r4, #0 - bl sub_08016AD2 - ldrb r0, [r4, #0xe] - subs r0, #1 - strb r0, [r4, #0xe] - lsls r0, r0, #0x18 - cmp r0, #0 - bne _080A8558 - movs r0, #4 - strb r0, [r4, #0xc] - b _080A8558 -_080A853C: - ldrh r1, [r4, #0x2a] - adds r0, r4, #0 - bl sub_0800417E - adds r0, r4, #0 - bl sub_08016AD2 - adds r0, r4, #0 - movs r1, #0x19 - bl InitializeAnimation - adds r0, r4, #0 - bl sub_080A86A0 -_080A8558: - ldrb r0, [r4, #0xf] - cmp r0, #0 - beq _080A85B6 - ldr r5, [r4, #0x50] - ldr r0, [r5, #4] - cmp r0, #0 - beq _080A85B6 - adds r0, r4, #0 - adds r1, r5, #0 - bl sub_080177A0 - cmp r0, #0 - beq _080A85B6 - adds r0, r4, #0 - adds r0, #0x3d - movs r3, #0 - movs r2, #0x10 - strb r2, [r0] - ldrb r0, [r4, #0x15] - rsbs r0, r0, #0 - adds r1, r4, #0 - adds r1, #0x3e - strb r0, [r1] - adds r1, #3 - movs r0, #0x80 - strb r0, [r1] - adds r0, r4, #0 - adds r0, #0x42 - movs r1, #0xc - strb r1, [r0] - adds r0, #4 - strh r3, [r0] - adds r0, r5, #0 - adds r0, #0x3d - strb r2, [r0] - ldrb r0, [r4, #0x15] - adds r2, r5, #0 - adds r2, #0x3e - strb r0, [r2] - adds r2, #3 - movs r0, #0xc2 - strb r0, [r2] - adds r0, r5, #0 - adds r0, #0x42 - strb r1, [r0] - adds r0, #4 - strh r3, [r0] -_080A85B6: - pop {r4, r5, pc} - - thumb_func_start sub_080A85B8 -sub_080A85B8: @ 0x080A85B8 - push {r4, lr} - adds r4, r0, #0 - bl GetNextFrame - adds r0, r4, #0 - bl sub_080AF090 - cmp r0, #0 - beq _080A85F2 - adds r0, r4, #0 - bl sub_080A7EB0 - cmp r0, #0 - beq _080A85D8 - bl DeleteThisEntity -_080A85D8: - ldrb r0, [r4, #0xe] - subs r0, #1 - strb r0, [r4, #0xe] - lsls r0, r0, #0x18 - cmp r0, #0 - bne _080A860E - movs r0, #1 - strb r0, [r4, #0xc] - ldrb r0, [r4, #0x10] - movs r1, #0x80 - orrs r0, r1 - strb r0, [r4, #0x10] - b _080A860E -_080A85F2: - ldrh r1, [r4, #0x2a] - adds r0, r4, #0 - bl sub_0800417E - adds r0, r4, #0 - bl sub_08016AD2 - adds r0, r4, #0 - movs r1, #0x19 - bl InitializeAnimation - adds r0, r4, #0 - bl sub_080A86A0 -_080A860E: - pop {r4, pc} - - thumb_func_start sub_080A8610 -sub_080A8610: @ 0x080A8610 - push {r4, lr} - adds r4, r0, #0 - bl GetNextFrame - adds r4, #0x5a - ldrb r1, [r4] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - beq _080A8628 - bl DeleteThisEntity -_080A8628: - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_080A862C -sub_080A862C: @ 0x080A862C - push {r4, lr} - adds r4, r0, #0 - bl GetNextFrame - adds r0, r4, #0 - bl sub_080AF090 - movs r1, #0xa0 - lsls r1, r1, #6 - adds r0, r4, #0 - bl sub_080044EC - cmp r0, #0 - beq _080A864E - cmp r0, #1 - beq _080A8654 - b _080A8662 -_080A864E: - bl DeleteThisEntity - b _080A867E -_080A8654: - ldrb r0, [r4, #0x10] - movs r1, #0x7f - ands r1, r0 - strb r1, [r4, #0x10] - movs r0, #0x90 - lsls r0, r0, #1 - strh r0, [r4, #0x24] -_080A8662: - ldrb r1, [r4, #0x10] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - bne _080A867E - ldrb r2, [r4, #0x18] - lsls r1, r2, #0x1e - lsrs r1, r1, #0x1e - movs r0, #1 - eors r1, r0 - subs r0, #5 - ands r0, r2 - orrs r0, r1 - strb r0, [r4, #0x18] -_080A867E: - pop {r4, pc} - - thumb_func_start sub_080A8680 -sub_080A8680: @ 0x080A8680 - push {lr} - movs r1, #2 - strb r1, [r0, #0xc] - ldrb r2, [r0, #0x10] - movs r1, #0x7f - ands r1, r2 - strb r1, [r0, #0x10] - movs r1, #3 - strb r1, [r0, #0xe] - movs r1, #1 - strb r1, [r0, #0xf] - movs r0, #0x8c - lsls r0, r0, #1 - bl EnqueueSFX - pop {pc} - - thumb_func_start sub_080A86A0 -sub_080A86A0: @ 0x080A86A0 - push {lr} - movs r3, #0 - movs r1, #3 - strb r1, [r0, #0xc] - ldrb r2, [r0, #0x10] - movs r1, #0x7f - ands r1, r2 - strb r1, [r0, #0x10] - strh r3, [r0, #0x24] - movs r0, #0xc7 - lsls r0, r0, #1 - bl EnqueueSFX - pop {pc} - - thumb_func_start sub_080A86BC -sub_080A86BC: @ 0x080A86BC - push {r4, r5, lr} - adds r5, r0, #0 - ldr r4, _080A86D4 @ =gUnk_08129718 - bl GetNextFunction - lsls r0, r0, #2 - adds r0, r0, r4 - ldr r1, [r0] - adds r0, r5, #0 - bl _call_via_r1 - pop {r4, r5, pc} - .align 2, 0 -_080A86D4: .4byte gUnk_08129718 - - thumb_func_start sub_080A86D8 -sub_080A86D8: @ 0x080A86D8 - push {lr} - ldr r2, _080A86EC @ =gUnk_0812972C - ldrb r1, [r0, #0xc] - lsls r1, r1, #2 - adds r1, r1, r2 - ldr r1, [r1] - bl _call_via_r1 - pop {pc} - .align 2, 0 -_080A86EC: .4byte gUnk_0812972C - - thumb_func_start sub_080A86F0 -sub_080A86F0: @ 0x080A86F0 - push {r4, r5, r6, lr} - adds r4, r0, #0 - ldr r1, [r4, #0x50] - cmp r1, #0 - bne _080A8700 - bl DeleteThisEntity - b _080A876E -_080A8700: - adds r5, r1, #0 - adds r5, #0x83 - ldrb r1, [r5] - movs r3, #0x3f - adds r0, r3, #0 - ands r0, r1 - cmp r0, #3 - bne _080A8768 - ldr r0, _080A875C @ =gPlayerState - ldrb r0, [r0, #0xf] - cmp r0, #0 - beq _080A876E - movs r1, #0x2e - ldrsh r0, [r4, r1] - ldr r2, _080A8760 @ =gRoomControls - ldrh r1, [r2, #6] - subs r0, r0, r1 - asrs r0, r0, #4 - ands r0, r3 - movs r6, #0x32 - ldrsh r1, [r4, r6] - ldrh r2, [r2, #8] - subs r1, r1, r2 - asrs r1, r1, #4 - ands r1, r3 - lsls r1, r1, #6 - orrs r0, r1 - ldr r1, _080A8764 @ =gPlayerEntity - adds r1, #0x38 - ldrb r1, [r1] - bl sub_080002E0 - cmp r0, #0 - bne _080A876E - adds r0, r4, #0 - adds r0, #0x41 - ldrb r0, [r0] - cmp r0, #0x80 - bne _080A876E - ldrb r1, [r5] - movs r0, #0x7f - ands r0, r1 - strb r0, [r5] - bl DeleteThisEntity - b _080A876E - .align 2, 0 -_080A875C: .4byte gPlayerState -_080A8760: .4byte gRoomControls -_080A8764: .4byte gPlayerEntity -_080A8768: - adds r0, r4, #0 - bl DeleteEntity -_080A876E: - pop {r4, r5, r6, pc} - - thumb_func_start sub_080A8770 -sub_080A8770: @ 0x080A8770 - movs r1, #1 - strb r1, [r0, #0xc] - adds r3, r0, #0 - adds r3, #0x3c - ldrb r2, [r3] - movs r1, #0x10 - orrs r1, r2 - strb r1, [r3] - ldr r1, _080A8788 @ =gUnk_08129734 - str r1, [r0, #0x48] - bx lr - .align 2, 0 -_080A8788: .4byte gUnk_08129734 - - thumb_func_start sub_080A878C -sub_080A878C: @ 0x080A878C - push {r4, r5, lr} - adds r5, r0, #0 - ldr r4, [r5, #0x50] - cmp r4, #0 - bne _080A879A - bl DeleteThisEntity -_080A879A: - ldr r0, [r4, #4] - cmp r0, #0 - bne _080A87A4 - bl DeleteThisEntity -_080A87A4: - adds r0, r4, #0 - adds r0, #0x83 - ldrb r1, [r0] - movs r0, #0x7f - ands r0, r1 - cmp r0, #3 - beq _080A87B6 - bl DeleteThisEntity -_080A87B6: - adds r0, r4, #0 - adds r1, r5, #0 - bl CopyPosition - ldrh r0, [r5, #0x36] - adds r0, #2 - strh r0, [r5, #0x36] - pop {r4, r5, pc} - .align 2, 0 - - thumb_func_start sub_080A87C8 -sub_080A87C8: @ 0x080A87C8 - push {r4, r5, lr} - adds r5, r0, #0 - ldr r4, _080A87E0 @ =gUnk_08129740 - bl GetNextFunction - lsls r0, r0, #2 - adds r0, r0, r4 - ldr r1, [r0] - adds r0, r5, #0 - bl _call_via_r1 - pop {r4, r5, pc} - .align 2, 0 -_080A87E0: .4byte gUnk_08129740 - - thumb_func_start sub_080A87E4 -sub_080A87E4: @ 0x080A87E4 - push {r4, lr} - adds r4, r0, #0 - ldrb r0, [r4, #0xa] - cmp r0, #1 - bne _080A8804 - ldr r0, [r4, #0x54] - cmp r0, #0 - bne _080A87F8 - bl DeleteThisEntity -_080A87F8: - ldr r0, [r4, #0x54] - ldr r0, [r0, #4] - cmp r0, #0 - bne _080A8804 - bl DeleteThisEntity -_080A8804: - ldr r0, _080A8818 @ =gUnk_08129754 - ldrb r1, [r4, #0xc] - lsls r1, r1, #2 - adds r1, r1, r0 - ldr r1, [r1] - adds r0, r4, #0 - bl _call_via_r1 - pop {r4, pc} - .align 2, 0 -_080A8818: .4byte gUnk_08129754 - - thumb_func_start sub_080A881C -sub_080A881C: @ 0x080A881C - push {lr} - adds r1, r0, #0 - adds r2, r1, #0 - adds r2, #0x46 - movs r0, #0 - strh r0, [r2] - ldrb r2, [r1, #0xa] - cmp r2, #0 - bne _080A8854 - ldr r0, [r1, #0x50] - str r2, [r0, #0x54] - adds r0, r1, #0 - adds r0, #0x41 - ldrb r0, [r0] - cmp r0, #0x80 - bne _080A884A - ldr r0, _080A8850 @ =gPlayerState - movs r1, #0xf0 - strb r1, [r0, #0xf] - movs r0, #2 - rsbs r0, r0, #0 - bl ModHealth -_080A884A: - bl DeleteThisEntity - b _080A8866 - .align 2, 0 -_080A8850: .4byte gPlayerState -_080A8854: - ldrb r0, [r1, #0xc] - cmp r0, #1 - bhi _080A8866 - movs r0, #2 - strb r0, [r1, #0xc] - ldr r0, [r1, #0x50] - adds r0, #0x83 - movs r1, #0xc0 - strb r1, [r0] -_080A8866: - pop {pc} - - thumb_func_start sub_080A8868 -sub_080A8868: @ 0x080A8868 - push {r4, lr} - adds r3, r0, #0 - movs r4, #0 - movs r0, #1 - strb r0, [r3, #0xc] - strb r4, [r3, #0xd] - ldrb r1, [r3, #0x18] - subs r0, #0x32 - ands r0, r1 - movs r1, #0x10 - orrs r0, r1 - strb r0, [r3, #0x18] - movs r0, #0x80 - lsls r0, r0, #8 - str r0, [r3, #0x20] - ldr r0, _080A88A4 @ =gUnk_08129764 - str r0, [r3, #0x48] - adds r2, r3, #0 - adds r2, #0x3c - ldrb r0, [r2] - orrs r1, r0 - strb r1, [r2] - ldrb r0, [r3, #0xa] - cmp r0, #1 - beq _080A88B8 - cmp r0, #1 - bgt _080A88A8 - cmp r0, #0 - beq _080A88AE - b _080A88C6 - .align 2, 0 -_080A88A4: .4byte gUnk_08129764 -_080A88A8: - cmp r0, #2 - beq _080A88BE - b _080A88C6 -_080A88AE: - adds r0, r3, #0 - movs r1, #0 - bl InitializeAnimation - b _080A88C6 -_080A88B8: - strb r4, [r3, #0xe] - strb r4, [r3, #0xf] - b _080A88C6 -_080A88BE: - adds r0, r3, #0 - movs r1, #5 - bl InitializeAnimation -_080A88C6: - pop {r4, pc} - - thumb_func_start sub_080A88C8 -sub_080A88C8: @ 0x080A88C8 - push {r4, r5, r6, lr} - adds r4, r0, #0 - ldr r6, [r4, #0x50] - cmp r6, #0 - bne _080A88D6 - movs r0, #2 - strb r0, [r4, #0xc] -_080A88D6: - ldr r0, [r6, #4] - cmp r0, #0 - bne _080A88E0 - movs r0, #2 - strb r0, [r4, #0xc] -_080A88E0: - ldr r3, _080A88FC @ =0xFFFF0000 - adds r0, r6, #0 - adds r1, r4, #0 - movs r2, #0 - bl PositionRelative - ldrb r5, [r4, #0xa] - cmp r5, #1 - beq _080A890E - cmp r5, #1 - bgt _080A8900 - cmp r5, #0 - beq _080A8906 - b _080A8982 - .align 2, 0 -_080A88FC: .4byte 0xFFFF0000 -_080A8900: - cmp r5, #2 - beq _080A8962 - b _080A8982 -_080A8906: - ldrh r0, [r4, #0x36] - adds r0, #0x10 - strh r0, [r4, #0x36] - b _080A8982 -_080A890E: - ldrh r0, [r4, #0x36] - adds r0, #0xe - strh r0, [r4, #0x36] - ldr r0, [r4, #0x54] - bl sub_08078954 - ldr r1, [r4, #0x54] - adds r0, r4, #0 - bl CopyPosition - ldrb r0, [r4, #0xe] - adds r1, r0, #1 - strb r1, [r4, #0xe] - lsls r0, r1, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #0xf - bls _080A8982 - ldr r2, [r4, #0x54] - ldrb r0, [r2, #0xe] - cmp r0, #0 - bne _080A8982 - movs r3, #2 - ands r1, r3 - cmp r1, #0 - beq _080A8946 - ldrb r0, [r2, #0xf] - adds r0, #1 - strb r0, [r2, #0xf] -_080A8946: - ldr r0, [r4, #0x54] - ldrb r1, [r0, #0xf] - cmp r1, #0x1f - bhi _080A8982 - movs r0, #3 - ands r0, r1 - cmp r0, #3 - bne _080A8982 - adds r1, r6, #0 - adds r1, #0x83 - movs r0, #0xc0 - strb r0, [r1] - strb r3, [r4, #0xc] - b _080A8982 -_080A8962: - ldrh r0, [r4, #0x36] - adds r0, #0xe - strh r0, [r4, #0x36] - ldr r1, _080A8984 @ =gPlayerEntity - adds r0, r4, #0 - movs r2, #0xe - movs r3, #0xe - bl sub_080041A0 - cmp r0, #0 - beq _080A8982 - strb r5, [r4, #0xc] - adds r1, r6, #0 - adds r1, #0x83 - movs r0, #0xc0 - strb r0, [r1] -_080A8982: - pop {r4, r5, r6, pc} - .align 2, 0 -_080A8984: .4byte gPlayerEntity - - thumb_func_start sub_080A8988 -sub_080A8988: @ 0x080A8988 - push {r4, r5, lr} - adds r5, r0, #0 - ldrb r0, [r5, #0xa] - cmp r0, #1 - bne _080A89B4 - ldr r4, [r5, #0x54] - cmp r4, #0 - bne _080A899C - bl DeleteThisEntity -_080A899C: - ldr r0, [r4, #4] - cmp r0, #0 - bne _080A89A6 - bl DeleteThisEntity -_080A89A6: - adds r0, r4, #0 - bl sub_08078954 - adds r0, r5, #0 - adds r1, r4, #0 - bl CopyPosition -_080A89B4: - movs r1, #0xa0 - lsls r1, r1, #6 - adds r0, r5, #0 - bl sub_080044EC - cmp r0, #1 - bne _080A8A44 - adds r0, r5, #0 - bl sub_080043E8 - cmp r0, #0 - beq _080A8A00 - cmp r0, #2 - beq _080A89E0 - cmp r0, #2 - bhi _080A89DA - cmp r0, #1 - beq _080A89E6 - b _080A89FC -_080A89DA: - cmp r0, #3 - beq _080A89F2 - b _080A89FC -_080A89E0: - adds r0, r5, #0 - movs r1, #0xb - b _080A89EA -_080A89E6: - adds r0, r5, #0 - movs r1, #0 -_080A89EA: - movs r2, #0 - bl CreateFx - b _080A89FC -_080A89F2: - adds r0, r5, #0 - movs r1, #0xc - movs r2, #0 - bl CreateFx -_080A89FC: - bl DeleteThisEntity -_080A8A00: - ldrb r0, [r5, #0xa] - cmp r0, #1 - beq _080A8A3E - cmp r0, #1 - bgt _080A8A10 - cmp r0, #0 - beq _080A8A16 - b _080A8A44 -_080A8A10: - cmp r0, #2 - beq _080A8A2A - b _080A8A44 -_080A8A16: - adds r0, r5, #0 - movs r1, #1 - bl InitializeAnimation - movs r0, #0x84 - bl EnqueueSFX - movs r0, #3 - strb r0, [r5, #0xc] - b _080A8A44 -_080A8A2A: - adds r0, r5, #0 - movs r1, #5 - movs r2, #0x80 - bl CreateFx - adds r4, r0, #0 - cmp r4, #0 - beq _080A8A3E - movs r0, #0 - str r0, [r4, #0x50] -_080A8A3E: - adds r0, r5, #0 - bl DeleteEntity -_080A8A44: - pop {r4, r5, pc} - .align 2, 0 - - thumb_func_start sub_080A8A48 -sub_080A8A48: @ 0x080A8A48 - push {r4, lr} - adds r4, r0, #0 - bl GetNextFrame - adds r0, r4, #0 - adds r0, #0x5a - ldrb r1, [r0] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - beq _080A8A64 - adds r0, r4, #0 - bl DeleteEntity -_080A8A64: - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_080A8A68 -sub_080A8A68: @ 0x080A8A68 - push {r4, lr} - adds r4, r0, #0 - bl GetNextFunction - cmp r0, #0 - beq _080A8A78 - bl DeleteThisEntity -_080A8A78: - ldr r0, _080A8A8C @ =gUnk_0812979C - ldrb r1, [r4, #0xc] - lsls r1, r1, #2 - adds r1, r1, r0 - ldr r1, [r1] - adds r0, r4, #0 - bl _call_via_r1 - pop {r4, pc} - .align 2, 0 -_080A8A8C: .4byte gUnk_0812979C - - thumb_func_start sub_080A8A90 -sub_080A8A90: @ 0x080A8A90 - push {lr} - adds r2, r0, #0 - ldrb r0, [r2, #0xa] - cmp r0, #0 - bne _080A8AAA - movs r0, #1 - strb r0, [r2, #0xc] - ldrb r1, [r2, #0x15] - lsrs r1, r1, #3 - adds r0, r2, #0 - bl InitializeAnimation - b _080A8AC2 -_080A8AAA: - movs r0, #2 - strb r0, [r2, #0xc] - ldrb r1, [r2, #0x15] - lsrs r1, r1, #3 - movs r0, #4 - orrs r1, r0 - adds r0, r2, #0 - bl InitializeAnimation - ldr r0, _080A8AC4 @ =0x0000015F - bl EnqueueSFX -_080A8AC2: - pop {pc} - .align 2, 0 -_080A8AC4: .4byte 0x0000015F - - thumb_func_start sub_080A8AC8 -sub_080A8AC8: @ 0x080A8AC8 - push {r4, r5, lr} - adds r4, r0, #0 - ldr r5, [r4, #0x50] - cmp r5, #0 - bne _080A8AD8 - bl DeleteEntity - b _080A8B34 -_080A8AD8: - ldr r0, [r5, #4] - cmp r0, #0 - bne _080A8AE6 - adds r0, r4, #0 - bl DeleteEntity - b _080A8B34 -_080A8AE6: - ldrb r0, [r4, #0x18] - lsls r0, r0, #0x1e - lsrs r0, r0, #0x1e - cmp r0, #1 - bne _080A8B2E - adds r0, r5, #0 - adds r1, r4, #0 - bl CopyPosition - ldrb r0, [r5, #0x15] - adds r2, r0, #4 - movs r0, #0x18 - ands r2, r0 - ldrb r0, [r4, #0xe] - cmp r0, #0 - beq _080A8B1A - movs r0, #0 - strb r2, [r4, #0x15] - lsrs r1, r2, #2 - strb r1, [r4, #0x14] - strb r0, [r4, #0xe] - lsrs r1, r2, #3 - adds r0, r4, #0 - bl InitializeAnimation - b _080A8B2E -_080A8B1A: - lsrs r0, r2, #2 - ldrb r1, [r4, #0x14] - cmp r0, r1 - beq _080A8B2E - strb r2, [r4, #0x15] - strb r0, [r4, #0x14] - lsrs r1, r2, #3 - adds r0, r4, #0 - bl InitializeAnimation -_080A8B2E: - adds r0, r4, #0 - bl GetNextFrame -_080A8B34: - pop {r4, r5, pc} - .align 2, 0 - - thumb_func_start sub_080A8B38 -sub_080A8B38: @ 0x080A8B38 - push {r4, lr} - adds r4, r0, #0 - bl GetNextFrame - adds r0, r4, #0 - bl sub_080AF090 - adds r2, r0, #0 - cmp r2, #0 - beq _080A8B66 - adds r0, r4, #0 - bl sub_080A7EB0 - cmp r0, #0 - beq _080A8B5E - adds r0, r4, #0 - bl DeleteEntity - b _080A8B74 -_080A8B5E: - adds r0, r4, #0 - bl sub_08016AD2 - b _080A8B74 -_080A8B66: - movs r0, #3 - strb r0, [r4, #0xc] - ldrb r1, [r4, #0x10] - movs r0, #0x7f - ands r0, r1 - strb r0, [r4, #0x10] - strh r2, [r4, #0x24] -_080A8B74: - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_080A8B78 -sub_080A8B78: @ 0x080A8B78 - push {r4, lr} - adds r4, r0, #0 - bl GetNextFrame - adds r0, r4, #0 - adds r0, #0x5a - ldrb r1, [r0] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - beq _080A8B94 - adds r0, r4, #0 - bl DeleteEntity -_080A8B94: - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_080A8B98 -sub_080A8B98: @ 0x080A8B98 - push {r4, lr} - adds r4, r0, #0 - bl GetNextFunction - cmp r0, #0 - beq _080A8BA8 - bl DeleteThisEntity -_080A8BA8: - ldr r0, _080A8BBC @ =gUnk_0812982C - ldrb r1, [r4, #0xc] - lsls r1, r1, #2 - adds r1, r1, r0 - ldr r1, [r1] - adds r0, r4, #0 - bl _call_via_r1 - pop {r4, pc} - .align 2, 0 -_080A8BBC: .4byte gUnk_0812982C - - thumb_func_start sub_080A8BC0 -sub_080A8BC0: @ 0x080A8BC0 - push {lr} - adds r2, r0, #0 - ldrb r0, [r2, #0xa] - cmp r0, #0 - bne _080A8BDA - movs r0, #1 - strb r0, [r2, #0xc] - ldrb r1, [r2, #0x15] - lsrs r1, r1, #3 - adds r0, r2, #0 - bl InitializeAnimation - b _080A8BF4 -_080A8BDA: - movs r0, #2 - strb r0, [r2, #0xc] - ldrb r1, [r2, #0x15] - lsrs r1, r1, #3 - movs r0, #4 - orrs r1, r0 - adds r0, r2, #0 - bl InitializeAnimation - movs r0, #0xaf - lsls r0, r0, #1 - bl EnqueueSFX -_080A8BF4: - pop {pc} - .align 2, 0 - - thumb_func_start sub_080A8BF8 -sub_080A8BF8: @ 0x080A8BF8 - push {r4, r5, lr} - adds r4, r0, #0 - ldr r5, [r4, #0x50] - cmp r5, #0 - bne _080A8C08 - bl DeleteEntity - b _080A8C48 -_080A8C08: - ldr r0, [r5, #4] - cmp r0, #0 - bne _080A8C16 - adds r0, r4, #0 - bl DeleteEntity - b _080A8C48 -_080A8C16: - ldrb r0, [r4, #0x18] - lsls r0, r0, #0x1e - lsrs r0, r0, #0x1e - cmp r0, #1 - bne _080A8C42 - adds r0, r5, #0 - adds r1, r4, #0 - bl CopyPosition - ldrb r0, [r4, #0xe] - cmp r0, #0 - beq _080A8C42 - ldrb r0, [r5, #0x15] - movs r1, #0x18 - ands r1, r0 - movs r0, #0 - strb r1, [r4, #0x15] - strb r0, [r4, #0xe] - lsrs r1, r1, #3 - adds r0, r4, #0 - bl InitializeAnimation -_080A8C42: - adds r0, r4, #0 - bl GetNextFrame -_080A8C48: - pop {r4, r5, pc} - .align 2, 0 - - thumb_func_start sub_080A8C4C -sub_080A8C4C: @ 0x080A8C4C - push {r4, lr} - adds r4, r0, #0 - bl GetNextFrame - adds r0, r4, #0 - bl sub_080AF090 - adds r2, r0, #0 - cmp r2, #0 - beq _080A8C7A - adds r0, r4, #0 - bl sub_080A7EB0 - cmp r0, #0 - beq _080A8C72 - adds r0, r4, #0 - bl DeleteEntity - b _080A8C88 -_080A8C72: - adds r0, r4, #0 - bl sub_08016AD2 - b _080A8C88 -_080A8C7A: - movs r0, #3 - strb r0, [r4, #0xc] - ldrb r1, [r4, #0x10] - movs r0, #0x7f - ands r0, r1 - strb r0, [r4, #0x10] - strh r2, [r4, #0x24] -_080A8C88: - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_080A8C8C -sub_080A8C8C: @ 0x080A8C8C - push {r4, lr} - adds r4, r0, #0 - bl GetNextFrame - adds r0, r4, #0 - adds r0, #0x5a - ldrb r1, [r0] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - beq _080A8CA8 - adds r0, r4, #0 - bl DeleteEntity -_080A8CA8: - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_080A8CAC -sub_080A8CAC: @ 0x080A8CAC - push {r4, lr} - adds r4, r0, #0 - bl GetNextFunction - cmp r0, #0 - beq _080A8CBC - bl DeleteThisEntity -_080A8CBC: - ldr r0, _080A8CD0 @ =gUnk_081298B8 - ldrb r1, [r4, #0xc] - lsls r1, r1, #2 - adds r1, r1, r0 - ldr r1, [r1] - adds r0, r4, #0 - bl _call_via_r1 - pop {r4, pc} - .align 2, 0 -_080A8CD0: .4byte gUnk_081298B8 - - thumb_func_start sub_080A8CD4 -sub_080A8CD4: @ 0x080A8CD4 - push {lr} - adds r2, r0, #0 - ldrb r0, [r2, #0xa] - cmp r0, #0 - bne _080A8CEE - movs r0, #1 - strb r0, [r2, #0xc] - ldrb r1, [r2, #0x15] - lsrs r1, r1, #3 - adds r0, r2, #0 - bl InitializeAnimation - b _080A8D08 -_080A8CEE: - movs r0, #2 - strb r0, [r2, #0xc] - ldrb r1, [r2, #0x15] - lsrs r1, r1, #3 - movs r0, #4 - orrs r1, r0 - adds r0, r2, #0 - bl InitializeAnimation - movs r0, #0xb0 - lsls r0, r0, #1 - bl EnqueueSFX -_080A8D08: - pop {pc} - .align 2, 0 - - thumb_func_start sub_080A8D0C -sub_080A8D0C: @ 0x080A8D0C - push {r4, r5, lr} - adds r4, r0, #0 - ldr r5, [r4, #0x50] - cmp r5, #0 - bne _080A8D1C - bl DeleteEntity - b _080A8D5C -_080A8D1C: - ldr r0, [r5, #4] - cmp r0, #0 - bne _080A8D2A - adds r0, r4, #0 - bl DeleteEntity - b _080A8D5C -_080A8D2A: - ldrb r0, [r4, #0x18] - lsls r0, r0, #0x1e - lsrs r0, r0, #0x1e - cmp r0, #1 - bne _080A8D56 - adds r0, r5, #0 - adds r1, r4, #0 - bl CopyPosition - ldrb r0, [r4, #0xe] - cmp r0, #0 - beq _080A8D56 - ldrb r0, [r5, #0x15] - movs r1, #0x18 - ands r1, r0 - movs r0, #0 - strb r1, [r4, #0x15] - strb r0, [r4, #0xe] - lsrs r1, r1, #3 - adds r0, r4, #0 - bl InitializeAnimation -_080A8D56: - adds r0, r4, #0 - bl GetNextFrame -_080A8D5C: - pop {r4, r5, pc} - .align 2, 0 - - thumb_func_start sub_080A8D60 -sub_080A8D60: @ 0x080A8D60 - push {r4, lr} - adds r4, r0, #0 - bl GetNextFrame - adds r0, r4, #0 - bl sub_080AF090 - adds r2, r0, #0 - cmp r2, #0 - beq _080A8D8E - adds r0, r4, #0 - bl sub_080A7EB0 - cmp r0, #0 - beq _080A8D86 - adds r0, r4, #0 - bl DeleteEntity - b _080A8D9C -_080A8D86: - adds r0, r4, #0 - bl sub_08016AD2 - b _080A8D9C -_080A8D8E: - movs r0, #3 - strb r0, [r4, #0xc] - ldrb r1, [r4, #0x10] - movs r0, #0x7f - ands r0, r1 - strb r0, [r4, #0x10] - strh r2, [r4, #0x24] -_080A8D9C: - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_080A8DA0 -sub_080A8DA0: @ 0x080A8DA0 - push {r4, lr} - adds r4, r0, #0 - bl GetNextFrame - adds r0, r4, #0 - adds r0, #0x5a - ldrb r1, [r0] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - beq _080A8DBC - adds r0, r4, #0 - bl DeleteEntity -_080A8DBC: - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_080A8DC0 -sub_080A8DC0: @ 0x080A8DC0 - push {r4, r5, lr} - adds r5, r0, #0 - ldr r4, _080A8DD8 @ =gUnk_08129954 - bl GetNextFunction - lsls r0, r0, #2 - adds r0, r0, r4 - ldr r1, [r0] - adds r0, r5, #0 - bl _call_via_r1 - pop {r4, r5, pc} - .align 2, 0 -_080A8DD8: .4byte gUnk_08129954 - - thumb_func_start sub_080A8DDC -sub_080A8DDC: @ 0x080A8DDC - push {r4, lr} - adds r4, r0, #0 - ldrb r0, [r4, #0xa] - cmp r0, #3 - beq _080A8E12 - adds r0, r4, #0 - adds r0, #0x41 - ldrb r1, [r0] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - beq _080A8E12 - movs r2, #0x7f - adds r0, r2, #0 - ands r0, r1 - cmp r0, #0x1e - beq _080A8E12 - movs r0, #3 - strb r0, [r4, #0xc] - ldrb r1, [r4, #0x10] - adds r0, r2, #0 - ands r0, r1 - strb r0, [r4, #0x10] - adds r0, r4, #0 - movs r1, #0x53 - bl InitializeAnimation -_080A8E12: - ldr r0, _080A8E24 @ =gUnk_08129968 - ldrb r1, [r4, #0xc] - lsls r1, r1, #2 - adds r1, r1, r0 - ldr r1, [r1] - adds r0, r4, #0 - bl _call_via_r1 - pop {r4, pc} - .align 2, 0 -_080A8E24: .4byte gUnk_08129968 - - thumb_func_start sub_080A8E28 -sub_080A8E28: @ 0x080A8E28 - push {r4, r5, r6, lr} - adds r5, r0, #0 - movs r0, #1 - strb r0, [r5, #0xc] - ldr r0, _080A8E80 @ =0xFFFF0000 - str r0, [r5, #0x20] - ldrb r0, [r5, #0xa] - cmp r0, #3 - beq _080A8E6E - ldr r0, [r5, #0x50] - adds r1, r5, #0 - bl CopyPosition - movs r1, #0x80 - lsls r1, r1, #5 - ldrb r2, [r5, #0x15] - adds r0, r5, #0 - bl sub_0806F5BC - ldr r0, [r5, #0x50] - ldr r2, [r5, #0x54] - ldr r1, [r0, #0x30] - ldr r0, [r2, #0x30] - subs r1, r1, r0 - str r1, [r5, #0x34] - ldr r0, [r5, #0x30] - subs r0, r0, r1 - str r0, [r5, #0x30] - adds r0, r5, #0 - movs r1, #0x51 - bl InitializeAnimation - ldr r0, _080A8E84 @ =0x000001B5 - bl SoundReq -_080A8E6E: - ldrb r4, [r5, #0xa] - cmp r4, #2 - beq _080A8EF2 - cmp r4, #2 - ble _080A8E88 - cmp r4, #3 - beq _080A8F02 - b _080A8FAE - .align 2, 0 -_080A8E80: .4byte 0xFFFF0000 -_080A8E84: .4byte 0x000001B5 -_080A8E88: - cmp r4, #0 - bge _080A8E8E - b _080A8FAE -_080A8E8E: - ldr r0, _080A8EC0 @ =gPlayerEntity - movs r2, #0x2e - ldrsh r1, [r0, r2] - movs r3, #0x32 - ldrsh r2, [r0, r3] - adds r0, r5, #0 - bl sub_080041DC - adds r4, r0, #0 - ldrb r6, [r5, #0xa] - cmp r6, #1 - bne _080A8ECE - bl Random - adds r2, r0, #0 - ldr r0, _080A8EC4 @ =0x000001FF - ands r2, r0 - ldr r0, _080A8EC8 @ =gScreenTransition - ldr r0, [r0] - ands r0, r6 - cmp r0, #0 - bne _080A8ECC - adds r4, r4, r2 - b _080A8ECE - .align 2, 0 -_080A8EC0: .4byte gPlayerEntity -_080A8EC4: .4byte 0x000001FF -_080A8EC8: .4byte gScreenTransition -_080A8ECC: - subs r4, r4, r2 -_080A8ECE: - cmp r4, #0x1f - bgt _080A8ED6 - movs r4, #0x20 - b _080A8EE0 -_080A8ED6: - movs r0, #0x80 - lsls r0, r0, #3 - cmp r4, r0 - ble _080A8EE0 - adds r4, r0, #0 -_080A8EE0: - lsls r1, r4, #8 - ldr r0, [r5, #0x34] - bl __divsi3 - lsls r0, r0, #0xd - str r0, [r5, #0x20] - movs r0, #0x1e - strb r0, [r5, #0xf] - b _080A8FAE -_080A8EF2: - ldr r0, [r5, #0x34] - movs r1, #0xc0 - lsls r1, r1, #9 - bl __divsi3 - lsls r0, r0, #0xc - str r0, [r5, #0x20] - b _080A8FAE -_080A8F02: - ldr r0, _080A8F64 @ =0xFF600000 - str r0, [r5, #0x34] - bl Random - ands r4, r0 - lsls r2, r4, #1 - ldr r1, _080A8F68 @ =gUnk_08129978 - adds r0, r2, r1 - ldrb r0, [r0] - lsls r0, r0, #0x18 - asrs r0, r0, #0x18 - ldrh r3, [r5, #0x2e] - adds r0, r0, r3 - strh r0, [r5, #0x2e] - adds r0, r2, #1 - adds r0, r0, r1 - ldrb r0, [r0] - lsls r0, r0, #0x18 - asrs r0, r0, #0x18 - ldrh r1, [r5, #0x32] - adds r0, r0, r1 - strh r0, [r5, #0x32] - movs r0, #2 - ands r2, r0 - cmp r2, #0 - beq _080A8F74 - bl Random - ldr r2, _080A8F6C @ =gUnk_08129988 - movs r1, #0xf - ands r1, r0 - adds r1, r1, r2 - movs r0, #0 - ldrsb r0, [r1, r0] - ldrh r2, [r5, #0x2e] - adds r0, r0, r2 - strh r0, [r5, #0x2e] - bl Random - ldr r2, _080A8F70 @ =gUnk_08129980 - movs r1, #7 - ands r1, r0 - adds r1, r1, r2 - movs r0, #0 - ldrsb r0, [r1, r0] - ldrh r3, [r5, #0x32] - adds r0, r0, r3 - b _080A8F9E - .align 2, 0 -_080A8F64: .4byte 0xFF600000 -_080A8F68: .4byte gUnk_08129978 -_080A8F6C: .4byte gUnk_08129988 -_080A8F70: .4byte gUnk_08129980 -_080A8F74: - bl Random - ldr r2, _080A8FB0 @ =gUnk_08129980 - movs r1, #7 - ands r1, r0 - adds r1, r1, r2 - movs r0, #0 - ldrsb r0, [r1, r0] - ldrh r1, [r5, #0x2e] - adds r0, r0, r1 - strh r0, [r5, #0x2e] - bl Random - ldr r2, _080A8FB4 @ =gUnk_08129988 - movs r1, #0xf - ands r1, r0 - adds r1, r1, r2 - movs r0, #0 - ldrsb r0, [r1, r0] - ldrh r2, [r5, #0x32] - adds r0, r0, r2 -_080A8F9E: - strh r0, [r5, #0x32] - adds r0, r5, #0 - bl sub_08004168 - adds r0, r5, #0 - movs r1, #0 - bl InitializeAnimation -_080A8FAE: - pop {r4, r5, r6, pc} - .align 2, 0 -_080A8FB0: .4byte gUnk_08129980 -_080A8FB4: .4byte gUnk_08129988 - - thumb_func_start sub_080A8FB8 -sub_080A8FB8: @ 0x080A8FB8 - push {r4, lr} - adds r4, r0, #0 - ldrb r0, [r4, #0xa] - cmp r0, #3 - bne _080A8FE8 - movs r1, #0xc0 - lsls r1, r1, #5 - adds r0, r4, #0 - bl sub_08003FC4 - cmp r0, #0 - bne _080A9054 - adds r0, r4, #0 - movs r1, #7 - bl sub_08008790 - adds r0, r4, #0 - movs r1, #4 - movs r2, #0 - bl CreateFx - bl DeleteThisEntity - b _080A9054 -_080A8FE8: - adds r0, r4, #0 - bl GetNextFrame - adds r0, r4, #0 - bl sub_0806F69C - ldrb r0, [r4, #0xa] - cmp r0, #2 - beq _080A901C - ldrb r0, [r4, #0xf] - subs r0, #1 - strb r0, [r4, #0xf] - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #0xff - bne _080A901C - movs r0, #0x1e - strb r0, [r4, #0xf] - ldr r1, _080A9048 @ =gPlayerEntity - adds r0, r4, #0 - bl GetFacingDirection - adds r1, r0, #0 - adds r0, r4, #0 - bl sub_08004596 -_080A901C: - adds r0, r4, #0 - movs r1, #0 - bl sub_08003FC4 - cmp r0, #0 - bne _080A9054 - movs r0, #2 - strb r0, [r4, #0xc] - adds r0, r4, #0 - bl sub_080A90D8 - ldrb r0, [r4, #0xa] - cmp r0, #2 - bne _080A904C - movs r0, #0xf - strb r0, [r4, #0xe] - adds r0, r4, #0 - movs r1, #0x54 - bl InitializeAnimation - b _080A9054 - .align 2, 0 -_080A9048: .4byte gPlayerEntity -_080A904C: - adds r0, r4, #0 - movs r1, #0x52 - bl InitializeAnimation -_080A9054: - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_080A9058 -sub_080A9058: @ 0x080A9058 - push {r4, lr} - adds r4, r0, #0 - bl GetNextFrame - ldrb r0, [r4, #0xa] - cmp r0, #2 - bne _080A9098 - ldrb r0, [r4, #0xe] - subs r0, #1 - strb r0, [r4, #0xe] - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #0xff - bne _080A908A - ldrb r0, [r4, #0x10] - movs r1, #0x7f - ands r1, r0 - strb r1, [r4, #0x10] - movs r0, #3 - strb r0, [r4, #0xc] - adds r0, r4, #0 - movs r1, #0x55 - bl InitializeAnimation - b _080A90BA -_080A908A: - adds r0, r4, #0 - bl sub_0806F69C - adds r0, r4, #0 - bl sub_080A90D8 - b _080A90BA -_080A9098: - adds r0, r4, #0 - adds r0, #0x5a - ldrb r1, [r0] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - beq _080A90BA - movs r0, #3 - strb r0, [r4, #0xc] - ldrb r1, [r4, #0x10] - movs r0, #0x7f - ands r0, r1 - strb r0, [r4, #0x10] - adds r0, r4, #0 - movs r1, #0x53 - bl InitializeAnimation -_080A90BA: - pop {r4, pc} - - thumb_func_start sub_080A90BC -sub_080A90BC: @ 0x080A90BC - push {r4, lr} - adds r4, r0, #0 - bl GetNextFrame - adds r4, #0x5a - ldrb r1, [r4] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - beq _080A90D4 - bl DeleteThisEntity -_080A90D4: - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_080A90D8 -sub_080A90D8: @ 0x080A90D8 - push {r4, r5, r6, r7, lr} - adds r5, r0, #0 - movs r0, #0x74 - adds r0, r0, r5 - mov ip, r0 - ldrh r3, [r0] - movs r1, #0x2e - ldrsh r0, [r5, r1] - ldr r7, _080A9154 @ =gRoomControls - ldrh r1, [r7, #6] - subs r0, r0, r1 - asrs r4, r0, #4 - movs r6, #0x3f - adds r2, r4, #0 - ands r2, r6 - movs r1, #0x32 - ldrsh r0, [r5, r1] - ldrh r1, [r7, #8] - subs r0, r0, r1 - asrs r1, r0, #4 - adds r0, r1, #0 - ands r0, r6 - lsls r0, r0, #6 - orrs r2, r0 - cmp r3, r2 - beq _080A9152 - movs r0, #0x3f - ands r4, r0 - ands r1, r0 - lsls r0, r1, #6 - orrs r4, r0 - mov r2, ip - strh r4, [r2] - adds r0, r5, #0 - bl GetTileTypeByEntity - cmp r0, #0x13 - beq _080A9128 - cmp r0, #0x34 - bne _080A9152 -_080A9128: - movs r0, #0xd3 - lsls r0, r0, #2 - movs r3, #0x2e - ldrsh r1, [r5, r3] - ldrh r2, [r7, #6] - subs r1, r1, r2 - asrs r1, r1, #4 - ands r1, r6 - movs r3, #0x32 - ldrsh r2, [r5, r3] - ldrh r3, [r7, #8] - subs r2, r2, r3 - asrs r2, r2, #4 - ands r2, r6 - lsls r2, r2, #6 - orrs r1, r2 - adds r2, r5, #0 - adds r2, #0x38 - ldrb r2, [r2] - bl sub_0807B7D8 -_080A9152: - pop {r4, r5, r6, r7, pc} - .align 2, 0 -_080A9154: .4byte gRoomControls - - thumb_func_start sub_080A9158 -sub_080A9158: @ 0x080A9158 - push {r4, r5, lr} - adds r5, r0, #0 - ldrb r0, [r5, #0xc] - cmp r0, #0 - bne _080A9166 - movs r0, #1 - strb r0, [r5, #0xc] -_080A9166: - ldr r4, [r5, #0x50] - cmp r4, #0 - beq _080A917C - adds r0, r4, #0 - adds r0, #0x45 - ldrb r0, [r0] - cmp r0, #0 - beq _080A917C - ldr r0, [r4, #4] - cmp r0, #0 - bne _080A91A4 -_080A917C: - adds r0, r5, #0 - adds r0, #0x41 - ldrb r1, [r0] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - beq _080A9198 - ldr r1, [r5, #0x4c] - ldr r0, _080A91A0 @ =gPlayerEntity - cmp r1, r0 - bne _080A9198 - adds r0, r5, #0 - bl sub_0803C0AC -_080A9198: - adds r0, r5, #0 - bl DeleteEntity - b _080A91D8 - .align 2, 0 -_080A91A0: .4byte gPlayerEntity -_080A91A4: - ldr r1, _080A91DC @ =gUnk_08129998 - ldrb r0, [r4, #0x14] - lsls r0, r0, #2 - adds r0, r0, r1 - ldr r0, [r0] - str r0, [r5, #0x48] - adds r0, r4, #0 - adds r1, r5, #0 - bl CopyPosition - adds r0, r4, #0 - adds r0, #0x3d - ldrb r0, [r0] - lsls r0, r0, #0x18 - asrs r0, r0, #0x18 - cmp r0, #0 - beq _080A91D8 - adds r1, r5, #0 - adds r1, #0x3d - ldrb r2, [r1] - movs r0, #0 - ldrsb r0, [r1, r0] - cmp r0, #0 - bne _080A91D8 - movs r0, #0xff - strb r0, [r1] -_080A91D8: - pop {r4, r5, pc} - .align 2, 0 -_080A91DC: .4byte gUnk_08129998 - - thumb_func_start sub_080A91E0 -sub_080A91E0: @ 0x080A91E0 - push {r4, r5, lr} - adds r4, r0, #0 - ldrb r0, [r4, #0xa] - cmp r0, #0 - bne _080A9288 - ldrb r0, [r4, #0xc] - cmp r0, #0 - bne _080A9204 - movs r0, #1 - strb r0, [r4, #0xc] - bl Random - strb r0, [r4, #0xe] - ldrb r1, [r4, #0x18] - movs r0, #4 - rsbs r0, r0, #0 - ands r0, r1 - strb r0, [r4, #0x18] -_080A9204: - adds r0, r4, #0 - adds r0, #0x41 - ldrb r0, [r0] - cmp r0, #0x80 - bne _080A921C - ldr r1, [r4, #0x50] - cmp r1, #0 - beq _080A9218 - movs r0, #0xff - strb r0, [r1, #0xa] -_080A9218: - bl DeleteThisEntity -_080A921C: - ldr r0, [r4, #0x50] - adds r1, r4, #0 - bl CopyPosition - ldrb r0, [r4, #0xf] - cmp r0, #0 - beq _080A9230 - subs r0, #1 - strb r0, [r4, #0xf] - b _080A92F6 -_080A9230: - adds r0, r4, #0 - bl sub_080644C8 - cmp r0, #0 - beq _080A92F6 - ldrb r1, [r4, #0xe] - adds r0, r1, #1 - strb r0, [r4, #0xe] - movs r0, #3 - ands r0, r1 - cmp r0, #0 - bne _080A92F6 - movs r0, #0xc - bl sub_080A7EE0 - adds r5, r0, #0 - cmp r5, #0 - beq _080A92F6 - movs r0, #1 - strb r0, [r5, #0xa] - ldr r0, [r4, #0x50] - adds r0, #0x3e - ldrb r1, [r0] - ldr r3, _080A9284 @ =gUnk_081299C8 - ldrb r0, [r4, #0xe] - lsrs r0, r0, #2 - movs r2, #7 - ands r0, r2 - adds r0, r0, r3 - lsls r1, r1, #3 - ldrb r0, [r0] - adds r1, r1, r0 - movs r0, #0x1f - ands r1, r0 - strb r1, [r5, #0x15] - ldr r0, [r4, #0x50] - str r0, [r5, #0x50] - adds r0, r4, #0 - adds r1, r5, #0 - bl CopyPosition - b _080A92F6 - .align 2, 0 -_080A9284: .4byte gUnk_081299C8 -_080A9288: - ldrb r0, [r4, #0xc] - cmp r0, #0 - bne _080A92B0 - movs r0, #1 - strb r0, [r4, #0xc] - movs r0, #0x12 - strb r0, [r4, #0xe] - ldrb r1, [r4, #0x18] - subs r0, #0x16 - ands r0, r1 - strb r0, [r4, #0x18] - movs r0, #0x80 - lsls r0, r0, #4 - strh r0, [r4, #0x24] - ldr r0, _080A92F8 @ =gUnk_080FD1E4 - str r0, [r4, #0x48] - adds r0, r4, #0 - movs r1, #0 - bl InitializeAnimation -_080A92B0: - adds r0, r4, #0 - adds r0, #0x41 - ldrb r0, [r0] - cmp r0, #0x80 - bne _080A92C8 - ldr r1, [r4, #0x50] - cmp r1, #0 - beq _080A92C4 - movs r0, #0xff - strb r0, [r1, #0xa] -_080A92C4: - bl DeleteThisEntity -_080A92C8: - ldrb r0, [r4, #0xe] - subs r0, #1 - strb r0, [r4, #0xe] - lsls r0, r0, #0x18 - cmp r0, #0 - bne _080A92D8 - bl DeleteThisEntity -_080A92D8: - adds r0, r4, #0 - bl sub_0806F69C - ldr r0, _080A92FC @ =gUnk_02027EB4 - movs r2, #0x2e - ldrsh r1, [r4, r2] - movs r3, #0x32 - ldrsh r2, [r4, r3] - movs r3, #2 - bl sub_080AE4CC - cmp r0, #0 - beq _080A92F6 - bl DeleteThisEntity -_080A92F6: - pop {r4, r5, pc} - .align 2, 0 -_080A92F8: .4byte gUnk_080FD1E4 -_080A92FC: .4byte gUnk_02027EB4 - - thumb_func_start sub_080A9300 -sub_080A9300: @ 0x080A9300 - push {r4, r5, lr} - adds r5, r0, #0 - ldr r4, _080A9318 @ =gUnk_081299D0 - bl GetNextFunction - lsls r0, r0, #2 - adds r0, r0, r4 - ldr r1, [r0] - adds r0, r5, #0 - bl _call_via_r1 - pop {r4, r5, pc} - .align 2, 0 -_080A9318: .4byte gUnk_081299D0 - - thumb_func_start sub_080A931C -sub_080A931C: @ 0x080A931C - push {lr} - ldr r2, _080A9330 @ =gUnk_081299E4 - ldrb r1, [r0, #0xc] - lsls r1, r1, #2 - adds r1, r1, r2 - ldr r1, [r1] - bl _call_via_r1 - pop {pc} - .align 2, 0 -_080A9330: .4byte gUnk_081299E4 - - thumb_func_start sub_080A9334 -sub_080A9334: @ 0x080A9334 - push {r4, lr} - adds r4, r0, #0 - adds r0, #0x41 - ldrb r1, [r0] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - beq _080A936C - movs r0, #0x3f - ands r0, r1 - cmp r0, #0 - beq _080A9368 - movs r0, #2 - rsbs r0, r0, #0 - bl ModHealth - adds r0, r4, #0 - bl sub_080A9488 - adds r0, r4, #0 - adds r0, #0x42 - movs r1, #0 - strb r1, [r0] - subs r0, #5 - strb r1, [r0] - b _080A936C -_080A9368: - bl DeleteThisEntity -_080A936C: - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_080A9370 -sub_080A9370: @ 0x080A9370 - push {r4, lr} - movs r4, #0 - movs r3, #1 - movs r1, #1 - strb r1, [r0, #0xc] - ldrb r2, [r0, #0x18] - subs r1, #5 - ands r1, r2 - orrs r1, r3 - strb r1, [r0, #0x18] - ldrb r2, [r0, #0x10] - movs r1, #0x7f - ands r1, r2 - strb r1, [r0, #0x10] - movs r1, #0x6a - strb r1, [r0, #0xe] - strb r4, [r0, #0xf] - movs r1, #0xa0 - lsls r1, r1, #4 - str r1, [r0, #0x20] - ldrb r1, [r0, #0xa] - bl sub_080A94C0 - pop {r4, pc} - - thumb_func_start sub_080A93A0 -sub_080A93A0: @ 0x080A93A0 - push {r4, r5, lr} - adds r4, r0, #0 - ldr r5, [r4, #0x50] - cmp r5, #0 - beq _080A93B0 - ldr r0, [r5, #4] - cmp r0, #0 - bne _080A93B4 -_080A93B0: - bl DeleteThisEntity -_080A93B4: - ldrb r0, [r4, #0xf] - cmp r0, #0 - beq _080A93BE - bl DeleteThisEntity -_080A93BE: - ldrb r0, [r5, #0xf] - cmp r0, #0 - beq _080A93DA - movs r2, #0 - movs r0, #2 - strb r0, [r4, #0xc] - ldrb r1, [r4, #0x10] - movs r0, #0x80 - orrs r0, r1 - strb r0, [r4, #0x10] - str r2, [r5, #0x54] - movs r0, #0xfc - bl SoundReq -_080A93DA: - pop {r4, r5, pc} - - thumb_func_start sub_080A93DC -sub_080A93DC: @ 0x080A93DC - push {r4, lr} - adds r4, r0, #0 - ldrh r0, [r4, #0x2a] - cmp r0, #0 - beq _080A9414 - movs r0, #3 - strb r0, [r4, #0xc] - ldrb r1, [r4, #0x10] - movs r0, #0x7f - ands r0, r1 - strb r0, [r4, #0x10] - movs r0, #0x20 - strb r0, [r4, #0xe] - adds r0, r4, #0 - adds r0, #0x58 - ldrb r1, [r0] - adds r1, #2 - adds r0, r4, #0 - bl InitializeAnimation - movs r0, #0xc5 - lsls r0, r0, #1 - bl EnqueueSFX - adds r0, r4, #0 - bl sub_0806F69C - b _080A9424 -_080A9414: - ldrb r0, [r4, #0xe] - subs r0, #1 - strb r0, [r4, #0xe] - lsls r0, r0, #0x18 - cmp r0, #0 - bne _080A9424 - bl DeleteThisEntity -_080A9424: - adds r0, r4, #0 - bl sub_080AF090 - pop {r4, pc} - - thumb_func_start sub_080A942C -sub_080A942C: @ 0x080A942C - push {r4, lr} - adds r4, r0, #0 - ldrb r0, [r4, #0xe] - subs r0, #1 - strb r0, [r4, #0xe] - lsls r0, r0, #0x18 - cmp r0, #0 - bne _080A9440 - bl DeleteThisEntity -_080A9440: - adds r0, r4, #0 - bl GetNextFrame - pop {r4, pc} - - thumb_func_start sub_080A9448 -sub_080A9448: @ 0x080A9448 - push {r4, lr} - adds r4, r0, #0 - movs r1, #0xa0 - lsls r1, r1, #6 - bl sub_08003FC4 - cmp r0, #0 - bne _080A9464 - adds r0, r4, #0 - bl CreateDust - bl DeleteThisEntity - b _080A9486 -_080A9464: - ldrb r0, [r4, #0xe] - subs r0, #1 - strb r0, [r4, #0xe] - lsls r0, r0, #0x18 - cmp r0, #0 - bne _080A9486 - movs r0, #2 - strb r0, [r4, #0xe] - ldrb r0, [r4, #0x14] - adds r0, #1 - movs r1, #3 - ands r0, r1 - strb r0, [r4, #0x14] - ldrb r1, [r4, #0x14] - adds r0, r4, #0 - bl sub_080A94C0 -_080A9486: - pop {r4, pc} - - thumb_func_start sub_080A9488 -sub_080A9488: @ 0x080A9488 - push {r4, lr} - adds r4, r0, #0 - movs r0, #4 - strb r0, [r4, #0xc] - ldrb r1, [r4, #0x10] - movs r0, #0x7f - ands r0, r1 - strb r0, [r4, #0x10] - movs r0, #2 - strb r0, [r4, #0xe] - movs r0, #0xc0 - lsls r0, r0, #9 - str r0, [r4, #0x20] - adds r0, r4, #0 - adds r0, #0x3e - ldrb r1, [r0] - movs r0, #0x18 - ands r0, r1 - lsrs r0, r0, #3 - strb r0, [r4, #0x14] - movs r0, #0x74 - bl EnqueueSFX - ldrb r1, [r4, #0x14] - adds r0, r4, #0 - bl sub_080A94C0 - pop {r4, pc} - - thumb_func_start sub_080A94C0 -sub_080A94C0: @ 0x080A94C0 - push {r4, lr} - lsls r1, r1, #3 - ldr r2, _080A94FC @ =gUnk_081299F8 - adds r1, r1, r2 - ldrb r3, [r1] - movs r2, #1 - ands r3, r2 - lsls r3, r3, #6 - ldrb r4, [r0, #0x18] - movs r2, #0x41 - rsbs r2, r2, #0 - ands r2, r4 - orrs r2, r3 - strb r2, [r0, #0x18] - ldrb r3, [r1, #1] - lsls r3, r3, #7 - movs r4, #0x7f - ands r2, r4 - orrs r2, r3 - strb r2, [r0, #0x18] - ldrb r2, [r1, #2] - adds r3, r0, #0 - adds r3, #0x58 - strb r2, [r3] - ldr r1, [r1, #4] - str r1, [r0, #0x48] - ldrb r1, [r3] - bl InitializeAnimation - pop {r4, pc} - .align 2, 0 -_080A94FC: .4byte gUnk_081299F8 - - thumb_func_start sub_080A9500 -sub_080A9500: @ 0x080A9500 - push {lr} - ldr r2, _080A9514 @ =gUnk_08129A64 - ldrb r1, [r0, #0xc] - lsls r1, r1, #2 - adds r1, r1, r2 - ldr r1, [r1] - bl _call_via_r1 - pop {pc} - .align 2, 0 -_080A9514: .4byte gUnk_08129A64 - - thumb_func_start sub_080A9518 -sub_080A9518: @ 0x080A9518 - push {lr} - movs r1, #1 - strb r1, [r0, #0xc] - movs r1, #0xa - strb r1, [r0, #0xe] - ldrh r1, [r0, #0x36] - subs r1, #2 - strh r1, [r0, #0x36] - ldrh r1, [r0, #0x32] - adds r1, #2 - strh r1, [r0, #0x32] - movs r1, #0 - bl InitializeAnimation - ldr r0, _080A953C @ =0x00000149 - bl SoundReq - pop {pc} - .align 2, 0 -_080A953C: .4byte 0x00000149 - - thumb_func_start sub_080A9540 -sub_080A9540: @ 0x080A9540 - push {r4, lr} - adds r3, r0, #0 - ldrb r0, [r3, #0xe] - subs r0, #1 - strb r0, [r3, #0xe] - lsls r0, r0, #0x18 - cmp r0, #0 - bne _080A9578 - movs r0, #2 - strb r0, [r3, #0xc] - ldrb r1, [r3, #0x10] - movs r0, #0x7f - ands r0, r1 - strb r0, [r3, #0x10] - adds r2, r3, #0 - adds r2, #0x29 - ldrb r0, [r2] - movs r1, #7 - orrs r0, r1 - strb r0, [r2] - ldrh r0, [r3, #0x32] - adds r0, #6 - strh r0, [r3, #0x32] - adds r0, r3, #0 - movs r1, #1 - bl InitializeAnimation - b _080A95B6 -_080A9578: - ldrh r1, [r3, #0x36] - movs r2, #0x36 - ldrsh r0, [r3, r2] - cmp r0, #0 - beq _080A9586 - adds r0, r1, #1 - strh r0, [r3, #0x36] -_080A9586: - ldrb r1, [r3, #0x15] - lsls r1, r1, #1 - ldr r0, _080A95B8 @ =gSineTable - adds r1, r1, r0 - movs r4, #0 - ldrsh r2, [r1, r4] - movs r4, #0x24 - ldrsh r0, [r3, r4] - muls r2, r0, r2 - ldr r0, [r3, #0x2c] - adds r0, r0, r2 - str r0, [r3, #0x2c] - adds r1, #0x80 - movs r0, #0 - ldrsh r1, [r1, r0] - movs r2, #0x24 - ldrsh r0, [r3, r2] - muls r1, r0, r1 - ldr r0, [r3, #0x30] - subs r0, r0, r1 - str r0, [r3, #0x30] - adds r0, r3, #0 - bl GetNextFrame -_080A95B6: - pop {r4, pc} - .align 2, 0 -_080A95B8: .4byte gSineTable - - thumb_func_start sub_080A95BC -sub_080A95BC: @ 0x080A95BC - push {r4, lr} - adds r4, r0, #0 - bl GetNextFrame - adds r0, r4, #0 - adds r0, #0x5a - ldrb r1, [r0] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - beq _080A95D8 - adds r0, r4, #0 - bl DeleteEntity -_080A95D8: - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_080A95DC -sub_080A95DC: @ 0x080A95DC - push {r4, r5, lr} - adds r5, r0, #0 - ldr r4, _080A95F4 @ =gUnk_08129ABC - bl GetNextFunction - lsls r0, r0, #2 - adds r0, r0, r4 - ldr r1, [r0] - adds r0, r5, #0 - bl _call_via_r1 - pop {r4, r5, pc} - .align 2, 0 -_080A95F4: .4byte gUnk_08129ABC - - thumb_func_start sub_080A95F8 -sub_080A95F8: @ 0x080A95F8 - push {lr} - ldr r2, _080A960C @ =gUnk_08129AD0 - ldrb r1, [r0, #0xc] - lsls r1, r1, #2 - adds r1, r1, r2 - ldr r1, [r1] - bl _call_via_r1 - pop {pc} - .align 2, 0 -_080A960C: .4byte gUnk_08129AD0 - - thumb_func_start sub_080A9610 -sub_080A9610: @ 0x080A9610 - push {r4, r5, lr} - adds r4, r0, #0 - movs r5, #1 - strb r5, [r4, #0xc] - ldrb r0, [r4, #0xa] - cmp r0, #1 - beq _080A9660 - cmp r0, #1 - bgt _080A9628 - cmp r0, #0 - beq _080A9632 - b _080A9756 -_080A9628: - cmp r0, #2 - beq _080A96D0 - cmp r0, #3 - beq _080A9718 - b _080A9756 -_080A9632: - movs r1, #0x90 - lsls r1, r1, #7 - ldrb r2, [r4, #0x15] - adds r0, r4, #0 - bl sub_0806F62C - movs r1, #0 - movs r0, #0x80 - lsls r0, r0, #2 - strh r0, [r4, #0x24] - strb r1, [r4, #0xe] - ldrb r0, [r4, #0x15] - strb r0, [r4, #0xf] - adds r1, r4, #0 - adds r1, #0x78 - movs r0, #0x96 - lsls r0, r0, #1 - strh r0, [r1] - adds r0, r4, #0 - movs r1, #0 - bl InitAnimationForceUpdate - b _080A9756 -_080A9660: - ldrb r0, [r4, #0x19] - movs r1, #0xc0 - orrs r0, r1 - strb r0, [r4, #0x19] - adds r2, r4, #0 - adds r2, #0x29 - ldrb r1, [r2] - movs r0, #8 - rsbs r0, r0, #0 - ands r0, r1 - movs r1, #6 - orrs r0, r1 - strb r0, [r2] - bl Random - ldr r2, _080A96C8 @ =0x000001FF - adds r1, r2, #0 - ands r0, r1 - adds r2, #1 - adds r1, r2, #0 - adds r0, r0, r1 - strh r0, [r4, #0x24] - bl Random - ldr r1, _080A96CC @ =0x00001FFF - ands r1, r0 - movs r0, #0xc0 - lsls r0, r0, #9 - adds r1, r1, r0 - str r1, [r4, #0x20] - bl Random - movs r1, #7 - ands r0, r1 - subs r0, #4 - ldrb r1, [r4, #0x15] - subs r1, r1, r0 - strb r1, [r4, #0x15] - movs r0, #0x96 - lsls r0, r0, #2 - str r0, [r4, #0x78] - movs r0, #0x24 - ldrsh r1, [r4, r0] - ldrb r2, [r4, #0x15] - adds r0, r4, #0 - bl sub_0806F62C - adds r0, r4, #0 - movs r1, #4 - bl InitializeAnimation - b _080A9756 - .align 2, 0 -_080A96C8: .4byte 0x000001FF -_080A96CC: .4byte 0x00001FFF -_080A96D0: - bl Random - ands r0, r5 - cmp r0, #0 - beq _080A96EA - bl Random - movs r1, #7 - ands r0, r1 - ldrb r1, [r4, #0x15] - adds r0, r0, r1 - strb r0, [r4, #0x15] - b _080A96F8 -_080A96EA: - bl Random - movs r1, #7 - ands r0, r1 - ldrb r1, [r4, #0x15] - subs r1, r1, r0 - strb r1, [r4, #0x15] -_080A96F8: - movs r0, #0x80 - lsls r0, r0, #2 - strh r0, [r4, #0x24] - movs r0, #0x30 - strb r0, [r4, #0xe] - movs r1, #0xa0 - lsls r1, r1, #7 - ldrb r2, [r4, #0x15] - adds r0, r4, #0 - bl sub_0806F62C - adds r0, r4, #0 - movs r1, #5 - bl InitializeAnimation - b _080A9756 -_080A9718: - ldr r0, _080A9760 @ =gPlayerEntity - adds r1, r4, #0 - bl CopyPosition - ldr r0, _080A9764 @ =0xFF600000 - str r0, [r4, #0x34] - ldrh r0, [r4, #0x2e] - adds r0, #0x60 - strh r0, [r4, #0x2e] - ldrh r0, [r4, #0x32] - adds r0, #0x40 - strh r0, [r4, #0x32] - bl Random - movs r1, #0xc0 - bl __modsi3 - ldrh r1, [r4, #0x2e] - subs r1, r1, r0 - strh r1, [r4, #0x2e] - bl Random - movs r1, #0x7f - ands r1, r0 - ldrh r0, [r4, #0x32] - subs r0, r0, r1 - strh r0, [r4, #0x32] - adds r0, r4, #0 - movs r1, #0 - bl InitializeAnimation -_080A9756: - ldr r0, _080A9768 @ =0x000001B5 - bl SoundReq - pop {r4, r5, pc} - .align 2, 0 -_080A9760: .4byte gPlayerEntity -_080A9764: .4byte 0xFF600000 -_080A9768: .4byte 0x000001B5 - - thumb_func_start sub_080A976C -sub_080A976C: @ 0x080A976C - push {r4, r5, lr} - adds r4, r0, #0 - ldrb r0, [r4, #0xa] - cmp r0, #1 - bne _080A9778 - b _080A9908 -_080A9778: - cmp r0, #1 - bgt _080A9782 - cmp r0, #0 - beq _080A9790 - b _080A99EE -_080A9782: - cmp r0, #2 - bne _080A9788 - b _080A99A0 -_080A9788: - cmp r0, #3 - bne _080A978E - b _080A99D2 -_080A978E: - b _080A99EE -_080A9790: - ldr r0, [r4, #0x50] - ldrb r0, [r0, #0xc] - cmp r0, #2 - bne _080A979C - bl DeleteThisEntity -_080A979C: - ldrb r0, [r4, #0xb] - cmp r0, #0 - bne _080A97E0 - adds r0, r4, #0 - adds r0, #0x41 - ldrb r1, [r0] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - beq _080A97E0 - movs r5, #0x7f - adds r0, r5, #0 - ands r0, r1 - cmp r0, #0 - bne _080A97C0 - adds r0, r4, #0 - bl sub_080A99F0 -_080A97C0: - adds r0, r4, #0 - adds r0, #0x3e - ldrb r0, [r0] - lsls r0, r0, #3 - strb r0, [r4, #0x15] - movs r1, #0 - movs r0, #0x80 - lsls r0, r0, #3 - strh r0, [r4, #0x24] - movs r0, #1 - strb r0, [r4, #0xb] - strb r1, [r4, #0xe] - ldrb r1, [r4, #0x10] - adds r0, r5, #0 - ands r0, r1 - strb r0, [r4, #0x10] -_080A97E0: - ldr r1, [r4, #0x50] - adds r0, r4, #0 - movs r2, #0x40 - bl sub_0806FC80 - cmp r0, #0 - beq _080A9848 - ldrb r0, [r4, #0xb] - cmp r0, #0 - bne _080A9804 - ldrb r0, [r4, #0x15] - movs r1, #0x80 - eors r0, r1 - strb r0, [r4, #0x15] - movs r0, #0x80 - lsls r0, r0, #3 - strh r0, [r4, #0x24] - b _080A9848 -_080A9804: - ldr r1, [r4, #0x50] - adds r1, #0x45 - ldrb r0, [r1] - subs r0, #1 - strb r0, [r1] - ldr r0, [r4, #0x50] - adds r0, #0x3d - movs r1, #0x1e - strb r1, [r0] - ldr r1, [r4, #0x50] - adds r0, r1, #0 - adds r0, #0x7c - ldrb r0, [r0] - cmp r0, #0 - beq _080A983C - adds r1, #0x42 - movs r0, #0x18 - strb r0, [r1] - ldr r0, [r4, #0x50] - adds r0, #0x46 - movs r1, #0x80 - lsls r1, r1, #2 - strh r1, [r0] - ldr r1, [r4, #0x50] - ldrb r0, [r4, #0x15] - lsrs r0, r0, #3 - adds r1, #0x3e - strb r0, [r1] -_080A983C: - ldr r0, _080A98B8 @ =0x00000127 - bl SoundReq - adds r0, r4, #0 - bl sub_080A99F0 -_080A9848: - adds r0, r4, #0 - bl UpdateAnimationSingleFrame - adds r5, r4, #0 - adds r5, #0x78 - ldrh r0, [r5] - subs r0, #1 - strh r0, [r5] - movs r0, #0x24 - ldrsh r1, [r4, r0] - ldrb r2, [r4, #0x15] - adds r0, r4, #0 - bl sub_0806F62C - ldrb r1, [r4, #0x15] - lsrs r1, r1, #3 - adds r0, r4, #0 - movs r2, #0 - bl sub_080AE58C - ldrh r1, [r4, #0x2a] - movs r0, #0xee - lsls r0, r0, #8 - ands r0, r1 - cmp r0, #0 - beq _080A9882 - ldrb r0, [r4, #0x15] - rsbs r0, r0, #0 - strb r0, [r4, #0x15] -_080A9882: - ldrh r1, [r4, #0x2a] - movs r0, #0xee - ands r0, r1 - cmp r0, #0 - beq _080A989A - ldrb r0, [r4, #0x15] - rsbs r0, r0, #0 - movs r2, #0x80 - rsbs r2, r2, #0 - adds r1, r2, #0 - eors r0, r1 - strb r0, [r4, #0x15] -_080A989A: - ldrb r0, [r4, #0x15] - ldrb r1, [r4, #0xf] - cmp r0, r1 - bne _080A98A4 - b _080A99EE -_080A98A4: - movs r0, #0xb2 - lsls r0, r0, #1 - bl SoundReq - ldrh r0, [r5] - cmp r0, #0 - bne _080A98BC - movs r0, #4 - b _080A98C0 - .align 2, 0 -_080A98B8: .4byte 0x00000127 -_080A98BC: - ldrb r0, [r4, #0xe] - adds r0, #1 -_080A98C0: - strb r0, [r4, #0xe] - ldrb r0, [r4, #0x15] - strb r0, [r4, #0xf] - ldrb r0, [r4, #0xe] - cmp r0, #1 - bhi _080A98CE - b _080A99EE -_080A98CE: - movs r5, #0 -_080A98D0: - adds r0, r4, #0 - movs r1, #0xf - movs r2, #1 - bl sub_0804A98C - adds r1, r0, #0 - str r1, [r4, #0x54] - cmp r1, #0 - beq _080A98FC - ldr r0, [r4, #0x50] - str r0, [r1, #0x50] - ldr r1, [r4, #0x54] - ldr r0, _080A9904 @ =gUnk_08129ADC - adds r0, r5, r0 - ldrb r0, [r0] - ldrb r2, [r4, #0x15] - adds r0, r0, r2 - strb r0, [r1, #0x15] - ldr r1, [r4, #0x54] - adds r0, r4, #0 - bl CopyPosition -_080A98FC: - adds r5, #1 - cmp r5, #2 - bls _080A98D0 - b _080A9998 - .align 2, 0 -_080A9904: .4byte gUnk_08129ADC -_080A9908: - ldr r0, [r4, #0x50] - ldrb r0, [r0, #0xc] - cmp r0, #2 - bne _080A9916 - adds r0, r4, #0 - bl sub_080A99F0 -_080A9916: - adds r0, r4, #0 - bl GetNextFrame - movs r1, #0xc0 - lsls r1, r1, #5 - adds r0, r4, #0 - bl sub_08003FC4 - cmp r0, #0 - beq _080A9950 - ldrb r1, [r4, #0x15] - lsrs r1, r1, #3 - adds r0, r4, #0 - movs r2, #0 - bl sub_080AE58C - ldrh r0, [r4, #0x2a] - cmp r0, #0 - bne _080A994A - movs r0, #0x24 - ldrsh r1, [r4, r0] - ldrb r2, [r4, #0x15] - adds r0, r4, #0 - bl sub_0806F62C - b _080A9950 -_080A994A: - adds r0, r4, #0 - bl sub_080A99F0 -_080A9950: - ldr r2, [r4, #0x78] - cmp r2, #0x1d - bhi _080A9978 - movs r0, #7 - ands r0, r2 - cmp r0, #0 - beq _080A996E - ldrb r0, [r4, #0x18] - movs r1, #4 - rsbs r1, r1, #0 - ands r1, r0 - movs r0, #1 - orrs r1, r0 - strb r1, [r4, #0x18] - b _080A9978 -_080A996E: - ldrb r1, [r4, #0x18] - movs r0, #4 - rsbs r0, r0, #0 - ands r0, r1 - strb r0, [r4, #0x18] -_080A9978: - subs r1, r2, #1 - str r1, [r4, #0x78] - movs r0, #1 - rsbs r0, r0, #0 - cmp r1, r0 - bne _080A998A - adds r0, r4, #0 - bl sub_080A99F0 -_080A998A: - adds r0, r4, #0 - adds r0, #0x41 - ldrb r1, [r0] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - beq _080A99EE -_080A9998: - adds r0, r4, #0 - bl sub_080A99F0 - b _080A99EE -_080A99A0: - adds r0, r4, #0 - bl GetNextFrame - ldrb r0, [r4, #0xe] - subs r0, #1 - strb r0, [r4, #0xe] - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #0xff - beq _080A99C2 - movs r2, #0x24 - ldrsh r1, [r4, r2] - ldrb r2, [r4, #0x15] - adds r0, r4, #0 - bl sub_0806F62C - b _080A99EE -_080A99C2: - ldr r1, [r4, #0x54] - cmp r1, #0 - beq _080A99CC - movs r0, #1 - strb r0, [r1, #0xe] -_080A99CC: - bl DeleteThisEntity - b _080A99EE -_080A99D2: - movs r1, #0xc0 - lsls r1, r1, #5 - adds r0, r4, #0 - bl sub_08003FC4 - cmp r0, #0 - bne _080A99EE - adds r0, r4, #0 - movs r1, #4 - movs r2, #0 - bl CreateFx - bl DeleteThisEntity -_080A99EE: - pop {r4, r5, pc} - - thumb_func_start sub_080A99F0 -sub_080A99F0: @ 0x080A99F0 - push {lr} - movs r1, #4 - movs r2, #0 - bl CreateFx - bl DeleteThisEntity - pop {pc} - - thumb_func_start sub_080A9A00 -sub_080A9A00: @ 0x080A9A00 - push {r4, r5, lr} - adds r5, r0, #0 - ldr r4, _080A9A18 @ =gUnk_08129AE0 - bl GetNextFunction - lsls r0, r0, #2 - adds r0, r0, r4 - ldr r1, [r0] - adds r0, r5, #0 - bl _call_via_r1 - pop {r4, r5, pc} - .align 2, 0 -_080A9A18: .4byte gUnk_08129AE0 - - thumb_func_start sub_080A9A1C -sub_080A9A1C: @ 0x080A9A1C - push {lr} - ldr r2, _080A9A30 @ =gUnk_08129AF8 - ldrb r1, [r0, #0xc] - lsls r1, r1, #2 - adds r1, r1, r2 - ldr r1, [r1] - bl _call_via_r1 - pop {pc} - .align 2, 0 -_080A9A30: .4byte gUnk_08129AF8 - - thumb_func_start sub_080A9A34 -sub_080A9A34: @ 0x080A9A34 - push {lr} - adds r2, r0, #0 - adds r0, #0x41 - ldrb r0, [r0] - cmp r0, #0x9d - bne _080A9A62 - movs r0, #3 - strb r0, [r2, #0xc] - ldrb r1, [r2, #0x10] - movs r0, #0x7f - ands r0, r1 - strb r0, [r2, #0x10] - movs r0, #0xa8 - lsls r0, r0, #0xa - str r0, [r2, #0x20] - adds r2, #0x29 - ldrb r1, [r2] - movs r0, #0x39 - rsbs r0, r0, #0 - ands r0, r1 - movs r1, #8 - orrs r0, r1 - strb r0, [r2] -_080A9A62: - pop {pc} - - thumb_func_start sub_080A9A64 -sub_080A9A64: @ 0x080A9A64 - push {r4, lr} - adds r4, r0, #0 - ldrb r0, [r4, #0xd] - cmp r0, #2 - bhi _080A9A7E - adds r0, r4, #0 - bl sub_0806F520 - cmp r0, #0 - bne _080A9A7E - adds r0, r4, #0 - bl sub_080A9BA8 -_080A9A7E: - ldr r0, _080A9A90 @ =gUnk_08129B08 - ldrb r1, [r4, #0xd] - lsls r1, r1, #2 - adds r1, r1, r0 - ldr r1, [r1] - adds r0, r4, #0 - bl _call_via_r1 - pop {r4, pc} - .align 2, 0 -_080A9A90: .4byte gUnk_08129B08 - - thumb_func_start sub_080A9A94 -sub_080A9A94: @ 0x080A9A94 - movs r1, #2 - strb r1, [r0, #0xd] - ldr r1, _080A9AA0 @ =0x0000FFFE - strh r1, [r0, #0x36] - bx lr - .align 2, 0 -_080A9AA0: .4byte 0x0000FFFE - - thumb_func_start sub_080A9AA4 -sub_080A9AA4: @ 0x080A9AA4 - push {lr} - bl sub_0806F4E8 - pop {pc} - - thumb_func_start sub_080A9AAC -sub_080A9AAC: @ 0x080A9AAC - push {lr} - bl sub_0806F3E4 - pop {pc} - - thumb_func_start sub_080A9AB4 -sub_080A9AB4: @ 0x080A9AB4 - ldrb r2, [r0, #0x10] - movs r1, #0x7f - ands r1, r2 - strb r1, [r0, #0x10] - bx lr - .align 2, 0 - - thumb_func_start nullsub_128 -nullsub_128: @ 0x080A9AC0 - bx lr - .align 2, 0 - - thumb_func_start sub_080A9AC4 -sub_080A9AC4: @ 0x080A9AC4 - push {lr} - bl sub_080A9BA8 - pop {pc} - - thumb_func_start sub_080A9ACC -sub_080A9ACC: @ 0x080A9ACC - push {lr} - adds r2, r0, #0 - ldrb r0, [r2, #0xb] - cmp r0, #1 - beq _080A9AE0 - cmp r0, #2 - beq _080A9AEE - movs r0, #1 - strb r0, [r2, #0xc] - b _080A9B0A -_080A9AE0: - movs r0, #2 - strb r0, [r2, #0xc] - ldrb r1, [r2, #0x10] - movs r0, #0x80 - orrs r0, r1 - strb r0, [r2, #0x10] - b _080A9B0A -_080A9AEE: - movs r0, #3 - strb r0, [r2, #0xc] - movs r0, #0xa8 - lsls r0, r0, #0xa - str r0, [r2, #0x20] - adds r3, r2, #0 - adds r3, #0x29 - ldrb r1, [r3] - movs r0, #0x39 - rsbs r0, r0, #0 - ands r0, r1 - movs r1, #8 - orrs r0, r1 - strb r0, [r3] -_080A9B0A: - movs r0, #2 - strb r0, [r2, #0x1c] - ldrb r0, [r2, #0xa] - cmp r0, #0 - bne _080A9B1E - adds r0, r2, #0 - movs r1, #5 - bl InitializeAnimation - b _080A9B22 -_080A9B1E: - movs r0, #0 - strb r0, [r2, #0x1e] -_080A9B22: - pop {pc} - - thumb_func_start sub_080A9B24 -sub_080A9B24: @ 0x080A9B24 - push {r4, lr} - adds r4, r0, #0 - ldr r0, [r4, #0x50] - ldr r0, [r0, #4] - cmp r0, #0 - bne _080A9B36 - adds r0, r4, #0 - bl sub_080A9BA8 -_080A9B36: - ldr r0, [r4, #0x50] - ldrb r0, [r0, #0xc] - cmp r0, #0xb - bne _080A9B46 - adds r0, r4, #0 - bl sub_080A9BD0 - b _080A9B50 -_080A9B46: - movs r0, #2 - strb r0, [r4, #0xc] - adds r0, r4, #0 - bl sub_080A9C34 -_080A9B50: - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_080A9B54 -sub_080A9B54: @ 0x080A9B54 - push {r4, lr} - adds r4, r0, #0 - ldr r0, [r4, #0x50] - ldr r0, [r0, #4] - cmp r0, #0 - bne _080A9B66 - adds r0, r4, #0 - bl sub_080A9BA8 -_080A9B66: - ldr r0, [r4, #0x50] - ldrb r0, [r0, #0xc] - cmp r0, #9 - bne _080A9B76 - adds r0, r4, #0 - bl sub_080A9C34 - b _080A9B7C -_080A9B76: - adds r0, r4, #0 - bl sub_080A9C50 -_080A9B7C: - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_080A9B80 -sub_080A9B80: @ 0x080A9B80 - push {r4, lr} - adds r4, r0, #0 - ldr r0, [r4, #0x20] - cmp r0, #0 - bge _080A9B92 - ldrb r0, [r4, #0x18] - movs r1, #0x80 - orrs r0, r1 - strb r0, [r4, #0x18] -_080A9B92: - movs r1, #0x80 - lsls r1, r1, #6 - adds r0, r4, #0 - bl sub_08003FC4 - cmp r0, #0 - bne _080A9BA6 - adds r0, r4, #0 - bl sub_080A9BA8 -_080A9BA6: - pop {r4, pc} - - thumb_func_start sub_080A9BA8 -sub_080A9BA8: @ 0x080A9BA8 - push {lr} - adds r1, r0, #0 - ldrb r0, [r1, #0xa] - cmp r0, #0 - bne _080A9BBE - adds r0, r1, #0 - movs r1, #5 - movs r2, #0 - bl CreateFx - b _080A9BC8 -_080A9BBE: - adds r0, r1, #0 - movs r1, #0x3c - movs r2, #0 - bl CreateFx -_080A9BC8: - bl DeleteThisEntity - pop {pc} - .align 2, 0 - - thumb_func_start sub_080A9BD0 -sub_080A9BD0: @ 0x080A9BD0 - push {r4, r5, lr} - adds r5, r0, #0 - ldr r1, [r5, #0x50] - ldrb r0, [r1, #0x14] - cmp r0, #1 - beq _080A9BF8 - cmp r0, #1 - bgt _080A9BE6 - cmp r0, #0 - beq _080A9BF0 - b _080A9C06 -_080A9BE6: - cmp r0, #2 - beq _080A9C00 - cmp r0, #3 - beq _080A9BF8 - b _080A9C06 -_080A9BF0: - ldrb r0, [r1, #0x1e] - adds r2, r0, #0 - subs r2, #0x39 - b _080A9C06 -_080A9BF8: - ldrb r0, [r1, #0x1e] - adds r2, r0, #0 - subs r2, #0x3d - b _080A9C06 -_080A9C00: - ldrb r0, [r1, #0x1e] - adds r2, r0, #0 - subs r2, #0x41 -_080A9C06: - ldrb r0, [r1, #0x14] - lsls r0, r0, #2 - adds r0, r2, r0 - lsls r4, r0, #1 - adds r4, r4, r0 - ldr r0, _080A9C30 @ =gUnk_08129B20 - adds r4, r4, r0 - movs r2, #0 - ldrsb r2, [r4, r2] - movs r3, #1 - ldrsb r3, [r4, r3] - adds r0, r1, #0 - adds r1, r5, #0 - bl sub_0806FA90 - movs r0, #2 - ldrsb r0, [r4, r0] - ldrh r1, [r5, #0x36] - adds r0, r0, r1 - strh r0, [r5, #0x36] - pop {r4, r5, pc} - .align 2, 0 -_080A9C30: .4byte gUnk_08129B20 - - thumb_func_start sub_080A9C34 -sub_080A9C34: @ 0x080A9C34 - push {r4, lr} - adds r4, r0, #0 - ldr r0, [r4, #0x50] - adds r1, r4, #0 - movs r2, #0 - movs r3, #1 - bl sub_0806FA90 - adds r4, #0x63 - ldrb r0, [r4] - subs r0, #0xe - strb r0, [r4] - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_080A9C50 -sub_080A9C50: @ 0x080A9C50 - push {r4, r5, lr} - adds r5, r0, #0 - ldr r1, [r5, #0x50] - ldrb r0, [r1, #0x14] - cmp r0, #1 - beq _080A9C78 - cmp r0, #1 - bgt _080A9C66 - cmp r0, #0 - beq _080A9C70 - b _080A9C86 -_080A9C66: - cmp r0, #2 - beq _080A9C80 - cmp r0, #3 - beq _080A9C78 - b _080A9C86 -_080A9C70: - ldrb r0, [r1, #0x1e] - adds r4, r0, #0 - subs r4, #0x27 - b _080A9C86 -_080A9C78: - ldrb r0, [r1, #0x1e] - adds r4, r0, #0 - subs r4, #0x2d - b _080A9C86 -_080A9C80: - ldrb r0, [r1, #0x1e] - adds r4, r0, #0 - subs r4, #0x33 -_080A9C86: - adds r0, r1, #0 - adds r1, r5, #0 - movs r2, #0 - movs r3, #1 - bl sub_0806FA90 - adds r0, r5, #0 - adds r0, #0x63 - ldr r1, _080A9CA4 @ =gUnk_08129B50 - adds r1, r4, r1 - ldrb r1, [r1] - ldrb r2, [r0] - adds r1, r1, r2 - strb r1, [r0] - pop {r4, r5, pc} - .align 2, 0 -_080A9CA4: .4byte gUnk_08129B50 - - thumb_func_start sub_080A9CA8 -sub_080A9CA8: @ 0x080A9CA8 - push {r4, r5, lr} - adds r5, r0, #0 - ldr r0, [r5, #0x50] - ldr r0, [r0, #4] - cmp r0, #0 - bne _080A9CB8 - bl DeleteThisEntity -_080A9CB8: - ldr r4, _080A9CD0 @ =gUnk_08129B58 - adds r0, r5, #0 - bl GetNextFunction - lsls r0, r0, #2 - adds r0, r0, r4 - ldr r1, [r0] - adds r0, r5, #0 - bl _call_via_r1 - pop {r4, r5, pc} - .align 2, 0 -_080A9CD0: .4byte gUnk_08129B58 - - thumb_func_start sub_080A9CD4 -sub_080A9CD4: @ 0x080A9CD4 - push {lr} - ldr r2, _080A9CE8 @ =gUnk_08129B70 - ldrb r1, [r0, #0xc] - lsls r1, r1, #2 - adds r1, r1, r2 - ldr r1, [r1] - bl _call_via_r1 - pop {pc} - .align 2, 0 -_080A9CE8: .4byte gUnk_08129B70 - - thumb_func_start nullsub_539 -nullsub_539: @ 0x080A9CEC - bx lr - .align 2, 0 - - thumb_func_start sub_080A9CF0 -sub_080A9CF0: @ 0x080A9CF0 - push {r4, lr} - adds r4, r0, #0 - bl sub_0806F520 - cmp r0, #0 - bne _080A9D0A - adds r0, r4, #0 - movs r1, #2 - movs r2, #0 - bl CreateFx - bl DeleteThisEntity -_080A9D0A: - ldr r0, _080A9D1C @ =gUnk_08129B78 - ldrb r1, [r4, #0xd] - lsls r1, r1, #2 - adds r1, r1, r0 - ldr r1, [r1] - adds r0, r4, #0 - bl _call_via_r1 - pop {r4, pc} - .align 2, 0 -_080A9D1C: .4byte gUnk_08129B78 - - thumb_func_start sub_080A9D20 -sub_080A9D20: @ 0x080A9D20 - movs r1, #2 - strb r1, [r0, #0xd] - bx lr - .align 2, 0 - - thumb_func_start nullsub_540 -nullsub_540: @ 0x080A9D28 - bx lr - .align 2, 0 - - thumb_func_start sub_080A9D2C -sub_080A9D2C: @ 0x080A9D2C - push {r4, lr} - adds r4, r0, #0 - bl sub_0806F3E4 - cmp r0, #0 - beq _080A9D64 - adds r0, r4, #0 - adds r0, #0x3f - ldrb r0, [r0] - cmp r0, #0xa6 - bne _080A9D56 - movs r0, #2 - rsbs r0, r0, #0 - bl ModHealth - ldr r0, _080A9D68 @ =gPlayerEntity - movs r1, #0x7a - bl sub_0800449C - bl sub_08079D84 -_080A9D56: - adds r0, r4, #0 - movs r1, #2 - movs r2, #0 - bl CreateFx - bl DeleteThisEntity -_080A9D64: - pop {r4, pc} - .align 2, 0 -_080A9D68: .4byte gPlayerEntity - - thumb_func_start sub_080A9D6C -sub_080A9D6C: @ 0x080A9D6C - push {lr} - movs r1, #1 - strb r1, [r0, #0xc] - ldr r1, [r0, #0x50] - ldrb r1, [r1, #0x14] - strb r1, [r0, #0x14] - ldrb r1, [r0, #0x14] - bl InitAnimationForceUpdate - pop {pc} - - thumb_func_start sub_080A9D80 -sub_080A9D80: @ 0x080A9D80 - push {r4, lr} - adds r4, r0, #0 - ldr r0, [r4, #0x50] - ldr r3, _080A9D9C @ =0xFFFF0000 - adds r1, r4, #0 - movs r2, #0 - bl PositionRelative - ldr r0, _080A9DA0 @ =0x0000FFFE - strh r0, [r4, #0x36] - adds r0, r4, #0 - bl UpdateAnimationSingleFrame - pop {r4, pc} - .align 2, 0 -_080A9D9C: .4byte 0xFFFF0000 -_080A9DA0: .4byte 0x0000FFFE - - thumb_func_start sub_080A9DA4 -sub_080A9DA4: @ 0x080A9DA4 - push {r4, r5, lr} - adds r5, r0, #0 - ldr r4, _080A9DBC @ =gUnk_08129BEC - bl GetNextFunction - lsls r0, r0, #2 - adds r0, r0, r4 - ldr r1, [r0] - adds r0, r5, #0 - bl _call_via_r1 - pop {r4, r5, pc} - .align 2, 0 -_080A9DBC: .4byte gUnk_08129BEC - - thumb_func_start sub_080A9DC0 -sub_080A9DC0: @ 0x080A9DC0 - push {lr} - ldr r2, _080A9DD4 @ =gUnk_08129C00 - ldrb r1, [r0, #0xc] - lsls r1, r1, #2 - adds r1, r1, r2 - ldr r1, [r1] - bl _call_via_r1 - pop {pc} - .align 2, 0 -_080A9DD4: .4byte gUnk_08129C00 - - thumb_func_start sub_080A9DD8 -sub_080A9DD8: @ 0x080A9DD8 - push {r4, lr} - adds r4, r0, #0 - adds r0, #0x45 - ldrb r0, [r0] - cmp r0, #0 - beq _080A9DEE - adds r0, r4, #0 - adds r0, #0x41 - ldrb r0, [r0] - cmp r0, #0x80 - bne _080A9DF2 -_080A9DEE: - bl DeleteThisEntity -_080A9DF2: - adds r0, r4, #0 - bl sub_080A9DC0 - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_080A9DFC -sub_080A9DFC: @ 0x080A9DFC - push {lr} - movs r2, #1 - strb r2, [r0, #0xc] - movs r1, #0xb4 - strb r1, [r0, #0xe] - adds r1, r0, #0 - adds r1, #0x45 - strb r2, [r1] - movs r1, #0 - bl InitializeAnimation - pop {pc} - - thumb_func_start sub_080A9E14 -sub_080A9E14: @ 0x080A9E14 - push {r4, lr} - adds r4, r0, #0 - bl GetNextFrame - adds r0, r4, #0 - bl sub_080AF090 - ldrh r0, [r4, #0x2a] - cmp r0, #0 - bne _080A9E34 - ldrb r0, [r4, #0xe] - subs r0, #1 - strb r0, [r4, #0xe] - lsls r0, r0, #0x18 - cmp r0, #0 - bne _080A9E42 -_080A9E34: - adds r0, r4, #0 - movs r1, #0x4f - movs r2, #0 - bl CreateFx - bl DeleteThisEntity -_080A9E42: - adds r0, r4, #0 - bl sub_080A7EB0 - cmp r0, #0 - beq _080A9E50 - bl DeleteThisEntity -_080A9E50: - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_080A9E54 -sub_080A9E54: @ 0x080A9E54 - push {r4, r5, lr} - adds r5, r0, #0 - ldr r0, [r5, #0x54] - cmp r0, #0 - bne _080A9E60 - ldr r0, [r5, #0x50] -_080A9E60: - adds r0, #0x43 - ldrb r0, [r0] - cmp r0, #0 - bne _080A9E78 - ldrb r1, [r5, #0x10] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - bne _080A9E78 - movs r0, #0x80 - orrs r0, r1 - strb r0, [r5, #0x10] -_080A9E78: - ldr r4, _080A9E90 @ =gUnk_08129C7C - adds r0, r5, #0 - bl GetNextFunction - lsls r0, r0, #2 - adds r0, r0, r4 - ldr r1, [r0] - adds r0, r5, #0 - bl _call_via_r1 - pop {r4, r5, pc} - .align 2, 0 -_080A9E90: .4byte gUnk_08129C7C - - thumb_func_start sub_080A9E94 -sub_080A9E94: @ 0x080A9E94 - push {r4, lr} - adds r4, r0, #0 - ldrb r0, [r4, #0xc] - cmp r0, #2 - bhi _080A9EA4 - adds r0, r4, #0 - bl sub_080AA1D8 -_080A9EA4: - ldr r0, _080A9EB8 @ =gUnk_08129C90 - ldrb r1, [r4, #0xc] - lsls r1, r1, #2 - adds r1, r1, r0 - ldr r1, [r1] - adds r0, r4, #0 - bl _call_via_r1 - pop {r4, pc} - .align 2, 0 -_080A9EB8: .4byte gUnk_08129C90 - - thumb_func_start sub_080A9EBC -sub_080A9EBC: @ 0x080A9EBC - push {r4, r5, lr} - adds r4, r0, #0 - adds r0, #0x41 - ldrb r1, [r0] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - beq _080A9F4E - ldrb r0, [r4, #0xc] - cmp r0, #3 - beq _080A9EF2 - cmp r0, #4 - bne _080A9F18 - movs r0, #0 - strb r0, [r4, #0xf] - subs r0, #2 - bl ModHealth - adds r0, r4, #0 - bl sub_080AF090 - adds r0, r4, #0 - bl UpdateAnimationSingleFrame - adds r5, r4, #0 - adds r5, #0x42 - b _080A9F4A -_080A9EF2: - adds r0, r4, #0 - adds r0, #0x43 - ldrb r0, [r0] - adds r5, r4, #0 - adds r5, #0x42 - cmp r0, #0 - beq _080A9F4A - adds r1, r4, #0 - adds r1, #0x82 - movs r0, #2 - strb r0, [r1] - movs r0, #0xff - strb r0, [r4, #0x14] - adds r0, r4, #0 - bl sub_080AA270 - movs r0, #0x20 - strb r0, [r4, #0xf] - b _080A9F4A -_080A9F18: - ldr r3, [r4, #0x50] - adds r0, r4, #0 - adds r0, #0x3d - ldrb r0, [r0] - adds r1, r3, #0 - adds r1, #0x3d - strb r0, [r1] - adds r0, r4, #0 - adds r0, #0x3e - ldrb r0, [r0] - adds r1, #1 - strb r0, [r1] - adds r2, r4, #0 - adds r2, #0x42 - ldrb r1, [r2] - adds r0, r3, #0 - adds r0, #0x42 - strb r1, [r0] - ldrb r0, [r4, #0xc] - adds r5, r2, #0 - cmp r0, #1 - bne _080A9F4A - adds r0, r4, #0 - bl sub_080AA320 -_080A9F4A: - movs r0, #0 - strb r0, [r5] -_080A9F4E: - pop {r4, r5, pc} - - thumb_func_start sub_080A9F50 -sub_080A9F50: @ 0x080A9F50 - push {r4, lr} - adds r4, r0, #0 - movs r1, #0 - movs r0, #1 - strb r0, [r4, #0xc] - adds r0, r4, #0 - adds r0, #0x80 - movs r2, #0 - strh r1, [r0] - movs r0, #0xff - strb r0, [r4, #0x14] - adds r0, r4, #0 - adds r0, #0x82 - strb r2, [r0] - adds r2, r4, #0 - adds r2, #0x29 - ldrb r1, [r2] - movs r0, #8 - rsbs r0, r0, #0 - ands r0, r1 - movs r1, #4 - orrs r0, r1 - strb r0, [r2] - ldr r1, [r4, #0x50] - adds r0, r4, #0 - bl sub_0806FAD8 - adds r0, r4, #0 - bl sub_080AA270 - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_080A9F90 -sub_080A9F90: @ 0x080A9F90 - push {r4, lr} - adds r4, r0, #0 - adds r1, r4, #0 - adds r1, #0x80 - ldrh r0, [r1] - cmp r0, #0 - beq _080A9FA4 - subs r0, #1 - strh r0, [r1] - b _080A9FC8 -_080A9FA4: - ldrb r0, [r4, #0xf] - subs r0, #1 - strb r0, [r4, #0xf] - lsls r0, r0, #0x18 - cmp r0, #0 - bne _080A9FB8 - adds r0, r4, #0 - bl sub_080AA270 - b _080A9FC8 -_080A9FB8: - adds r0, r4, #0 - bl sub_080AA2E0 - cmp r0, #0 - beq _080A9FC8 - adds r0, r4, #0 - bl sub_080AA320 -_080A9FC8: - adds r0, r4, #0 - bl UpdateAnimationSingleFrame - pop {r4, pc} - - thumb_func_start sub_080A9FD0 -sub_080A9FD0: @ 0x080A9FD0 - push {r4, r5, lr} - adds r5, r0, #0 - bl UpdateAnimationSingleFrame - adds r2, r5, #0 - adds r2, #0x5a - ldrb r1, [r2] - movs r0, #0x40 - ands r0, r1 - cmp r0, #0 - beq _080A9FF2 - movs r0, #0xbf - ands r0, r1 - strb r0, [r2] - ldr r0, _080AA038 @ =0x0000015D - bl EnqueueSFX -_080A9FF2: - movs r0, #0x2e - ldrsh r1, [r5, r0] - ldr r2, _080AA03C @ =gRoomControls - ldrh r0, [r2, #6] - subs r1, r1, r0 - asrs r1, r1, #4 - movs r3, #0x3f - ands r1, r3 - movs r4, #0x32 - ldrsh r0, [r5, r4] - ldrh r2, [r2, #8] - subs r0, r0, r2 - asrs r0, r0, #4 - ands r0, r3 - lsls r0, r0, #6 - orrs r1, r0 - adds r4, r5, #0 - adds r4, #0x78 - strh r1, [r4] - ldrh r0, [r4] - adds r5, #0x38 - ldrb r1, [r5] - bl GetTileType - movs r1, #0x80 - lsls r1, r1, #7 - cmp r0, r1 - bne _080AA034 - ldr r0, _080AA040 @ =0x00004005 - ldrh r1, [r4] - ldrb r2, [r5] - bl SetTile -_080AA034: - pop {r4, r5, pc} - .align 2, 0 -_080AA038: .4byte 0x0000015D -_080AA03C: .4byte gRoomControls -_080AA040: .4byte 0x00004005 - - thumb_func_start sub_080AA044 -sub_080AA044: @ 0x080AA044 - push {r4, r5, lr} - adds r4, r0, #0 - ldr r5, [r4, #0x54] - cmp r5, #0 - bne _080AA052 - bl DeleteThisEntity -_080AA052: - ldr r0, [r5, #4] - cmp r0, #0 - bne _080AA05E - bl DeleteThisEntity - b _080AA0A2 -_080AA05E: - ldrh r0, [r5, #0x12] - ldrb r1, [r5, #0x1e] - bl GetSpriteSubEntryOffsetDataPointer - adds r3, r0, #0 - ldrb r1, [r5, #0x14] - movs r0, #4 - ands r0, r1 - cmp r0, #0 - beq _080AA08C - movs r2, #0 - ldrsb r2, [r3, r2] - rsbs r2, r2, #0 - lsls r2, r2, #0x10 - ldrb r3, [r3, #1] - lsls r3, r3, #0x18 - asrs r3, r3, #0x18 - lsls r3, r3, #0x10 - adds r0, r5, #0 - adds r1, r4, #0 - bl PositionRelative - b _080AA0A2 -_080AA08C: - movs r2, #0 - ldrsb r2, [r3, r2] - lsls r2, r2, #0x10 - ldrb r3, [r3, #1] - lsls r3, r3, #0x18 - asrs r3, r3, #0x18 - lsls r3, r3, #0x10 - adds r0, r5, #0 - adds r1, r4, #0 - bl PositionRelative -_080AA0A2: - adds r0, r5, #0 - adds r0, #0x43 - ldrb r0, [r0] - cmp r0, #0 - bne _080AA108 - ldrb r0, [r4, #0xf] - cmp r0, #0 - beq _080AA0B8 - subs r0, #1 - strb r0, [r4, #0xf] - b _080AA108 -_080AA0B8: - adds r0, r4, #0 - bl UpdateAnimationSingleFrame - adds r0, r4, #0 - adds r0, #0x5a - ldrb r1, [r0] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - beq _080AA108 - movs r0, #4 - strb r0, [r4, #0xc] - adds r1, r4, #0 - adds r1, #0x82 - movs r0, #3 - strb r0, [r1] - movs r0, #0x40 - strb r0, [r4, #0xf] - ldrb r0, [r5, #0x14] - lsls r1, r0, #2 - strb r1, [r4, #0x15] - lsls r0, r0, #0x1a - lsrs r0, r0, #0x1a - strb r0, [r4, #0x14] - ldr r0, _080AA10C @ =gUnk_080FD150 - str r0, [r4, #0x48] - bl CheckIsDungeon - cmp r0, #0 - beq _080AA100 - ldrb r0, [r4, #0x1b] - movs r1, #0x3f - ands r1, r0 - movs r0, #0x40 - orrs r1, r0 - strb r1, [r4, #0x1b] -_080AA100: - adds r0, r4, #0 - movs r1, #0 - bl sub_080AA3E0 -_080AA108: - pop {r4, r5, pc} - .align 2, 0 -_080AA10C: .4byte gUnk_080FD150 - - thumb_func_start sub_080AA110 -sub_080AA110: @ 0x080AA110 - push {r4, r5, r6, r7, lr} - mov r7, sb - mov r6, r8 - push {r6, r7} - adds r6, r0, #0 - ldr r7, [r6, #0x54] - cmp r7, #0 - beq _080AA1B6 - ldr r0, [r7, #4] - cmp r0, #0 - bne _080AA128 - str r0, [r6, #0x54] -_080AA128: - ldrb r0, [r6, #0xf] - adds r5, r0, #0 - cmp r5, #0 - beq _080AA136 - subs r0, #1 - strb r0, [r6, #0xf] - b _080AA1C4 -_080AA136: - adds r0, r6, #0 - bl sub_080AA374 - cmp r0, #0 - beq _080AA1C4 - adds r0, r7, #0 - adds r0, #0x45 - ldrb r0, [r0] - cmp r0, #0 - bne _080AA14E - bl DeleteThisEntity -_080AA14E: - movs r0, #0xf2 - bl EnqueueSFX - movs r4, #1 - strb r4, [r6, #0xc] - movs r0, #0xff - strb r0, [r6, #0x14] - adds r0, r6, #0 - adds r0, #0x82 - strb r5, [r0] - strb r5, [r6, #0xe] - subs r0, #2 - movs r1, #0 - mov sb, r1 - movs r1, #0x20 - mov r8, r1 - mov r1, r8 - strh r1, [r0] - ldrb r1, [r6, #0x1b] - movs r0, #0x3f - ands r0, r1 - movs r1, #0x80 - orrs r0, r1 - strb r0, [r6, #0x1b] - ldr r0, [r6, #0x54] - str r0, [r6, #0x50] - str r5, [r6, #0x54] - adds r0, r6, #0 - bl sub_080AA270 - ldr r7, [r6, #0x50] - strb r4, [r7, #0xc] - ldrb r0, [r7, #0x14] - lsls r0, r0, #2 - strb r0, [r7, #0x15] - strh r5, [r7, #0x24] - adds r0, r7, #0 - adds r0, #0x82 - strb r4, [r0] - mov r0, sb - strb r0, [r7, #0xe] - movs r0, #0x78 - strb r0, [r7, #0xf] - adds r0, r7, #0 - adds r0, #0x80 - mov r1, r8 - strh r1, [r0] - adds r0, r7, #0 - movs r1, #1 - bl sub_080AA3E0 - b _080AA1C4 -_080AA1B6: - adds r0, r6, #0 - bl sub_080040A8 - cmp r0, #0 - bne _080AA1C4 - bl DeleteThisEntity -_080AA1C4: - adds r0, r6, #0 - bl sub_0806F69C - adds r0, r6, #0 - bl UpdateAnimationSingleFrame - pop {r3, r4} - mov r8, r3 - mov sb, r4 - pop {r4, r5, r6, r7, pc} - - thumb_func_start sub_080AA1D8 -sub_080AA1D8: @ 0x080AA1D8 - push {r4, r5, lr} - adds r5, r0, #0 - ldr r4, [r5, #0x50] - cmp r4, #0 - beq _080AA268 - ldr r0, [r4, #4] - cmp r0, #0 - bne _080AA1EC - bl DeleteThisEntity -_080AA1EC: - ldrb r1, [r4, #0x1e] - movs r0, #0x20 - ands r0, r1 - cmp r0, #0 - bne _080AA26C - ldrh r0, [r4, #0x12] - ldrb r1, [r4, #0x1e] - bl GetSpriteSubEntryOffsetDataPointer - adds r3, r0, #0 - ldrb r1, [r4, #0x14] - movs r0, #4 - ands r0, r1 - cmp r0, #0 - beq _080AA224 - movs r2, #0 - ldrsb r2, [r3, r2] - rsbs r2, r2, #0 - lsls r2, r2, #0x10 - ldrb r3, [r3, #1] - lsls r3, r3, #0x18 - asrs r3, r3, #0x18 - lsls r3, r3, #0x10 - adds r0, r4, #0 - adds r1, r5, #0 - bl PositionRelative - b _080AA23A -_080AA224: - movs r2, #0 - ldrsb r2, [r3, r2] - lsls r2, r2, #0x10 - ldrb r3, [r3, #1] - lsls r3, r3, #0x18 - asrs r3, r3, #0x18 - lsls r3, r3, #0x10 - adds r0, r4, #0 - adds r1, r5, #0 - bl PositionRelative -_080AA23A: - adds r0, r4, #0 - adds r0, #0x43 - ldrb r0, [r0] - cmp r0, #0 - beq _080AA256 - ldrb r1, [r5, #0x10] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - beq _080AA26C - movs r0, #0x7f - ands r0, r1 - strb r0, [r5, #0x10] - b _080AA26C -_080AA256: - ldrb r1, [r5, #0x10] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - bne _080AA26C - movs r0, #0x80 - orrs r0, r1 - strb r0, [r5, #0x10] - b _080AA26C -_080AA268: - bl DeleteThisEntity -_080AA26C: - pop {r4, r5, pc} - .align 2, 0 - - thumb_func_start sub_080AA270 -sub_080AA270: @ 0x080AA270 - push {r4, r5, r6, lr} - adds r5, r0, #0 - ldr r4, [r5, #0x50] - bl Random - ldr r1, _080AA2A4 @ =gUnk_08129CA4 - movs r6, #7 - ands r0, r6 - adds r0, r0, r1 - ldrb r0, [r0] - strb r0, [r5, #0xf] - ldrb r4, [r4, #0x14] - ldrb r0, [r5, #0x14] - cmp r0, #0xff - bne _080AA2AC - strb r4, [r5, #0x14] - ldr r0, _080AA2A8 @ =gUnk_08129CF4 - lsls r1, r4, #2 - adds r1, r1, r0 - ldr r0, [r1] - str r0, [r5, #0x48] - adds r0, r5, #0 - movs r1, #0 - bl sub_080AA3E0 - b _080AA2D6 - .align 2, 0 -_080AA2A4: .4byte gUnk_08129CA4 -_080AA2A8: .4byte gUnk_08129CF4 -_080AA2AC: - bl Random - ldr r1, _080AA2D8 @ =gUnk_08129CAC - ands r0, r6 - adds r0, r0, r1 - ldrb r0, [r0] - adds r4, r0, r4 - ands r4, r6 - ldrb r0, [r5, #0x14] - cmp r4, r0 - beq _080AA2D6 - strb r4, [r5, #0x14] - ldr r0, _080AA2DC @ =gUnk_08129CF4 - lsls r1, r4, #2 - adds r1, r1, r0 - ldr r0, [r1] - str r0, [r5, #0x48] - adds r0, r5, #0 - movs r1, #0 - bl sub_080AA3E0 -_080AA2D6: - pop {r4, r5, r6, pc} - .align 2, 0 -_080AA2D8: .4byte gUnk_08129CAC -_080AA2DC: .4byte gUnk_08129CF4 - - thumb_func_start sub_080AA2E0 -sub_080AA2E0: @ 0x080AA2E0 - push {r4, r5, lr} - adds r5, r0, #0 - movs r0, #0 - bl sub_08049DF4 - adds r4, r0, #0 - cmp r4, #0 - beq _080AA31C - adds r0, r5, #0 - adds r1, r4, #0 - bl GetFacingDirection - ldrb r1, [r5, #0x14] - lsls r1, r1, #2 - adds r0, #4 - movs r2, #0x1c - ands r0, r2 - adds r1, #4 - ands r1, r2 - cmp r0, r1 - bne _080AA31C - adds r0, r5, #0 - adds r1, r4, #0 - movs r2, #0x40 - bl sub_08049F1C - cmp r0, #0 - beq _080AA31C - movs r0, #1 - b _080AA31E -_080AA31C: - movs r0, #0 -_080AA31E: - pop {r4, r5, pc} - - thumb_func_start sub_080AA320 -sub_080AA320: @ 0x080AA320 - push {r4, r5, lr} - adds r5, r0, #0 - ldr r4, [r5, #0x50] - movs r2, #0 - movs r1, #2 - strb r1, [r5, #0xc] - adds r3, r5, #0 - adds r3, #0x82 - movs r0, #1 - strb r0, [r3] - strb r2, [r5, #0xf] - strb r1, [r4, #0xc] - movs r0, #0x30 - strb r0, [r4, #0xf] - adds r1, r4, #0 - adds r1, #0x80 - movs r0, #0x50 - strh r0, [r1] - strh r2, [r4, #0x24] - adds r0, r4, #0 - movs r1, #0 - bl sub_08049F84 - strb r0, [r4, #0x15] - ldrb r0, [r4, #0x15] - adds r0, #4 - movs r1, #0x1c - ands r0, r1 - lsrs r1, r0, #2 - strb r1, [r5, #0x14] - movs r1, #0x18 - ands r0, r1 - lsrs r0, r0, #2 - strb r0, [r4, #0x14] - adds r0, r4, #0 - movs r1, #1 - bl sub_080AA3E0 - adds r0, r5, #0 - bl sub_080AA1D8 - pop {r4, r5, pc} - - thumb_func_start sub_080AA374 -sub_080AA374: @ 0x080AA374 - push {r4, r5, r6, r7, lr} - mov r7, r8 - push {r7} - adds r6, r0, #0 - movs r0, #0 - mov r8, r0 - ldr r5, [r6, #0x54] - cmp r5, #0 - beq _080AA3D8 - ldr r0, [r5, #4] - cmp r0, #0 - beq _080AA3D8 - ldrb r4, [r5, #0x14] - ldr r0, _080AA3CC @ =gUnk_08129D14 - adds r4, r4, r0 - movs r2, #0 - ldrsb r2, [r4, r2] - movs r3, #1 - ldrsb r3, [r4, r3] - adds r0, r6, #0 - adds r1, r5, #0 - bl sub_0806F824 - adds r7, r0, #0 - movs r0, #0x2e - ldrsh r1, [r5, r0] - movs r0, #0 - ldrsb r0, [r4, r0] - adds r1, r1, r0 - movs r0, #0x32 - ldrsh r2, [r5, r0] - movs r0, #1 - ldrsb r0, [r4, r0] - adds r2, r2, r0 - adds r0, r6, #0 - movs r3, #8 - bl sub_0806FCB8 - cmp r0, #0 - beq _080AA3D0 - movs r0, #1 - mov r8, r0 - b _080AA3D8 - .align 2, 0 -_080AA3CC: .4byte gUnk_08129D14 -_080AA3D0: - adds r0, r6, #0 - adds r1, r7, #0 - bl sub_08004596 -_080AA3D8: - mov r0, r8 - pop {r3} - mov r8, r3 - pop {r4, r5, r6, r7, pc} - - thumb_func_start sub_080AA3E0 -sub_080AA3E0: @ 0x080AA3E0 - push {lr} - adds r3, r0, #0 - ldrb r2, [r3, #0x14] - adds r0, #0x82 - ldrb r0, [r0] - lsls r0, r0, #3 - orrs r2, r0 - cmp r1, #0 - beq _080AA3F4 - lsrs r2, r2, #1 -_080AA3F4: - adds r0, r3, #0 - adds r1, r2, #0 - bl InitAnimationForceUpdate - pop {pc} - .align 2, 0 - - thumb_func_start sub_080AA400 -sub_080AA400: @ 0x080AA400 - push {r4, r5, lr} - adds r5, r0, #0 - ldr r4, _080AA418 @ =gUnk_08129FB8 - bl GetNextFunction - lsls r0, r0, #2 - adds r0, r0, r4 - ldr r1, [r0] - adds r0, r5, #0 - bl _call_via_r1 - pop {r4, r5, pc} - .align 2, 0 -_080AA418: .4byte gUnk_08129FB8 - - thumb_func_start sub_080AA41C -sub_080AA41C: @ 0x080AA41C - push {lr} - adds r2, r0, #0 - ldrb r0, [r2, #0xc] - cmp r0, #0 - bne _080AA44C - movs r0, #1 - strb r0, [r2, #0xc] - ldrb r1, [r2, #0xa] - strb r1, [r2, #0x1e] - strb r0, [r2, #0x1c] - adds r0, r2, #0 - adds r0, #0x86 - ldrh r0, [r0] - strh r0, [r2, #0x24] - lsls r1, r1, #0x18 - cmp r1, #0 - bne _080AA446 - adds r0, r2, #0 - bl sub_080AA494 - b _080AA44C -_080AA446: - adds r0, r2, #0 - bl sub_080AA534 -_080AA44C: - pop {pc} - .align 2, 0 - - thumb_func_start sub_080AA450 -sub_080AA450: @ 0x080AA450 - push {lr} - adds r1, r0, #0 - adds r0, #0x41 - ldrb r0, [r0] - cmp r0, #0x96 - bne _080AA462 - adds r0, r1, #0 - bl sub_080AA464 -_080AA462: - pop {pc} - - thumb_func_start sub_080AA464 -sub_080AA464: @ 0x080AA464 - push {r4, lr} - adds r4, r0, #0 - ldrb r0, [r4, #0xa] - cmp r0, #0 - bne _080AA474 - adds r0, r4, #0 - bl sub_080AA544 -_080AA474: - movs r0, #0x21 - movs r1, #3 - movs r2, #0 - bl CreateObject - adds r1, r0, #0 - cmp r1, #0 - beq _080AA48A - adds r0, r4, #0 - bl CopyPosition -_080AA48A: - adds r0, r4, #0 - bl DeleteEntity - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_080AA494 -sub_080AA494: @ 0x080AA494 - push {r4, r5, r6, lr} - adds r5, r0, #0 - movs r4, #0 - bl GetTileTypeByEntity - adds r2, r0, #0 - ldr r1, _080AA4A4 @ =gUnk_08129FD0 - b _080AA4AA - .align 2, 0 -_080AA4A4: .4byte gUnk_08129FD0 -_080AA4A8: - adds r4, #1 -_080AA4AA: - ldrh r0, [r1] - cmp r0, #0 - beq _080AA4B6 - adds r1, #2 - cmp r0, r2 - bne _080AA4A8 -_080AA4B6: - ldrh r0, [r5, #0x24] - bl CheckFlags - cmp r0, #0 - beq _080AA4EE - cmp r4, #4 - bne _080AA4EA - movs r0, #0x2e - ldrsh r1, [r5, r0] - ldr r2, _080AA52C @ =gRoomControls - ldrh r0, [r2, #6] - subs r1, r1, r0 - asrs r1, r1, #4 - movs r3, #0x3f - ands r1, r3 - movs r6, #0x32 - ldrsh r0, [r5, r6] - ldrh r2, [r2, #8] - subs r0, r0, r2 - asrs r0, r0, #4 - ands r0, r3 - lsls r0, r0, #6 - orrs r1, r0 - adds r0, r5, #0 - bl sub_080AA654 -_080AA4EA: - bl DeleteThisEntity -_080AA4EE: - strb r4, [r5, #0xb] - adds r2, r5, #0 - adds r2, #0x29 - ldrb r0, [r2] - movs r1, #7 - orrs r0, r1 - strb r0, [r2] - ldr r0, _080AA530 @ =0x00004068 - movs r2, #0x2e - ldrsh r1, [r5, r2] - ldr r3, _080AA52C @ =gRoomControls - ldrh r2, [r3, #6] - subs r1, r1, r2 - asrs r1, r1, #4 - movs r4, #0x3f - ands r1, r4 - movs r6, #0x32 - ldrsh r2, [r5, r6] - ldrh r3, [r3, #8] - subs r2, r2, r3 - asrs r2, r2, #4 - ands r2, r4 - lsls r2, r2, #6 - orrs r1, r2 - adds r2, r5, #0 - adds r2, #0x38 - ldrb r2, [r2] - bl SetTile - pop {r4, r5, r6, pc} - .align 2, 0 -_080AA52C: .4byte gRoomControls -_080AA530: .4byte 0x00004068 - - thumb_func_start sub_080AA534 -sub_080AA534: @ 0x080AA534 - push {lr} - adds r2, r0, #0 - adds r2, #0x38 - movs r1, #3 - strb r1, [r2] - bl UpdateSpriteForCollisionLayer - pop {pc} - - thumb_func_start sub_080AA544 -sub_080AA544: @ 0x080AA544 - push {r4, r5, r6, r7, lr} - mov r7, sb - mov r6, r8 - push {r6, r7} - adds r6, r0, #0 - ldrb r0, [r6, #0xb] - cmp r0, #8 - bhi _080AA618 - ldr r0, _080AA5E8 @ =gUnk_08129FF8 - mov sb, r0 - movs r1, #0x2e - ldrsh r2, [r6, r1] - ldr r1, _080AA5EC @ =gRoomControls - ldrh r0, [r1, #6] - subs r2, r2, r0 - asrs r2, r2, #4 - movs r3, #0x3f - ands r2, r3 - movs r4, #0x32 - ldrsh r0, [r6, r4] - ldrh r1, [r1, #8] - subs r0, r0, r1 - asrs r0, r0, #4 - ands r0, r3 - lsls r0, r0, #6 - orrs r2, r0 - ldrb r0, [r6, #0xb] - add r0, sb - ldrb r0, [r0] - lsls r0, r0, #0x18 - asrs r0, r0, #0x18 - adds r7, r2, r0 - movs r4, #0 - movs r5, #0 - movs r0, #0x38 - adds r0, r0, r6 - mov r8, r0 -_080AA58E: - mov r1, sb - adds r0, r1, r4 - ldrb r0, [r0] - lsls r0, r0, #0x18 - asrs r0, r0, #0x18 - subs r0, r7, r0 - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - mov r2, r8 - ldrb r1, [r2] - bl sub_080002C8 - cmp r0, #0x3e - bne _080AA5AC - adds r5, #1 -_080AA5AC: - adds r4, #1 - cmp r4, #8 - bls _080AA58E - cmp r5, #8 - bne _080AA5F4 - movs r4, #0 - ldr r5, _080AA5F0 @ =gUnk_08129FD0 -_080AA5BA: - ldrh r0, [r5] - mov r3, sb - adds r1, r3, r4 - ldrb r1, [r1] - lsls r1, r1, #0x18 - asrs r1, r1, #0x18 - subs r1, r7, r1 - mov r3, r8 - ldrb r2, [r3] - bl sub_0807B7D8 - adds r5, #2 - adds r4, #1 - cmp r4, #8 - bls _080AA5BA - adds r0, r6, #0 - adds r1, r7, #0 - bl sub_080AA654 - ldrh r0, [r6, #0x24] - bl SetFlag - b _080AA648 - .align 2, 0 -_080AA5E8: .4byte gUnk_08129FF8 -_080AA5EC: .4byte gRoomControls -_080AA5F0: .4byte gUnk_08129FD0 -_080AA5F4: - ldr r2, _080AA614 @ =gUnk_08129FE4 - ldrb r1, [r6, #0xb] - lsls r0, r1, #1 - adds r0, r0, r2 - ldrh r0, [r0] - add r1, sb - ldrb r1, [r1] - lsls r1, r1, #0x18 - asrs r1, r1, #0x18 - subs r1, r7, r1 - mov r4, r8 - ldrb r2, [r4] - bl sub_0807B7D8 - b _080AA648 - .align 2, 0 -_080AA614: .4byte gUnk_08129FE4 -_080AA618: - movs r1, #0x2e - ldrsh r0, [r6, r1] - ldr r2, _080AA650 @ =gRoomControls - ldrh r1, [r2, #6] - subs r0, r0, r1 - asrs r0, r0, #4 - movs r3, #0x3f - ands r0, r3 - movs r4, #0x32 - ldrsh r1, [r6, r4] - ldrh r2, [r2, #8] - subs r1, r1, r2 - asrs r1, r1, #4 - ands r1, r3 - lsls r1, r1, #6 - orrs r0, r1 - adds r1, r6, #0 - adds r1, #0x38 - ldrb r1, [r1] - bl sub_0807BA8C - ldrh r0, [r6, #0x24] - bl SetFlag -_080AA648: - pop {r3, r4} - mov r8, r3 - mov sb, r4 - pop {r4, r5, r6, r7, pc} - .align 2, 0 -_080AA650: .4byte gRoomControls - - thumb_func_start sub_080AA654 -sub_080AA654: @ 0x080AA654 - push {r4, r5, lr} - adds r4, r0, #0 - adds r5, r1, #0 - adds r4, #0x68 - ldr r0, _080AA688 @ =gUnk_0812A004 - adds r1, r4, #0 - movs r2, #0x10 - bl MemCopy - movs r1, #0x3f - adds r0, r5, #0 - ands r0, r1 - lsls r0, r0, #4 - adds r0, #8 - strh r0, [r4, #8] - movs r0, #0xfc - lsls r0, r0, #4 - ands r0, r5 - lsrs r0, r0, #2 - adds r0, #8 - strh r0, [r4, #0xa] - adds r0, r4, #0 - bl LoadRoomEntity - pop {r4, r5, pc} - .align 2, 0 -_080AA688: .4byte gUnk_0812A004 - - thumb_func_start sub_080AA68C -sub_080AA68C: @ 0x080AA68C - push {r4, r5, lr} - adds r5, r0, #0 - ldr r4, _080AA6A4 @ =gUnk_0812A014 - bl GetNextFunction - lsls r0, r0, #2 - adds r0, r0, r4 - ldr r1, [r0] - adds r0, r5, #0 - bl _call_via_r1 - pop {r4, r5, pc} - .align 2, 0 -_080AA6A4: .4byte gUnk_0812A014 - - thumb_func_start sub_080AA6A8 -sub_080AA6A8: @ 0x080AA6A8 - push {lr} - ldr r2, _080AA6BC @ =gUnk_0812A02C - ldrb r1, [r0, #0xc] - lsls r1, r1, #2 - adds r1, r1, r2 - ldr r1, [r1] - bl _call_via_r1 - pop {pc} - .align 2, 0 -_080AA6BC: .4byte gUnk_0812A02C - - thumb_func_start sub_080AA6C0 -sub_080AA6C0: @ 0x080AA6C0 - push {r4, r5, r6, lr} - adds r4, r0, #0 - adds r0, #0x41 - ldrb r0, [r0] - cmp r0, #0x87 - bne _080AA774 - movs r6, #3 - movs r0, #3 - strb r0, [r4, #0xc] - movs r5, #0x5a - strb r5, [r4, #0xe] - ldrb r1, [r4, #0x10] - movs r0, #0x7f - ands r0, r1 - strb r0, [r4, #0x10] - ldrb r1, [r4, #0xa] - adds r1, #0x10 - adds r0, r4, #0 - bl InitAnimationForceUpdate - movs r0, #0x2a - movs r1, #3 - movs r2, #0 - bl CreateObject - adds r3, r0, #0 - cmp r3, #0 - beq _080AA72A - strb r5, [r3, #0xb] - adds r2, r3, #0 - adds r2, #0x29 - ldrb r1, [r2] - movs r0, #8 - rsbs r0, r0, #0 - ands r0, r1 - orrs r0, r6 - strb r0, [r2] - ldr r1, _080AA770 @ =gUnk_0812A03C - ldrb r0, [r4, #0xa] - lsls r0, r0, #2 - adds r0, r0, r1 - ldrb r0, [r0] - adds r2, #0x39 - strb r0, [r2] - ldrb r0, [r4, #0xa] - lsls r0, r0, #2 - adds r0, #1 - adds r0, r0, r1 - ldrb r0, [r0] - adds r1, r3, #0 - adds r1, #0x63 - strb r0, [r1] - str r4, [r3, #0x50] -_080AA72A: - movs r0, #0x2a - movs r1, #3 - movs r2, #0 - bl CreateObject - adds r3, r0, #0 - cmp r3, #0 - beq _080AA784 - strb r5, [r3, #0xb] - adds r2, r3, #0 - adds r2, #0x29 - ldrb r1, [r2] - movs r0, #8 - rsbs r0, r0, #0 - ands r0, r1 - orrs r0, r6 - strb r0, [r2] - ldr r1, _080AA770 @ =gUnk_0812A03C - ldrb r0, [r4, #0xa] - lsls r0, r0, #2 - adds r0, #2 - adds r0, r0, r1 - ldrb r0, [r0] - adds r2, #0x39 - strb r0, [r2] - ldrb r0, [r4, #0xa] - lsls r0, r0, #2 - adds r0, #3 - adds r0, r0, r1 - ldrb r0, [r0] - adds r1, r3, #0 - adds r1, #0x63 - strb r0, [r1] - str r4, [r3, #0x50] - b _080AA784 - .align 2, 0 -_080AA770: .4byte gUnk_0812A03C -_080AA774: - ldrb r1, [r4, #0xa] - adds r1, #0x10 - adds r0, r4, #0 - bl InitAnimationForceUpdate - ldr r0, _080AA788 @ =0x00000101 - bl EnqueueSFX -_080AA784: - pop {r4, r5, r6, pc} - .align 2, 0 -_080AA788: .4byte 0x00000101 - - thumb_func_start sub_080AA78C -sub_080AA78C: @ 0x080AA78C - push {r4, r5, lr} - adds r4, r0, #0 - ldrb r0, [r4, #0xd] - cmp r0, #0 - bne _080AA7DA - ldr r0, _080AA7C8 @ =gPlayerEntity - ldrb r0, [r0, #0x14] - lsrs r2, r0, #1 - ldrb r0, [r4, #0xa] - cmp r2, r0 - beq _080AA7CC - adds r3, r4, #0 - adds r3, #0x3a - ldrb r0, [r3] - movs r1, #0xfb - ands r1, r0 - strb r1, [r3] - movs r0, #2 - eors r2, r0 - ldrb r0, [r4, #0xa] - cmp r2, r0 - bne _080AA832 - adds r1, r4, #0 - adds r1, #0x3d - movs r0, #0xe2 - strb r0, [r1] - adds r0, r4, #0 - bl sub_080AA6C0 - b _080AA832 - .align 2, 0 -_080AA7C8: .4byte gPlayerEntity -_080AA7CC: - movs r0, #1 - strb r0, [r4, #0xd] - adds r1, r2, #0 - adds r1, #8 - adds r0, r4, #0 - bl InitAnimationForceUpdate -_080AA7DA: - adds r0, r4, #0 - bl sub_0806F520 - cmp r0, #0 - beq _080AA812 - adds r0, r4, #0 - bl UpdateAnimationSingleFrame - adds r5, r4, #0 - adds r5, #0x5a - ldrb r1, [r5] - movs r0, #0x10 - ands r0, r1 - cmp r0, #0 - beq _080AA806 - movs r0, #0xef - ands r0, r1 - strb r0, [r5] - movs r0, #0x80 - lsls r0, r0, #1 - bl EnqueueSFX -_080AA806: - ldrb r1, [r5] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - beq _080AA832 - b _080AA820 -_080AA812: - adds r0, r4, #0 - adds r0, #0x5a - ldrb r1, [r0] - movs r0, #1 - ands r0, r1 - cmp r0, #0 - beq _080AA828 -_080AA820: - adds r0, r4, #0 - bl sub_080AAAA8 - b _080AA832 -_080AA828: - ldrb r1, [r4, #0xa] - adds r1, #0x10 - adds r0, r4, #0 - bl InitAnimationForceUpdate -_080AA832: - pop {r4, r5, pc} - - thumb_func_start sub_080AA834 -sub_080AA834: @ 0x080AA834 - push {r4, lr} - adds r4, r0, #0 - adds r0, #0x86 - ldrh r0, [r0] - bl CheckFlags - cmp r0, #0 - beq _080AA848 - bl DeleteThisEntity -_080AA848: - movs r2, #0 - movs r0, #1 - strb r0, [r4, #0xc] - strb r0, [r4, #0x1c] - strb r0, [r4, #0x16] - ldr r1, _080AA874 @ =gUnk_0812A04C - ldrb r0, [r4, #0xa] - lsls r0, r0, #2 - adds r0, r0, r1 - ldr r0, [r0] - str r0, [r4, #0x48] - adds r0, r4, #0 - adds r0, #0x84 - strb r2, [r0] - ldrb r1, [r4, #0xa] - adds r0, r4, #0 - bl InitAnimationForceUpdate - adds r0, r4, #0 - bl sub_080AAA68 - pop {r4, pc} - .align 2, 0 -_080AA874: .4byte gUnk_0812A04C - - thumb_func_start sub_080AA878 -sub_080AA878: @ 0x080AA878 - push {r4, lr} - adds r4, r0, #0 - adds r0, #0x5a - ldrb r1, [r0] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - bne _080AA88E - adds r0, r4, #0 - bl UpdateAnimationSingleFrame -_080AA88E: - adds r0, r4, #0 - bl sub_080AA9E0 - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_080AA898 -sub_080AA898: @ 0x080AA898 - push {r4, lr} - adds r4, r0, #0 - bl sub_0806FBB4 - ldr r1, _080AA8B4 @ =gUnk_0812A05C - ldrb r0, [r4, #0xd] - subs r0, #5 - lsls r0, r0, #2 - adds r0, r0, r1 - ldr r1, [r0] - adds r0, r4, #0 - bl _call_via_r1 - pop {r4, pc} - .align 2, 0 -_080AA8B4: .4byte gUnk_0812A05C - - thumb_func_start sub_080AA8B8 -sub_080AA8B8: @ 0x080AA8B8 - push {r4, r5, r6, r7, lr} - adds r4, r0, #0 - ldr r7, _080AA99C @ =gPlayerEntity - adds r0, #0x84 - ldrb r0, [r0] - cmp r0, #0 - bne _080AA920 - ldrb r0, [r4, #0xa] - lsls r2, r0, #1 - ldrb r0, [r7, #0x14] - cmp r2, r0 - bne _080AA90A - ldr r1, _080AA9A0 @ =gUnk_0812A064 - adds r0, r2, r1 - ldrb r0, [r0] - lsls r0, r0, #0x18 - asrs r0, r0, #0x18 - ldrh r3, [r4, #0x2e] - adds r0, r0, r3 - lsls r0, r0, #0x10 - lsrs r6, r0, #0x10 - adds r0, r2, #1 - adds r0, r0, r1 - ldrb r0, [r0] - lsls r0, r0, #0x18 - asrs r0, r0, #0x18 - ldrh r1, [r4, #0x32] - adds r0, r0, r1 - lsls r0, r0, #0x10 - lsrs r5, r0, #0x10 - adds r0, r7, #0 - adds r0, #0x38 - ldrb r2, [r0] - adds r0, r6, #0 - adds r1, r5, #0 - bl sub_080002D4 - cmp r0, #0 - bne _080AA90A - strh r6, [r7, #0x2e] - strh r5, [r7, #0x32] -_080AA90A: - adds r1, r4, #0 - adds r1, #0x84 - movs r0, #1 - strb r0, [r1] - movs r0, #2 - strb r0, [r4, #0xf] - ldrb r1, [r4, #0xa] - adds r1, #4 - adds r0, r4, #0 - bl InitAnimationForceUpdate -_080AA920: - ldrb r0, [r7, #0x14] - lsrs r0, r0, #1 - ldrb r2, [r4, #0xa] - cmp r0, r2 - bne _080AA99A - ldr r1, _080AA9A4 @ =gPlayerState - adds r0, r1, #0 - adds r0, #0xa8 - ldrb r0, [r0] - cmp r0, #0x1a - bne _080AA99A - ldrb r1, [r1, #5] - movs r2, #2 - adds r0, r2, #0 - ands r0, r1 - cmp r0, #0 - beq _080AA99A - ldr r0, _080AA99C @ =gPlayerEntity - adds r0, #0x5a - ldrb r1, [r0] - adds r0, r2, #0 - ands r0, r1 - cmp r0, #0 - beq _080AA99A - adds r5, r4, #0 - adds r5, #0x5a - ldrb r1, [r5] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - bne _080AA99A - adds r0, r4, #0 - bl UpdateAnimationSingleFrame - ldrb r1, [r5] - movs r0, #1 - ands r0, r1 - cmp r0, #0 - beq _080AA99A - ldr r1, _080AA9A8 @ =gUnk_0812A06C - ldrb r0, [r7, #0x14] - adds r0, r0, r1 - ldrb r0, [r0] - lsls r0, r0, #0x18 - asrs r0, r0, #0x18 - ldrh r3, [r7, #0x2e] - adds r0, r0, r3 - strh r0, [r7, #0x2e] - ldrb r0, [r7, #0x14] - adds r0, #1 - adds r0, r0, r1 - ldrb r0, [r0] - lsls r0, r0, #0x18 - asrs r0, r0, #0x18 - ldrh r1, [r7, #0x32] - adds r0, r0, r1 - strh r0, [r7, #0x32] - movs r0, #0x80 - lsls r0, r0, #1 - bl EnqueueSFX -_080AA99A: - pop {r4, r5, r6, r7, pc} - .align 2, 0 -_080AA99C: .4byte gPlayerEntity -_080AA9A0: .4byte gUnk_0812A064 -_080AA9A4: .4byte gPlayerState -_080AA9A8: .4byte gUnk_0812A06C - - thumb_func_start sub_080AA9AC -sub_080AA9AC: @ 0x080AA9AC - push {lr} - movs r2, #0 - movs r1, #1 - strb r1, [r0, #0xc] - adds r1, r0, #0 - adds r1, #0x84 - strb r2, [r1] - ldrb r1, [r0, #0xa] - adds r1, #0xc - bl InitAnimationForceUpdate - pop {pc} - - thumb_func_start sub_080AA9C4 -sub_080AA9C4: @ 0x080AA9C4 - push {r4, lr} - adds r4, r0, #0 - bl GetNextFrame - ldrb r0, [r4, #0xe] - subs r0, #1 - strb r0, [r4, #0xe] - lsls r0, r0, #0x18 - cmp r0, #0 - bne _080AA9DE - adds r0, r4, #0 - bl sub_080AAAA8 -_080AA9DE: - pop {r4, pc} - - thumb_func_start sub_080AA9E0 -sub_080AA9E0: @ 0x080AA9E0 - push {r4, r5, lr} - adds r5, r0, #0 - ldrb r1, [r5, #0xa] - movs r0, #1 - ands r0, r1 - cmp r0, #0 - beq _080AAA00 - ldr r0, _080AA9FC @ =gPlayerEntity - movs r2, #0x2e - ldrsh r1, [r0, r2] - movs r2, #0x2e - ldrsh r0, [r5, r2] - b _080AAA0A - .align 2, 0 -_080AA9FC: .4byte gPlayerEntity -_080AAA00: - ldr r0, _080AAA24 @ =gPlayerEntity - movs r2, #0x32 - ldrsh r1, [r0, r2] - movs r2, #0x32 - ldrsh r0, [r5, r2] -_080AAA0A: - subs r4, r1, r0 - ldrb r2, [r5, #0xa] - lsls r1, r2, #2 - ldr r0, _080AAA28 @ =gUnk_0812A074 - adds r3, r1, r0 - cmp r2, #2 - bgt _080AAA2C - cmp r2, #1 - bge _080AAA36 - cmp r2, #0 - beq _080AAA30 - b _080AAA40 - .align 2, 0 -_080AAA24: .4byte gPlayerEntity -_080AAA28: .4byte gUnk_0812A074 -_080AAA2C: - cmp r2, #3 - bne _080AAA40 -_080AAA30: - cmp r4, #4 - ble _080AAA40 - b _080AAA3E -_080AAA36: - movs r0, #4 - rsbs r0, r0, #0 - cmp r4, r0 - bge _080AAA40 -_080AAA3E: - adds r3, #2 -_080AAA40: - ldrb r0, [r3] - adds r4, r5, #0 - adds r4, #0x29 - movs r1, #7 - ands r1, r0 - ldrb r2, [r4] - movs r0, #8 - rsbs r0, r0, #0 - ands r0, r2 - orrs r0, r1 - strb r0, [r4] - ldrb r0, [r3, #1] - strb r0, [r5, #0x15] - ldrb r0, [r3] - cmp r0, #5 - bne _080AAA66 - adds r0, r5, #0 - bl sub_08078930 -_080AAA66: - pop {r4, r5, pc} - - thumb_func_start sub_080AAA68 -sub_080AAA68: @ 0x080AAA68 - push {r4, r5, r6, lr} - ldr r2, _080AAAA0 @ =gUnk_0812A084 - ldrb r1, [r0, #0xa] - lsls r1, r1, #1 - adds r1, r1, r2 - ldrh r5, [r1] - movs r2, #0x2e - ldrsh r1, [r0, r2] - ldr r3, _080AAAA4 @ =gRoomControls - ldrh r2, [r3, #6] - subs r1, r1, r2 - asrs r1, r1, #4 - movs r4, #0x3f - ands r1, r4 - movs r6, #0x32 - ldrsh r2, [r0, r6] - ldrh r3, [r3, #8] - subs r2, r2, r3 - asrs r2, r2, #4 - ands r2, r4 - lsls r2, r2, #6 - orrs r1, r2 - adds r0, #0x38 - ldrb r2, [r0] - adds r0, r5, #0 - bl SetTile - pop {r4, r5, r6, pc} - .align 2, 0 -_080AAAA0: .4byte gUnk_0812A084 -_080AAAA4: .4byte gRoomControls - - thumb_func_start sub_080AAAA8 -sub_080AAAA8: @ 0x080AAAA8 - push {r4, r5, lr} - adds r4, r0, #0 - adds r0, #0x86 - ldrh r0, [r0] - bl SetFlag - movs r1, #0x2e - ldrsh r0, [r4, r1] - ldr r2, _080AAAE4 @ =gRoomControls - ldrh r1, [r2, #6] - subs r0, r0, r1 - asrs r0, r0, #4 - movs r3, #0x3f - ands r0, r3 - movs r5, #0x32 - ldrsh r1, [r4, r5] - ldrh r2, [r2, #8] - subs r1, r1, r2 - asrs r1, r1, #4 - ands r1, r3 - lsls r1, r1, #6 - orrs r0, r1 - adds r4, #0x38 - ldrb r1, [r4] - bl sub_0807BA8C - bl DeleteThisEntity - pop {r4, r5, pc} - .align 2, 0 -_080AAAE4: .4byte gRoomControls - - thumb_func_start sub_080AAAE8 -sub_080AAAE8: @ 0x080AAAE8 - push {r4, r5, lr} - adds r5, r0, #0 - ldr r4, _080AAB00 @ =gUnk_0812A3C0 - bl GetNextFunction - lsls r0, r0, #2 - adds r0, r0, r4 - ldr r1, [r0] - adds r0, r5, #0 - bl _call_via_r1 - pop {r4, r5, pc} - .align 2, 0 -_080AAB00: .4byte gUnk_0812A3C0 - - thumb_func_start sub_080AAB04 -sub_080AAB04: @ 0x080AAB04 - push {lr} - ldr r2, _080AAB18 @ =gUnk_0812A3D4 - ldrb r1, [r0, #0xc] - lsls r1, r1, #2 - adds r1, r1, r2 - ldr r1, [r1] - bl _call_via_r1 - pop {pc} - .align 2, 0 -_080AAB18: .4byte gUnk_0812A3D4 - - thumb_func_start sub_080AAB1C -sub_080AAB1C: @ 0x080AAB1C - push {lr} - bl DeleteThisEntity - pop {pc} - - thumb_func_start sub_080AAB24 -sub_080AAB24: @ 0x080AAB24 - push {lr} - movs r1, #1 - strb r1, [r0, #0xc] - movs r1, #0x1e - strb r1, [r0, #0xe] - movs r1, #0 - bl InitializeAnimation - pop {pc} - .align 2, 0 - - thumb_func_start sub_080AAB38 -sub_080AAB38: @ 0x080AAB38 - push {r4, lr} - adds r4, r0, #0 - bl GetNextFrame - ldrb r0, [r4, #0xe] - cmp r0, #0 - beq _080AAB4C - subs r0, #1 - strb r0, [r4, #0xe] - b _080AAB62 -_080AAB4C: - adds r0, r4, #0 - bl sub_080AF090 - cmp r0, #0 - bne _080AAB5E - adds r0, r4, #0 - bl sub_0806F69C - b _080AAB62 -_080AAB5E: - movs r0, #2 - strb r0, [r4, #0xc] -_080AAB62: - pop {r4, pc} - - thumb_func_start sub_080AAB64 -sub_080AAB64: @ 0x080AAB64 - push {r4, lr} - adds r4, r0, #0 - bl GetNextFrame - adds r0, r4, #0 - bl sub_080AF090 - ldrh r0, [r4, #0x2a] - cmp r0, #0 - beq _080AAB7C - bl DeleteThisEntity -_080AAB7C: - adds r0, r4, #0 - bl sub_080A7EB0 - cmp r0, #0 - beq _080AAB8A - bl DeleteThisEntity -_080AAB8A: - pop {r4, pc} - - thumb_func_start sub_080AAB8C -sub_080AAB8C: @ 0x080AAB8C - push {r4, lr} - adds r4, r0, #0 - ldrb r0, [r4, #0xc] - cmp r0, #0 - bne _080AABA2 - movs r0, #1 - strb r0, [r4, #0xc] - adds r0, r4, #0 - movs r1, #0 - bl InitializeAnimation -_080AABA2: - adds r0, r4, #0 - bl sub_080AABB0 - adds r0, r4, #0 - bl GetNextFrame - pop {r4, pc} - - thumb_func_start sub_080AABB0 -sub_080AABB0: @ 0x080AABB0 - push {r4, r5, lr} - adds r4, r0, #0 - ldr r5, [r4, #0x50] - adds r0, r5, #0 - adds r1, r4, #0 - bl CopyPosition - ldrb r1, [r5, #0x14] - lsls r1, r1, #1 - ldr r0, _080AABEC @ =gSineTable - adds r1, r1, r0 - ldrb r2, [r4, #0xe] - lsls r2, r2, #8 - movs r3, #0 - ldrsh r0, [r1, r3] - adds r3, r0, #0 - muls r3, r2, r3 - ldr r0, [r4, #0x2c] - adds r0, r0, r3 - str r0, [r4, #0x2c] - adds r1, #0x80 - movs r3, #0 - ldrsh r0, [r1, r3] - adds r1, r0, #0 - muls r1, r2, r1 - ldr r0, [r4, #0x30] - subs r0, r0, r1 - str r0, [r4, #0x30] - pop {r4, r5, pc} - .align 2, 0 -_080AABEC: .4byte gSineTable - - thumb_func_start sub_080AABF0 -sub_080AABF0: @ 0x080AABF0 - push {r4, r5, lr} - adds r5, r0, #0 - ldr r4, _080AAC08 @ =gUnk_0812A418 - bl GetNextFunction - lsls r0, r0, #2 - adds r0, r0, r4 - ldr r1, [r0] - adds r0, r5, #0 - bl _call_via_r1 - pop {r4, r5, pc} - .align 2, 0 -_080AAC08: .4byte gUnk_0812A418 - - thumb_func_start sub_080AAC0C -sub_080AAC0C: @ 0x080AAC0C - push {r4, lr} - adds r4, r0, #0 - ldr r1, _080AAC40 @ =gUnk_0812A430 - ldrb r0, [r4, #0xc] - lsls r0, r0, #2 - adds r0, r0, r1 - ldr r1, [r0] - adds r0, r4, #0 - bl _call_via_r1 - ldrb r0, [r4, #0xb] - cmp r0, #0 - bne _080AAC3C - adds r1, r4, #0 - adds r1, #0x84 - ldrh r0, [r1] - subs r0, #1 - strh r0, [r1] - lsls r0, r0, #0x10 - cmp r0, #0 - bne _080AAC3C - subs r1, #0x3f - movs r0, #0 - strb r0, [r1] -_080AAC3C: - pop {r4, pc} - .align 2, 0 -_080AAC40: .4byte gUnk_0812A430 - - thumb_func_start sub_080AAC44 -sub_080AAC44: @ 0x080AAC44 - push {r4, lr} - adds r4, r0, #0 - adds r0, #0x41 - ldrb r1, [r0] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - beq _080AACCA - ldrb r0, [r4, #0xb] - cmp r0, #0 - bne _080AACBC - movs r0, #0x3f - ands r0, r1 - cmp r0, #0 - bne _080AACA0 - movs r0, #2 - strb r0, [r4, #0xc] - ldrb r1, [r4, #0x10] - movs r0, #0x7f - ands r0, r1 - strb r0, [r4, #0x10] - ldrb r0, [r4, #0xa] - cmp r0, #0 - bne _080AAC84 - ldr r0, _080AAC80 @ =gPlayerEntity - adds r1, r4, #0 - bl ResolveEntityOnTop - b _080AAC8C - .align 2, 0 -_080AAC80: .4byte gPlayerEntity -_080AAC84: - ldr r0, [r4, #0x50] - adds r1, r4, #0 - bl ResolveEntityOnTop -_080AAC8C: - bl ResetPlayer - ldr r2, _080AACB4 @ =gPlayerState - ldrb r1, [r2, #0x1a] - movs r0, #0x80 - orrs r1, r0 - strb r1, [r2, #0x1a] - ldrb r1, [r2, #0xa] - orrs r0, r1 - strb r0, [r2, #0xa] -_080AACA0: - ldr r0, _080AACB8 @ =gPlayerEntity - adds r0, #0x45 - ldrb r1, [r0] - cmp r1, #0 - bne _080AACCA - adds r0, r4, #0 - adds r0, #0x45 - strb r1, [r0] - b _080AACCA - .align 2, 0 -_080AACB4: .4byte gPlayerState -_080AACB8: .4byte gPlayerEntity -_080AACBC: - ldr r0, _080AACDC @ =0x00000119 - bl SoundReq - ldr r0, [r4, #0x50] - adds r1, r4, #0 - bl CopyPosition -_080AACCA: - adds r1, r4, #0 - adds r1, #0x42 - ldrb r0, [r1] - cmp r0, #0 - beq _080AACD8 - movs r0, #0 - strb r0, [r1] -_080AACD8: - pop {r4, pc} - .align 2, 0 -_080AACDC: .4byte 0x00000119 - - thumb_func_start sub_080AACE0 -sub_080AACE0: @ 0x080AACE0 - push {r4, r5, lr} - adds r4, r0, #0 - ldrb r0, [r4, #0xa] - cmp r0, #0 - beq _080AACF4 - ldrb r0, [r4, #0xb] - cmp r0, #0 - beq _080AACF4 - bl DeleteThisEntity -_080AACF4: - ldrb r1, [r4, #0x18] - lsls r0, r1, #0x1e - lsrs r2, r0, #0x1e - adds r5, r4, #0 - adds r5, #0x86 - cmp r2, #1 - bne _080AAD16 - movs r0, #4 - rsbs r0, r0, #0 - ands r0, r1 - strb r0, [r4, #0x18] - strb r2, [r5] - adds r0, r4, #0 - movs r1, #2 - movs r2, #0 - bl CreateFx -_080AAD16: - ldr r2, [r4, #0x50] - ldrb r0, [r4, #0xb] - cmp r0, #0 - bne _080AAD4A - adds r1, r2, #0 - adds r1, #0x74 - movs r0, #3 - strb r0, [r1] - adds r1, #0xc - adds r0, r4, #0 - adds r0, #0x81 - ldrb r0, [r0] - lsrs r0, r0, #1 - ldrb r2, [r1] - adds r0, r0, r2 - strb r0, [r1] - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #8 - bls _080AAD42 - movs r0, #8 - b _080AAD56 -_080AAD42: - cmp r0, #0 - bne _080AAD58 - movs r0, #1 - b _080AAD56 -_080AAD4A: - adds r1, r2, #0 - adds r1, #0x84 - movs r0, #0 - strb r0, [r1] - subs r1, #0x45 - movs r0, #0x2b -_080AAD56: - strb r0, [r1] -_080AAD58: - ldrb r0, [r5] - cmp r0, #0 - bne _080AAD68 - adds r0, r4, #0 - movs r1, #2 - movs r2, #0 - bl CreateFx -_080AAD68: - bl DeleteThisEntity - pop {r4, r5, pc} - .align 2, 0 - - thumb_func_start sub_080AAD70 -sub_080AAD70: @ 0x080AAD70 - push {r4, lr} - adds r4, r0, #0 - bl sub_0806F520 - cmp r0, #0 - bne _080AAD82 - adds r1, r4, #0 - adds r1, #0x45 - strb r0, [r1] -_080AAD82: - ldr r0, _080AAD94 @ =gUnk_0812A440 - ldrb r1, [r4, #0xd] - lsls r1, r1, #2 - adds r1, r1, r0 - ldr r1, [r1] - adds r0, r4, #0 - bl _call_via_r1 - pop {r4, pc} - .align 2, 0 -_080AAD94: .4byte gUnk_0812A440 - - thumb_func_start sub_080AAD98 -sub_080AAD98: @ 0x080AAD98 - movs r1, #2 - strb r1, [r0, #0xd] - bx lr - .align 2, 0 - - thumb_func_start nullsub_541 -nullsub_541: @ 0x080AADA0 - bx lr - .align 2, 0 - - thumb_func_start sub_080AADA4 -sub_080AADA4: @ 0x080AADA4 - push {r4, lr} - adds r4, r0, #0 - bl sub_0806F3E4 - cmp r0, #0 - beq _080AADB8 - adds r1, r4, #0 - adds r1, #0x45 - movs r0, #0 - strb r0, [r1] -_080AADB8: - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_080AADBC -sub_080AADBC: @ 0x080AADBC - push {r4, r5, lr} - adds r5, r0, #0 - ldrb r0, [r5, #0xb] - cmp r0, #0 - bne _080AADCC - movs r0, #1 - strb r0, [r5, #0xc] - b _080AADE0 -_080AADCC: - movs r0, #3 - strb r0, [r5, #0xc] - adds r1, r5, #0 - adds r1, #0x3f - movs r0, #0x2c - strb r0, [r1] - ldr r0, [r5, #0x50] - adds r1, r5, #0 - bl ResolveEntityOnTop -_080AADE0: - ldrb r1, [r5, #0xa] - cmp r1, #0 - bne _080AAE64 - strb r1, [r5, #0xe] - movs r3, #4 - movs r0, #4 - strb r0, [r5, #0xf] - adds r0, r5, #0 - adds r0, #0x80 - strb r1, [r0] - adds r0, #1 - strb r1, [r0] - adds r1, r5, #0 - adds r1, #0x45 - movs r0, #0x10 - strb r0, [r1] - ldrh r0, [r5, #0x36] - adds r0, #4 - movs r4, #0 - strh r0, [r5, #0x36] - ldrb r2, [r5, #0x1b] - movs r1, #0x3f - adds r0, r1, #0 - ands r0, r2 - movs r2, #0x40 - orrs r0, r2 - strb r0, [r5, #0x1b] - ldrb r0, [r5, #0x19] - ands r1, r0 - orrs r1, r2 - strb r1, [r5, #0x19] - adds r2, r5, #0 - adds r2, #0x29 - ldrb r1, [r2] - movs r0, #8 - rsbs r0, r0, #0 - ands r0, r1 - orrs r0, r3 - strb r0, [r2] - ldr r1, _080AAE60 @ =gPlayerEntity - adds r0, r5, #0 - bl GetFacingDirection - strb r0, [r5, #0x15] - adds r0, r5, #0 - adds r0, #0x86 - strb r4, [r0] - adds r1, r5, #0 - adds r1, #0x84 - movs r0, #0x96 - lsls r0, r0, #1 - strh r0, [r1] - movs r0, #0x18 - bl sub_080A7EE0 - adds r1, r0, #0 - cmp r1, #0 - beq _080AAE7C - movs r0, #1 - strb r0, [r1, #0xa] - ldrb r0, [r5, #0xb] - strb r0, [r1, #0xb] - str r5, [r1, #0x50] - b _080AAE7C - .align 2, 0 -_080AAE60: .4byte gPlayerEntity -_080AAE64: - ldr r0, [r5, #0x50] - adds r1, r5, #0 - bl ResolveEntityOnTop - ldrb r1, [r5, #0x10] - movs r0, #0x7f - ands r0, r1 - strb r0, [r5, #0x10] - ldr r0, [r5, #0x50] - adds r1, r5, #0 - bl CopyPosition -_080AAE7C: - ldrb r1, [r5, #0xa] - adds r0, r5, #0 - bl InitializeAnimation - pop {r4, r5, pc} - .align 2, 0 - - thumb_func_start sub_080AAE88 -sub_080AAE88: @ 0x080AAE88 - push {r4, lr} - adds r4, r0, #0 - ldrb r0, [r4, #0xa] - cmp r0, #1 - beq _080AAED0 - cmp r0, #1 - bgt _080AAE9C - cmp r0, #0 - beq _080AAEA2 - b _080AAEF6 -_080AAE9C: - cmp r0, #2 - beq _080AAEE0 - b _080AAEF6 -_080AAEA2: - ldrb r0, [r4, #0xf] - subs r0, #1 - strb r0, [r4, #0xf] - lsls r0, r0, #0x18 - cmp r0, #0 - bne _080AAEC2 - movs r0, #4 - strb r0, [r4, #0xf] - ldr r1, _080AAECC @ =gPlayerEntity - adds r0, r4, #0 - bl GetFacingDirection - adds r1, r0, #0 - adds r0, r4, #0 - bl sub_08004596 -_080AAEC2: - adds r0, r4, #0 - bl sub_0806F69C - b _080AAEF6 - .align 2, 0 -_080AAECC: .4byte gPlayerEntity -_080AAED0: - ldr r0, [r4, #0x50] - cmp r0, #0 - beq _080AAEDC - ldr r0, [r0, #4] - cmp r0, #0 - bne _080AAEE0 -_080AAEDC: - bl DeleteThisEntity -_080AAEE0: - ldr r0, [r4, #0x50] - ldrb r0, [r0, #0x18] - lsls r0, r0, #0x1e - cmp r0, #0 - bne _080AAEEE - bl DeleteThisEntity -_080AAEEE: - ldr r0, [r4, #0x50] - adds r1, r4, #0 - bl CopyPosition -_080AAEF6: - adds r0, r4, #0 - bl sub_080AB034 - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_080AAF00 -sub_080AAF00: @ 0x080AAF00 - push {r4, lr} - adds r4, r0, #0 - bl sub_080AAF74 - adds r0, r4, #0 - bl sub_080AB034 - pop {r4, pc} - - thumb_func_start sub_080AAF10 -sub_080AAF10: @ 0x080AAF10 - push {r4, lr} - adds r4, r0, #0 - ldr r0, [r4, #0x50] - adds r1, r4, #0 - bl CopyPosition - adds r0, r4, #0 - bl sub_080AB034 - ldr r3, [r4, #0x50] - ldrb r1, [r3, #0x18] - lsls r1, r1, #0x1e - lsrs r1, r1, #0x1e - ldrb r2, [r4, #0x18] - movs r0, #4 - rsbs r0, r0, #0 - ands r0, r2 - orrs r0, r1 - strb r0, [r4, #0x18] - ldrb r0, [r4, #0xa] - cmp r0, #0 - beq _080AAF48 - adds r0, r3, #0 - adds r0, #0x45 - ldrb r0, [r0] - adds r1, r4, #0 - adds r1, #0x45 - strb r0, [r1] -_080AAF48: - ldr r0, [r4, #0x50] - ldrb r0, [r0, #0xc] - cmp r0, #2 - bne _080AAF60 - ldrb r1, [r4, #0x10] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - beq _080AAF70 - movs r0, #0x7f - ands r0, r1 - b _080AAF6E -_080AAF60: - ldrb r1, [r4, #0x10] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - bne _080AAF70 - movs r0, #0x80 - orrs r0, r1 -_080AAF6E: - strb r0, [r4, #0x10] -_080AAF70: - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_080AAF74 -sub_080AAF74: @ 0x080AAF74 - push {r4, r5, lr} - adds r5, r0, #0 - bl sub_0807953C - cmp r0, #0 - beq _080AAF94 - bl Random - adds r3, r5, #0 - adds r3, #0x80 - ldrb r1, [r3] - adds r1, #1 - movs r2, #1 - ands r0, r2 - adds r1, r1, r0 - strb r1, [r3] -_080AAF94: - ldrb r0, [r5, #0xe] - adds r0, #1 - strb r0, [r5, #0xe] - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #0x3c - bne _080AAFCC - movs r0, #0x1e - strb r0, [r5, #0xe] - ldr r4, _080AAFFC @ =gPlayerEntity - adds r1, r4, #0 - adds r1, #0x3d - movs r0, #8 - strb r0, [r1] - subs r0, #0xc - bl ModHealth - adds r0, r4, #0 - movs r1, #0x7a - bl sub_0800449C - adds r4, #0x45 - ldrb r1, [r4] - cmp r1, #0 - bne _080AAFCC - adds r0, r5, #0 - adds r0, #0x45 - strb r1, [r0] -_080AAFCC: - adds r1, r5, #0 - adds r1, #0x80 - ldrb r0, [r1] - cmp r0, #0x30 - bhi _080AAFE0 - adds r0, r5, #0 - adds r0, #0x81 - ldrb r0, [r0] - cmp r0, #0x10 - bne _080AB004 -_080AAFE0: - movs r2, #0 - movs r0, #1 - strb r0, [r5, #0xc] - strb r2, [r1] - ldr r0, _080AAFFC @ =gPlayerEntity - adds r0, #0x3d - movs r1, #0xf0 - strb r1, [r0] - ldr r0, _080AB000 @ =gPlayerState - strb r2, [r0, #0x1a] - adds r0, r5, #0 - adds r0, #0x45 - strb r2, [r0] - b _080AB028 - .align 2, 0 -_080AAFFC: .4byte gPlayerEntity -_080AB000: .4byte gPlayerState -_080AB004: - bl ResetPlayer - ldr r2, _080AB02C @ =gPlayerState - ldrb r1, [r2, #0x1a] - movs r0, #0x80 - orrs r1, r0 - strb r1, [r2, #0x1a] - ldrb r1, [r2, #0xa] - orrs r0, r1 - strb r0, [r2, #0xa] - ldr r4, _080AB030 @ =gPlayerEntity - adds r0, r4, #0 - adds r1, r5, #0 - bl CopyPosition - ldrh r0, [r4, #0x36] - subs r0, #4 - strh r0, [r5, #0x36] -_080AB028: - pop {r4, r5, pc} - .align 2, 0 -_080AB02C: .4byte gPlayerState -_080AB030: .4byte gPlayerEntity - - thumb_func_start sub_080AB034 -sub_080AB034: @ 0x080AB034 - push {r4, lr} - adds r4, r0, #0 - bl GetNextFrame - adds r0, r4, #0 - adds r0, #0x5b - ldrb r1, [r0] - movs r0, #1 - ands r0, r1 - ldr r1, _080AB058 @ =0x00000139 - cmp r0, #0 - beq _080AB04E - movs r1, #0 -_080AB04E: - adds r0, r4, #0 - bl sub_0801D2B4 - pop {r4, pc} - .align 2, 0 -_080AB058: .4byte 0x00000139 - - thumb_func_start sub_080AB05C -sub_080AB05C: @ 0x080AB05C - push {lr} - ldr r2, _080AB070 @ =gUnk_0812A494 - ldrb r1, [r0, #0xa] - lsls r1, r1, #2 - adds r1, r1, r2 - ldr r1, [r1] - bl _call_via_r1 - pop {pc} - .align 2, 0 -_080AB070: .4byte gUnk_0812A494 - - thumb_func_start sub_080AB074 -sub_080AB074: @ 0x080AB074 - push {r4, r5, r6, r7, lr} - adds r4, r0, #0 - ldr r5, [r4, #0x50] - ldr r0, [r5, #4] - cmp r0, #0 - bne _080AB084 - bl DeleteThisEntity -_080AB084: - ldrb r6, [r4, #0xc] - cmp r6, #0 - bne _080AB0AA - adds r0, r4, #0 - bl sub_080AB12C - cmp r0, #0 - beq _080AB124 - movs r0, #1 - strb r0, [r4, #0xc] - strb r6, [r4, #0x1e] - adds r2, r4, #0 - adds r2, #0x29 - ldrb r1, [r2] - subs r0, #9 - ands r0, r1 - movs r1, #3 - orrs r0, r1 - strb r0, [r2] -_080AB0AA: - ldr r0, [r4, #0x50] - adds r7, r5, #0 - adds r7, #0x7f - movs r3, #0 - ldrsb r3, [r7, r3] - rsbs r3, r3, #0 - subs r3, #0xa - adds r1, r4, #0 - movs r2, #0 - bl sub_0806FA90 - ldr r3, _080AB128 @ =gSineTable - adds r2, r5, #0 - adds r2, #0x7c - ldrb r0, [r2] - lsls r0, r0, #1 - adds r0, r0, r3 - movs r6, #0 - ldrsh r1, [r0, r6] - adds r6, r5, #0 - adds r6, #0x7e - ldrb r0, [r6] - lsls r0, r0, #8 - muls r1, r0, r1 - ldr r0, [r4, #0x2c] - adds r0, r0, r1 - str r0, [r4, #0x2c] - ldrb r0, [r2] - adds r0, #0x40 - lsls r0, r0, #1 - adds r0, r0, r3 - movs r2, #0 - ldrsh r1, [r0, r2] - ldrb r0, [r6] - lsls r0, r0, #8 - muls r1, r0, r1 - ldr r0, [r4, #0x30] - subs r0, r0, r1 - str r0, [r4, #0x30] - movs r0, #0 - ldrsb r0, [r7, r0] - ldrh r6, [r4, #0x36] - adds r0, r0, r6 - strh r0, [r4, #0x36] - adds r0, r5, #0 - adds r0, #0x7b - ldrb r0, [r0] - cmp r0, #0 - beq _080AB124 - movs r0, #0x19 - bl sub_080A7EE0 - adds r5, r0, #0 - cmp r5, #0 - beq _080AB124 - movs r0, #4 - strb r0, [r5, #0xa] - adds r0, r4, #0 - adds r1, r5, #0 - bl CopyPositionAndSpriteOffset -_080AB124: - pop {r4, r5, r6, r7, pc} - .align 2, 0 -_080AB128: .4byte gSineTable - - thumb_func_start sub_080AB12C -sub_080AB12C: @ 0x080AB12C - push {r4, lr} - adds r4, r0, #0 - ldr r0, _080AB168 @ =gEntCount - ldrb r0, [r0] - cmp r0, #0x44 - bhi _080AB16C - movs r0, #0x19 - bl sub_080A7EE0 - adds r1, r0, #0 - movs r0, #1 - strb r0, [r1, #0xa] - str r4, [r1, #0x50] - movs r0, #0x19 - bl sub_080A7EE0 - adds r1, r0, #0 - movs r0, #2 - strb r0, [r1, #0xa] - str r4, [r1, #0x50] - movs r0, #0x19 - bl sub_080A7EE0 - adds r1, r0, #0 - movs r0, #3 - strb r0, [r1, #0xa] - str r4, [r1, #0x50] - movs r0, #1 - b _080AB16E - .align 2, 0 -_080AB168: .4byte gEntCount -_080AB16C: - movs r0, #0 -_080AB16E: - pop {r4, pc} - - thumb_func_start sub_080AB170 -sub_080AB170: @ 0x080AB170 - push {r4, r5, r6, lr} - adds r4, r0, #0 - ldr r6, [r4, #0x50] - ldr r0, [r6, #4] - cmp r0, #0 - bne _080AB180 - bl DeleteThisEntity -_080AB180: - ldrb r0, [r4, #0xc] - cmp r0, #0 - bne _080AB1AA - movs r0, #1 - strb r0, [r4, #0xc] - adds r2, r4, #0 - adds r2, #0x29 - ldrb r1, [r2] - subs r0, #0x3a - ands r0, r1 - strb r0, [r2] - movs r0, #5 - strb r0, [r4, #0x1e] - ldrb r1, [r2] - subs r0, #0xd - ands r0, r1 - movs r1, #3 - orrs r0, r1 - strb r0, [r2] - ldr r0, _080AB1C8 @ =gUnk_080FD460 - str r0, [r4, #0x48] -_080AB1AA: - ldr r5, [r6, #0x50] - adds r0, r4, #0 - adds r0, #0x7c - adds r2, r5, #0 - adds r2, #0x7c - ldrb r1, [r0] - adds r3, r0, #0 - ldrb r2, [r2] - cmp r1, r2 - beq _080AB1CC - ldrb r1, [r4, #0x10] - movs r0, #0x80 - orrs r0, r1 - b _080AB1D2 - .align 2, 0 -_080AB1C8: .4byte gUnk_080FD460 -_080AB1CC: - ldrb r1, [r4, #0x10] - movs r0, #0x7f - ands r0, r1 -_080AB1D2: - strb r0, [r4, #0x10] - adds r0, r5, #0 - adds r0, #0x7c - ldrb r0, [r0] - strb r0, [r3] - adds r0, r5, #0 - adds r0, #0x5a - ldrb r1, [r0] - movs r0, #0x20 - ands r0, r1 - cmp r0, #0 - bne _080AB208 - movs r0, #0x1f - ands r0, r1 - ldr r1, _080AB204 @ =gUnk_0812A4A8 - adds r0, r0, r1 - movs r2, #0 - ldrsb r2, [r0, r2] - movs r3, #1 - ldrsb r3, [r0, r3] - adds r0, r5, #0 - adds r1, r4, #0 - bl sub_0806FA90 - b _080AB216 - .align 2, 0 -_080AB204: .4byte gUnk_0812A4A8 -_080AB208: - movs r3, #0xa - rsbs r3, r3, #0 - adds r0, r5, #0 - adds r1, r4, #0 - movs r2, #0 - bl sub_0806FA90 -_080AB216: - movs r1, #0x2e - ldrsh r0, [r6, r1] - movs r2, #0x2e - ldrsh r1, [r4, r2] - subs r0, r0, r1 - ldrb r2, [r4, #0xa] - muls r0, r2, r0 - adds r3, r2, #0 - cmp r0, #0 - bge _080AB22C - adds r0, #3 -_080AB22C: - asrs r0, r0, #2 - ldrh r5, [r4, #0x2e] - adds r0, r0, r5 - strh r0, [r4, #0x2e] - movs r1, #0x32 - ldrsh r0, [r6, r1] - movs r5, #0x32 - ldrsh r1, [r4, r5] - subs r0, r0, r1 - muls r0, r3, r0 - cmp r0, #0 - bge _080AB246 - adds r0, #3 -_080AB246: - asrs r0, r0, #2 - ldrh r1, [r4, #0x32] - adds r0, r0, r1 - strh r0, [r4, #0x32] - movs r3, #0x36 - ldrsh r0, [r6, r3] - movs r5, #0x36 - ldrsh r1, [r4, r5] - subs r0, r0, r1 - muls r0, r2, r0 - cmp r0, #0 - bge _080AB260 - adds r0, #3 -_080AB260: - asrs r0, r0, #2 - ldrh r1, [r4, #0x36] - adds r0, r0, r1 - strh r0, [r4, #0x36] - pop {r4, r5, r6, pc} - .align 2, 0 - - thumb_func_start sub_080AB26C -sub_080AB26C: @ 0x080AB26C - push {lr} - adds r2, r0, #0 - ldrb r1, [r2, #0xc] - cmp r1, #0 - bne _080AB28C - movs r0, #1 - strb r0, [r2, #0xc] - movs r0, #5 - strb r0, [r2, #0xe] - strb r1, [r2, #0x1e] - adds r3, r2, #0 - adds r3, #0x29 - ldrb r1, [r3] - subs r0, #0x3e - ands r0, r1 - strb r0, [r3] -_080AB28C: - ldrb r0, [r2, #0xe] - subs r0, #1 - strb r0, [r2, #0xe] - lsls r0, r0, #0x18 - cmp r0, #0 - bne _080AB29E - bl DeleteThisEntity - b _080AB2A4 -_080AB29E: - ldrb r0, [r2, #0x1e] - adds r0, #1 - strb r0, [r2, #0x1e] -_080AB2A4: - pop {pc} - .align 2, 0 - - thumb_func_start sub_080AB2A8 -sub_080AB2A8: @ 0x080AB2A8 - push {r4, r5, lr} - adds r5, r0, #0 - ldr r4, _080AB2C0 @ =gUnk_0812A4C8 - bl GetNextFunction - lsls r0, r0, #2 - adds r0, r0, r4 - ldr r1, [r0] - adds r0, r5, #0 - bl _call_via_r1 - pop {r4, r5, pc} - .align 2, 0 -_080AB2C0: .4byte gUnk_0812A4C8 - - thumb_func_start sub_080AB2C4 -sub_080AB2C4: @ 0x080AB2C4 - push {lr} - ldr r2, _080AB2D8 @ =gUnk_0812A4DC - ldrb r1, [r0, #0xc] - lsls r1, r1, #2 - adds r1, r1, r2 - ldr r1, [r1] - bl _call_via_r1 - pop {pc} - .align 2, 0 -_080AB2D8: .4byte gUnk_0812A4DC - - thumb_func_start sub_080AB2DC -sub_080AB2DC: @ 0x080AB2DC - push {r4, r5, lr} - adds r2, r0, #0 - adds r5, r2, #0 - adds r5, #0x41 - ldrb r1, [r5] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - beq _080AB314 - movs r0, #3 - strb r0, [r2, #0xc] - ldrb r1, [r2, #0x10] - movs r4, #0x7f - adds r0, r4, #0 - ands r0, r1 - strb r0, [r2, #0x10] - adds r0, r2, #0 - movs r1, #0x53 - bl InitializeAnimation - ldrb r0, [r5] - ands r4, r0 - cmp r4, #0 - bne _080AB314 - movs r0, #4 - rsbs r0, r0, #0 - bl ModHealth -_080AB314: - pop {r4, r5, pc} - .align 2, 0 - - thumb_func_start sub_080AB318 -sub_080AB318: @ 0x080AB318 - push {r4, r5, r6, r7, lr} - mov r7, r8 - push {r7} - adds r6, r0, #0 - movs r4, #1 - movs r0, #1 - mov r8, r0 - mov r1, r8 - strb r1, [r6, #0xc] - ldr r0, _080AB3D8 @ =0xFFFF0000 - str r0, [r6, #0x20] - movs r2, #0x2e - ldrsh r1, [r6, r2] - ldr r2, _080AB3DC @ =gRoomControls - ldrh r0, [r2, #6] - subs r1, r1, r0 - asrs r1, r1, #4 - movs r3, #0x3f - ands r1, r3 - movs r5, #0x32 - ldrsh r0, [r6, r5] - ldrh r2, [r2, #8] - subs r0, r0, r2 - asrs r0, r0, #4 - ands r0, r3 - lsls r0, r0, #6 - orrs r1, r0 - adds r0, r6, #0 - adds r0, #0x76 - strh r1, [r0] - ldr r0, [r6, #0x50] - adds r1, r6, #0 - bl CopyPosition - movs r1, #0x80 - lsls r1, r1, #5 - ldrb r2, [r6, #0x15] - adds r0, r6, #0 - bl sub_0806F5BC - adds r2, r6, #0 - adds r2, #0x29 - ldrb r1, [r2] - movs r0, #8 - rsbs r0, r0, #0 - ands r0, r1 - orrs r0, r4 - strb r0, [r2] - ldr r0, [r6, #0x50] - ldr r0, [r0, #0x34] - str r0, [r6, #0x34] - adds r0, r6, #0 - movs r1, #0x51 - bl InitializeAnimation - ldr r0, _080AB3E0 @ =0x000001B5 - bl SoundReq - adds r0, r6, #0 - bl sub_080AB4F8 - movs r1, #0x2e - ldrsh r2, [r6, r1] - movs r1, #0 - ldrsb r1, [r0, r1] - adds r5, r2, r1 - movs r2, #0x32 - ldrsh r1, [r6, r2] - ldrb r0, [r0, #1] - lsls r0, r0, #0x18 - asrs r0, r0, #0x18 - adds r7, r1, r0 - adds r0, r6, #0 - adds r1, r5, #0 - adds r2, r7, #0 - bl sub_080041DC - adds r4, r0, #0 - bl Random - adds r1, r0, #0 - ldr r0, _080AB3E4 @ =0x000001FF - ands r1, r0 - ldr r0, _080AB3E8 @ =gScreenTransition - ldr r0, [r0] - mov r2, r8 - ands r0, r2 - cmp r0, #0 - beq _080AB3EC - adds r4, r4, r1 - movs r0, #0x80 - lsls r0, r0, #3 - cmp r4, r0 - ble _080AB3F4 - adds r4, r0, #0 - b _080AB3F4 - .align 2, 0 -_080AB3D8: .4byte 0xFFFF0000 -_080AB3DC: .4byte gRoomControls -_080AB3E0: .4byte 0x000001B5 -_080AB3E4: .4byte 0x000001FF -_080AB3E8: .4byte gScreenTransition -_080AB3EC: - subs r4, r4, r1 - cmp r4, #0x1f - bgt _080AB3F4 - movs r4, #0x20 -_080AB3F4: - lsls r1, r4, #8 - ldr r0, [r6, #0x34] - bl __divsi3 - lsls r0, r0, #0xd - str r0, [r6, #0x20] - adds r0, r6, #0 - adds r1, r5, #0 - adds r2, r7, #0 - bl sub_080045B4 - strb r0, [r6, #0x15] - pop {r3} - mov r8, r3 - pop {r4, r5, r6, r7, pc} - .align 2, 0 - - thumb_func_start sub_080AB414 -sub_080AB414: @ 0x080AB414 - push {r4, lr} - adds r4, r0, #0 - bl GetNextFrame - adds r0, r4, #0 - bl sub_0806F69C - adds r0, r4, #0 - movs r1, #0 - bl sub_08003FC4 - cmp r0, #0 - bne _080AB446 - movs r0, #2 - strb r0, [r4, #0xc] - movs r0, #0xf - strb r0, [r4, #0xe] - adds r0, r4, #0 - movs r1, #0x54 - bl InitializeAnimation - adds r0, r4, #0 - bl sub_080AB4A4 - b _080AB458 -_080AB446: - ldrb r0, [r4, #0xe] - adds r0, #1 - strb r0, [r4, #0xe] - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #0xe0 - bls _080AB458 - bl DeleteThisEntity -_080AB458: - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_080AB45C -sub_080AB45C: @ 0x080AB45C - push {r4, lr} - adds r4, r0, #0 - bl GetNextFrame - adds r0, r4, #0 - adds r0, #0x5a - ldrb r1, [r0] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - beq _080AB486 - movs r0, #3 - strb r0, [r4, #0xc] - ldrb r1, [r4, #0x10] - movs r0, #0x7f - ands r0, r1 - strb r0, [r4, #0x10] - adds r0, r4, #0 - movs r1, #0x53 - bl InitializeAnimation -_080AB486: - pop {r4, pc} - - thumb_func_start sub_080AB488 -sub_080AB488: @ 0x080AB488 - push {r4, lr} - adds r4, r0, #0 - bl GetNextFrame - adds r4, #0x5a - ldrb r1, [r4] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - beq _080AB4A0 - bl DeleteThisEntity -_080AB4A0: - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_080AB4A4 -sub_080AB4A4: @ 0x080AB4A4 - push {r4, r5, r6, r7, lr} - adds r6, r0, #0 - adds r7, r6, #0 - adds r7, #0x76 - ldrh r4, [r7] - movs r1, #0x2e - ldrsh r0, [r6, r1] - ldr r3, _080AB4F4 @ =gRoomControls - ldrh r1, [r3, #6] - subs r0, r0, r1 - asrs r5, r0, #4 - movs r2, #0x3f - ands r5, r2 - movs r1, #0x32 - ldrsh r0, [r6, r1] - ldrh r1, [r3, #8] - subs r0, r0, r1 - asrs r0, r0, #4 - ands r0, r2 - lsls r0, r0, #6 - orrs r5, r0 - cmp r4, r5 - beq _080AB4F2 - strh r5, [r7] - adds r0, r6, #0 - bl GetTileTypeByEntity - cmp r0, #0x13 - beq _080AB4E2 - cmp r0, #0x34 - bne _080AB4F2 -_080AB4E2: - movs r0, #0xd3 - lsls r0, r0, #2 - ldrh r1, [r7] - adds r2, r6, #0 - adds r2, #0x38 - ldrb r2, [r2] - bl sub_0807B7D8 -_080AB4F2: - pop {r4, r5, r6, r7, pc} - .align 2, 0 -_080AB4F4: .4byte gRoomControls - - thumb_func_start sub_080AB4F8 -sub_080AB4F8: @ 0x080AB4F8 - adds r1, r0, #0 - ldrb r0, [r1, #0xa] - lsls r0, r0, #5 - ldrb r1, [r1, #0xf] - lsls r1, r1, #1 - orrs r0, r1 - ldr r1, _080AB50C @ =gUnk_0812A4EC - adds r0, r0, r1 - bx lr - .align 2, 0 -_080AB50C: .4byte gUnk_0812A4EC - - thumb_func_start sub_080AB510 -sub_080AB510: @ 0x080AB510 - push {r4, r5, lr} - adds r5, r0, #0 - ldr r4, _080AB528 @ =gUnk_0812A58C - bl GetNextFunction - lsls r0, r0, #2 - adds r0, r0, r4 - ldr r1, [r0] - adds r0, r5, #0 - bl _call_via_r1 - pop {r4, r5, pc} - .align 2, 0 -_080AB528: .4byte gUnk_0812A58C - - thumb_func_start sub_080AB52C -sub_080AB52C: @ 0x080AB52C - push {lr} - ldr r2, _080AB540 @ =gUnk_0812A5A0 - ldrb r1, [r0, #0xc] - lsls r1, r1, #2 - adds r1, r1, r2 - ldr r1, [r1] - bl _call_via_r1 - pop {pc} - .align 2, 0 -_080AB540: .4byte gUnk_0812A5A0 - - thumb_func_start sub_080AB544 -sub_080AB544: @ 0x080AB544 - push {lr} - adds r2, r0, #0 - adds r0, #0x3d - movs r1, #0 - ldrsb r1, [r0, r1] - movs r0, #4 - rsbs r0, r0, #0 - cmp r1, r0 - bge _080AB57C - movs r1, #2 - movs r0, #2 - strb r0, [r2, #0xc] - adds r0, r2, #0 - adds r0, #0x3e - ldrb r0, [r0] - strb r0, [r2, #0x15] - ldrb r0, [r2, #0xa] - eors r1, r0 - lsls r1, r1, #3 - ldrb r0, [r2, #0x15] - subs r0, r0, r1 - adds r0, #1 - cmp r0, #2 - bhi _080AB576 - strb r1, [r2, #0x15] -_080AB576: - movs r0, #0xa0 - lsls r0, r0, #2 - strh r0, [r2, #0x24] -_080AB57C: - pop {pc} - .align 2, 0 - - thumb_func_start sub_080AB580 -sub_080AB580: @ 0x080AB580 - push {lr} - movs r1, #1 - strb r1, [r0, #0xc] - ldrb r1, [r0, #0xa] - lsls r1, r1, #3 - strb r1, [r0, #0x15] - ldr r1, _080AB598 @ =0x0000FFFC - strh r1, [r0, #0x36] - ldrb r1, [r0, #0xa] - bl InitializeAnimation - pop {pc} - .align 2, 0 -_080AB598: .4byte 0x0000FFFC - - thumb_func_start sub_080AB59C -sub_080AB59C: @ 0x080AB59C - push {r4, lr} - adds r4, r0, #0 - bl GetNextFrame - adds r0, r4, #0 - bl sub_080AF090 - cmp r0, #0 - bne _080AB5BC - adds r0, r4, #0 - movs r1, #2 - movs r2, #0 - bl CreateFx - bl DeleteThisEntity -_080AB5BC: - adds r0, r4, #0 - bl sub_080AB5F4 - pop {r4, pc} - - thumb_func_start sub_080AB5C4 -sub_080AB5C4: @ 0x080AB5C4 - push {r4, lr} - adds r4, r0, #0 - bl GetNextFrame - adds r0, r4, #0 - bl sub_080AF090 - adds r0, r4, #0 - bl sub_080AB634 - cmp r0, #0 - bne _080AB5F0 - ldrh r0, [r4, #0x2a] - cmp r0, #0 - beq _080AB5F0 - adds r0, r4, #0 - movs r1, #2 - movs r2, #0 - bl CreateFx - bl DeleteThisEntity -_080AB5F0: - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_080AB5F4 -sub_080AB5F4: @ 0x080AB5F4 - push {r4, lr} - adds r4, r0, #0 - bl sub_080043E8 - cmp r0, #2 - beq _080AB61A - cmp r0, #2 - bhi _080AB60A - cmp r0, #1 - beq _080AB610 - b _080AB62E -_080AB60A: - cmp r0, #3 - beq _080AB624 - b _080AB62E -_080AB610: - adds r0, r4, #0 - bl CreateItemOnGround - movs r0, #1 - b _080AB630 -_080AB61A: - adds r0, r4, #0 - bl sub_080043A8 - movs r0, #1 - b _080AB630 -_080AB624: - adds r0, r4, #0 - bl CreateChestSpawner - movs r0, #1 - b _080AB630 -_080AB62E: - movs r0, #0 -_080AB630: - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_080AB634 -sub_080AB634: @ 0x080AB634 - push {r4, r5, r6, lr} - adds r6, r0, #0 - ldr r0, [r6, #0x50] - movs r5, #0 - adds r4, r0, #0 - adds r4, #0x20 -_080AB640: - ldr r1, [r4] - cmp r1, #0 - beq _080AB684 - adds r0, r6, #0 - bl sub_080177A0 - cmp r0, #0 - beq _080AB684 - ldr r1, [r4] - ldrb r0, [r1, #0xc] - cmp r0, #2 - bhi _080AB67A - movs r0, #3 - strb r0, [r1, #0xc] - ldr r1, [r4] - movs r0, #0x1e - strb r0, [r1, #0xe] - ldr r2, [r4] - ldrb r0, [r2, #0x18] - movs r3, #4 - rsbs r3, r3, #0 - adds r1, r3, #0 - ands r0, r1 - strb r0, [r2, #0x18] - ldr r0, [r4] - movs r1, #0x45 - movs r2, #0 - bl CreateFx -_080AB67A: - adds r0, r6, #0 - bl DeleteEntity - movs r0, #1 - b _080AB68E -_080AB684: - adds r4, #4 - adds r5, #1 - cmp r5, #3 - bls _080AB640 - movs r0, #0 -_080AB68E: - pop {r4, r5, r6, pc} - - thumb_func_start sub_080AB690 -sub_080AB690: @ 0x080AB690 - push {r4, lr} - adds r4, r0, #0 - ldr r0, [r4, #0x50] - ldrb r0, [r0, #0x18] - lsls r0, r0, #0x1e - cmp r0, #0 - bne _080AB6A2 - bl DeleteThisEntity -_080AB6A2: - ldr r0, _080AB6B4 @ =gUnk_0812A5E8 - ldrb r1, [r4, #0xc] - lsls r1, r1, #2 - adds r1, r1, r0 - ldr r1, [r1] - adds r0, r4, #0 - bl _call_via_r1 - pop {r4, pc} - .align 2, 0 -_080AB6B4: .4byte gUnk_0812A5E8 - - thumb_func_start sub_080AB6B8 -sub_080AB6B8: @ 0x080AB6B8 - push {lr} - adds r2, r0, #0 - ldr r0, [r2, #0x50] - ldr r0, [r0, #0x2c] - str r0, [r2, #0x74] - ldrb r0, [r2, #0xa] - cmp r0, #0 - bne _080AB6E8 - movs r0, #1 - strb r0, [r2, #0xc] - ldrb r1, [r2, #0x10] - movs r0, #0x7f - ands r0, r1 - strb r0, [r2, #0x10] - ldr r0, _080AB6E4 @ =gUnk_0812A614 - str r0, [r2, #0x48] - adds r0, r2, #0 - movs r1, #0 - bl InitializeAnimation - b _080AB6F8 - .align 2, 0 -_080AB6E4: .4byte gUnk_0812A614 -_080AB6E8: - movs r0, #2 - strb r0, [r2, #0xc] - movs r0, #4 - strb r0, [r2, #0xf] - ldrb r1, [r2, #0xe] - adds r0, r2, #0 - bl InitializeAnimation -_080AB6F8: - pop {pc} - .align 2, 0 - - thumb_func_start sub_080AB6FC -sub_080AB6FC: @ 0x080AB6FC - push {r4, lr} - adds r4, r0, #0 - bl GetNextFrame - adds r0, r4, #0 - adds r0, #0x5a - ldrb r1, [r0] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - beq _080AB724 - movs r0, #2 - strb r0, [r4, #0xc] - adds r0, r4, #0 - movs r1, #1 - bl InitializeAnimation - adds r0, r4, #0 - bl sub_080AB758 -_080AB724: - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_080AB728 -sub_080AB728: @ 0x080AB728 - push {r4, lr} - adds r4, r0, #0 - bl GetNextFrame - ldr r2, [r4, #0x50] - ldr r1, [r2, #0x2c] - ldr r0, [r4, #0x74] - subs r1, r1, r0 - ldr r0, [r4, #0x2c] - adds r0, r0, r1 - str r0, [r4, #0x2c] - ldr r0, [r2, #0x2c] - str r0, [r4, #0x74] - adds r0, r4, #0 - bl sub_080AB888 - ldr r0, [r4, #0x50] - ldrb r0, [r0, #0xf] - cmp r0, #0 - bne _080AB754 - bl DeleteThisEntity -_080AB754: - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_080AB758 -sub_080AB758: @ 0x080AB758 - push {r4, r5, r6, r7, lr} - mov r7, r8 - push {r7} - sub sp, #4 - adds r5, r0, #0 - movs r6, #6 - movs r7, #0 - movs r4, #0 - movs r0, #0x32 - ldrsh r2, [r5, r0] - ldr r1, _080AB818 @ =gRoomControls - ldrh r0, [r1, #8] - adds r0, #0xd4 - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - mov r8, r1 - cmp r2, r0 - bhi _080AB7B4 - movs r3, #7 -_080AB77E: - adds r0, r4, #0 - ands r0, r3 - cmp r0, #7 - bne _080AB798 - adds r0, r5, #0 - movs r1, #4 - adds r2, r6, #0 - str r3, [sp] - bl sub_080AB844 - adds r6, #0x3e - adds r7, #0x3e - ldr r3, [sp] -_080AB798: - adds r4, #1 - ands r4, r3 - movs r1, #0x32 - ldrsh r0, [r5, r1] - adds r0, r0, r7 - lsls r1, r4, #3 - adds r2, r0, r1 - ldr r0, _080AB818 @ =gRoomControls - ldrh r0, [r0, #8] - adds r0, #0xd4 - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - cmp r2, r0 - bls _080AB77E -_080AB7B4: - movs r4, #0 - movs r1, #0x32 - ldrsh r0, [r5, r1] - adds r2, r0, r7 - mov r1, r8 - ldrh r0, [r1, #8] - adds r0, #0xd4 - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - cmp r2, r0 - bhi _080AB802 - movs r3, #3 -_080AB7CC: - adds r0, r4, #0 - ands r0, r3 - cmp r0, #3 - bne _080AB7E6 - adds r0, r5, #0 - movs r1, #3 - adds r2, r6, #0 - str r3, [sp] - bl sub_080AB844 - adds r6, #0x1e - adds r7, #0x1e - ldr r3, [sp] -_080AB7E6: - adds r4, #1 - ands r4, r3 - movs r1, #0x32 - ldrsh r0, [r5, r1] - adds r0, r0, r7 - lsls r1, r4, #3 - adds r2, r0, r1 - ldr r0, _080AB818 @ =gRoomControls - ldrh r0, [r0, #8] - adds r0, #0xd4 - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - cmp r2, r0 - bls _080AB7CC -_080AB802: - movs r0, #2 - ands r0, r4 - cmp r0, #0 - beq _080AB81C - adds r0, r5, #0 - movs r1, #2 - adds r2, r6, #0 - bl sub_080AB844 - adds r6, #0xe - b _080AB830 - .align 2, 0 -_080AB818: .4byte gRoomControls -_080AB81C: - movs r0, #1 - ands r4, r0 - cmp r4, #0 - beq _080AB830 - adds r0, r5, #0 - movs r1, #1 - adds r2, r6, #0 - bl sub_080AB844 - adds r6, #6 -_080AB830: - adds r0, r5, #0 - movs r1, #6 - adds r2, r6, #0 - bl sub_080AB844 - add sp, #4 - pop {r3} - mov r8, r3 - pop {r4, r5, r6, r7, pc} - .align 2, 0 - - thumb_func_start sub_080AB844 -sub_080AB844: @ 0x080AB844 - push {r4, r5, r6, r7, lr} - adds r5, r0, #0 - adds r7, r1, #0 - adds r6, r2, #0 - movs r0, #0x1c - bl sub_080A7EE0 - adds r4, r0, #0 - cmp r4, #0 - beq _080AB880 - movs r0, #1 - strb r0, [r4, #0xa] - strb r7, [r4, #0xe] - ldr r0, [r5, #0x50] - str r0, [r4, #0x50] - lsls r3, r6, #0x10 - adds r0, r5, #0 - adds r1, r4, #0 - movs r2, #0 - bl PositionRelative - cmp r7, #1 - beq _080AB87C - ldr r0, _080AB878 @ =gUnk_0812A61C - b _080AB87E - .align 2, 0 -_080AB878: .4byte gUnk_0812A61C -_080AB87C: - ldr r0, _080AB884 @ =gUnk_0812A614 -_080AB87E: - str r0, [r4, #0x48] -_080AB880: - pop {r4, r5, r6, r7, pc} - .align 2, 0 -_080AB884: .4byte gUnk_0812A614 - - thumb_func_start sub_080AB888 -sub_080AB888: @ 0x080AB888 - push {lr} - adds r2, r0, #0 - ldrb r0, [r2, #0xf] - subs r0, #1 - strb r0, [r2, #0xf] - movs r3, #0 - ldrb r0, [r2, #0xe] - cmp r0, #3 - beq _080AB8A4 - cmp r0, #3 - ble _080AB8B6 - cmp r0, #4 - beq _080AB8A6 - b _080AB8B6 -_080AB8A4: - movs r3, #1 -_080AB8A6: - ldr r0, _080AB8C4 @ =gUnk_0812A5F4 - ldrb r1, [r2, #0xf] - lsls r1, r1, #1 - adds r1, r1, r3 - lsls r1, r1, #2 - adds r1, r1, r0 - ldr r0, [r1] - str r0, [r2, #0x48] -_080AB8B6: - ldrb r0, [r2, #0xf] - cmp r0, #0 - bne _080AB8C0 - movs r0, #4 - strb r0, [r2, #0xf] -_080AB8C0: - pop {pc} - .align 2, 0 -_080AB8C4: .4byte gUnk_0812A5F4 - - thumb_func_start sub_080AB8C8 -sub_080AB8C8: @ 0x080AB8C8 - push {r4, lr} - adds r4, r0, #0 - ldr r1, _080AB8E4 @ =gUnk_0812A6B4 - ldrb r0, [r4, #0xc] - lsls r0, r0, #2 - adds r0, r0, r1 - ldr r1, [r0] - adds r0, r4, #0 - bl _call_via_r1 - adds r0, r4, #0 - bl sub_080AB9DC - pop {r4, pc} - .align 2, 0 -_080AB8E4: .4byte gUnk_0812A6B4 - - thumb_func_start sub_080AB8E8 -sub_080AB8E8: @ 0x080AB8E8 - push {r4, lr} - adds r4, r0, #0 - ldrb r0, [r4, #0xc] - adds r0, #1 - movs r1, #0 - strb r0, [r4, #0xc] - movs r0, #0xa0 - lsls r0, r0, #1 - strh r0, [r4, #0x24] - str r1, [r4, #0x34] - ldrb r0, [r4, #0xa] - cmp r0, #0 - bne _080AB90E - bl Random - movs r1, #0x18 - ands r0, r1 - strb r0, [r4, #0x15] - str r4, [r4, #0x50] -_080AB90E: - adds r0, r4, #0 - movs r1, #0 - bl InitializeAnimation - ldrb r0, [r4, #0xa] - cmp r0, #3 - bhi _080AB936 - movs r0, #0x1d - bl sub_080A7EE0 - adds r1, r0, #0 - ldrb r0, [r4, #0xa] - adds r0, #1 - strb r0, [r1, #0xa] - ldr r0, [r4, #0x50] - str r0, [r1, #0x50] - str r4, [r1, #0x54] - adds r0, r4, #0 - bl CopyPosition -_080AB936: - adds r1, r4, #0 - adds r1, #0x68 - movs r2, #7 -_080AB93C: - ldrh r0, [r4, #0x2e] - strh r0, [r1] - adds r1, #2 - ldrh r0, [r4, #0x32] - strh r0, [r1] - adds r1, #2 - subs r2, #1 - cmp r2, #0 - bge _080AB93C - pop {r4, pc} - - thumb_func_start sub_080AB950 -sub_080AB950: @ 0x080AB950 - push {r4, r5, lr} - adds r4, r0, #0 - ldrb r0, [r4, #0xa] - cmp r0, #0 - bne _080AB99C - adds r0, r4, #0 - bl ProcessMovement - ldrb r0, [r4, #0x15] - lsrs r0, r0, #3 - ldr r1, _080AB994 @ =gUnk_0812A6C4 - lsls r5, r0, #1 - adds r1, r5, r1 - ldrh r1, [r1] - ldrh r0, [r4, #0x2a] - ands r0, r1 - cmp r0, #0 - bne _080AB980 - ldrb r1, [r4, #0x15] - adds r0, r4, #0 - bl sub_080AB9FC - cmp r0, #0 - beq _080AB9D4 -_080AB980: - bl Random - ldr r2, _080AB998 @ =gUnk_0812A6BC - movs r1, #1 - ands r1, r0 - adds r1, r1, r5 - adds r1, r1, r2 - ldrb r0, [r1] - strb r0, [r4, #0x15] - b _080AB9D4 - .align 2, 0 -_080AB994: .4byte gUnk_0812A6C4 -_080AB998: .4byte gUnk_0812A6BC -_080AB99C: - ldr r0, [r4, #0x50] - cmp r0, #0 - bne _080AB9A6 - bl DeleteThisEntity -_080AB9A6: - ldr r0, [r4, #0x50] - ldr r0, [r0, #4] - cmp r0, #0 - bne _080AB9B2 - bl DeleteThisEntity -_080AB9B2: - ldr r1, [r4, #0x54] - cmp r1, #0 - beq _080AB9D0 - ldr r0, [r1, #4] - cmp r0, #0 - beq _080AB9D0 - adds r0, r1, #0 - adds r0, #0x68 - ldrh r0, [r0] - strh r0, [r4, #0x2e] - adds r0, r1, #0 - adds r0, #0x6a - ldrh r0, [r0] - strh r0, [r4, #0x32] - b _080AB9D4 -_080AB9D0: - bl DeleteThisEntity -_080AB9D4: - adds r0, r4, #0 - bl GetNextFrame - pop {r4, r5, pc} - - thumb_func_start sub_080AB9DC -sub_080AB9DC: @ 0x080AB9DC - push {r4, lr} - adds r4, r0, #0 - adds r0, #0x6c - adds r1, r4, #0 - adds r1, #0x68 - movs r2, #0x1c - bl MemCopy - ldrh r1, [r4, #0x2e] - adds r0, r4, #0 - adds r0, #0x84 - strh r1, [r0] - ldrh r1, [r4, #0x32] - adds r0, #2 - strh r1, [r0] - pop {r4, pc} - - thumb_func_start sub_080AB9FC -sub_080AB9FC: @ 0x080AB9FC - push {r4, r5, r6, r7, lr} - adds r5, r0, #0 - adds r4, r1, #0 - adds r0, #0x38 - ldrb r0, [r0] - bl GetLayerByIndex - movs r1, #0x2e - ldrsh r3, [r5, r1] - ldr r2, _080ABA4C @ =gRoomControls - ldrh r1, [r2, #6] - subs r3, r3, r1 - asrs r3, r3, #4 - movs r6, #0x3f - ands r3, r6 - movs r7, #0x32 - ldrsh r1, [r5, r7] - ldrh r2, [r2, #8] - subs r1, r1, r2 - asrs r1, r1, #4 - ands r1, r6 - lsls r1, r1, #6 - orrs r3, r1 - ldr r1, _080ABA50 @ =gUnk_080B4488 - lsrs r4, r4, #3 - lsls r4, r4, #1 - adds r4, r4, r1 - movs r2, #0 - ldrsh r1, [r4, r2] - adds r3, r3, r1 - ldr r7, _080ABA54 @ =0x00002004 - adds r0, r0, r7 - adds r0, r0, r3 - ldrb r0, [r0] - cmp r0, #0x1f - bls _080ABA58 - cmp r0, #0x3f - bhi _080ABA58 - movs r0, #1 - b _080ABA5A - .align 2, 0 -_080ABA4C: .4byte gRoomControls -_080ABA50: .4byte gUnk_080B4488 -_080ABA54: .4byte 0x00002004 -_080ABA58: - movs r0, #0 -_080ABA5A: - pop {r4, r5, r6, r7, pc} - - thumb_func_start sub_080ABA5C -sub_080ABA5C: @ 0x080ABA5C - push {lr} - ldr r2, _080ABA70 @ =gUnk_0812A6CC - ldrb r1, [r0, #0xc] - lsls r1, r1, #2 - adds r1, r1, r2 - ldr r1, [r1] - bl _call_via_r1 - pop {pc} - .align 2, 0 -_080ABA70: .4byte gUnk_0812A6CC - - thumb_func_start sub_080ABA74 -sub_080ABA74: @ 0x080ABA74 - push {lr} - adds r2, r0, #0 - ldrb r0, [r2, #0xc] - adds r0, #1 - strb r0, [r2, #0xc] - adds r0, r2, #0 - adds r0, #0x86 - ldrh r0, [r0] - strh r0, [r2, #0x24] - ldrh r1, [r2, #0x2e] - adds r0, r2, #0 - adds r0, #0x68 - strh r1, [r0] - ldrh r0, [r2, #0x32] - adds r1, r2, #0 - adds r1, #0x6a - strh r0, [r1] - adds r0, r2, #0 - adds r0, #0x84 - ldrh r1, [r0] - subs r0, #0x18 - strh r1, [r0] - ldrb r0, [r2, #0xa] - cmp r0, #6 - bhi _080ABAAA - movs r0, #0 - b _080ABAAC -_080ABAAA: - movs r0, #1 -_080ABAAC: - strb r0, [r2, #0xb] - ldr r0, _080ABAC8 @ =gUnk_0812A6D4 - ldrb r1, [r2, #0xa] - adds r0, r1, r0 - ldrb r3, [r0] - ldrb r0, [r2, #0xb] - cmp r0, #0 - bne _080ABACC - movs r0, #8 - strb r0, [r2, #0x15] - ldrh r0, [r2, #0x32] - adds r0, r0, r3 - strh r0, [r2, #0x32] - b _080ABAD6 - .align 2, 0 -_080ABAC8: .4byte gUnk_0812A6D4 -_080ABACC: - movs r0, #0x10 - strb r0, [r2, #0x15] - ldrh r0, [r2, #0x2e] - adds r0, r0, r3 - strh r0, [r2, #0x2e] -_080ABAD6: - adds r0, r2, #0 - bl InitializeAnimation - pop {pc} - .align 2, 0 - - thumb_func_start sub_080ABAE0 -sub_080ABAE0: @ 0x080ABAE0 - push {r4, r5, r6, lr} - adds r4, r0, #0 - bl sub_080AF090 - ldrb r0, [r4, #0xb] - cmp r0, #0 - bne _080ABAFE - movs r1, #0x2e - ldrsh r0, [r4, r1] - adds r1, r4, #0 - adds r1, #0x68 - movs r2, #0 - ldrsh r1, [r1, r2] - subs r3, r0, r1 - b _080ABB0C -_080ABAFE: - movs r0, #0x32 - ldrsh r1, [r4, r0] - adds r0, r4, #0 - adds r0, #0x6a - movs r2, #0 - ldrsh r0, [r0, r2] - subs r3, r1, r0 -_080ABB0C: - adds r0, r4, #0 - adds r0, #0x6c - movs r1, #0 - ldrsh r2, [r0, r1] - adds r6, r0, #0 - cmp r2, #0 - bge _080ABB1E - rsbs r3, r3, #0 - rsbs r2, r2, #0 -_080ABB1E: - lsls r1, r3, #0x10 - lsls r0, r2, #0x10 - cmp r1, r0 - bls _080ABB84 - ldrb r0, [r4, #0x15] - movs r1, #0x10 - eors r0, r1 - strb r0, [r4, #0x15] - ldrb r0, [r4, #0xb] - adds r5, r0, #0 - cmp r5, #0 - bne _080ABB4E - adds r0, r4, #0 - adds r0, #0x68 - ldrh r0, [r0] - strh r0, [r4, #0x2e] - ldrb r2, [r4, #0x18] - lsls r1, r2, #0x19 - lsrs r1, r1, #0x1f - movs r0, #1 - eors r1, r0 - lsls r1, r1, #6 - subs r0, #0x42 - b _080ABB62 -_080ABB4E: - adds r0, r4, #0 - adds r0, #0x6a - ldrh r0, [r0] - strh r0, [r4, #0x32] - ldrb r2, [r4, #0x18] - lsrs r1, r2, #7 - movs r0, #1 - eors r1, r0 - lsls r1, r1, #7 - movs r0, #0x7f -_080ABB62: - ands r0, r2 - orrs r0, r1 - strb r0, [r4, #0x18] - cmp r3, #0 - ble _080ABB84 - lsls r0, r5, #0x18 - cmp r0, #0 - bne _080ABB7C - ldrh r0, [r6] - ldrh r2, [r4, #0x2e] - adds r0, r0, r2 - strh r0, [r4, #0x2e] - b _080ABB84 -_080ABB7C: - ldrh r0, [r6] - ldrh r1, [r4, #0x32] - adds r0, r0, r1 - strh r0, [r4, #0x32] -_080ABB84: - adds r0, r4, #0 - bl GetNextFrame - pop {r4, r5, r6, pc} - - thumb_func_start sub_080ABB8C -sub_080ABB8C: @ 0x080ABB8C - push {r4, r5, lr} - adds r5, r0, #0 - ldr r4, _080ABBA4 @ =gUnk_0812A7D4 - bl GetNextFunction - lsls r0, r0, #2 - adds r0, r0, r4 - ldr r1, [r0] - adds r0, r5, #0 - bl _call_via_r1 - pop {r4, r5, pc} - .align 2, 0 -_080ABBA4: .4byte gUnk_0812A7D4 - - thumb_func_start sub_080ABBA8 -sub_080ABBA8: @ 0x080ABBA8 - push {lr} - adds r2, r0, #0 - ldrb r0, [r2, #0xa] - cmp r0, #1 - beq _080ABBC4 - cmp r0, #1 - bgt _080ABBDC - cmp r0, #0 - bne _080ABBDC - ldr r0, _080ABBC0 @ =gUnk_0812A7EC - b _080ABBC6 - .align 2, 0 -_080ABBC0: .4byte gUnk_0812A7EC -_080ABBC4: - ldr r0, _080ABBD8 @ =gUnk_0812A7F8 -_080ABBC6: - ldrb r1, [r2, #0xc] - lsls r1, r1, #2 - adds r1, r1, r0 - ldr r1, [r1] - adds r0, r2, #0 - bl _call_via_r1 - b _080ABBEC - .align 2, 0 -_080ABBD8: .4byte gUnk_0812A7F8 -_080ABBDC: - ldr r0, _080ABBF0 @ =gUnk_0812A800 - ldrb r1, [r2, #0xc] - lsls r1, r1, #2 - adds r1, r1, r0 - ldr r1, [r1] - adds r0, r2, #0 - bl _call_via_r1 -_080ABBEC: - pop {pc} - .align 2, 0 -_080ABBF0: .4byte gUnk_0812A800 - - thumb_func_start sub_080ABBF4 -sub_080ABBF4: @ 0x080ABBF4 - push {r4, lr} - adds r4, r0, #0 - adds r0, #0x41 - ldrb r1, [r0] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - beq _080ABC52 - ldrb r0, [r4, #0xa] - cmp r0, #0 - blt _080ABC52 - cmp r0, #1 - ble _080ABC3E - cmp r0, #2 - bne _080ABC52 - movs r0, #0x3f - ands r0, r1 - cmp r0, #3 - beq _080ABC32 - cmp r0, #3 - bgt _080ABC24 - cmp r0, #0 - beq _080ABC2A - b _080ABC52 -_080ABC24: - cmp r0, #0x14 - beq _080ABC32 - b _080ABC52 -_080ABC2A: - movs r0, #4 - rsbs r0, r0, #0 - bl ModHealth -_080ABC32: - adds r0, r4, #0 - bl CreateDust - bl DeleteThisEntity - b _080ABC52 -_080ABC3E: - movs r0, #0x3f - ands r0, r1 - cmp r0, #0 - bne _080ABC52 - movs r0, #2 - rsbs r0, r0, #0 - bl ModHealth - bl DeleteThisEntity -_080ABC52: - pop {r4, pc} - - thumb_func_start sub_080ABC54 -sub_080ABC54: @ 0x080ABC54 - push {r4, lr} - adds r4, r0, #0 - bl sub_0806F520 - cmp r0, #0 - bne _080ABC6E - adds r0, r4, #0 - movs r1, #2 - movs r2, #0 - bl CreateFx - bl DeleteThisEntity -_080ABC6E: - ldr r0, _080ABC80 @ =gUnk_0812A808 - ldrb r1, [r4, #0xd] - lsls r1, r1, #2 - adds r1, r1, r0 - ldr r1, [r1] - adds r0, r4, #0 - bl _call_via_r1 - pop {r4, pc} - .align 2, 0 -_080ABC80: .4byte gUnk_0812A808 - - thumb_func_start sub_080ABC84 -sub_080ABC84: @ 0x080ABC84 - movs r1, #2 - strb r1, [r0, #0xd] - bx lr - .align 2, 0 - - thumb_func_start nullsub_542 -nullsub_542: @ 0x080ABC8C - bx lr - .align 2, 0 - - thumb_func_start sub_080ABC90 -sub_080ABC90: @ 0x080ABC90 - push {r4, lr} - adds r4, r0, #0 - bl sub_0806F3E4 - cmp r0, #0 - beq _080ABCBE - movs r0, #2 - rsbs r0, r0, #0 - bl ModHealth - ldr r0, _080ABCC0 @ =gPlayerEntity - movs r1, #0x7a - bl sub_0800449C - bl sub_08079D84 - adds r0, r4, #0 - movs r1, #2 - movs r2, #0 - bl CreateFx - bl DeleteThisEntity -_080ABCBE: - pop {r4, pc} - .align 2, 0 -_080ABCC0: .4byte gPlayerEntity - - thumb_func_start sub_080ABCC4 -sub_080ABCC4: @ 0x080ABCC4 - push {r4, r5, lr} - adds r5, r0, #0 - movs r4, #0 - movs r0, #1 - strb r0, [r5, #0xc] - bl Random - movs r1, #0x3f - ands r0, r1 - adds r0, #0x30 - strb r0, [r5, #0xe] - strb r4, [r5, #0xf] - bl Random - movs r1, #0x1f - ands r0, r1 - strb r0, [r5, #0x15] - movs r0, #0x2e - ldrsh r1, [r5, r0] - ldr r2, _080ABD3C @ =gRoomControls - ldrh r0, [r2, #6] - subs r1, r1, r0 - asrs r1, r1, #4 - movs r3, #0x3f - ands r1, r3 - movs r4, #0x32 - ldrsh r0, [r5, r4] - ldrh r2, [r2, #8] - subs r0, r0, r2 - asrs r0, r0, #4 - ands r0, r3 - lsls r0, r0, #6 - orrs r1, r0 - adds r0, r5, #0 - adds r0, #0x74 - strh r1, [r0] - ldrh r0, [r0] - movs r1, #2 - bl GetTileType - adds r1, r5, #0 - adds r1, #0x76 - strh r0, [r1] - adds r2, r5, #0 - adds r2, #0x29 - ldrb r1, [r2] - movs r0, #8 - rsbs r0, r0, #0 - ands r0, r1 - movs r1, #2 - orrs r0, r1 - strb r0, [r2] - adds r0, r5, #0 - movs r1, #0 - bl InitializeAnimation - ldr r0, _080ABD40 @ =0x0000014B - bl SoundReq - pop {r4, r5, pc} - .align 2, 0 -_080ABD3C: .4byte gRoomControls -_080ABD40: .4byte 0x0000014B - - thumb_func_start sub_080ABD44 -sub_080ABD44: @ 0x080ABD44 - push {r4, lr} - adds r4, r0, #0 - ldrb r0, [r4, #0xe] - subs r0, #1 - strb r0, [r4, #0xe] - lsls r0, r0, #0x18 - cmp r0, #0 - bne _080ABD60 - movs r0, #2 - strb r0, [r4, #0xc] - adds r0, r4, #0 - movs r1, #1 - bl InitializeAnimation -_080ABD60: - adds r0, r4, #0 - bl sub_080AF090 - adds r0, r4, #0 - bl GetNextFrame - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_080ABD70 -sub_080ABD70: @ 0x080ABD70 - push {r4, r5, lr} - adds r5, r0, #0 - bl GetNextFrame - adds r2, r5, #0 - adds r2, #0x5a - ldrb r1, [r2] - movs r0, #0x10 - ands r0, r1 - cmp r0, #0 - beq _080ABDEE - movs r0, #0xef - ands r0, r1 - movs r1, #0 - strb r0, [r2] - strh r1, [r5, #0x24] - movs r0, #0x2e - ldrsh r1, [r5, r0] - ldr r2, _080ABDDC @ =gRoomControls - ldrh r0, [r2, #6] - subs r1, r1, r0 - asrs r1, r1, #4 - movs r3, #0x3f - ands r1, r3 - movs r4, #0x32 - ldrsh r0, [r5, r4] - ldrh r2, [r2, #8] - subs r0, r0, r2 - asrs r0, r0, #4 - ands r0, r3 - lsls r0, r0, #6 - orrs r1, r0 - adds r4, r5, #0 - adds r4, #0x74 - strh r1, [r4] - ldrh r0, [r4] - movs r1, #2 - bl GetTileType - adds r1, r5, #0 - adds r1, #0x76 - strh r0, [r1] - ldrh r1, [r1] - cmp r1, #0x13 - beq _080ABDE4 - ldr r0, _080ABDE0 @ =0x00000315 - cmp r1, r0 - bne _080ABDEE - ldrh r1, [r4] - movs r0, #0x6e - movs r2, #2 - bl SetTileType - b _080ABDEE - .align 2, 0 -_080ABDDC: .4byte gRoomControls -_080ABDE0: .4byte 0x00000315 -_080ABDE4: - ldrh r1, [r4] - movs r0, #0x6d - movs r2, #2 - bl SetTileType -_080ABDEE: - adds r0, r5, #0 - adds r0, #0x5a - ldrb r1, [r0] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - beq _080ABE00 - bl DeleteThisEntity -_080ABE00: - pop {r4, r5, pc} - .align 2, 0 - - thumb_func_start sub_080ABE04 -sub_080ABE04: @ 0x080ABE04 - push {r4, r5, lr} - adds r4, r0, #0 - bl Random - adds r5, r0, #0 - movs r0, #0xff - ands r5, r0 - movs r0, #1 - strb r0, [r4, #0xc] - ldr r0, _080ABE48 @ =0xFFFF0000 - str r0, [r4, #0x20] - ldrh r0, [r4, #0x36] - subs r0, #0xa0 - strh r0, [r4, #0x36] - ldr r3, _080ABE4C @ =gRoomControls - ldrh r2, [r3, #6] - ldr r1, _080ABE50 @ =0x00007FF0 - adds r0, r1, #0 - ands r0, r2 - movs r2, #8 - orrs r0, r2 - strh r0, [r4, #0x2e] - ldrh r0, [r3, #8] - ands r1, r0 - orrs r1, r2 - strh r1, [r4, #0x32] - movs r0, #0x2e - ldrsh r1, [r4, r0] - movs r0, #0x10 - ands r0, r5 - cmp r0, #0 - beq _080ABE54 - adds r1, #0x10 - b _080ABE56 - .align 2, 0 -_080ABE48: .4byte 0xFFFF0000 -_080ABE4C: .4byte gRoomControls -_080ABE50: .4byte 0x00007FF0 -_080ABE54: - adds r1, #0xc0 -_080ABE56: - movs r0, #0xe0 - ands r0, r5 - lsrs r0, r0, #1 - adds r0, r1, r0 - strh r0, [r4, #0x2e] - movs r0, #0xf - ands r5, r0 - lsls r0, r5, #4 - ldrh r1, [r4, #0x32] - adds r0, r0, r1 - strh r0, [r4, #0x32] - adds r0, r4, #0 - bl sub_08004168 - adds r0, r4, #0 - movs r1, #0 - bl InitializeAnimation - ldr r0, _080ABE84 @ =0x0000012D - bl SoundReq - pop {r4, r5, pc} - .align 2, 0 -_080ABE84: .4byte 0x0000012D - - thumb_func_start sub_080ABE88 -sub_080ABE88: @ 0x080ABE88 - push {r4, lr} - adds r4, r0, #0 - movs r1, #0xc0 - lsls r1, r1, #5 - bl sub_08003FC4 - cmp r0, #0 - bne _080ABEA6 - adds r0, r4, #0 - movs r1, #4 - movs r2, #0 - bl CreateFx - bl DeleteThisEntity -_080ABEA6: - pop {r4, pc} - - thumb_func_start sub_080ABEA8 -sub_080ABEA8: @ 0x080ABEA8 - push {r4, lr} - adds r4, r0, #0 - movs r2, #1 - strb r2, [r4, #0xc] - movs r0, #0x60 - strb r0, [r4, #0xe] - adds r3, r4, #0 - adds r3, #0x29 - ldrb r1, [r3] - subs r0, #0x68 - ands r0, r1 - movs r1, #2 - orrs r0, r1 - strb r0, [r3] - strb r2, [r4, #0x1c] - ldrb r0, [r4, #0xb] - cmp r0, #0 - bne _080ABEDA - bl Random - movs r1, #0xf - ands r0, r1 - lsls r0, r0, #1 - strb r0, [r4, #0x15] - b _080ABEEC -_080ABEDA: - adds r0, r4, #0 - movs r1, #0 - bl sub_08049F84 - strb r0, [r4, #0x15] - ldr r1, _080ABEFC @ =0x0000013F - adds r0, r4, #0 - bl sub_0801D2B4 -_080ABEEC: - adds r0, r4, #0 - movs r1, #0 - bl InitializeAnimation - ldr r0, _080ABF00 @ =0x00000193 - bl SoundReq - pop {r4, pc} - .align 2, 0 -_080ABEFC: .4byte 0x0000013F -_080ABF00: .4byte 0x00000193 - - thumb_func_start sub_080ABF04 -sub_080ABF04: @ 0x080ABF04 - push {r4, lr} - adds r4, r0, #0 - bl sub_080040A8 - cmp r0, #0 - bne _080ABF14 - bl DeleteThisEntity -_080ABF14: - adds r0, r4, #0 - bl sub_0806F69C - adds r0, r4, #0 - bl GetNextFrame - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_080ABF24 -sub_080ABF24: @ 0x080ABF24 - push {r4, r5, lr} - adds r5, r0, #0 - ldr r4, _080ABF3C @ =gUnk_0812A84C - bl GetNextFunction - lsls r0, r0, #2 - adds r0, r0, r4 - ldr r1, [r0] - adds r0, r5, #0 - bl _call_via_r1 - pop {r4, r5, pc} - .align 2, 0 -_080ABF3C: .4byte gUnk_0812A84C - - thumb_func_start sub_080ABF40 -sub_080ABF40: @ 0x080ABF40 - push {r4, lr} - adds r4, r0, #0 - ldrb r0, [r4, #0xc] - cmp r0, #0 - bne _080ABF66 - movs r0, #1 - strb r0, [r4, #0xc] - ldr r1, _080ABFA0 @ =gPlayerEntity - adds r0, r4, #0 - bl GetFacingDirection - strb r0, [r4, #0x15] - adds r0, r4, #0 - movs r1, #0 - bl InitializeAnimation - ldr r0, _080ABFA4 @ =0x00000199 - bl SoundReq -_080ABF66: - ldrh r2, [r4, #0x36] - movs r0, #0x36 - ldrsh r1, [r4, r0] - movs r0, #6 - rsbs r0, r0, #0 - cmp r1, r0 - bge _080ABF78 - adds r0, r2, #2 - strh r0, [r4, #0x36] -_080ABF78: - adds r0, r4, #0 - bl sub_080AF090 - ldrh r0, [r4, #0x2a] - cmp r0, #0 - beq _080ABF88 - bl DeleteThisEntity -_080ABF88: - adds r0, r4, #0 - bl GetNextFrame - adds r0, r4, #0 - bl sub_080A7EB0 - cmp r0, #0 - beq _080ABF9C - bl DeleteThisEntity -_080ABF9C: - pop {r4, pc} - .align 2, 0 -_080ABFA0: .4byte gPlayerEntity -_080ABFA4: .4byte 0x00000199 - - thumb_func_start sub_080ABFA8 -sub_080ABFA8: @ 0x080ABFA8 - push {lr} - bl DeleteThisEntity - pop {pc} - - thumb_func_start sub_080ABFB0 -sub_080ABFB0: @ 0x080ABFB0 - push {r4, r5, lr} - adds r5, r0, #0 - ldr r4, _080ABFC8 @ =gUnk_0812A954 - bl GetNextFunction - lsls r0, r0, #2 - adds r0, r0, r4 - ldr r1, [r0] - adds r0, r5, #0 - bl _call_via_r1 - pop {r4, r5, pc} - .align 2, 0 -_080ABFC8: .4byte gUnk_0812A954 - - thumb_func_start sub_080ABFCC -sub_080ABFCC: @ 0x080ABFCC - push {lr} - ldr r2, _080ABFE0 @ =gUnk_0812A968 - ldrb r1, [r0, #0xc] - lsls r1, r1, #2 - adds r1, r1, r2 - ldr r1, [r1] - bl _call_via_r1 - pop {pc} - .align 2, 0 -_080ABFE0: .4byte gUnk_0812A968 - - thumb_func_start sub_080ABFE4 -sub_080ABFE4: @ 0x080ABFE4 - push {lr} - bl DeleteThisEntity - pop {pc} - - thumb_func_start sub_080ABFEC -sub_080ABFEC: @ 0x080ABFEC - push {r4, lr} - adds r4, r0, #0 - ldrb r1, [r4, #0xa] - adds r1, #1 - bl InitializeAnimation - ldrb r1, [r4, #0xa] - cmp r1, #0 - beq _080AC030 - cmp r1, #1 - beq _080AC048 - movs r1, #0 - movs r0, #2 - strb r0, [r4, #0xc] - strb r1, [r4, #0xe] - movs r0, #0xff - strb r0, [r4, #0xf] - ldr r1, _080AC028 @ =gUnk_0812A97C - ldrb r0, [r4, #0xb] - lsls r0, r0, #1 - adds r0, r0, r1 - ldrh r0, [r0] - strh r0, [r4, #0x24] - adds r1, r4, #0 - adds r1, #0x44 - movs r0, #0x88 - strb r0, [r1] - ldr r0, _080AC02C @ =0x00000193 - b _080AC06A - .align 2, 0 -_080AC028: .4byte gUnk_0812A97C -_080AC02C: .4byte 0x00000193 -_080AC030: - movs r0, #1 - strb r0, [r4, #0xc] - strb r1, [r4, #0xe] - movs r0, #7 - strb r0, [r4, #0xf] - adds r1, r4, #0 - adds r1, #0x85 - movs r0, #0x18 - strb r0, [r1] - subs r1, #0x41 - movs r0, #0x88 - b _080AC058 -_080AC048: - strb r1, [r4, #0xc] - ldrb r1, [r4, #0x10] - movs r0, #0x7f - ands r0, r1 - strb r0, [r4, #0x10] - adds r1, r4, #0 - adds r1, #0x85 - movs r0, #0x18 -_080AC058: - strb r0, [r1] - ldr r0, [r4, #0x50] - adds r1, r4, #0 - bl CopyPositionAndSpriteOffset - ldrh r0, [r4, #0x36] - subs r0, #0x14 - strh r0, [r4, #0x36] - ldr r0, _080AC070 @ =0x00000149 -_080AC06A: - bl SoundReq - pop {r4, pc} - .align 2, 0 -_080AC070: .4byte 0x00000149 - - thumb_func_start sub_080AC074 -sub_080AC074: @ 0x080AC074 - push {r4, lr} - adds r4, r0, #0 - ldr r0, [r4, #0x50] - ldr r0, [r0, #4] - cmp r0, #0 - bne _080AC084 - bl DeleteThisEntity -_080AC084: - ldr r0, [r4, #0x50] - adds r1, r4, #0 - bl CopyPositionAndSpriteOffset - ldrh r0, [r4, #0x36] - subs r0, #0x14 - strh r0, [r4, #0x36] - adds r1, r4, #0 - adds r1, #0x85 - ldrb r0, [r1] - cmp r0, #0 - beq _080AC0B2 - subs r0, #1 - strb r0, [r1] - movs r1, #0xff - ands r0, r1 - movs r1, #7 - ands r0, r1 - cmp r0, #0 - bne _080AC0B2 - ldr r0, _080AC0E8 @ =0x00000149 - bl SoundReq -_080AC0B2: - adds r0, r4, #0 - bl GetNextFrame - adds r0, r4, #0 - adds r0, #0x5a - ldrb r1, [r0] - movs r0, #1 - ands r0, r1 - cmp r0, #0 - beq _080AC0FE - ldrb r0, [r4, #0xa] - cmp r0, #0 - bne _080AC0F0 - movs r0, #2 - strb r0, [r4, #0xc] - ldr r1, _080AC0EC @ =gPlayerEntity - adds r0, r4, #0 - bl GetFacingDirection - strb r0, [r4, #0x15] - movs r0, #0xc0 - lsls r0, r0, #1 - strh r0, [r4, #0x24] - adds r0, #0x13 - bl SoundReq - b _080AC0F8 - .align 2, 0 -_080AC0E8: .4byte 0x00000149 -_080AC0EC: .4byte gPlayerEntity -_080AC0F0: - movs r0, #3 - strb r0, [r4, #0xc] - movs r0, #0x10 - strb r0, [r4, #0xe] -_080AC0F8: - ldrh r0, [r4, #0x36] - subs r0, #0x28 - strh r0, [r4, #0x36] -_080AC0FE: - pop {r4, pc} - - thumb_func_start sub_080AC100 -sub_080AC100: @ 0x080AC100 - push {r4, lr} - adds r4, r0, #0 - ldrh r2, [r4, #0x36] - movs r0, #0x36 - ldrsh r1, [r4, r0] - movs r0, #6 - rsbs r0, r0, #0 - cmp r1, r0 - bge _080AC116 - adds r0, r2, #3 - strh r0, [r4, #0x36] -_080AC116: - adds r0, r4, #0 - bl sub_080AF090 - ldrh r0, [r4, #0x2a] - cmp r0, #0 - beq _080AC126 - bl DeleteThisEntity -_080AC126: - adds r0, r4, #0 - bl GetNextFrame - adds r0, r4, #0 - bl sub_080A7EB0 - cmp r0, #0 - beq _080AC13A - bl DeleteThisEntity -_080AC13A: - ldrb r0, [r4, #0xe] - cmp r0, #0x1d - bhi _080AC160 - adds r0, #1 - strb r0, [r4, #0xe] - movs r1, #0xff - ands r0, r1 - ldrb r1, [r4, #0xf] - ands r0, r1 - cmp r0, #0 - bne _080AC160 - ldr r1, _080AC164 @ =gPlayerEntity - adds r0, r4, #0 - bl GetFacingDirection - adds r1, r0, #0 - adds r0, r4, #0 - bl sub_08004596 -_080AC160: - pop {r4, pc} - .align 2, 0 -_080AC164: .4byte gPlayerEntity - - thumb_func_start sub_080AC168 -sub_080AC168: @ 0x080AC168 - push {r4, r5, r6, lr} - adds r4, r0, #0 - bl GetNextFrame - ldr r0, [r4, #0x34] - ldr r1, _080AC1C0 @ =0xFFFF8000 - adds r0, r0, r1 - str r0, [r4, #0x34] - ldrb r0, [r4, #0xe] - subs r0, #1 - strb r0, [r4, #0xe] - lsls r0, r0, #0x18 - lsrs r6, r0, #0x18 - cmp r6, #0 - bne _080AC1F8 - movs r0, #4 - strb r0, [r4, #0xc] - strb r0, [r4, #0xe] - bl Random - adds r5, r0, #0 - movs r0, #7 - ands r5, r0 - ldr r0, _080AC1C4 @ =gUnk_0812A982 - adds r0, r5, r0 - ldrb r0, [r0] - strb r0, [r4, #0xf] - ldr r1, _080AC1C8 @ =gPlayerEntity - adds r0, r4, #0 - bl GetFacingDirection - adds r1, r0, #0 - ldr r0, [r4, #0x50] - adds r0, #0x84 - ldrb r0, [r0] - cmp r0, #3 - bne _080AC1D0 - ldr r0, _080AC1CC @ =gUnk_0812A98A - adds r0, r5, r0 - ldrb r0, [r0] - subs r1, r1, r0 - strb r6, [r4, #0xb] - b _080AC1F2 - .align 2, 0 -_080AC1C0: .4byte 0xFFFF8000 -_080AC1C4: .4byte gUnk_0812A982 -_080AC1C8: .4byte gPlayerEntity -_080AC1CC: .4byte gUnk_0812A98A -_080AC1D0: - cmp r0, #2 - bne _080AC1E4 - ldr r0, _080AC1E0 @ =gUnk_0812A98A - adds r0, r5, r0 - ldrb r0, [r0] - subs r1, r1, r0 - movs r0, #1 - b _080AC1F0 - .align 2, 0 -_080AC1E0: .4byte gUnk_0812A98A -_080AC1E4: - ldr r0, _080AC1FC @ =gUnk_0812A98A - adds r0, r5, r0 - ldrb r0, [r0] - lsrs r0, r0, #1 - subs r1, r1, r0 - movs r0, #2 -_080AC1F0: - strb r0, [r4, #0xb] -_080AC1F2: - movs r0, #0x1f - ands r1, r0 - strb r1, [r4, #0x15] -_080AC1F8: - pop {r4, r5, r6, pc} - .align 2, 0 -_080AC1FC: .4byte gUnk_0812A98A - - thumb_func_start sub_080AC200 -sub_080AC200: @ 0x080AC200 - push {r4, r5, lr} - adds r4, r0, #0 - bl GetNextFrame - ldrb r0, [r4, #0xe] - subs r0, #1 - strb r0, [r4, #0xe] - movs r5, #0xff - lsls r0, r0, #0x18 - cmp r0, #0 - bne _080AC270 - movs r0, #0x10 - strb r0, [r4, #0xe] - movs r0, #0x21 - bl sub_080A7EE0 - adds r1, r0, #0 - cmp r1, #0 - beq _080AC23C - movs r0, #2 - strb r0, [r1, #0xa] - ldrb r0, [r4, #0xb] - strb r0, [r1, #0xb] - ldrb r0, [r4, #0x15] - strb r0, [r1, #0x15] - ldr r0, [r4, #0x50] - str r0, [r1, #0x50] - adds r0, r4, #0 - bl CopyPosition -_080AC23C: - ldrb r0, [r4, #0xf] - subs r0, #1 - strb r0, [r4, #0xf] - ands r0, r5 - cmp r0, #0 - bne _080AC24C - bl DeleteThisEntity -_080AC24C: - ldr r0, [r4, #0x50] - adds r0, #0x84 - ldrb r0, [r0] - cmp r0, #3 - bne _080AC25C - ldrb r0, [r4, #0x15] - adds r0, #3 - b _080AC26A -_080AC25C: - cmp r0, #2 - bne _080AC266 - ldrb r0, [r4, #0x15] - adds r0, #3 - b _080AC26A -_080AC266: - ldrb r0, [r4, #0x15] - adds r0, #2 -_080AC26A: - movs r1, #0x1f - ands r0, r1 - strb r0, [r4, #0x15] -_080AC270: - pop {r4, r5, pc} - .align 2, 0 - - thumb_func_start sub_080AC274 -sub_080AC274: @ 0x080AC274 - push {r4, r5, lr} - adds r4, r0, #0 - ldr r0, [r4, #0x50] - ldr r0, [r0, #4] - cmp r0, #0 - bne _080AC284 - bl DeleteThisEntity -_080AC284: - ldr r1, _080AC2BC @ =gUnk_0812A994 - ldrb r0, [r4, #0xb] - lsls r0, r0, #2 - adds r0, r0, r1 - ldr r1, [r0] - adds r0, r4, #0 - bl _call_via_r1 - ldrb r0, [r4, #0xa] - cmp r0, #0 - bne _080AC2C0 - ldrb r0, [r4, #0x1b] - movs r1, #0xc0 - orrs r0, r1 - strb r0, [r4, #0x1b] - ldrb r0, [r4, #0x19] - orrs r0, r1 - strb r0, [r4, #0x19] - adds r2, r4, #0 - adds r2, #0x29 - ldrb r1, [r2] - movs r0, #8 - rsbs r0, r0, #0 - ands r0, r1 - movs r1, #1 - orrs r0, r1 - strb r0, [r2] - b _080AC324 - .align 2, 0 -_080AC2BC: .4byte gUnk_0812A994 -_080AC2C0: - ldr r5, [r4, #0x50] - ldrb r2, [r5, #0x1b] - lsrs r2, r2, #6 - lsls r2, r2, #6 - ldrb r3, [r4, #0x1b] - movs r1, #0x3f - adds r0, r1, #0 - ands r0, r3 - orrs r0, r2 - strb r0, [r4, #0x1b] - ldrb r0, [r5, #0x19] - lsrs r0, r0, #6 - lsls r0, r0, #6 - ldrb r2, [r4, #0x19] - ands r1, r2 - orrs r1, r0 - strb r1, [r4, #0x19] - adds r0, r5, #0 - adds r0, #0x29 - ldrb r1, [r0] - lsls r1, r1, #0x1d - lsrs r1, r1, #0x1d - subs r1, #2 - adds r3, r4, #0 - adds r3, #0x29 - movs r0, #7 - ands r1, r0 - ldrb r2, [r3] - movs r0, #8 - rsbs r0, r0, #0 - ands r0, r2 - orrs r0, r1 - strb r0, [r3] - ldrb r0, [r5, #0x19] - lsrs r0, r0, #6 - cmp r0, #3 - bne _080AC31C - adds r0, r5, #0 - adds r0, #0x7c - ldrb r0, [r0] - cmp r0, #0 - bne _080AC31C - ldrb r1, [r4, #0x10] - movs r0, #0x7f - ands r0, r1 - b _080AC322 -_080AC31C: - ldrb r1, [r4, #0x10] - movs r0, #0x80 - orrs r0, r1 -_080AC322: - strb r0, [r4, #0x10] -_080AC324: - pop {r4, r5, pc} - .align 2, 0 - - thumb_func_start sub_080AC328 -sub_080AC328: @ 0x080AC328 - push {lr} - ldr r2, _080AC33C @ =gUnk_0812A9A8 - ldrb r1, [r0, #0xc] - lsls r1, r1, #2 - adds r1, r1, r2 - ldr r1, [r1] - bl _call_via_r1 - pop {pc} - .align 2, 0 -_080AC33C: .4byte gUnk_0812A9A8 - - thumb_func_start sub_080AC340 -sub_080AC340: @ 0x080AC340 - push {r4, r5, lr} - adds r5, r0, #0 - bl sub_080AC5E4 - cmp r0, #0 - beq _080AC380 - movs r2, #1 - movs r4, #1 - strb r4, [r5, #0xc] - movs r0, #0xc - strb r0, [r5, #0x1e] - ldrb r1, [r5, #0x18] - subs r0, #0x10 - ands r0, r1 - orrs r0, r2 - strb r0, [r5, #0x18] - bl Random - ldr r1, _080AC384 @ =gUnk_0812A9B4 - ands r0, r4 - lsls r0, r0, #1 - adds r0, r0, r1 - ldrh r0, [r0] - adds r1, r5, #0 - adds r1, #0x7a - strh r0, [r1] - subs r1, #0x42 - movs r0, #2 - strb r0, [r1] - adds r0, r5, #0 - bl sub_080AC388 -_080AC380: - pop {r4, r5, pc} - .align 2, 0 -_080AC384: .4byte gUnk_0812A9B4 - - thumb_func_start sub_080AC388 -sub_080AC388: @ 0x080AC388 - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - adds r5, r0, #0 - ldr r1, _080AC3E4 @ =gUnk_0812A9B8 - ldrb r0, [r5, #0xa] - adds r0, r0, r1 - ldrb r3, [r0] - ldr r0, [r5, #0x50] - mov sl, r0 - ldrb r0, [r0, #0x14] - movs r1, #0x80 - mov sb, r1 - mov r1, sb - eors r1, r0 - adds r6, r5, #0 - adds r6, #0x7c - ldrh r4, [r6] - lsrs r0, r4, #8 - subs r1, r1, r0 - adds r2, r5, #0 - adds r2, #0x7a - ldrh r7, [r2] - mov ip, r7 - movs r7, #0 - ldrsh r0, [r2, r7] - cmp r0, #0 - bge _080AC404 - subs r0, r1, r3 - movs r7, #0xff - mov r8, r7 - ands r0, r7 - cmp r0, #0x7f - bhi _080AC3E8 - movs r1, #0 - ldrsh r0, [r2, r1] - rsbs r0, r0, #0 - strh r0, [r2] - mov r2, sl - ldrb r0, [r2, #0x14] - mov r7, sb - eors r0, r7 - subs r0, r0, r3 - b _080AC422 - .align 2, 0 -_080AC3E4: .4byte gUnk_0812A9B8 -_080AC3E8: - mov r2, ip - adds r0, r4, r2 - strh r0, [r6] - adds r0, r1, r3 - mov r7, r8 - ands r0, r7 - cmp r0, #0x80 - bls _080AC45A - mov r1, sl - ldrb r0, [r1, #0x14] - mov r2, sb - eors r0, r2 - adds r0, r0, r3 - b _080AC44E -_080AC404: - adds r0, r1, r3 - movs r7, #0xff - mov r8, r7 - ands r0, r7 - cmp r0, #0x80 - bls _080AC432 - movs r1, #0 - ldrsh r0, [r2, r1] - rsbs r0, r0, #0 - strh r0, [r2] - mov r2, sl - ldrb r0, [r2, #0x14] - mov r7, sb - eors r0, r7 - adds r0, r0, r3 -_080AC422: - movs r1, #0xff - ands r0, r1 - lsls r0, r0, #8 - strh r0, [r6] - adds r0, r5, #0 - bl sub_080AC884 - b _080AC45A -_080AC432: - mov r2, ip - adds r0, r4, r2 - strh r0, [r6] - subs r0, r1, r3 - mov r7, r8 - ands r0, r7 - subs r0, #1 - cmp r0, #0x7e - bhi _080AC45A - mov r1, sl - ldrb r0, [r1, #0x14] - mov r2, sb - eors r0, r2 - subs r0, r0, r3 -_080AC44E: - movs r1, #0xff - ands r0, r1 - lsls r0, r0, #8 - movs r1, #0x80 - orrs r0, r1 - strh r0, [r6] -_080AC45A: - adds r0, r5, #0 - adds r0, #0x7c - ldrh r0, [r0] - lsrs r0, r0, #8 - strb r0, [r5, #0x15] - adds r0, r5, #0 - bl sub_080AC6F0 - adds r0, r5, #0 - bl sub_080AC760 - adds r0, r5, #0 - bl sub_080AC7C4 - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7, pc} - - thumb_func_start sub_080AC480 -sub_080AC480: @ 0x080AC480 - push {r4, lr} - adds r4, r0, #0 - ldrb r1, [r4, #0xe] - cmp r1, #0 - beq _080AC4BE - ldr r0, [r4, #0x50] - adds r0, #0x45 - ldrb r0, [r0] - cmp r0, #0 - bne _080AC4A2 - movs r0, #1 - strb r0, [r4, #0xc] - adds r1, r4, #0 - adds r1, #0x3f - movs r0, #0x1d - strb r0, [r1] - b _080AC50A -_080AC4A2: - subs r0, r1, #1 - strb r0, [r4, #0xe] - lsls r0, r0, #0x18 - cmp r0, #0 - bne _080AC50A - adds r0, r4, #0 - adds r0, #0x3f - movs r1, #0x1c - strb r1, [r0] - movs r0, #0x8b - lsls r0, r0, #1 - bl SoundReq - b _080AC50A -_080AC4BE: - ldrb r0, [r4, #0xf] - subs r0, #1 - strb r0, [r4, #0xf] - lsls r0, r0, #0x18 - cmp r0, #0 - bne _080AC4D6 - movs r0, #1 - strb r0, [r4, #0xc] - adds r1, r4, #0 - adds r1, #0x3f - movs r0, #0x1d - strb r0, [r1] -_080AC4D6: - adds r1, r4, #0 - adds r1, #0x7c - ldrh r2, [r1] - adds r0, r4, #0 - adds r0, #0x7a - movs r3, #0 - ldrsh r0, [r0, r3] - cmp r0, #0 - ble _080AC4EE - movs r3, #0xc0 - lsls r3, r3, #2 - b _080AC4F0 -_080AC4EE: - ldr r3, _080AC50C @ =0xFFFFFD00 -_080AC4F0: - adds r0, r2, r3 - strh r0, [r1] - lsrs r0, r0, #8 - strb r0, [r4, #0x15] - adds r0, r4, #0 - bl sub_080AC6F0 - adds r0, r4, #0 - bl sub_080AC760 - adds r0, r4, #0 - bl sub_080AC7C4 -_080AC50A: - pop {r4, pc} - .align 2, 0 -_080AC50C: .4byte 0xFFFFFD00 - - thumb_func_start sub_080AC510 -sub_080AC510: @ 0x080AC510 - push {r4, lr} - adds r4, r0, #0 - ldrb r0, [r4, #0xc] - cmp r0, #0 - bne _080AC556 - movs r3, #1 - movs r0, #1 - strb r0, [r4, #0xc] - ldr r2, _080AC558 @ =gUnk_0812A9BA - ldrb r1, [r4, #0xa] - lsls r0, r1, #1 - adds r0, r0, r1 - ldrb r1, [r4, #0xb] - adds r0, r0, r1 - subs r0, #1 - adds r0, r0, r2 - ldrb r0, [r0] - strb r0, [r4, #0x1e] - ldrb r1, [r4, #0x18] - movs r0, #4 - rsbs r0, r0, #0 - ands r0, r1 - orrs r0, r3 - strb r0, [r4, #0x18] - adds r1, r4, #0 - adds r1, #0x38 - movs r0, #2 - strb r0, [r1] - ldrh r1, [r4, #0xa] - movs r0, #0xc0 - lsls r0, r0, #2 - cmp r1, r0 - bne _080AC556 - ldr r0, _080AC55C @ =gUnk_080FD458 - str r0, [r4, #0x48] -_080AC556: - pop {r4, pc} - .align 2, 0 -_080AC558: .4byte gUnk_0812A9BA -_080AC55C: .4byte gUnk_080FD458 - - thumb_func_start sub_080AC560 -sub_080AC560: @ 0x080AC560 - push {r4, r5, lr} - adds r4, r0, #0 - ldr r5, [r4, #0x54] - ldr r0, [r5, #4] - cmp r0, #0 - bne _080AC570 - bl DeleteThisEntity -_080AC570: - ldrb r0, [r4, #0xc] - cmp r0, #0 - bne _080AC5A6 - movs r0, #1 - strb r0, [r4, #0xc] - adds r1, r4, #0 - adds r1, #0x38 - movs r0, #2 - strb r0, [r1] - ldrb r0, [r4, #0xa] - cmp r0, #0 - bne _080AC590 - ldr r0, _080AC58C @ =gUnk_080FD168 - b _080AC592 - .align 2, 0 -_080AC58C: .4byte gUnk_080FD168 -_080AC590: - ldr r0, _080AC5DC @ =gUnk_080FD448 -_080AC592: - str r0, [r4, #0x48] - movs r0, #0xff - strb r0, [r4, #0x1e] - ldrb r1, [r4, #0x18] - movs r0, #4 - rsbs r0, r0, #0 - ands r0, r1 - movs r1, #1 - orrs r0, r1 - strb r0, [r4, #0x18] -_080AC5A6: - adds r0, r4, #0 - adds r0, #0x79 - ldrb r2, [r0] - lsls r2, r2, #8 - ldr r3, _080AC5E0 @ =gSineTable - ldrb r0, [r5, #0x15] - lsls r0, r0, #1 - adds r0, r0, r3 - movs r1, #0 - ldrsh r0, [r0, r1] - adds r1, r0, #0 - muls r1, r2, r1 - ldr r0, [r5, #0x2c] - adds r0, r0, r1 - str r0, [r4, #0x2c] - ldrb r0, [r5, #0x15] - adds r0, #0x40 - lsls r0, r0, #1 - adds r0, r0, r3 - movs r1, #0 - ldrsh r0, [r0, r1] - adds r1, r0, #0 - muls r1, r2, r1 - ldr r0, [r5, #0x30] - subs r0, r0, r1 - str r0, [r4, #0x30] - pop {r4, r5, pc} - .align 2, 0 -_080AC5DC: .4byte gUnk_080FD448 -_080AC5E0: .4byte gSineTable - - thumb_func_start sub_080AC5E4 -sub_080AC5E4: @ 0x080AC5E4 - push {r4, r5, r6, r7, lr} - mov r7, sb - mov r6, r8 - push {r6, r7} - adds r5, r0, #0 - ldrb r4, [r5, #0xa] - cmp r4, #0 - bne _080AC668 - ldr r0, _080AC664 @ =gEntCount - ldrb r0, [r0] - cmp r0, #0x43 - bhi _080AC670 - adds r1, r5, #0 - adds r1, #0x79 - movs r0, #0x11 - strb r0, [r1] - movs r0, #0x22 - bl sub_080A7EE0 - adds r6, r0, #0 - ldrb r0, [r5, #0xa] - strb r0, [r6, #0xa] - movs r0, #1 - strb r0, [r6, #0xb] - ldr r0, [r5, #0x50] - str r0, [r6, #0x50] - adds r1, r6, #0 - adds r1, #0x79 - movs r0, #0x12 - strb r0, [r1] - str r6, [r5, #0x54] - movs r0, #0x22 - bl sub_080A7EE0 - adds r7, r0, #0 - ldrb r0, [r5, #0xa] - strb r0, [r7, #0xa] - movs r0, #2 - strb r0, [r7, #0xb] - ldr r0, [r5, #0x50] - str r0, [r7, #0x50] - adds r0, r7, #0 - adds r0, #0x79 - movs r1, #0x14 - mov r8, r1 - mov r1, r8 - strb r1, [r0] - str r7, [r6, #0x54] - movs r0, #0x22 - bl sub_080A7EE0 - ldrb r1, [r5, #0xa] - strb r1, [r0, #0xa] - movs r1, #3 - strb r1, [r0, #0xb] - ldr r1, [r5, #0x50] - str r1, [r0, #0x50] - str r4, [r0, #0x54] - adds r1, r0, #0 - adds r1, #0x79 - strb r4, [r1] - str r0, [r7, #0x54] - b _080AC6C8 - .align 2, 0 -_080AC664: .4byte gEntCount -_080AC668: - ldr r0, _080AC674 @ =gEntCount - ldrb r0, [r0] - cmp r0, #0x44 - bls _080AC678 -_080AC670: - movs r0, #0 - b _080AC6E8 - .align 2, 0 -_080AC674: .4byte gEntCount -_080AC678: - adds r1, r5, #0 - adds r1, #0x79 - movs r0, #0 - mov sb, r0 - movs r0, #0xf - strb r0, [r1] - movs r0, #0x22 - bl sub_080A7EE0 - adds r6, r0, #0 - ldrb r0, [r5, #0xa] - strb r0, [r6, #0xa] - movs r0, #1 - strb r0, [r6, #0xb] - ldr r0, [r5, #0x50] - str r0, [r6, #0x50] - adds r0, r6, #0 - adds r0, #0x79 - movs r1, #0x10 - mov r8, r1 - mov r1, r8 - strb r1, [r0] - str r6, [r5, #0x54] - movs r0, #0x22 - bl sub_080A7EE0 - adds r7, r0, #0 - ldrb r0, [r5, #0xa] - strb r0, [r7, #0xa] - movs r0, #2 - strb r0, [r7, #0xb] - ldr r0, [r5, #0x50] - str r0, [r7, #0x50] - mov r0, sb - str r0, [r7, #0x54] - adds r1, r7, #0 - adds r1, #0x79 - movs r0, #0x20 - strb r0, [r1] - str r7, [r6, #0x54] -_080AC6C8: - movs r0, #0x22 - bl sub_080A7EE0 - adds r6, r0, #0 - ldrb r0, [r5, #0xa] - strb r0, [r6, #0xa] - movs r0, #4 - strb r0, [r6, #0xb] - ldr r0, [r5, #0x50] - str r0, [r6, #0x50] - str r5, [r6, #0x54] - adds r0, r6, #0 - adds r0, #0x79 - mov r1, r8 - strb r1, [r0] - movs r0, #1 -_080AC6E8: - pop {r3, r4} - mov r8, r3 - mov sb, r4 - pop {r4, r5, r6, r7, pc} - - thumb_func_start sub_080AC6F0 -sub_080AC6F0: @ 0x080AC6F0 - push {r4, r5, lr} - adds r4, r0, #0 - ldrb r0, [r4, #0x15] - movs r2, #0x1f - ands r2, r0 - lsrs r0, r0, #5 - lsls r1, r0, #1 - adds r3, r1, r0 - ldr r1, _080AC724 @ =gUnk_0812A9C0 - ldrb r0, [r4, #0x14] - adds r0, r0, r1 - ldrb r0, [r0] - subs r0, r0, r3 - adds r5, r1, #0 - cmp r0, #3 - bhi _080AC73A - cmp r0, #1 - beq _080AC72E - cmp r0, #1 - blo _080AC728 - cmp r0, #2 - beq _080AC732 - cmp r2, #0x19 - bhi _080AC75C - b _080AC73A - .align 2, 0 -_080AC724: .4byte gUnk_0812A9C0 -_080AC728: - cmp r2, #6 - bls _080AC75C - b _080AC73A -_080AC72E: - subs r0, r2, #5 - b _080AC736 -_080AC732: - adds r0, r2, #0 - subs r0, #0xf -_080AC736: - cmp r0, #0xc - bls _080AC75C -_080AC73A: - adds r0, r3, #3 - cmp r2, #0x1a - bhi _080AC74E - adds r0, r3, #2 - cmp r2, #0x10 - bhi _080AC74E - adds r0, r3, #0 - cmp r2, #5 - bls _080AC74E - adds r0, #1 -_080AC74E: - movs r1, #0x18 - bl __modsi3 - strb r0, [r4, #0x14] - adds r0, r0, r5 - ldrb r0, [r0] - strb r0, [r4, #0x1e] -_080AC75C: - pop {r4, r5, pc} - .align 2, 0 - - thumb_func_start sub_080AC760 -sub_080AC760: @ 0x080AC760 - push {r4, r5, r6, lr} - adds r6, r0, #0 - ldr r4, [r6, #0x54] - ldrb r0, [r4, #0x15] - ldrb r3, [r6, #0x15] - subs r2, r0, r3 - movs r1, #0xff - ands r2, r1 - adds r0, r2, #0 - adds r0, #8 - ands r0, r1 - cmp r0, #0x10 - ble _080AC78A - cmp r2, #0x80 - ble _080AC784 - adds r0, r3, #0 - subs r0, #8 - b _080AC788 -_080AC784: - adds r0, r3, #0 - adds r0, #8 -_080AC788: - strb r0, [r4, #0x15] -_080AC78A: - ldr r5, [r4, #0x54] - ldr r0, [r5, #0x54] - cmp r0, #0 - bne _080AC79C - ldr r0, [r6, #0x50] - ldrb r0, [r0, #0x14] - movs r1, #0x80 - eors r0, r1 - b _080AC7BE -_080AC79C: - ldrb r0, [r5, #0x15] - ldrb r3, [r4, #0x15] - subs r2, r0, r3 - movs r1, #0xff - ands r2, r1 - adds r0, r2, #0 - adds r0, #8 - ands r0, r1 - cmp r0, #0x10 - ble _080AC7C0 - cmp r2, #0x80 - ble _080AC7BA - adds r0, r3, #0 - subs r0, #8 - b _080AC7BE -_080AC7BA: - adds r0, r3, #0 - adds r0, #8 -_080AC7BE: - strb r0, [r5, #0x15] -_080AC7C0: - pop {r4, r5, r6, pc} - .align 2, 0 - - thumb_func_start sub_080AC7C4 -sub_080AC7C4: @ 0x080AC7C4 - push {r4, r5, r6, r7, lr} - mov r7, sb - mov r6, r8 - push {r6, r7} - adds r4, r0, #0 - ldr r0, [r4, #0x54] - mov r8, r0 - ldr r7, [r0, #0x54] - ldr r5, [r7, #0x54] - cmp r5, #0 - beq _080AC7E4 - ldr r0, [r4, #0x50] - adds r1, r5, #0 - bl CopyPosition - b _080AC7E6 -_080AC7E4: - ldr r5, [r4, #0x50] -_080AC7E6: - adds r0, r7, #0 - adds r0, #0x79 - ldrb r2, [r0] - lsls r2, r2, #8 - ldr r3, _080AC880 @ =gSineTable - mov sb, r3 - ldrb r1, [r7, #0x15] - lsls r0, r1, #1 - add r0, sb - movs r3, #0 - ldrsh r0, [r0, r3] - adds r6, r0, #0 - muls r6, r2, r6 - adds r1, #0x40 - lsls r1, r1, #1 - add r1, sb - movs r3, #0 - ldrsh r0, [r1, r3] - muls r0, r2, r0 - rsbs r3, r0, #0 - adds r0, r5, #0 - adds r1, r7, #0 - adds r2, r6, #0 - bl PositionRelative - mov r0, r8 - adds r0, #0x79 - ldrb r2, [r0] - lsls r2, r2, #8 - mov r0, r8 - ldrb r1, [r0, #0x15] - lsls r0, r1, #1 - add r0, sb - movs r3, #0 - ldrsh r0, [r0, r3] - adds r6, r0, #0 - muls r6, r2, r6 - adds r1, #0x40 - lsls r1, r1, #1 - add r1, sb - movs r3, #0 - ldrsh r0, [r1, r3] - muls r0, r2, r0 - rsbs r3, r0, #0 - adds r0, r7, #0 - mov r1, r8 - adds r2, r6, #0 - bl PositionRelative - adds r0, r4, #0 - adds r0, #0x79 - ldrb r2, [r0] - lsls r2, r2, #8 - ldrb r1, [r4, #0x15] - lsls r0, r1, #1 - add r0, sb - movs r3, #0 - ldrsh r0, [r0, r3] - adds r6, r0, #0 - muls r6, r2, r6 - adds r1, #0x40 - lsls r1, r1, #1 - add r1, sb - movs r3, #0 - ldrsh r0, [r1, r3] - muls r0, r2, r0 - rsbs r3, r0, #0 - mov r0, r8 - adds r1, r4, #0 - adds r2, r6, #0 - bl PositionRelative - pop {r3, r4} - mov r8, r3 - mov sb, r4 - pop {r4, r5, r6, r7, pc} - .align 2, 0 -_080AC880: .4byte gSineTable - - thumb_func_start sub_080AC884 -sub_080AC884: @ 0x080AC884 - push {lr} - adds r1, r0, #0 - ldr r0, [r1, #0x50] - adds r2, r0, #0 - adds r2, #0x72 - ldrh r0, [r2] - cmp r0, #0 - beq _080AC8A4 - movs r0, #0 - strh r0, [r2] - movs r0, #2 - strb r0, [r1, #0xc] - movs r0, #0x3c - strb r0, [r1, #0xe] - movs r0, #0x56 - strb r0, [r1, #0xf] -_080AC8A4: - pop {pc} - .align 2, 0 - - thumb_func_start sub_080AC8A8 -sub_080AC8A8: @ 0x080AC8A8 - push {r4, r5, lr} - adds r5, r0, #0 - ldr r4, _080AC8C0 @ =gUnk_0812A9D8 - bl GetNextFunction - lsls r0, r0, #2 - adds r0, r0, r4 - ldr r1, [r0] - adds r0, r5, #0 - bl _call_via_r1 - pop {r4, r5, pc} - .align 2, 0 -_080AC8C0: .4byte gUnk_0812A9D8 - - thumb_func_start sub_080AC8C4 -sub_080AC8C4: @ 0x080AC8C4 - push {lr} - ldr r2, _080AC8D8 @ =gUnk_0812A9EC - ldrb r1, [r0, #0xc] - lsls r1, r1, #2 - adds r1, r1, r2 - ldr r1, [r1] - bl _call_via_r1 - pop {pc} - .align 2, 0 -_080AC8D8: .4byte gUnk_0812A9EC - - thumb_func_start sub_080AC8DC -sub_080AC8DC: @ 0x080AC8DC - push {r4, lr} - adds r4, r0, #0 - adds r0, #0x41 - ldrb r0, [r0] - movs r1, #0x7f - ands r1, r0 - cmp r1, #0 - blt _080AC8FE - cmp r1, #3 - ble _080AC8F8 - cmp r1, #0x1f - bgt _080AC8FE - cmp r1, #0x1e - blt _080AC8FE -_080AC8F8: - bl DeleteThisEntity - b _080AC920 -_080AC8FE: - ldrb r0, [r4, #0xc] - cmp r0, #3 - beq _080AC920 - movs r0, #3 - strb r0, [r4, #0xc] - ldrb r1, [r4, #0x10] - movs r0, #0x7f - ands r0, r1 - strb r0, [r4, #0x10] - ldrh r0, [r4, #0x24] - lsls r0, r0, #0x10 - asrs r0, r0, #0x11 - strh r0, [r4, #0x24] - adds r0, r4, #0 - movs r1, #1 - bl InitializeAnimation -_080AC920: - adds r0, r4, #0 - bl sub_080AC8C4 - pop {r4, pc} - - thumb_func_start sub_080AC928 -sub_080AC928: @ 0x080AC928 - push {r4, lr} - adds r4, r0, #0 - movs r0, #1 - strb r0, [r4, #0xc] - movs r0, #0x3c - strb r0, [r4, #0xe] - adds r1, r4, #0 - adds r1, #0x38 - movs r0, #2 - strb r0, [r1] - adds r0, r4, #0 - bl UpdateSpriteForCollisionLayer - adds r0, r4, #0 - movs r1, #0 - bl InitializeAnimation - adds r0, r4, #0 - bl sub_080AC954 - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_080AC954 -sub_080AC954: @ 0x080AC954 - push {r4, r5, lr} - adds r5, r0, #0 - ldr r0, [r5, #0x50] - ldr r0, [r0, #4] - cmp r0, #0 - bne _080AC964 - bl DeleteThisEntity -_080AC964: - ldr r0, [r5, #0x50] - ldrb r3, [r0, #0x14] - ldr r4, _080AC9C4 @ =gSineTable - lsls r1, r3, #1 - adds r1, r1, r4 - movs r2, #0 - ldrsh r1, [r1, r2] - lsls r2, r1, #2 - adds r2, r2, r1 - lsls r2, r2, #0xb - adds r3, #0x40 - lsls r3, r3, #1 - adds r3, r3, r4 - movs r4, #0 - ldrsh r1, [r3, r4] - lsls r3, r1, #2 - adds r3, r3, r1 - lsls r3, r3, #0xb - rsbs r3, r3, #0 - adds r1, r5, #0 - bl PositionRelative - adds r0, r5, #0 - bl GetNextFrame - ldrb r0, [r5, #0xe] - subs r0, #1 - strb r0, [r5, #0xe] - lsls r0, r0, #0x18 - cmp r0, #0 - bne _080AC9C0 - movs r0, #2 - strb r0, [r5, #0xc] - ldrb r0, [r5, #0x10] - movs r1, #0x80 - orrs r0, r1 - strb r0, [r5, #0x10] - ldr r1, _080AC9C8 @ =gPlayerEntity - adds r0, r5, #0 - bl GetFacingDirection - strb r0, [r5, #0x15] - movs r0, #0x97 - lsls r0, r0, #1 - bl SoundReq -_080AC9C0: - pop {r4, r5, pc} - .align 2, 0 -_080AC9C4: .4byte gSineTable -_080AC9C8: .4byte gPlayerEntity - - thumb_func_start sub_080AC9CC -sub_080AC9CC: @ 0x080AC9CC - push {r4, lr} - adds r4, r0, #0 - bl sub_080AF090 - adds r0, r4, #0 - bl GetNextFrame - adds r0, r4, #0 - bl sub_080A7EB0 - cmp r0, #0 - beq _080AC9E8 - bl DeleteThisEntity -_080AC9E8: - ldrb r0, [r4, #0xe] - subs r0, #1 - strb r0, [r4, #0xe] - lsls r0, r0, #0x18 - cmp r0, #0 - bne _080ACA10 - movs r0, #3 - strb r0, [r4, #0xc] - ldrb r1, [r4, #0x10] - movs r0, #0x7f - ands r0, r1 - strb r0, [r4, #0x10] - ldrh r0, [r4, #0x24] - lsls r0, r0, #0x10 - asrs r0, r0, #0x11 - strh r0, [r4, #0x24] - adds r0, r4, #0 - movs r1, #1 - bl InitializeAnimation -_080ACA10: - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_080ACA14 -sub_080ACA14: @ 0x080ACA14 - push {r4, lr} - adds r4, r0, #0 - bl sub_080AF090 - adds r0, r4, #0 - bl GetNextFrame - adds r4, #0x5a - ldrb r1, [r4] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - beq _080ACA32 - bl DeleteThisEntity -_080ACA32: - pop {r4, pc} - - thumb_func_start sub_080ACA34 -sub_080ACA34: @ 0x080ACA34 - push {r4, r5, lr} - adds r5, r0, #0 - ldr r4, _080ACA4C @ =gUnk_0812AA5C - bl GetNextFunction - lsls r0, r0, #2 - adds r0, r0, r4 - ldr r1, [r0] - adds r0, r5, #0 - bl _call_via_r1 - pop {r4, r5, pc} - .align 2, 0 -_080ACA4C: .4byte gUnk_0812AA5C - - thumb_func_start sub_080ACA50 -sub_080ACA50: @ 0x080ACA50 - push {lr} - ldr r2, _080ACA64 @ =gUnk_0812AA74 - ldrb r1, [r0, #0xc] - lsls r1, r1, #2 - adds r1, r1, r2 - ldr r1, [r1] - bl _call_via_r1 - pop {pc} - .align 2, 0 -_080ACA64: .4byte gUnk_0812AA74 - - thumb_func_start sub_080ACA68 -sub_080ACA68: @ 0x080ACA68 - push {r4, lr} - adds r4, r0, #0 - adds r0, #0x41 - ldrb r0, [r0] - movs r1, #0x7f - ands r1, r0 - cmp r1, #0xc - bgt _080ACA82 - cmp r1, #0xa - bge _080ACA86 - cmp r1, #6 - beq _080ACA86 - b _080ACAC0 -_080ACA82: - cmp r1, #0x1a - bne _080ACAC0 -_080ACA86: - movs r0, #2 - strb r0, [r4, #0xc] - ldrb r1, [r4, #0x10] - movs r0, #0x7f - ands r0, r1 - strb r0, [r4, #0x10] - movs r1, #0x80 - lsls r1, r1, #1 - adds r0, r1, #0 - ldrh r1, [r4, #0x24] - adds r0, r0, r1 - strh r0, [r4, #0x24] - ldr r0, [r4, #0x4c] - str r0, [r4, #0x54] - adds r0, r4, #0 - bl sub_080ACB40 - cmp r0, #0 - beq _080ACAB0 - movs r0, #0 - b _080ACAB6 -_080ACAB0: - adds r0, r4, #0 - adds r0, #0x3e - ldrb r0, [r0] -_080ACAB6: - strb r0, [r4, #0x15] - movs r0, #0xd8 - bl SoundReq - b _080ACAC4 -_080ACAC0: - bl DeleteThisEntity -_080ACAC4: - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_080ACAC8 -sub_080ACAC8: @ 0x080ACAC8 - push {lr} - movs r2, #0 - movs r1, #1 - strb r1, [r0, #0xc] - movs r1, #0x10 - strb r1, [r0, #0x15] - ldr r1, _080ACAE8 @ =0x0000FFFC - strh r1, [r0, #0x36] - str r2, [r0, #0x54] - movs r1, #7 - bl InitializeAnimation - ldr r0, _080ACAEC @ =0x00000199 - bl SoundReq - pop {pc} - .align 2, 0 -_080ACAE8: .4byte 0x0000FFFC -_080ACAEC: .4byte 0x00000199 - - thumb_func_start sub_080ACAF0 -sub_080ACAF0: @ 0x080ACAF0 - push {r4, lr} - adds r4, r0, #0 - bl sub_080AF090 - adds r0, r4, #0 - bl GetNextFrame - adds r0, r4, #0 - bl sub_080A7EB0 - cmp r0, #0 - beq _080ACB0C - bl DeleteThisEntity -_080ACB0C: - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_080ACB10 -sub_080ACB10: @ 0x080ACB10 - push {r4, lr} - adds r4, r0, #0 - bl sub_080AF090 - ldrh r0, [r4, #0x2a] - cmp r0, #0 - beq _080ACB22 - bl DeleteThisEntity -_080ACB22: - adds r0, r4, #0 - bl GetNextFrame - adds r0, r4, #0 - bl sub_080ACB90 - adds r0, r4, #0 - bl sub_080A7EB0 - cmp r0, #0 - beq _080ACB3C - bl DeleteThisEntity -_080ACB3C: - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_080ACB40 -sub_080ACB40: @ 0x080ACB40 - push {lr} - adds r2, r0, #0 - ldr r0, [r2, #0x50] - ldr r1, [r0, #0x50] - ldr r3, [r2, #0x54] - ldr r0, [r1, #0x64] - ldr r0, [r0, #0x1c] - ldr r0, [r0, #0x54] - cmp r0, r2 - beq _080ACB5A - ldr r0, [r0, #0x54] - cmp r3, r0 - beq _080ACB86 -_080ACB5A: - ldr r1, [r1, #0x64] - ldr r0, [r1, #0x20] - ldr r0, [r0, #0x54] - cmp r0, r2 - beq _080ACB6A - ldr r0, [r0, #0x54] - cmp r3, r0 - beq _080ACB86 -_080ACB6A: - ldr r0, [r1, #0x24] - ldr r0, [r0, #0x54] - cmp r0, r2 - beq _080ACB78 - ldr r0, [r0, #0x54] - cmp r3, r0 - beq _080ACB86 -_080ACB78: - ldr r0, [r1, #0x28] - ldr r0, [r0, #0x54] - cmp r0, r2 - beq _080ACB8A - ldr r0, [r0, #0x54] - cmp r3, r0 - bne _080ACB8A -_080ACB86: - movs r0, #0 - b _080ACB8C -_080ACB8A: - movs r0, #1 -_080ACB8C: - pop {pc} - .align 2, 0 - - thumb_func_start sub_080ACB90 -sub_080ACB90: @ 0x080ACB90 - push {r4, lr} - adds r2, r0, #0 - ldr r3, [r2, #0x50] - movs r0, #0x2e - ldrsh r1, [r2, r0] - movs r4, #0x2e - ldrsh r0, [r3, r4] - cmp r1, r0 - bne _080ACBC6 - movs r0, #0x32 - ldrsh r1, [r2, r0] - movs r4, #0x32 - ldrsh r0, [r3, r4] - cmp r1, r0 - bgt _080ACBC6 - movs r0, #1 - strb r0, [r3, #0xf] - adds r0, r2, #0 - movs r1, #0x1f - movs r2, #0x40 - bl CreateFx - ldr r0, _080ACBC8 @ =0x00000119 - bl EnqueueSFX - bl DeleteThisEntity -_080ACBC6: - pop {r4, pc} - .align 2, 0 -_080ACBC8: .4byte 0x00000119 @ TODO convert .inc files into .s files and include them in linker.ld + .include "asm/projectile/projectile0.inc" + + .include "asm/projectile/projectile1.inc" + + .include "asm/projectile/projectile2.inc" + + .include "asm/projectile/projectile3.inc" + + .include "asm/projectile/projectile4.inc" + + .include "asm/projectile/projectile5.inc" + + .include "asm/projectile/projectile6.inc" + + .include "asm/projectile/projectile7.inc" + + .include "asm/projectile/projectile8.inc" + + .include "asm/projectile/projectile9.inc" + + .include "asm/projectile/projectileA.inc" + + .include "asm/projectile/projectileB.inc" + + .include "asm/projectile/projectileC.inc" + + .include "asm/projectile/projectileD.inc" + + .include "asm/projectile/projectileE.inc" + + .include "asm/projectile/projectileF.inc" + + .include "asm/projectile/projectile10.inc" + + .include "asm/projectile/projectile11.inc" + + .include "asm/projectile/projectile12.inc" + + .include "asm/projectile/projectile13.inc" + + .include "asm/projectile/projectile14.inc" + + .include "asm/projectile/projectile15.inc" + + .include "asm/projectile/projectile16.inc" + + .include "asm/projectile/projectile17.inc" + + .include "asm/projectile/projectile18.inc" + + .include "asm/projectile/projectile19.inc" + + .include "asm/projectile/projectile1A.inc" + + .include "asm/projectile/projectile1B.inc" + + .include "asm/projectile/projectile1C.inc" + + .include "asm/projectile/projectile1D.inc" + + .include "asm/projectile/projectile1E.inc" + + .include "asm/projectile/projectile1F.inc" + + .include "asm/projectile/projectile20.inc" + + .include "asm/projectile/projectile21.inc" + + .include "asm/projectile/projectile22.inc" + + .include "asm/projectile/projectile23.inc" + + .include "asm/projectile/projectile24.inc" + + .include "asm/playerItem/playerItem10.inc" .include "asm/playerItem/playerItem13.inc" diff --git a/asm/projectile/projectile0.inc b/asm/projectile/projectile0.inc new file mode 100644 index 00000000..8efc0c2f --- /dev/null +++ b/asm/projectile/projectile0.inc @@ -0,0 +1,169 @@ + thumb_func_start Projectile0 +Projectile0: @ 0x080A7F00 + push {r4, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xc] + cmp r0, #0 + bne _080A7F26 + movs r0, #1 + strb r0, [r4, #0xc] + adds r0, r4, #0 + bl sub_080A7F80 + ldrb r0, [r4, #0xa] + cmp r0, #3 + bne _080A7F26 + ldr r0, [r4, #0x50] + ldrb r1, [r0, #0x14] + adds r1, #0x18 + adds r0, r4, #0 + bl InitAnimationForceUpdate +_080A7F26: + ldr r0, [r4, #0x50] + cmp r0, #0 + beq _080A7F34 + adds r0, #0x45 + ldrb r0, [r0] + cmp r0, #0 + bne _080A7F38 +_080A7F34: + bl DeleteThisEntity +_080A7F38: + adds r2, r4, #0 + adds r2, #0x41 + ldrb r1, [r2] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _080A7F56 + ldr r1, [r4, #0x4c] + ldr r0, _080A7F7C @ =gPlayerEntity + cmp r1, r0 + bne _080A7F56 + adds r1, r4, #0 + adds r1, #0x3d + movs r0, #0xd3 + strb r0, [r1] +_080A7F56: + movs r0, #0 + strb r0, [r2] + ldr r0, [r4, #0x50] + adds r1, r4, #0 + bl CopyPositionAndSpriteOffset + adds r0, r4, #0 + bl sub_080A7F9C + ldrb r0, [r4, #0xa] + cmp r0, #3 + bne _080A7F7A + ldrh r0, [r4, #0x32] + adds r0, #1 + strh r0, [r4, #0x32] + adds r0, r4, #0 + bl UpdateAnimationSingleFrame +_080A7F7A: + pop {r4, pc} + .align 2, 0 +_080A7F7C: .4byte gPlayerEntity + + thumb_func_start sub_080A7F80 +sub_080A7F80: @ 0x080A7F80 + ldr r3, _080A7F98 @ =gUnk_081293B8 + ldr r2, [r0, #0x50] + ldrb r1, [r0, #0xa] + lsls r1, r1, #2 + ldrb r2, [r2, #0xa] + adds r1, r1, r2 + adds r1, r1, r3 + ldrb r1, [r1] + adds r0, #0x3f + strb r1, [r0] + bx lr + .align 2, 0 +_080A7F98: .4byte gUnk_081293B8 + + thumb_func_start sub_080A7F9C +sub_080A7F9C: @ 0x080A7F9C + push {lr} + ldr r2, _080A7FB0 @ =gUnk_081293CC + ldrb r1, [r0, #0xa] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_080A7FB0: .4byte gUnk_081293CC + + thumb_func_start sub_080A7FB4 +sub_080A7FB4: @ 0x080A7FB4 + ldr r1, [r0, #0x50] + ldr r3, _080A7FD4 @ =gUnk_081293E0 + ldrb r2, [r1, #0x14] + lsls r2, r2, #2 + adds r2, r2, r3 + adds r1, #0x5a + ldrb r3, [r1] + movs r1, #0xf + ands r1, r3 + ldr r2, [r2] + lsls r1, r1, #2 + adds r1, r1, r2 + subs r1, #4 + ldr r1, [r1] + str r1, [r0, #0x48] + bx lr + .align 2, 0 +_080A7FD4: .4byte gUnk_081293E0 + + thumb_func_start sub_080A7FD8 +sub_080A7FD8: @ 0x080A7FD8 + ldr r1, [r0, #0x50] + ldr r2, _080A7FE8 @ =gUnk_081293F0 + ldrb r1, [r1, #0x14] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + str r1, [r0, #0x48] + bx lr + .align 2, 0 +_080A7FE8: .4byte gUnk_081293F0 + + thumb_func_start sub_080A7FEC +sub_080A7FEC: @ 0x080A7FEC + push {lr} + adds r3, r0, #0 + ldr r2, [r3, #0x50] + adds r0, r2, #0 + adds r0, #0x5a + ldrb r1, [r0] + movs r0, #0x10 + ands r0, r1 + cmp r0, #0 + beq _080A8008 + ldr r0, _080A8004 @ =gUnk_08129410 + b _080A800A + .align 2, 0 +_080A8004: .4byte gUnk_08129410 +_080A8008: + ldr r0, _080A8018 @ =gUnk_08129400 +_080A800A: + ldrb r1, [r2, #0x14] + lsls r1, r1, #2 + adds r1, r1, r0 + ldr r0, [r1] + str r0, [r3, #0x48] + pop {pc} + .align 2, 0 +_080A8018: .4byte gUnk_08129400 + + thumb_func_start sub_080A801C +sub_080A801C: @ 0x080A801C + ldr r1, [r0, #0x50] + ldr r2, _080A802C @ =gUnk_08129420 + ldrb r1, [r1, #0x14] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + str r1, [r0, #0x48] + bx lr + .align 2, 0 +_080A802C: .4byte gUnk_08129420 diff --git a/asm/projectile/projectile1.inc b/asm/projectile/projectile1.inc new file mode 100644 index 00000000..d9c19114 --- /dev/null +++ b/asm/projectile/projectile1.inc @@ -0,0 +1,185 @@ + thumb_func_start Projectile1 +Projectile1: @ 0x080A8030 + push {r4, r5, lr} + adds r5, r0, #0 + ldr r4, _080A8048 @ =gUnk_081295D0 + bl GetNextFunction + lsls r0, r0, #2 + adds r0, r0, r4 + ldr r1, [r0] + adds r0, r5, #0 + bl _call_via_r1 + pop {r4, r5, pc} + .align 2, 0 +_080A8048: .4byte gUnk_081295D0 + + thumb_func_start sub_080A804C +sub_080A804C: @ 0x080A804C + push {lr} + ldr r2, _080A8060 @ =gUnk_081295E4 + ldrb r1, [r0, #0xc] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_080A8060: .4byte gUnk_081295E4 + + thumb_func_start sub_080A8064 +sub_080A8064: @ 0x080A8064 + push {lr} + adds r1, r0, #0 + adds r0, #0x41 + ldrb r0, [r0] + cmp r0, #0x80 + bne _080A8078 + adds r0, r1, #0 + bl DeleteEntity + b _080A8086 +_080A8078: + adds r0, r1, #0 + adds r0, #0x3e + ldrb r0, [r0] + strb r0, [r1, #0x15] + adds r0, r1, #0 + bl sub_080A8178 +_080A8086: + pop {pc} + + thumb_func_start sub_080A8088 +sub_080A8088: @ 0x080A8088 + push {lr} + movs r1, #1 + strb r1, [r0, #0xc] + movs r1, #0x30 + strb r1, [r0, #0xe] + movs r1, #0xa0 + lsls r1, r1, #8 + str r1, [r0, #0x20] + movs r1, #0 + bl InitializeAnimation + pop {pc} + + thumb_func_start sub_080A80A0 +sub_080A80A0: @ 0x080A80A0 + push {r4, lr} + adds r4, r0, #0 + bl GetNextFrame + adds r0, r4, #0 + bl sub_080AF090 + cmp r0, #0 + beq _080A80DC + adds r0, r4, #0 + bl sub_080A7EB0 + cmp r0, #0 + beq _080A80C4 + adds r0, r4, #0 + bl DeleteEntity + b _080A80F0 +_080A80C4: + adds r0, r4, #0 + bl sub_08016AD2 + ldrb r0, [r4, #0xe] + subs r0, #1 + strb r0, [r4, #0xe] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _080A80F0 + movs r0, #3 + strb r0, [r4, #0xc] + b _080A80F0 +_080A80DC: + ldrh r1, [r4, #0x2a] + adds r0, r4, #0 + bl sub_0800417E + adds r0, r4, #0 + bl sub_080A8178 + adds r0, r4, #0 + bl sub_08016AD2 +_080A80F0: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_080A80F4 +sub_080A80F4: @ 0x080A80F4 + push {r4, lr} + adds r4, r0, #0 + bl sub_0806F69C + adds r0, r4, #0 + bl GetNextFrame + movs r1, #0xc0 + lsls r1, r1, #5 + adds r0, r4, #0 + bl sub_08003FC4 + cmp r0, #0 + bne _080A8116 + adds r0, r4, #0 + bl DeleteEntity +_080A8116: + pop {r4, pc} + + thumb_func_start sub_080A8118 +sub_080A8118: @ 0x080A8118 + push {r4, lr} + adds r4, r0, #0 + bl GetNextFrame + adds r0, r4, #0 + bl sub_080AF090 + movs r1, #0xa0 + lsls r1, r1, #6 + adds r0, r4, #0 + bl sub_080044EC + cmp r0, #0 + beq _080A813A + cmp r0, #1 + beq _080A8142 + b _080A815A +_080A813A: + adds r0, r4, #0 + bl DeleteEntity + b _080A8176 +_080A8142: + ldrb r1, [r4, #0x10] + movs r0, #0x7f + ands r0, r1 + strb r0, [r4, #0x10] + movs r0, #0x90 + lsls r0, r0, #1 + strh r0, [r4, #0x24] + adds r0, r4, #0 + bl sub_0800442E + cmp r0, #0 + bne _080A8176 +_080A815A: + ldrb r1, [r4, #0x10] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + bne _080A8176 + ldrb r2, [r4, #0x18] + lsls r1, r2, #0x1e + lsrs r1, r1, #0x1e + movs r0, #1 + eors r1, r0 + subs r0, #5 + ands r0, r2 + orrs r0, r1 + strb r0, [r4, #0x18] +_080A8176: + pop {r4, pc} + + thumb_func_start sub_080A8178 +sub_080A8178: @ 0x080A8178 + movs r1, #2 + strb r1, [r0, #0xc] + ldrb r2, [r0, #0x10] + movs r1, #0x7f + ands r1, r2 + strb r1, [r0, #0x10] + movs r1, #0x40 + strh r1, [r0, #0x24] + movs r1, #0xa0 + lsls r1, r1, #9 + str r1, [r0, #0x20] + bx lr diff --git a/asm/projectile/projectile10.inc b/asm/projectile/projectile10.inc new file mode 100644 index 00000000..5b9fbd1b --- /dev/null +++ b/asm/projectile/projectile10.inc @@ -0,0 +1,394 @@ + thumb_func_start Projectile10 +Projectile10: @ 0x080A9A00 + push {r4, r5, lr} + adds r5, r0, #0 + ldr r4, _080A9A18 @ =gUnk_08129AE0 + bl GetNextFunction + lsls r0, r0, #2 + adds r0, r0, r4 + ldr r1, [r0] + adds r0, r5, #0 + bl _call_via_r1 + pop {r4, r5, pc} + .align 2, 0 +_080A9A18: .4byte gUnk_08129AE0 + + thumb_func_start sub_080A9A1C +sub_080A9A1C: @ 0x080A9A1C + push {lr} + ldr r2, _080A9A30 @ =gUnk_08129AF8 + ldrb r1, [r0, #0xc] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_080A9A30: .4byte gUnk_08129AF8 + + thumb_func_start sub_080A9A34 +sub_080A9A34: @ 0x080A9A34 + push {lr} + adds r2, r0, #0 + adds r0, #0x41 + ldrb r0, [r0] + cmp r0, #0x9d + bne _080A9A62 + movs r0, #3 + strb r0, [r2, #0xc] + ldrb r1, [r2, #0x10] + movs r0, #0x7f + ands r0, r1 + strb r0, [r2, #0x10] + movs r0, #0xa8 + lsls r0, r0, #0xa + str r0, [r2, #0x20] + adds r2, #0x29 + ldrb r1, [r2] + movs r0, #0x39 + rsbs r0, r0, #0 + ands r0, r1 + movs r1, #8 + orrs r0, r1 + strb r0, [r2] +_080A9A62: + pop {pc} + + thumb_func_start sub_080A9A64 +sub_080A9A64: @ 0x080A9A64 + push {r4, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xd] + cmp r0, #2 + bhi _080A9A7E + adds r0, r4, #0 + bl sub_0806F520 + cmp r0, #0 + bne _080A9A7E + adds r0, r4, #0 + bl sub_080A9BA8 +_080A9A7E: + ldr r0, _080A9A90 @ =gUnk_08129B08 + ldrb r1, [r4, #0xd] + lsls r1, r1, #2 + adds r1, r1, r0 + ldr r1, [r1] + adds r0, r4, #0 + bl _call_via_r1 + pop {r4, pc} + .align 2, 0 +_080A9A90: .4byte gUnk_08129B08 + + thumb_func_start sub_080A9A94 +sub_080A9A94: @ 0x080A9A94 + movs r1, #2 + strb r1, [r0, #0xd] + ldr r1, _080A9AA0 @ =0x0000FFFE + strh r1, [r0, #0x36] + bx lr + .align 2, 0 +_080A9AA0: .4byte 0x0000FFFE + + thumb_func_start sub_080A9AA4 +sub_080A9AA4: @ 0x080A9AA4 + push {lr} + bl sub_0806F4E8 + pop {pc} + + thumb_func_start sub_080A9AAC +sub_080A9AAC: @ 0x080A9AAC + push {lr} + bl sub_0806F3E4 + pop {pc} + + thumb_func_start sub_080A9AB4 +sub_080A9AB4: @ 0x080A9AB4 + ldrb r2, [r0, #0x10] + movs r1, #0x7f + ands r1, r2 + strb r1, [r0, #0x10] + bx lr + .align 2, 0 + + thumb_func_start nullsub_128 +nullsub_128: @ 0x080A9AC0 + bx lr + .align 2, 0 + + thumb_func_start sub_080A9AC4 +sub_080A9AC4: @ 0x080A9AC4 + push {lr} + bl sub_080A9BA8 + pop {pc} + + thumb_func_start sub_080A9ACC +sub_080A9ACC: @ 0x080A9ACC + push {lr} + adds r2, r0, #0 + ldrb r0, [r2, #0xb] + cmp r0, #1 + beq _080A9AE0 + cmp r0, #2 + beq _080A9AEE + movs r0, #1 + strb r0, [r2, #0xc] + b _080A9B0A +_080A9AE0: + movs r0, #2 + strb r0, [r2, #0xc] + ldrb r1, [r2, #0x10] + movs r0, #0x80 + orrs r0, r1 + strb r0, [r2, #0x10] + b _080A9B0A +_080A9AEE: + movs r0, #3 + strb r0, [r2, #0xc] + movs r0, #0xa8 + lsls r0, r0, #0xa + str r0, [r2, #0x20] + adds r3, r2, #0 + adds r3, #0x29 + ldrb r1, [r3] + movs r0, #0x39 + rsbs r0, r0, #0 + ands r0, r1 + movs r1, #8 + orrs r0, r1 + strb r0, [r3] +_080A9B0A: + movs r0, #2 + strb r0, [r2, #0x1c] + ldrb r0, [r2, #0xa] + cmp r0, #0 + bne _080A9B1E + adds r0, r2, #0 + movs r1, #5 + bl InitializeAnimation + b _080A9B22 +_080A9B1E: + movs r0, #0 + strb r0, [r2, #0x1e] +_080A9B22: + pop {pc} + + thumb_func_start sub_080A9B24 +sub_080A9B24: @ 0x080A9B24 + push {r4, lr} + adds r4, r0, #0 + ldr r0, [r4, #0x50] + ldr r0, [r0, #4] + cmp r0, #0 + bne _080A9B36 + adds r0, r4, #0 + bl sub_080A9BA8 +_080A9B36: + ldr r0, [r4, #0x50] + ldrb r0, [r0, #0xc] + cmp r0, #0xb + bne _080A9B46 + adds r0, r4, #0 + bl sub_080A9BD0 + b _080A9B50 +_080A9B46: + movs r0, #2 + strb r0, [r4, #0xc] + adds r0, r4, #0 + bl sub_080A9C34 +_080A9B50: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_080A9B54 +sub_080A9B54: @ 0x080A9B54 + push {r4, lr} + adds r4, r0, #0 + ldr r0, [r4, #0x50] + ldr r0, [r0, #4] + cmp r0, #0 + bne _080A9B66 + adds r0, r4, #0 + bl sub_080A9BA8 +_080A9B66: + ldr r0, [r4, #0x50] + ldrb r0, [r0, #0xc] + cmp r0, #9 + bne _080A9B76 + adds r0, r4, #0 + bl sub_080A9C34 + b _080A9B7C +_080A9B76: + adds r0, r4, #0 + bl sub_080A9C50 +_080A9B7C: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_080A9B80 +sub_080A9B80: @ 0x080A9B80 + push {r4, lr} + adds r4, r0, #0 + ldr r0, [r4, #0x20] + cmp r0, #0 + bge _080A9B92 + ldrb r0, [r4, #0x18] + movs r1, #0x80 + orrs r0, r1 + strb r0, [r4, #0x18] +_080A9B92: + movs r1, #0x80 + lsls r1, r1, #6 + adds r0, r4, #0 + bl sub_08003FC4 + cmp r0, #0 + bne _080A9BA6 + adds r0, r4, #0 + bl sub_080A9BA8 +_080A9BA6: + pop {r4, pc} + + thumb_func_start sub_080A9BA8 +sub_080A9BA8: @ 0x080A9BA8 + push {lr} + adds r1, r0, #0 + ldrb r0, [r1, #0xa] + cmp r0, #0 + bne _080A9BBE + adds r0, r1, #0 + movs r1, #5 + movs r2, #0 + bl CreateFx + b _080A9BC8 +_080A9BBE: + adds r0, r1, #0 + movs r1, #0x3c + movs r2, #0 + bl CreateFx +_080A9BC8: + bl DeleteThisEntity + pop {pc} + .align 2, 0 + + thumb_func_start sub_080A9BD0 +sub_080A9BD0: @ 0x080A9BD0 + push {r4, r5, lr} + adds r5, r0, #0 + ldr r1, [r5, #0x50] + ldrb r0, [r1, #0x14] + cmp r0, #1 + beq _080A9BF8 + cmp r0, #1 + bgt _080A9BE6 + cmp r0, #0 + beq _080A9BF0 + b _080A9C06 +_080A9BE6: + cmp r0, #2 + beq _080A9C00 + cmp r0, #3 + beq _080A9BF8 + b _080A9C06 +_080A9BF0: + ldrb r0, [r1, #0x1e] + adds r2, r0, #0 + subs r2, #0x39 + b _080A9C06 +_080A9BF8: + ldrb r0, [r1, #0x1e] + adds r2, r0, #0 + subs r2, #0x3d + b _080A9C06 +_080A9C00: + ldrb r0, [r1, #0x1e] + adds r2, r0, #0 + subs r2, #0x41 +_080A9C06: + ldrb r0, [r1, #0x14] + lsls r0, r0, #2 + adds r0, r2, r0 + lsls r4, r0, #1 + adds r4, r4, r0 + ldr r0, _080A9C30 @ =gUnk_08129B20 + adds r4, r4, r0 + movs r2, #0 + ldrsb r2, [r4, r2] + movs r3, #1 + ldrsb r3, [r4, r3] + adds r0, r1, #0 + adds r1, r5, #0 + bl sub_0806FA90 + movs r0, #2 + ldrsb r0, [r4, r0] + ldrh r1, [r5, #0x36] + adds r0, r0, r1 + strh r0, [r5, #0x36] + pop {r4, r5, pc} + .align 2, 0 +_080A9C30: .4byte gUnk_08129B20 + + thumb_func_start sub_080A9C34 +sub_080A9C34: @ 0x080A9C34 + push {r4, lr} + adds r4, r0, #0 + ldr r0, [r4, #0x50] + adds r1, r4, #0 + movs r2, #0 + movs r3, #1 + bl sub_0806FA90 + adds r4, #0x63 + ldrb r0, [r4] + subs r0, #0xe + strb r0, [r4] + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_080A9C50 +sub_080A9C50: @ 0x080A9C50 + push {r4, r5, lr} + adds r5, r0, #0 + ldr r1, [r5, #0x50] + ldrb r0, [r1, #0x14] + cmp r0, #1 + beq _080A9C78 + cmp r0, #1 + bgt _080A9C66 + cmp r0, #0 + beq _080A9C70 + b _080A9C86 +_080A9C66: + cmp r0, #2 + beq _080A9C80 + cmp r0, #3 + beq _080A9C78 + b _080A9C86 +_080A9C70: + ldrb r0, [r1, #0x1e] + adds r4, r0, #0 + subs r4, #0x27 + b _080A9C86 +_080A9C78: + ldrb r0, [r1, #0x1e] + adds r4, r0, #0 + subs r4, #0x2d + b _080A9C86 +_080A9C80: + ldrb r0, [r1, #0x1e] + adds r4, r0, #0 + subs r4, #0x33 +_080A9C86: + adds r0, r1, #0 + adds r1, r5, #0 + movs r2, #0 + movs r3, #1 + bl sub_0806FA90 + adds r0, r5, #0 + adds r0, #0x63 + ldr r1, _080A9CA4 @ =gUnk_08129B50 + adds r1, r4, r1 + ldrb r1, [r1] + ldrb r2, [r0] + adds r1, r1, r2 + strb r1, [r0] + pop {r4, r5, pc} + .align 2, 0 +_080A9CA4: .4byte gUnk_08129B50 diff --git a/asm/projectile/projectile11.inc b/asm/projectile/projectile11.inc new file mode 100644 index 00000000..2558e422 --- /dev/null +++ b/asm/projectile/projectile11.inc @@ -0,0 +1,135 @@ + thumb_func_start Projectile11 +Projectile11: @ 0x080A9CA8 + push {r4, r5, lr} + adds r5, r0, #0 + ldr r0, [r5, #0x50] + ldr r0, [r0, #4] + cmp r0, #0 + bne _080A9CB8 + bl DeleteThisEntity +_080A9CB8: + ldr r4, _080A9CD0 @ =gUnk_08129B58 + adds r0, r5, #0 + bl GetNextFunction + lsls r0, r0, #2 + adds r0, r0, r4 + ldr r1, [r0] + adds r0, r5, #0 + bl _call_via_r1 + pop {r4, r5, pc} + .align 2, 0 +_080A9CD0: .4byte gUnk_08129B58 + + thumb_func_start sub_080A9CD4 +sub_080A9CD4: @ 0x080A9CD4 + push {lr} + ldr r2, _080A9CE8 @ =gUnk_08129B70 + ldrb r1, [r0, #0xc] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_080A9CE8: .4byte gUnk_08129B70 + + thumb_func_start nullsub_539 +nullsub_539: @ 0x080A9CEC + bx lr + .align 2, 0 + + thumb_func_start sub_080A9CF0 +sub_080A9CF0: @ 0x080A9CF0 + push {r4, lr} + adds r4, r0, #0 + bl sub_0806F520 + cmp r0, #0 + bne _080A9D0A + adds r0, r4, #0 + movs r1, #2 + movs r2, #0 + bl CreateFx + bl DeleteThisEntity +_080A9D0A: + ldr r0, _080A9D1C @ =gUnk_08129B78 + ldrb r1, [r4, #0xd] + lsls r1, r1, #2 + adds r1, r1, r0 + ldr r1, [r1] + adds r0, r4, #0 + bl _call_via_r1 + pop {r4, pc} + .align 2, 0 +_080A9D1C: .4byte gUnk_08129B78 + + thumb_func_start sub_080A9D20 +sub_080A9D20: @ 0x080A9D20 + movs r1, #2 + strb r1, [r0, #0xd] + bx lr + .align 2, 0 + + thumb_func_start nullsub_540 +nullsub_540: @ 0x080A9D28 + bx lr + .align 2, 0 + + thumb_func_start sub_080A9D2C +sub_080A9D2C: @ 0x080A9D2C + push {r4, lr} + adds r4, r0, #0 + bl sub_0806F3E4 + cmp r0, #0 + beq _080A9D64 + adds r0, r4, #0 + adds r0, #0x3f + ldrb r0, [r0] + cmp r0, #0xa6 + bne _080A9D56 + movs r0, #2 + rsbs r0, r0, #0 + bl ModHealth + ldr r0, _080A9D68 @ =gPlayerEntity + movs r1, #0x7a + bl sub_0800449C + bl sub_08079D84 +_080A9D56: + adds r0, r4, #0 + movs r1, #2 + movs r2, #0 + bl CreateFx + bl DeleteThisEntity +_080A9D64: + pop {r4, pc} + .align 2, 0 +_080A9D68: .4byte gPlayerEntity + + thumb_func_start sub_080A9D6C +sub_080A9D6C: @ 0x080A9D6C + push {lr} + movs r1, #1 + strb r1, [r0, #0xc] + ldr r1, [r0, #0x50] + ldrb r1, [r1, #0x14] + strb r1, [r0, #0x14] + ldrb r1, [r0, #0x14] + bl InitAnimationForceUpdate + pop {pc} + + thumb_func_start sub_080A9D80 +sub_080A9D80: @ 0x080A9D80 + push {r4, lr} + adds r4, r0, #0 + ldr r0, [r4, #0x50] + ldr r3, _080A9D9C @ =0xFFFF0000 + adds r1, r4, #0 + movs r2, #0 + bl PositionRelative + ldr r0, _080A9DA0 @ =0x0000FFFE + strh r0, [r4, #0x36] + adds r0, r4, #0 + bl UpdateAnimationSingleFrame + pop {r4, pc} + .align 2, 0 +_080A9D9C: .4byte 0xFFFF0000 +_080A9DA0: .4byte 0x0000FFFE diff --git a/asm/projectile/projectile12.inc b/asm/projectile/projectile12.inc new file mode 100644 index 00000000..8f55501a --- /dev/null +++ b/asm/projectile/projectile12.inc @@ -0,0 +1,94 @@ + thumb_func_start Projectile12 +Projectile12: @ 0x080A9DA4 + push {r4, r5, lr} + adds r5, r0, #0 + ldr r4, _080A9DBC @ =gUnk_08129BEC + bl GetNextFunction + lsls r0, r0, #2 + adds r0, r0, r4 + ldr r1, [r0] + adds r0, r5, #0 + bl _call_via_r1 + pop {r4, r5, pc} + .align 2, 0 +_080A9DBC: .4byte gUnk_08129BEC + + thumb_func_start sub_080A9DC0 +sub_080A9DC0: @ 0x080A9DC0 + push {lr} + ldr r2, _080A9DD4 @ =gUnk_08129C00 + ldrb r1, [r0, #0xc] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_080A9DD4: .4byte gUnk_08129C00 + + thumb_func_start sub_080A9DD8 +sub_080A9DD8: @ 0x080A9DD8 + push {r4, lr} + adds r4, r0, #0 + adds r0, #0x45 + ldrb r0, [r0] + cmp r0, #0 + beq _080A9DEE + adds r0, r4, #0 + adds r0, #0x41 + ldrb r0, [r0] + cmp r0, #0x80 + bne _080A9DF2 +_080A9DEE: + bl DeleteThisEntity +_080A9DF2: + adds r0, r4, #0 + bl sub_080A9DC0 + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_080A9DFC +sub_080A9DFC: @ 0x080A9DFC + push {lr} + movs r2, #1 + strb r2, [r0, #0xc] + movs r1, #0xb4 + strb r1, [r0, #0xe] + adds r1, r0, #0 + adds r1, #0x45 + strb r2, [r1] + movs r1, #0 + bl InitializeAnimation + pop {pc} + + thumb_func_start sub_080A9E14 +sub_080A9E14: @ 0x080A9E14 + push {r4, lr} + adds r4, r0, #0 + bl GetNextFrame + adds r0, r4, #0 + bl sub_080AF090 + ldrh r0, [r4, #0x2a] + cmp r0, #0 + bne _080A9E34 + ldrb r0, [r4, #0xe] + subs r0, #1 + strb r0, [r4, #0xe] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _080A9E42 +_080A9E34: + adds r0, r4, #0 + movs r1, #0x4f + movs r2, #0 + bl CreateFx + bl DeleteThisEntity +_080A9E42: + adds r0, r4, #0 + bl sub_080A7EB0 + cmp r0, #0 + beq _080A9E50 + bl DeleteThisEntity +_080A9E50: + pop {r4, pc} + .align 2, 0 diff --git a/asm/projectile/projectile13.inc b/asm/projectile/projectile13.inc new file mode 100644 index 00000000..475f6986 --- /dev/null +++ b/asm/projectile/projectile13.inc @@ -0,0 +1,740 @@ + thumb_func_start Projectile13 +Projectile13: @ 0x080A9E54 + push {r4, r5, lr} + adds r5, r0, #0 + ldr r0, [r5, #0x54] + cmp r0, #0 + bne _080A9E60 + ldr r0, [r5, #0x50] +_080A9E60: + adds r0, #0x43 + ldrb r0, [r0] + cmp r0, #0 + bne _080A9E78 + ldrb r1, [r5, #0x10] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + bne _080A9E78 + movs r0, #0x80 + orrs r0, r1 + strb r0, [r5, #0x10] +_080A9E78: + ldr r4, _080A9E90 @ =gUnk_08129C7C + adds r0, r5, #0 + bl GetNextFunction + lsls r0, r0, #2 + adds r0, r0, r4 + ldr r1, [r0] + adds r0, r5, #0 + bl _call_via_r1 + pop {r4, r5, pc} + .align 2, 0 +_080A9E90: .4byte gUnk_08129C7C + + thumb_func_start sub_080A9E94 +sub_080A9E94: @ 0x080A9E94 + push {r4, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xc] + cmp r0, #2 + bhi _080A9EA4 + adds r0, r4, #0 + bl sub_080AA1D8 +_080A9EA4: + ldr r0, _080A9EB8 @ =gUnk_08129C90 + ldrb r1, [r4, #0xc] + lsls r1, r1, #2 + adds r1, r1, r0 + ldr r1, [r1] + adds r0, r4, #0 + bl _call_via_r1 + pop {r4, pc} + .align 2, 0 +_080A9EB8: .4byte gUnk_08129C90 + + thumb_func_start sub_080A9EBC +sub_080A9EBC: @ 0x080A9EBC + push {r4, r5, lr} + adds r4, r0, #0 + adds r0, #0x41 + ldrb r1, [r0] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _080A9F4E + ldrb r0, [r4, #0xc] + cmp r0, #3 + beq _080A9EF2 + cmp r0, #4 + bne _080A9F18 + movs r0, #0 + strb r0, [r4, #0xf] + subs r0, #2 + bl ModHealth + adds r0, r4, #0 + bl sub_080AF090 + adds r0, r4, #0 + bl UpdateAnimationSingleFrame + adds r5, r4, #0 + adds r5, #0x42 + b _080A9F4A +_080A9EF2: + adds r0, r4, #0 + adds r0, #0x43 + ldrb r0, [r0] + adds r5, r4, #0 + adds r5, #0x42 + cmp r0, #0 + beq _080A9F4A + adds r1, r4, #0 + adds r1, #0x82 + movs r0, #2 + strb r0, [r1] + movs r0, #0xff + strb r0, [r4, #0x14] + adds r0, r4, #0 + bl sub_080AA270 + movs r0, #0x20 + strb r0, [r4, #0xf] + b _080A9F4A +_080A9F18: + ldr r3, [r4, #0x50] + adds r0, r4, #0 + adds r0, #0x3d + ldrb r0, [r0] + adds r1, r3, #0 + adds r1, #0x3d + strb r0, [r1] + adds r0, r4, #0 + adds r0, #0x3e + ldrb r0, [r0] + adds r1, #1 + strb r0, [r1] + adds r2, r4, #0 + adds r2, #0x42 + ldrb r1, [r2] + adds r0, r3, #0 + adds r0, #0x42 + strb r1, [r0] + ldrb r0, [r4, #0xc] + adds r5, r2, #0 + cmp r0, #1 + bne _080A9F4A + adds r0, r4, #0 + bl sub_080AA320 +_080A9F4A: + movs r0, #0 + strb r0, [r5] +_080A9F4E: + pop {r4, r5, pc} + + thumb_func_start sub_080A9F50 +sub_080A9F50: @ 0x080A9F50 + push {r4, lr} + adds r4, r0, #0 + movs r1, #0 + movs r0, #1 + strb r0, [r4, #0xc] + adds r0, r4, #0 + adds r0, #0x80 + movs r2, #0 + strh r1, [r0] + movs r0, #0xff + strb r0, [r4, #0x14] + adds r0, r4, #0 + adds r0, #0x82 + strb r2, [r0] + adds r2, r4, #0 + adds r2, #0x29 + ldrb r1, [r2] + movs r0, #8 + rsbs r0, r0, #0 + ands r0, r1 + movs r1, #4 + orrs r0, r1 + strb r0, [r2] + ldr r1, [r4, #0x50] + adds r0, r4, #0 + bl sub_0806FAD8 + adds r0, r4, #0 + bl sub_080AA270 + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_080A9F90 +sub_080A9F90: @ 0x080A9F90 + push {r4, lr} + adds r4, r0, #0 + adds r1, r4, #0 + adds r1, #0x80 + ldrh r0, [r1] + cmp r0, #0 + beq _080A9FA4 + subs r0, #1 + strh r0, [r1] + b _080A9FC8 +_080A9FA4: + ldrb r0, [r4, #0xf] + subs r0, #1 + strb r0, [r4, #0xf] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _080A9FB8 + adds r0, r4, #0 + bl sub_080AA270 + b _080A9FC8 +_080A9FB8: + adds r0, r4, #0 + bl sub_080AA2E0 + cmp r0, #0 + beq _080A9FC8 + adds r0, r4, #0 + bl sub_080AA320 +_080A9FC8: + adds r0, r4, #0 + bl UpdateAnimationSingleFrame + pop {r4, pc} + + thumb_func_start sub_080A9FD0 +sub_080A9FD0: @ 0x080A9FD0 + push {r4, r5, lr} + adds r5, r0, #0 + bl UpdateAnimationSingleFrame + adds r2, r5, #0 + adds r2, #0x5a + ldrb r1, [r2] + movs r0, #0x40 + ands r0, r1 + cmp r0, #0 + beq _080A9FF2 + movs r0, #0xbf + ands r0, r1 + strb r0, [r2] + ldr r0, _080AA038 @ =0x0000015D + bl EnqueueSFX +_080A9FF2: + movs r0, #0x2e + ldrsh r1, [r5, r0] + ldr r2, _080AA03C @ =gRoomControls + ldrh r0, [r2, #6] + subs r1, r1, r0 + asrs r1, r1, #4 + movs r3, #0x3f + ands r1, r3 + movs r4, #0x32 + ldrsh r0, [r5, r4] + ldrh r2, [r2, #8] + subs r0, r0, r2 + asrs r0, r0, #4 + ands r0, r3 + lsls r0, r0, #6 + orrs r1, r0 + adds r4, r5, #0 + adds r4, #0x78 + strh r1, [r4] + ldrh r0, [r4] + adds r5, #0x38 + ldrb r1, [r5] + bl GetTileType + movs r1, #0x80 + lsls r1, r1, #7 + cmp r0, r1 + bne _080AA034 + ldr r0, _080AA040 @ =0x00004005 + ldrh r1, [r4] + ldrb r2, [r5] + bl SetTile +_080AA034: + pop {r4, r5, pc} + .align 2, 0 +_080AA038: .4byte 0x0000015D +_080AA03C: .4byte gRoomControls +_080AA040: .4byte 0x00004005 + + thumb_func_start sub_080AA044 +sub_080AA044: @ 0x080AA044 + push {r4, r5, lr} + adds r4, r0, #0 + ldr r5, [r4, #0x54] + cmp r5, #0 + bne _080AA052 + bl DeleteThisEntity +_080AA052: + ldr r0, [r5, #4] + cmp r0, #0 + bne _080AA05E + bl DeleteThisEntity + b _080AA0A2 +_080AA05E: + ldrh r0, [r5, #0x12] + ldrb r1, [r5, #0x1e] + bl GetSpriteSubEntryOffsetDataPointer + adds r3, r0, #0 + ldrb r1, [r5, #0x14] + movs r0, #4 + ands r0, r1 + cmp r0, #0 + beq _080AA08C + movs r2, #0 + ldrsb r2, [r3, r2] + rsbs r2, r2, #0 + lsls r2, r2, #0x10 + ldrb r3, [r3, #1] + lsls r3, r3, #0x18 + asrs r3, r3, #0x18 + lsls r3, r3, #0x10 + adds r0, r5, #0 + adds r1, r4, #0 + bl PositionRelative + b _080AA0A2 +_080AA08C: + movs r2, #0 + ldrsb r2, [r3, r2] + lsls r2, r2, #0x10 + ldrb r3, [r3, #1] + lsls r3, r3, #0x18 + asrs r3, r3, #0x18 + lsls r3, r3, #0x10 + adds r0, r5, #0 + adds r1, r4, #0 + bl PositionRelative +_080AA0A2: + adds r0, r5, #0 + adds r0, #0x43 + ldrb r0, [r0] + cmp r0, #0 + bne _080AA108 + ldrb r0, [r4, #0xf] + cmp r0, #0 + beq _080AA0B8 + subs r0, #1 + strb r0, [r4, #0xf] + b _080AA108 +_080AA0B8: + adds r0, r4, #0 + bl UpdateAnimationSingleFrame + adds r0, r4, #0 + adds r0, #0x5a + ldrb r1, [r0] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _080AA108 + movs r0, #4 + strb r0, [r4, #0xc] + adds r1, r4, #0 + adds r1, #0x82 + movs r0, #3 + strb r0, [r1] + movs r0, #0x40 + strb r0, [r4, #0xf] + ldrb r0, [r5, #0x14] + lsls r1, r0, #2 + strb r1, [r4, #0x15] + lsls r0, r0, #0x1a + lsrs r0, r0, #0x1a + strb r0, [r4, #0x14] + ldr r0, _080AA10C @ =gUnk_080FD150 + str r0, [r4, #0x48] + bl CheckIsDungeon + cmp r0, #0 + beq _080AA100 + ldrb r0, [r4, #0x1b] + movs r1, #0x3f + ands r1, r0 + movs r0, #0x40 + orrs r1, r0 + strb r1, [r4, #0x1b] +_080AA100: + adds r0, r4, #0 + movs r1, #0 + bl sub_080AA3E0 +_080AA108: + pop {r4, r5, pc} + .align 2, 0 +_080AA10C: .4byte gUnk_080FD150 + + thumb_func_start sub_080AA110 +sub_080AA110: @ 0x080AA110 + push {r4, r5, r6, r7, lr} + mov r7, sb + mov r6, r8 + push {r6, r7} + adds r6, r0, #0 + ldr r7, [r6, #0x54] + cmp r7, #0 + beq _080AA1B6 + ldr r0, [r7, #4] + cmp r0, #0 + bne _080AA128 + str r0, [r6, #0x54] +_080AA128: + ldrb r0, [r6, #0xf] + adds r5, r0, #0 + cmp r5, #0 + beq _080AA136 + subs r0, #1 + strb r0, [r6, #0xf] + b _080AA1C4 +_080AA136: + adds r0, r6, #0 + bl sub_080AA374 + cmp r0, #0 + beq _080AA1C4 + adds r0, r7, #0 + adds r0, #0x45 + ldrb r0, [r0] + cmp r0, #0 + bne _080AA14E + bl DeleteThisEntity +_080AA14E: + movs r0, #0xf2 + bl EnqueueSFX + movs r4, #1 + strb r4, [r6, #0xc] + movs r0, #0xff + strb r0, [r6, #0x14] + adds r0, r6, #0 + adds r0, #0x82 + strb r5, [r0] + strb r5, [r6, #0xe] + subs r0, #2 + movs r1, #0 + mov sb, r1 + movs r1, #0x20 + mov r8, r1 + mov r1, r8 + strh r1, [r0] + ldrb r1, [r6, #0x1b] + movs r0, #0x3f + ands r0, r1 + movs r1, #0x80 + orrs r0, r1 + strb r0, [r6, #0x1b] + ldr r0, [r6, #0x54] + str r0, [r6, #0x50] + str r5, [r6, #0x54] + adds r0, r6, #0 + bl sub_080AA270 + ldr r7, [r6, #0x50] + strb r4, [r7, #0xc] + ldrb r0, [r7, #0x14] + lsls r0, r0, #2 + strb r0, [r7, #0x15] + strh r5, [r7, #0x24] + adds r0, r7, #0 + adds r0, #0x82 + strb r4, [r0] + mov r0, sb + strb r0, [r7, #0xe] + movs r0, #0x78 + strb r0, [r7, #0xf] + adds r0, r7, #0 + adds r0, #0x80 + mov r1, r8 + strh r1, [r0] + adds r0, r7, #0 + movs r1, #1 + bl sub_080AA3E0 + b _080AA1C4 +_080AA1B6: + adds r0, r6, #0 + bl sub_080040A8 + cmp r0, #0 + bne _080AA1C4 + bl DeleteThisEntity +_080AA1C4: + adds r0, r6, #0 + bl sub_0806F69C + adds r0, r6, #0 + bl UpdateAnimationSingleFrame + pop {r3, r4} + mov r8, r3 + mov sb, r4 + pop {r4, r5, r6, r7, pc} + + thumb_func_start sub_080AA1D8 +sub_080AA1D8: @ 0x080AA1D8 + push {r4, r5, lr} + adds r5, r0, #0 + ldr r4, [r5, #0x50] + cmp r4, #0 + beq _080AA268 + ldr r0, [r4, #4] + cmp r0, #0 + bne _080AA1EC + bl DeleteThisEntity +_080AA1EC: + ldrb r1, [r4, #0x1e] + movs r0, #0x20 + ands r0, r1 + cmp r0, #0 + bne _080AA26C + ldrh r0, [r4, #0x12] + ldrb r1, [r4, #0x1e] + bl GetSpriteSubEntryOffsetDataPointer + adds r3, r0, #0 + ldrb r1, [r4, #0x14] + movs r0, #4 + ands r0, r1 + cmp r0, #0 + beq _080AA224 + movs r2, #0 + ldrsb r2, [r3, r2] + rsbs r2, r2, #0 + lsls r2, r2, #0x10 + ldrb r3, [r3, #1] + lsls r3, r3, #0x18 + asrs r3, r3, #0x18 + lsls r3, r3, #0x10 + adds r0, r4, #0 + adds r1, r5, #0 + bl PositionRelative + b _080AA23A +_080AA224: + movs r2, #0 + ldrsb r2, [r3, r2] + lsls r2, r2, #0x10 + ldrb r3, [r3, #1] + lsls r3, r3, #0x18 + asrs r3, r3, #0x18 + lsls r3, r3, #0x10 + adds r0, r4, #0 + adds r1, r5, #0 + bl PositionRelative +_080AA23A: + adds r0, r4, #0 + adds r0, #0x43 + ldrb r0, [r0] + cmp r0, #0 + beq _080AA256 + ldrb r1, [r5, #0x10] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _080AA26C + movs r0, #0x7f + ands r0, r1 + strb r0, [r5, #0x10] + b _080AA26C +_080AA256: + ldrb r1, [r5, #0x10] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + bne _080AA26C + movs r0, #0x80 + orrs r0, r1 + strb r0, [r5, #0x10] + b _080AA26C +_080AA268: + bl DeleteThisEntity +_080AA26C: + pop {r4, r5, pc} + .align 2, 0 + + thumb_func_start sub_080AA270 +sub_080AA270: @ 0x080AA270 + push {r4, r5, r6, lr} + adds r5, r0, #0 + ldr r4, [r5, #0x50] + bl Random + ldr r1, _080AA2A4 @ =gUnk_08129CA4 + movs r6, #7 + ands r0, r6 + adds r0, r0, r1 + ldrb r0, [r0] + strb r0, [r5, #0xf] + ldrb r4, [r4, #0x14] + ldrb r0, [r5, #0x14] + cmp r0, #0xff + bne _080AA2AC + strb r4, [r5, #0x14] + ldr r0, _080AA2A8 @ =gUnk_08129CF4 + lsls r1, r4, #2 + adds r1, r1, r0 + ldr r0, [r1] + str r0, [r5, #0x48] + adds r0, r5, #0 + movs r1, #0 + bl sub_080AA3E0 + b _080AA2D6 + .align 2, 0 +_080AA2A4: .4byte gUnk_08129CA4 +_080AA2A8: .4byte gUnk_08129CF4 +_080AA2AC: + bl Random + ldr r1, _080AA2D8 @ =gUnk_08129CAC + ands r0, r6 + adds r0, r0, r1 + ldrb r0, [r0] + adds r4, r0, r4 + ands r4, r6 + ldrb r0, [r5, #0x14] + cmp r4, r0 + beq _080AA2D6 + strb r4, [r5, #0x14] + ldr r0, _080AA2DC @ =gUnk_08129CF4 + lsls r1, r4, #2 + adds r1, r1, r0 + ldr r0, [r1] + str r0, [r5, #0x48] + adds r0, r5, #0 + movs r1, #0 + bl sub_080AA3E0 +_080AA2D6: + pop {r4, r5, r6, pc} + .align 2, 0 +_080AA2D8: .4byte gUnk_08129CAC +_080AA2DC: .4byte gUnk_08129CF4 + + thumb_func_start sub_080AA2E0 +sub_080AA2E0: @ 0x080AA2E0 + push {r4, r5, lr} + adds r5, r0, #0 + movs r0, #0 + bl sub_08049DF4 + adds r4, r0, #0 + cmp r4, #0 + beq _080AA31C + adds r0, r5, #0 + adds r1, r4, #0 + bl GetFacingDirection + ldrb r1, [r5, #0x14] + lsls r1, r1, #2 + adds r0, #4 + movs r2, #0x1c + ands r0, r2 + adds r1, #4 + ands r1, r2 + cmp r0, r1 + bne _080AA31C + adds r0, r5, #0 + adds r1, r4, #0 + movs r2, #0x40 + bl sub_08049F1C + cmp r0, #0 + beq _080AA31C + movs r0, #1 + b _080AA31E +_080AA31C: + movs r0, #0 +_080AA31E: + pop {r4, r5, pc} + + thumb_func_start sub_080AA320 +sub_080AA320: @ 0x080AA320 + push {r4, r5, lr} + adds r5, r0, #0 + ldr r4, [r5, #0x50] + movs r2, #0 + movs r1, #2 + strb r1, [r5, #0xc] + adds r3, r5, #0 + adds r3, #0x82 + movs r0, #1 + strb r0, [r3] + strb r2, [r5, #0xf] + strb r1, [r4, #0xc] + movs r0, #0x30 + strb r0, [r4, #0xf] + adds r1, r4, #0 + adds r1, #0x80 + movs r0, #0x50 + strh r0, [r1] + strh r2, [r4, #0x24] + adds r0, r4, #0 + movs r1, #0 + bl sub_08049F84 + strb r0, [r4, #0x15] + ldrb r0, [r4, #0x15] + adds r0, #4 + movs r1, #0x1c + ands r0, r1 + lsrs r1, r0, #2 + strb r1, [r5, #0x14] + movs r1, #0x18 + ands r0, r1 + lsrs r0, r0, #2 + strb r0, [r4, #0x14] + adds r0, r4, #0 + movs r1, #1 + bl sub_080AA3E0 + adds r0, r5, #0 + bl sub_080AA1D8 + pop {r4, r5, pc} + + thumb_func_start sub_080AA374 +sub_080AA374: @ 0x080AA374 + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + adds r6, r0, #0 + movs r0, #0 + mov r8, r0 + ldr r5, [r6, #0x54] + cmp r5, #0 + beq _080AA3D8 + ldr r0, [r5, #4] + cmp r0, #0 + beq _080AA3D8 + ldrb r4, [r5, #0x14] + ldr r0, _080AA3CC @ =gUnk_08129D14 + adds r4, r4, r0 + movs r2, #0 + ldrsb r2, [r4, r2] + movs r3, #1 + ldrsb r3, [r4, r3] + adds r0, r6, #0 + adds r1, r5, #0 + bl sub_0806F824 + adds r7, r0, #0 + movs r0, #0x2e + ldrsh r1, [r5, r0] + movs r0, #0 + ldrsb r0, [r4, r0] + adds r1, r1, r0 + movs r0, #0x32 + ldrsh r2, [r5, r0] + movs r0, #1 + ldrsb r0, [r4, r0] + adds r2, r2, r0 + adds r0, r6, #0 + movs r3, #8 + bl sub_0806FCB8 + cmp r0, #0 + beq _080AA3D0 + movs r0, #1 + mov r8, r0 + b _080AA3D8 + .align 2, 0 +_080AA3CC: .4byte gUnk_08129D14 +_080AA3D0: + adds r0, r6, #0 + adds r1, r7, #0 + bl sub_08004596 +_080AA3D8: + mov r0, r8 + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7, pc} + + thumb_func_start sub_080AA3E0 +sub_080AA3E0: @ 0x080AA3E0 + push {lr} + adds r3, r0, #0 + ldrb r2, [r3, #0x14] + adds r0, #0x82 + ldrb r0, [r0] + lsls r0, r0, #3 + orrs r2, r0 + cmp r1, #0 + beq _080AA3F4 + lsrs r2, r2, #1 +_080AA3F4: + adds r0, r3, #0 + adds r1, r2, #0 + bl InitAnimationForceUpdate + pop {pc} + .align 2, 0 diff --git a/asm/projectile/projectile14.inc b/asm/projectile/projectile14.inc new file mode 100644 index 00000000..9a50d717 --- /dev/null +++ b/asm/projectile/projectile14.inc @@ -0,0 +1,335 @@ + thumb_func_start Projectile14 +Projectile14: @ 0x080AA400 + push {r4, r5, lr} + adds r5, r0, #0 + ldr r4, _080AA418 @ =gUnk_08129FB8 + bl GetNextFunction + lsls r0, r0, #2 + adds r0, r0, r4 + ldr r1, [r0] + adds r0, r5, #0 + bl _call_via_r1 + pop {r4, r5, pc} + .align 2, 0 +_080AA418: .4byte gUnk_08129FB8 + + thumb_func_start sub_080AA41C +sub_080AA41C: @ 0x080AA41C + push {lr} + adds r2, r0, #0 + ldrb r0, [r2, #0xc] + cmp r0, #0 + bne _080AA44C + movs r0, #1 + strb r0, [r2, #0xc] + ldrb r1, [r2, #0xa] + strb r1, [r2, #0x1e] + strb r0, [r2, #0x1c] + adds r0, r2, #0 + adds r0, #0x86 + ldrh r0, [r0] + strh r0, [r2, #0x24] + lsls r1, r1, #0x18 + cmp r1, #0 + bne _080AA446 + adds r0, r2, #0 + bl sub_080AA494 + b _080AA44C +_080AA446: + adds r0, r2, #0 + bl sub_080AA534 +_080AA44C: + pop {pc} + .align 2, 0 + + thumb_func_start sub_080AA450 +sub_080AA450: @ 0x080AA450 + push {lr} + adds r1, r0, #0 + adds r0, #0x41 + ldrb r0, [r0] + cmp r0, #0x96 + bne _080AA462 + adds r0, r1, #0 + bl sub_080AA464 +_080AA462: + pop {pc} + + thumb_func_start sub_080AA464 +sub_080AA464: @ 0x080AA464 + push {r4, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xa] + cmp r0, #0 + bne _080AA474 + adds r0, r4, #0 + bl sub_080AA544 +_080AA474: + movs r0, #0x21 + movs r1, #3 + movs r2, #0 + bl CreateObject + adds r1, r0, #0 + cmp r1, #0 + beq _080AA48A + adds r0, r4, #0 + bl CopyPosition +_080AA48A: + adds r0, r4, #0 + bl DeleteEntity + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_080AA494 +sub_080AA494: @ 0x080AA494 + push {r4, r5, r6, lr} + adds r5, r0, #0 + movs r4, #0 + bl GetTileTypeByEntity + adds r2, r0, #0 + ldr r1, _080AA4A4 @ =gUnk_08129FD0 + b _080AA4AA + .align 2, 0 +_080AA4A4: .4byte gUnk_08129FD0 +_080AA4A8: + adds r4, #1 +_080AA4AA: + ldrh r0, [r1] + cmp r0, #0 + beq _080AA4B6 + adds r1, #2 + cmp r0, r2 + bne _080AA4A8 +_080AA4B6: + ldrh r0, [r5, #0x24] + bl CheckFlags + cmp r0, #0 + beq _080AA4EE + cmp r4, #4 + bne _080AA4EA + movs r0, #0x2e + ldrsh r1, [r5, r0] + ldr r2, _080AA52C @ =gRoomControls + ldrh r0, [r2, #6] + subs r1, r1, r0 + asrs r1, r1, #4 + movs r3, #0x3f + ands r1, r3 + movs r6, #0x32 + ldrsh r0, [r5, r6] + ldrh r2, [r2, #8] + subs r0, r0, r2 + asrs r0, r0, #4 + ands r0, r3 + lsls r0, r0, #6 + orrs r1, r0 + adds r0, r5, #0 + bl sub_080AA654 +_080AA4EA: + bl DeleteThisEntity +_080AA4EE: + strb r4, [r5, #0xb] + adds r2, r5, #0 + adds r2, #0x29 + ldrb r0, [r2] + movs r1, #7 + orrs r0, r1 + strb r0, [r2] + ldr r0, _080AA530 @ =0x00004068 + movs r2, #0x2e + ldrsh r1, [r5, r2] + ldr r3, _080AA52C @ =gRoomControls + ldrh r2, [r3, #6] + subs r1, r1, r2 + asrs r1, r1, #4 + movs r4, #0x3f + ands r1, r4 + movs r6, #0x32 + ldrsh r2, [r5, r6] + ldrh r3, [r3, #8] + subs r2, r2, r3 + asrs r2, r2, #4 + ands r2, r4 + lsls r2, r2, #6 + orrs r1, r2 + adds r2, r5, #0 + adds r2, #0x38 + ldrb r2, [r2] + bl SetTile + pop {r4, r5, r6, pc} + .align 2, 0 +_080AA52C: .4byte gRoomControls +_080AA530: .4byte 0x00004068 + + thumb_func_start sub_080AA534 +sub_080AA534: @ 0x080AA534 + push {lr} + adds r2, r0, #0 + adds r2, #0x38 + movs r1, #3 + strb r1, [r2] + bl UpdateSpriteForCollisionLayer + pop {pc} + + thumb_func_start sub_080AA544 +sub_080AA544: @ 0x080AA544 + push {r4, r5, r6, r7, lr} + mov r7, sb + mov r6, r8 + push {r6, r7} + adds r6, r0, #0 + ldrb r0, [r6, #0xb] + cmp r0, #8 + bhi _080AA618 + ldr r0, _080AA5E8 @ =gUnk_08129FF8 + mov sb, r0 + movs r1, #0x2e + ldrsh r2, [r6, r1] + ldr r1, _080AA5EC @ =gRoomControls + ldrh r0, [r1, #6] + subs r2, r2, r0 + asrs r2, r2, #4 + movs r3, #0x3f + ands r2, r3 + movs r4, #0x32 + ldrsh r0, [r6, r4] + ldrh r1, [r1, #8] + subs r0, r0, r1 + asrs r0, r0, #4 + ands r0, r3 + lsls r0, r0, #6 + orrs r2, r0 + ldrb r0, [r6, #0xb] + add r0, sb + ldrb r0, [r0] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + adds r7, r2, r0 + movs r4, #0 + movs r5, #0 + movs r0, #0x38 + adds r0, r0, r6 + mov r8, r0 +_080AA58E: + mov r1, sb + adds r0, r1, r4 + ldrb r0, [r0] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + subs r0, r7, r0 + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + mov r2, r8 + ldrb r1, [r2] + bl sub_080002C8 + cmp r0, #0x3e + bne _080AA5AC + adds r5, #1 +_080AA5AC: + adds r4, #1 + cmp r4, #8 + bls _080AA58E + cmp r5, #8 + bne _080AA5F4 + movs r4, #0 + ldr r5, _080AA5F0 @ =gUnk_08129FD0 +_080AA5BA: + ldrh r0, [r5] + mov r3, sb + adds r1, r3, r4 + ldrb r1, [r1] + lsls r1, r1, #0x18 + asrs r1, r1, #0x18 + subs r1, r7, r1 + mov r3, r8 + ldrb r2, [r3] + bl sub_0807B7D8 + adds r5, #2 + adds r4, #1 + cmp r4, #8 + bls _080AA5BA + adds r0, r6, #0 + adds r1, r7, #0 + bl sub_080AA654 + ldrh r0, [r6, #0x24] + bl SetFlag + b _080AA648 + .align 2, 0 +_080AA5E8: .4byte gUnk_08129FF8 +_080AA5EC: .4byte gRoomControls +_080AA5F0: .4byte gUnk_08129FD0 +_080AA5F4: + ldr r2, _080AA614 @ =gUnk_08129FE4 + ldrb r1, [r6, #0xb] + lsls r0, r1, #1 + adds r0, r0, r2 + ldrh r0, [r0] + add r1, sb + ldrb r1, [r1] + lsls r1, r1, #0x18 + asrs r1, r1, #0x18 + subs r1, r7, r1 + mov r4, r8 + ldrb r2, [r4] + bl sub_0807B7D8 + b _080AA648 + .align 2, 0 +_080AA614: .4byte gUnk_08129FE4 +_080AA618: + movs r1, #0x2e + ldrsh r0, [r6, r1] + ldr r2, _080AA650 @ =gRoomControls + ldrh r1, [r2, #6] + subs r0, r0, r1 + asrs r0, r0, #4 + movs r3, #0x3f + ands r0, r3 + movs r4, #0x32 + ldrsh r1, [r6, r4] + ldrh r2, [r2, #8] + subs r1, r1, r2 + asrs r1, r1, #4 + ands r1, r3 + lsls r1, r1, #6 + orrs r0, r1 + adds r1, r6, #0 + adds r1, #0x38 + ldrb r1, [r1] + bl sub_0807BA8C + ldrh r0, [r6, #0x24] + bl SetFlag +_080AA648: + pop {r3, r4} + mov r8, r3 + mov sb, r4 + pop {r4, r5, r6, r7, pc} + .align 2, 0 +_080AA650: .4byte gRoomControls + + thumb_func_start sub_080AA654 +sub_080AA654: @ 0x080AA654 + push {r4, r5, lr} + adds r4, r0, #0 + adds r5, r1, #0 + adds r4, #0x68 + ldr r0, _080AA688 @ =gUnk_0812A004 + adds r1, r4, #0 + movs r2, #0x10 + bl MemCopy + movs r1, #0x3f + adds r0, r5, #0 + ands r0, r1 + lsls r0, r0, #4 + adds r0, #8 + strh r0, [r4, #8] + movs r0, #0xfc + lsls r0, r0, #4 + ands r0, r5 + lsrs r0, r0, #2 + adds r0, #8 + strh r0, [r4, #0xa] + adds r0, r4, #0 + bl LoadRoomEntity + pop {r4, r5, pc} + .align 2, 0 +_080AA688: .4byte gUnk_0812A004 diff --git a/asm/projectile/projectile15.inc b/asm/projectile/projectile15.inc new file mode 100644 index 00000000..7b27e812 --- /dev/null +++ b/asm/projectile/projectile15.inc @@ -0,0 +1,575 @@ + thumb_func_start Projectile15 +Projectile15: @ 0x080AA68C + push {r4, r5, lr} + adds r5, r0, #0 + ldr r4, _080AA6A4 @ =gUnk_0812A014 + bl GetNextFunction + lsls r0, r0, #2 + adds r0, r0, r4 + ldr r1, [r0] + adds r0, r5, #0 + bl _call_via_r1 + pop {r4, r5, pc} + .align 2, 0 +_080AA6A4: .4byte gUnk_0812A014 + + thumb_func_start sub_080AA6A8 +sub_080AA6A8: @ 0x080AA6A8 + push {lr} + ldr r2, _080AA6BC @ =gUnk_0812A02C + ldrb r1, [r0, #0xc] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_080AA6BC: .4byte gUnk_0812A02C + + thumb_func_start sub_080AA6C0 +sub_080AA6C0: @ 0x080AA6C0 + push {r4, r5, r6, lr} + adds r4, r0, #0 + adds r0, #0x41 + ldrb r0, [r0] + cmp r0, #0x87 + bne _080AA774 + movs r6, #3 + movs r0, #3 + strb r0, [r4, #0xc] + movs r5, #0x5a + strb r5, [r4, #0xe] + ldrb r1, [r4, #0x10] + movs r0, #0x7f + ands r0, r1 + strb r0, [r4, #0x10] + ldrb r1, [r4, #0xa] + adds r1, #0x10 + adds r0, r4, #0 + bl InitAnimationForceUpdate + movs r0, #0x2a + movs r1, #3 + movs r2, #0 + bl CreateObject + adds r3, r0, #0 + cmp r3, #0 + beq _080AA72A + strb r5, [r3, #0xb] + adds r2, r3, #0 + adds r2, #0x29 + ldrb r1, [r2] + movs r0, #8 + rsbs r0, r0, #0 + ands r0, r1 + orrs r0, r6 + strb r0, [r2] + ldr r1, _080AA770 @ =gUnk_0812A03C + ldrb r0, [r4, #0xa] + lsls r0, r0, #2 + adds r0, r0, r1 + ldrb r0, [r0] + adds r2, #0x39 + strb r0, [r2] + ldrb r0, [r4, #0xa] + lsls r0, r0, #2 + adds r0, #1 + adds r0, r0, r1 + ldrb r0, [r0] + adds r1, r3, #0 + adds r1, #0x63 + strb r0, [r1] + str r4, [r3, #0x50] +_080AA72A: + movs r0, #0x2a + movs r1, #3 + movs r2, #0 + bl CreateObject + adds r3, r0, #0 + cmp r3, #0 + beq _080AA784 + strb r5, [r3, #0xb] + adds r2, r3, #0 + adds r2, #0x29 + ldrb r1, [r2] + movs r0, #8 + rsbs r0, r0, #0 + ands r0, r1 + orrs r0, r6 + strb r0, [r2] + ldr r1, _080AA770 @ =gUnk_0812A03C + ldrb r0, [r4, #0xa] + lsls r0, r0, #2 + adds r0, #2 + adds r0, r0, r1 + ldrb r0, [r0] + adds r2, #0x39 + strb r0, [r2] + ldrb r0, [r4, #0xa] + lsls r0, r0, #2 + adds r0, #3 + adds r0, r0, r1 + ldrb r0, [r0] + adds r1, r3, #0 + adds r1, #0x63 + strb r0, [r1] + str r4, [r3, #0x50] + b _080AA784 + .align 2, 0 +_080AA770: .4byte gUnk_0812A03C +_080AA774: + ldrb r1, [r4, #0xa] + adds r1, #0x10 + adds r0, r4, #0 + bl InitAnimationForceUpdate + ldr r0, _080AA788 @ =0x00000101 + bl EnqueueSFX +_080AA784: + pop {r4, r5, r6, pc} + .align 2, 0 +_080AA788: .4byte 0x00000101 + + thumb_func_start sub_080AA78C +sub_080AA78C: @ 0x080AA78C + push {r4, r5, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xd] + cmp r0, #0 + bne _080AA7DA + ldr r0, _080AA7C8 @ =gPlayerEntity + ldrb r0, [r0, #0x14] + lsrs r2, r0, #1 + ldrb r0, [r4, #0xa] + cmp r2, r0 + beq _080AA7CC + adds r3, r4, #0 + adds r3, #0x3a + ldrb r0, [r3] + movs r1, #0xfb + ands r1, r0 + strb r1, [r3] + movs r0, #2 + eors r2, r0 + ldrb r0, [r4, #0xa] + cmp r2, r0 + bne _080AA832 + adds r1, r4, #0 + adds r1, #0x3d + movs r0, #0xe2 + strb r0, [r1] + adds r0, r4, #0 + bl sub_080AA6C0 + b _080AA832 + .align 2, 0 +_080AA7C8: .4byte gPlayerEntity +_080AA7CC: + movs r0, #1 + strb r0, [r4, #0xd] + adds r1, r2, #0 + adds r1, #8 + adds r0, r4, #0 + bl InitAnimationForceUpdate +_080AA7DA: + adds r0, r4, #0 + bl sub_0806F520 + cmp r0, #0 + beq _080AA812 + adds r0, r4, #0 + bl UpdateAnimationSingleFrame + adds r5, r4, #0 + adds r5, #0x5a + ldrb r1, [r5] + movs r0, #0x10 + ands r0, r1 + cmp r0, #0 + beq _080AA806 + movs r0, #0xef + ands r0, r1 + strb r0, [r5] + movs r0, #0x80 + lsls r0, r0, #1 + bl EnqueueSFX +_080AA806: + ldrb r1, [r5] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _080AA832 + b _080AA820 +_080AA812: + adds r0, r4, #0 + adds r0, #0x5a + ldrb r1, [r0] + movs r0, #1 + ands r0, r1 + cmp r0, #0 + beq _080AA828 +_080AA820: + adds r0, r4, #0 + bl sub_080AAAA8 + b _080AA832 +_080AA828: + ldrb r1, [r4, #0xa] + adds r1, #0x10 + adds r0, r4, #0 + bl InitAnimationForceUpdate +_080AA832: + pop {r4, r5, pc} + + thumb_func_start sub_080AA834 +sub_080AA834: @ 0x080AA834 + push {r4, lr} + adds r4, r0, #0 + adds r0, #0x86 + ldrh r0, [r0] + bl CheckFlags + cmp r0, #0 + beq _080AA848 + bl DeleteThisEntity +_080AA848: + movs r2, #0 + movs r0, #1 + strb r0, [r4, #0xc] + strb r0, [r4, #0x1c] + strb r0, [r4, #0x16] + ldr r1, _080AA874 @ =gUnk_0812A04C + ldrb r0, [r4, #0xa] + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r0, [r0] + str r0, [r4, #0x48] + adds r0, r4, #0 + adds r0, #0x84 + strb r2, [r0] + ldrb r1, [r4, #0xa] + adds r0, r4, #0 + bl InitAnimationForceUpdate + adds r0, r4, #0 + bl sub_080AAA68 + pop {r4, pc} + .align 2, 0 +_080AA874: .4byte gUnk_0812A04C + + thumb_func_start sub_080AA878 +sub_080AA878: @ 0x080AA878 + push {r4, lr} + adds r4, r0, #0 + adds r0, #0x5a + ldrb r1, [r0] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + bne _080AA88E + adds r0, r4, #0 + bl UpdateAnimationSingleFrame +_080AA88E: + adds r0, r4, #0 + bl sub_080AA9E0 + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_080AA898 +sub_080AA898: @ 0x080AA898 + push {r4, lr} + adds r4, r0, #0 + bl sub_0806FBB4 + ldr r1, _080AA8B4 @ =gUnk_0812A05C + ldrb r0, [r4, #0xd] + subs r0, #5 + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r1, [r0] + adds r0, r4, #0 + bl _call_via_r1 + pop {r4, pc} + .align 2, 0 +_080AA8B4: .4byte gUnk_0812A05C + + thumb_func_start sub_080AA8B8 +sub_080AA8B8: @ 0x080AA8B8 + push {r4, r5, r6, r7, lr} + adds r4, r0, #0 + ldr r7, _080AA99C @ =gPlayerEntity + adds r0, #0x84 + ldrb r0, [r0] + cmp r0, #0 + bne _080AA920 + ldrb r0, [r4, #0xa] + lsls r2, r0, #1 + ldrb r0, [r7, #0x14] + cmp r2, r0 + bne _080AA90A + ldr r1, _080AA9A0 @ =gUnk_0812A064 + adds r0, r2, r1 + ldrb r0, [r0] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + ldrh r3, [r4, #0x2e] + adds r0, r0, r3 + lsls r0, r0, #0x10 + lsrs r6, r0, #0x10 + adds r0, r2, #1 + adds r0, r0, r1 + ldrb r0, [r0] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + ldrh r1, [r4, #0x32] + adds r0, r0, r1 + lsls r0, r0, #0x10 + lsrs r5, r0, #0x10 + adds r0, r7, #0 + adds r0, #0x38 + ldrb r2, [r0] + adds r0, r6, #0 + adds r1, r5, #0 + bl sub_080002D4 + cmp r0, #0 + bne _080AA90A + strh r6, [r7, #0x2e] + strh r5, [r7, #0x32] +_080AA90A: + adds r1, r4, #0 + adds r1, #0x84 + movs r0, #1 + strb r0, [r1] + movs r0, #2 + strb r0, [r4, #0xf] + ldrb r1, [r4, #0xa] + adds r1, #4 + adds r0, r4, #0 + bl InitAnimationForceUpdate +_080AA920: + ldrb r0, [r7, #0x14] + lsrs r0, r0, #1 + ldrb r2, [r4, #0xa] + cmp r0, r2 + bne _080AA99A + ldr r1, _080AA9A4 @ =gPlayerState + adds r0, r1, #0 + adds r0, #0xa8 + ldrb r0, [r0] + cmp r0, #0x1a + bne _080AA99A + ldrb r1, [r1, #5] + movs r2, #2 + adds r0, r2, #0 + ands r0, r1 + cmp r0, #0 + beq _080AA99A + ldr r0, _080AA99C @ =gPlayerEntity + adds r0, #0x5a + ldrb r1, [r0] + adds r0, r2, #0 + ands r0, r1 + cmp r0, #0 + beq _080AA99A + adds r5, r4, #0 + adds r5, #0x5a + ldrb r1, [r5] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + bne _080AA99A + adds r0, r4, #0 + bl UpdateAnimationSingleFrame + ldrb r1, [r5] + movs r0, #1 + ands r0, r1 + cmp r0, #0 + beq _080AA99A + ldr r1, _080AA9A8 @ =gUnk_0812A06C + ldrb r0, [r7, #0x14] + adds r0, r0, r1 + ldrb r0, [r0] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + ldrh r3, [r7, #0x2e] + adds r0, r0, r3 + strh r0, [r7, #0x2e] + ldrb r0, [r7, #0x14] + adds r0, #1 + adds r0, r0, r1 + ldrb r0, [r0] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + ldrh r1, [r7, #0x32] + adds r0, r0, r1 + strh r0, [r7, #0x32] + movs r0, #0x80 + lsls r0, r0, #1 + bl EnqueueSFX +_080AA99A: + pop {r4, r5, r6, r7, pc} + .align 2, 0 +_080AA99C: .4byte gPlayerEntity +_080AA9A0: .4byte gUnk_0812A064 +_080AA9A4: .4byte gPlayerState +_080AA9A8: .4byte gUnk_0812A06C + + thumb_func_start sub_080AA9AC +sub_080AA9AC: @ 0x080AA9AC + push {lr} + movs r2, #0 + movs r1, #1 + strb r1, [r0, #0xc] + adds r1, r0, #0 + adds r1, #0x84 + strb r2, [r1] + ldrb r1, [r0, #0xa] + adds r1, #0xc + bl InitAnimationForceUpdate + pop {pc} + + thumb_func_start sub_080AA9C4 +sub_080AA9C4: @ 0x080AA9C4 + push {r4, lr} + adds r4, r0, #0 + bl GetNextFrame + ldrb r0, [r4, #0xe] + subs r0, #1 + strb r0, [r4, #0xe] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _080AA9DE + adds r0, r4, #0 + bl sub_080AAAA8 +_080AA9DE: + pop {r4, pc} + + thumb_func_start sub_080AA9E0 +sub_080AA9E0: @ 0x080AA9E0 + push {r4, r5, lr} + adds r5, r0, #0 + ldrb r1, [r5, #0xa] + movs r0, #1 + ands r0, r1 + cmp r0, #0 + beq _080AAA00 + ldr r0, _080AA9FC @ =gPlayerEntity + movs r2, #0x2e + ldrsh r1, [r0, r2] + movs r2, #0x2e + ldrsh r0, [r5, r2] + b _080AAA0A + .align 2, 0 +_080AA9FC: .4byte gPlayerEntity +_080AAA00: + ldr r0, _080AAA24 @ =gPlayerEntity + movs r2, #0x32 + ldrsh r1, [r0, r2] + movs r2, #0x32 + ldrsh r0, [r5, r2] +_080AAA0A: + subs r4, r1, r0 + ldrb r2, [r5, #0xa] + lsls r1, r2, #2 + ldr r0, _080AAA28 @ =gUnk_0812A074 + adds r3, r1, r0 + cmp r2, #2 + bgt _080AAA2C + cmp r2, #1 + bge _080AAA36 + cmp r2, #0 + beq _080AAA30 + b _080AAA40 + .align 2, 0 +_080AAA24: .4byte gPlayerEntity +_080AAA28: .4byte gUnk_0812A074 +_080AAA2C: + cmp r2, #3 + bne _080AAA40 +_080AAA30: + cmp r4, #4 + ble _080AAA40 + b _080AAA3E +_080AAA36: + movs r0, #4 + rsbs r0, r0, #0 + cmp r4, r0 + bge _080AAA40 +_080AAA3E: + adds r3, #2 +_080AAA40: + ldrb r0, [r3] + adds r4, r5, #0 + adds r4, #0x29 + movs r1, #7 + ands r1, r0 + ldrb r2, [r4] + movs r0, #8 + rsbs r0, r0, #0 + ands r0, r2 + orrs r0, r1 + strb r0, [r4] + ldrb r0, [r3, #1] + strb r0, [r5, #0x15] + ldrb r0, [r3] + cmp r0, #5 + bne _080AAA66 + adds r0, r5, #0 + bl sub_08078930 +_080AAA66: + pop {r4, r5, pc} + + thumb_func_start sub_080AAA68 +sub_080AAA68: @ 0x080AAA68 + push {r4, r5, r6, lr} + ldr r2, _080AAAA0 @ =gUnk_0812A084 + ldrb r1, [r0, #0xa] + lsls r1, r1, #1 + adds r1, r1, r2 + ldrh r5, [r1] + movs r2, #0x2e + ldrsh r1, [r0, r2] + ldr r3, _080AAAA4 @ =gRoomControls + ldrh r2, [r3, #6] + subs r1, r1, r2 + asrs r1, r1, #4 + movs r4, #0x3f + ands r1, r4 + movs r6, #0x32 + ldrsh r2, [r0, r6] + ldrh r3, [r3, #8] + subs r2, r2, r3 + asrs r2, r2, #4 + ands r2, r4 + lsls r2, r2, #6 + orrs r1, r2 + adds r0, #0x38 + ldrb r2, [r0] + adds r0, r5, #0 + bl SetTile + pop {r4, r5, r6, pc} + .align 2, 0 +_080AAAA0: .4byte gUnk_0812A084 +_080AAAA4: .4byte gRoomControls + + thumb_func_start sub_080AAAA8 +sub_080AAAA8: @ 0x080AAAA8 + push {r4, r5, lr} + adds r4, r0, #0 + adds r0, #0x86 + ldrh r0, [r0] + bl SetFlag + movs r1, #0x2e + ldrsh r0, [r4, r1] + ldr r2, _080AAAE4 @ =gRoomControls + ldrh r1, [r2, #6] + subs r0, r0, r1 + asrs r0, r0, #4 + movs r3, #0x3f + ands r0, r3 + movs r5, #0x32 + ldrsh r1, [r4, r5] + ldrh r2, [r2, #8] + subs r1, r1, r2 + asrs r1, r1, #4 + ands r1, r3 + lsls r1, r1, #6 + orrs r0, r1 + adds r4, #0x38 + ldrb r1, [r4] + bl sub_0807BA8C + bl DeleteThisEntity + pop {r4, r5, pc} + .align 2, 0 +_080AAAE4: .4byte gRoomControls diff --git a/asm/projectile/projectile16.inc b/asm/projectile/projectile16.inc new file mode 100644 index 00000000..4a3ab87a --- /dev/null +++ b/asm/projectile/projectile16.inc @@ -0,0 +1,90 @@ + thumb_func_start Projectile16 +Projectile16: @ 0x080AAAE8 + push {r4, r5, lr} + adds r5, r0, #0 + ldr r4, _080AAB00 @ =gUnk_0812A3C0 + bl GetNextFunction + lsls r0, r0, #2 + adds r0, r0, r4 + ldr r1, [r0] + adds r0, r5, #0 + bl _call_via_r1 + pop {r4, r5, pc} + .align 2, 0 +_080AAB00: .4byte gUnk_0812A3C0 + + thumb_func_start sub_080AAB04 +sub_080AAB04: @ 0x080AAB04 + push {lr} + ldr r2, _080AAB18 @ =gUnk_0812A3D4 + ldrb r1, [r0, #0xc] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_080AAB18: .4byte gUnk_0812A3D4 + + thumb_func_start sub_080AAB1C +sub_080AAB1C: @ 0x080AAB1C + push {lr} + bl DeleteThisEntity + pop {pc} + + thumb_func_start sub_080AAB24 +sub_080AAB24: @ 0x080AAB24 + push {lr} + movs r1, #1 + strb r1, [r0, #0xc] + movs r1, #0x1e + strb r1, [r0, #0xe] + movs r1, #0 + bl InitializeAnimation + pop {pc} + .align 2, 0 + + thumb_func_start sub_080AAB38 +sub_080AAB38: @ 0x080AAB38 + push {r4, lr} + adds r4, r0, #0 + bl GetNextFrame + ldrb r0, [r4, #0xe] + cmp r0, #0 + beq _080AAB4C + subs r0, #1 + strb r0, [r4, #0xe] + b _080AAB62 +_080AAB4C: + adds r0, r4, #0 + bl sub_080AF090 + cmp r0, #0 + bne _080AAB5E + adds r0, r4, #0 + bl sub_0806F69C + b _080AAB62 +_080AAB5E: + movs r0, #2 + strb r0, [r4, #0xc] +_080AAB62: + pop {r4, pc} + + thumb_func_start sub_080AAB64 +sub_080AAB64: @ 0x080AAB64 + push {r4, lr} + adds r4, r0, #0 + bl GetNextFrame + adds r0, r4, #0 + bl sub_080AF090 + ldrh r0, [r4, #0x2a] + cmp r0, #0 + beq _080AAB7C + bl DeleteThisEntity +_080AAB7C: + adds r0, r4, #0 + bl sub_080A7EB0 + cmp r0, #0 + beq _080AAB8A + bl DeleteThisEntity +_080AAB8A: + pop {r4, pc} diff --git a/asm/projectile/projectile17.inc b/asm/projectile/projectile17.inc new file mode 100644 index 00000000..e7db1bde --- /dev/null +++ b/asm/projectile/projectile17.inc @@ -0,0 +1,51 @@ + thumb_func_start Projectile17 +Projectile17: @ 0x080AAB8C + push {r4, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xc] + cmp r0, #0 + bne _080AABA2 + movs r0, #1 + strb r0, [r4, #0xc] + adds r0, r4, #0 + movs r1, #0 + bl InitializeAnimation +_080AABA2: + adds r0, r4, #0 + bl sub_080AABB0 + adds r0, r4, #0 + bl GetNextFrame + pop {r4, pc} + + thumb_func_start sub_080AABB0 +sub_080AABB0: @ 0x080AABB0 + push {r4, r5, lr} + adds r4, r0, #0 + ldr r5, [r4, #0x50] + adds r0, r5, #0 + adds r1, r4, #0 + bl CopyPosition + ldrb r1, [r5, #0x14] + lsls r1, r1, #1 + ldr r0, _080AABEC @ =gSineTable + adds r1, r1, r0 + ldrb r2, [r4, #0xe] + lsls r2, r2, #8 + movs r3, #0 + ldrsh r0, [r1, r3] + adds r3, r0, #0 + muls r3, r2, r3 + ldr r0, [r4, #0x2c] + adds r0, r0, r3 + str r0, [r4, #0x2c] + adds r1, #0x80 + movs r3, #0 + ldrsh r0, [r1, r3] + adds r1, r0, #0 + muls r1, r2, r1 + ldr r0, [r4, #0x30] + subs r0, r0, r1 + str r0, [r4, #0x30] + pop {r4, r5, pc} + .align 2, 0 +_080AABEC: .4byte gSineTable diff --git a/asm/projectile/projectile18.inc b/asm/projectile/projectile18.inc new file mode 100644 index 00000000..7436c4b8 --- /dev/null +++ b/asm/projectile/projectile18.inc @@ -0,0 +1,596 @@ + + thumb_func_start Projectile18 +Projectile18: @ 0x080AABF0 + push {r4, r5, lr} + adds r5, r0, #0 + ldr r4, _080AAC08 @ =gUnk_0812A418 + bl GetNextFunction + lsls r0, r0, #2 + adds r0, r0, r4 + ldr r1, [r0] + adds r0, r5, #0 + bl _call_via_r1 + pop {r4, r5, pc} + .align 2, 0 +_080AAC08: .4byte gUnk_0812A418 + + thumb_func_start sub_080AAC0C +sub_080AAC0C: @ 0x080AAC0C + push {r4, lr} + adds r4, r0, #0 + ldr r1, _080AAC40 @ =gUnk_0812A430 + ldrb r0, [r4, #0xc] + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r1, [r0] + adds r0, r4, #0 + bl _call_via_r1 + ldrb r0, [r4, #0xb] + cmp r0, #0 + bne _080AAC3C + adds r1, r4, #0 + adds r1, #0x84 + ldrh r0, [r1] + subs r0, #1 + strh r0, [r1] + lsls r0, r0, #0x10 + cmp r0, #0 + bne _080AAC3C + subs r1, #0x3f + movs r0, #0 + strb r0, [r1] +_080AAC3C: + pop {r4, pc} + .align 2, 0 +_080AAC40: .4byte gUnk_0812A430 + + thumb_func_start sub_080AAC44 +sub_080AAC44: @ 0x080AAC44 + push {r4, lr} + adds r4, r0, #0 + adds r0, #0x41 + ldrb r1, [r0] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _080AACCA + ldrb r0, [r4, #0xb] + cmp r0, #0 + bne _080AACBC + movs r0, #0x3f + ands r0, r1 + cmp r0, #0 + bne _080AACA0 + movs r0, #2 + strb r0, [r4, #0xc] + ldrb r1, [r4, #0x10] + movs r0, #0x7f + ands r0, r1 + strb r0, [r4, #0x10] + ldrb r0, [r4, #0xa] + cmp r0, #0 + bne _080AAC84 + ldr r0, _080AAC80 @ =gPlayerEntity + adds r1, r4, #0 + bl ResolveEntityOnTop + b _080AAC8C + .align 2, 0 +_080AAC80: .4byte gPlayerEntity +_080AAC84: + ldr r0, [r4, #0x50] + adds r1, r4, #0 + bl ResolveEntityOnTop +_080AAC8C: + bl ResetPlayer + ldr r2, _080AACB4 @ =gPlayerState + ldrb r1, [r2, #0x1a] + movs r0, #0x80 + orrs r1, r0 + strb r1, [r2, #0x1a] + ldrb r1, [r2, #0xa] + orrs r0, r1 + strb r0, [r2, #0xa] +_080AACA0: + ldr r0, _080AACB8 @ =gPlayerEntity + adds r0, #0x45 + ldrb r1, [r0] + cmp r1, #0 + bne _080AACCA + adds r0, r4, #0 + adds r0, #0x45 + strb r1, [r0] + b _080AACCA + .align 2, 0 +_080AACB4: .4byte gPlayerState +_080AACB8: .4byte gPlayerEntity +_080AACBC: + ldr r0, _080AACDC @ =0x00000119 + bl SoundReq + ldr r0, [r4, #0x50] + adds r1, r4, #0 + bl CopyPosition +_080AACCA: + adds r1, r4, #0 + adds r1, #0x42 + ldrb r0, [r1] + cmp r0, #0 + beq _080AACD8 + movs r0, #0 + strb r0, [r1] +_080AACD8: + pop {r4, pc} + .align 2, 0 +_080AACDC: .4byte 0x00000119 + + thumb_func_start sub_080AACE0 +sub_080AACE0: @ 0x080AACE0 + push {r4, r5, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xa] + cmp r0, #0 + beq _080AACF4 + ldrb r0, [r4, #0xb] + cmp r0, #0 + beq _080AACF4 + bl DeleteThisEntity +_080AACF4: + ldrb r1, [r4, #0x18] + lsls r0, r1, #0x1e + lsrs r2, r0, #0x1e + adds r5, r4, #0 + adds r5, #0x86 + cmp r2, #1 + bne _080AAD16 + movs r0, #4 + rsbs r0, r0, #0 + ands r0, r1 + strb r0, [r4, #0x18] + strb r2, [r5] + adds r0, r4, #0 + movs r1, #2 + movs r2, #0 + bl CreateFx +_080AAD16: + ldr r2, [r4, #0x50] + ldrb r0, [r4, #0xb] + cmp r0, #0 + bne _080AAD4A + adds r1, r2, #0 + adds r1, #0x74 + movs r0, #3 + strb r0, [r1] + adds r1, #0xc + adds r0, r4, #0 + adds r0, #0x81 + ldrb r0, [r0] + lsrs r0, r0, #1 + ldrb r2, [r1] + adds r0, r0, r2 + strb r0, [r1] + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #8 + bls _080AAD42 + movs r0, #8 + b _080AAD56 +_080AAD42: + cmp r0, #0 + bne _080AAD58 + movs r0, #1 + b _080AAD56 +_080AAD4A: + adds r1, r2, #0 + adds r1, #0x84 + movs r0, #0 + strb r0, [r1] + subs r1, #0x45 + movs r0, #0x2b +_080AAD56: + strb r0, [r1] +_080AAD58: + ldrb r0, [r5] + cmp r0, #0 + bne _080AAD68 + adds r0, r4, #0 + movs r1, #2 + movs r2, #0 + bl CreateFx +_080AAD68: + bl DeleteThisEntity + pop {r4, r5, pc} + .align 2, 0 + + thumb_func_start sub_080AAD70 +sub_080AAD70: @ 0x080AAD70 + push {r4, lr} + adds r4, r0, #0 + bl sub_0806F520 + cmp r0, #0 + bne _080AAD82 + adds r1, r4, #0 + adds r1, #0x45 + strb r0, [r1] +_080AAD82: + ldr r0, _080AAD94 @ =gUnk_0812A440 + ldrb r1, [r4, #0xd] + lsls r1, r1, #2 + adds r1, r1, r0 + ldr r1, [r1] + adds r0, r4, #0 + bl _call_via_r1 + pop {r4, pc} + .align 2, 0 +_080AAD94: .4byte gUnk_0812A440 + + thumb_func_start sub_080AAD98 +sub_080AAD98: @ 0x080AAD98 + movs r1, #2 + strb r1, [r0, #0xd] + bx lr + .align 2, 0 + + thumb_func_start nullsub_541 +nullsub_541: @ 0x080AADA0 + bx lr + .align 2, 0 + + thumb_func_start sub_080AADA4 +sub_080AADA4: @ 0x080AADA4 + push {r4, lr} + adds r4, r0, #0 + bl sub_0806F3E4 + cmp r0, #0 + beq _080AADB8 + adds r1, r4, #0 + adds r1, #0x45 + movs r0, #0 + strb r0, [r1] +_080AADB8: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_080AADBC +sub_080AADBC: @ 0x080AADBC + push {r4, r5, lr} + adds r5, r0, #0 + ldrb r0, [r5, #0xb] + cmp r0, #0 + bne _080AADCC + movs r0, #1 + strb r0, [r5, #0xc] + b _080AADE0 +_080AADCC: + movs r0, #3 + strb r0, [r5, #0xc] + adds r1, r5, #0 + adds r1, #0x3f + movs r0, #0x2c + strb r0, [r1] + ldr r0, [r5, #0x50] + adds r1, r5, #0 + bl ResolveEntityOnTop +_080AADE0: + ldrb r1, [r5, #0xa] + cmp r1, #0 + bne _080AAE64 + strb r1, [r5, #0xe] + movs r3, #4 + movs r0, #4 + strb r0, [r5, #0xf] + adds r0, r5, #0 + adds r0, #0x80 + strb r1, [r0] + adds r0, #1 + strb r1, [r0] + adds r1, r5, #0 + adds r1, #0x45 + movs r0, #0x10 + strb r0, [r1] + ldrh r0, [r5, #0x36] + adds r0, #4 + movs r4, #0 + strh r0, [r5, #0x36] + ldrb r2, [r5, #0x1b] + movs r1, #0x3f + adds r0, r1, #0 + ands r0, r2 + movs r2, #0x40 + orrs r0, r2 + strb r0, [r5, #0x1b] + ldrb r0, [r5, #0x19] + ands r1, r0 + orrs r1, r2 + strb r1, [r5, #0x19] + adds r2, r5, #0 + adds r2, #0x29 + ldrb r1, [r2] + movs r0, #8 + rsbs r0, r0, #0 + ands r0, r1 + orrs r0, r3 + strb r0, [r2] + ldr r1, _080AAE60 @ =gPlayerEntity + adds r0, r5, #0 + bl GetFacingDirection + strb r0, [r5, #0x15] + adds r0, r5, #0 + adds r0, #0x86 + strb r4, [r0] + adds r1, r5, #0 + adds r1, #0x84 + movs r0, #0x96 + lsls r0, r0, #1 + strh r0, [r1] + movs r0, #0x18 + bl sub_080A7EE0 + adds r1, r0, #0 + cmp r1, #0 + beq _080AAE7C + movs r0, #1 + strb r0, [r1, #0xa] + ldrb r0, [r5, #0xb] + strb r0, [r1, #0xb] + str r5, [r1, #0x50] + b _080AAE7C + .align 2, 0 +_080AAE60: .4byte gPlayerEntity +_080AAE64: + ldr r0, [r5, #0x50] + adds r1, r5, #0 + bl ResolveEntityOnTop + ldrb r1, [r5, #0x10] + movs r0, #0x7f + ands r0, r1 + strb r0, [r5, #0x10] + ldr r0, [r5, #0x50] + adds r1, r5, #0 + bl CopyPosition +_080AAE7C: + ldrb r1, [r5, #0xa] + adds r0, r5, #0 + bl InitializeAnimation + pop {r4, r5, pc} + .align 2, 0 + + thumb_func_start sub_080AAE88 +sub_080AAE88: @ 0x080AAE88 + push {r4, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xa] + cmp r0, #1 + beq _080AAED0 + cmp r0, #1 + bgt _080AAE9C + cmp r0, #0 + beq _080AAEA2 + b _080AAEF6 +_080AAE9C: + cmp r0, #2 + beq _080AAEE0 + b _080AAEF6 +_080AAEA2: + ldrb r0, [r4, #0xf] + subs r0, #1 + strb r0, [r4, #0xf] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _080AAEC2 + movs r0, #4 + strb r0, [r4, #0xf] + ldr r1, _080AAECC @ =gPlayerEntity + adds r0, r4, #0 + bl GetFacingDirection + adds r1, r0, #0 + adds r0, r4, #0 + bl sub_08004596 +_080AAEC2: + adds r0, r4, #0 + bl sub_0806F69C + b _080AAEF6 + .align 2, 0 +_080AAECC: .4byte gPlayerEntity +_080AAED0: + ldr r0, [r4, #0x50] + cmp r0, #0 + beq _080AAEDC + ldr r0, [r0, #4] + cmp r0, #0 + bne _080AAEE0 +_080AAEDC: + bl DeleteThisEntity +_080AAEE0: + ldr r0, [r4, #0x50] + ldrb r0, [r0, #0x18] + lsls r0, r0, #0x1e + cmp r0, #0 + bne _080AAEEE + bl DeleteThisEntity +_080AAEEE: + ldr r0, [r4, #0x50] + adds r1, r4, #0 + bl CopyPosition +_080AAEF6: + adds r0, r4, #0 + bl sub_080AB034 + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_080AAF00 +sub_080AAF00: @ 0x080AAF00 + push {r4, lr} + adds r4, r0, #0 + bl sub_080AAF74 + adds r0, r4, #0 + bl sub_080AB034 + pop {r4, pc} + + thumb_func_start sub_080AAF10 +sub_080AAF10: @ 0x080AAF10 + push {r4, lr} + adds r4, r0, #0 + ldr r0, [r4, #0x50] + adds r1, r4, #0 + bl CopyPosition + adds r0, r4, #0 + bl sub_080AB034 + ldr r3, [r4, #0x50] + ldrb r1, [r3, #0x18] + lsls r1, r1, #0x1e + lsrs r1, r1, #0x1e + ldrb r2, [r4, #0x18] + movs r0, #4 + rsbs r0, r0, #0 + ands r0, r2 + orrs r0, r1 + strb r0, [r4, #0x18] + ldrb r0, [r4, #0xa] + cmp r0, #0 + beq _080AAF48 + adds r0, r3, #0 + adds r0, #0x45 + ldrb r0, [r0] + adds r1, r4, #0 + adds r1, #0x45 + strb r0, [r1] +_080AAF48: + ldr r0, [r4, #0x50] + ldrb r0, [r0, #0xc] + cmp r0, #2 + bne _080AAF60 + ldrb r1, [r4, #0x10] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _080AAF70 + movs r0, #0x7f + ands r0, r1 + b _080AAF6E +_080AAF60: + ldrb r1, [r4, #0x10] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + bne _080AAF70 + movs r0, #0x80 + orrs r0, r1 +_080AAF6E: + strb r0, [r4, #0x10] +_080AAF70: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_080AAF74 +sub_080AAF74: @ 0x080AAF74 + push {r4, r5, lr} + adds r5, r0, #0 + bl sub_0807953C + cmp r0, #0 + beq _080AAF94 + bl Random + adds r3, r5, #0 + adds r3, #0x80 + ldrb r1, [r3] + adds r1, #1 + movs r2, #1 + ands r0, r2 + adds r1, r1, r0 + strb r1, [r3] +_080AAF94: + ldrb r0, [r5, #0xe] + adds r0, #1 + strb r0, [r5, #0xe] + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #0x3c + bne _080AAFCC + movs r0, #0x1e + strb r0, [r5, #0xe] + ldr r4, _080AAFFC @ =gPlayerEntity + adds r1, r4, #0 + adds r1, #0x3d + movs r0, #8 + strb r0, [r1] + subs r0, #0xc + bl ModHealth + adds r0, r4, #0 + movs r1, #0x7a + bl sub_0800449C + adds r4, #0x45 + ldrb r1, [r4] + cmp r1, #0 + bne _080AAFCC + adds r0, r5, #0 + adds r0, #0x45 + strb r1, [r0] +_080AAFCC: + adds r1, r5, #0 + adds r1, #0x80 + ldrb r0, [r1] + cmp r0, #0x30 + bhi _080AAFE0 + adds r0, r5, #0 + adds r0, #0x81 + ldrb r0, [r0] + cmp r0, #0x10 + bne _080AB004 +_080AAFE0: + movs r2, #0 + movs r0, #1 + strb r0, [r5, #0xc] + strb r2, [r1] + ldr r0, _080AAFFC @ =gPlayerEntity + adds r0, #0x3d + movs r1, #0xf0 + strb r1, [r0] + ldr r0, _080AB000 @ =gPlayerState + strb r2, [r0, #0x1a] + adds r0, r5, #0 + adds r0, #0x45 + strb r2, [r0] + b _080AB028 + .align 2, 0 +_080AAFFC: .4byte gPlayerEntity +_080AB000: .4byte gPlayerState +_080AB004: + bl ResetPlayer + ldr r2, _080AB02C @ =gPlayerState + ldrb r1, [r2, #0x1a] + movs r0, #0x80 + orrs r1, r0 + strb r1, [r2, #0x1a] + ldrb r1, [r2, #0xa] + orrs r0, r1 + strb r0, [r2, #0xa] + ldr r4, _080AB030 @ =gPlayerEntity + adds r0, r4, #0 + adds r1, r5, #0 + bl CopyPosition + ldrh r0, [r4, #0x36] + subs r0, #4 + strh r0, [r5, #0x36] +_080AB028: + pop {r4, r5, pc} + .align 2, 0 +_080AB02C: .4byte gPlayerState +_080AB030: .4byte gPlayerEntity + + thumb_func_start sub_080AB034 +sub_080AB034: @ 0x080AB034 + push {r4, lr} + adds r4, r0, #0 + bl GetNextFrame + adds r0, r4, #0 + adds r0, #0x5b + ldrb r1, [r0] + movs r0, #1 + ands r0, r1 + ldr r1, _080AB058 @ =0x00000139 + cmp r0, #0 + beq _080AB04E + movs r1, #0 +_080AB04E: + adds r0, r4, #0 + bl sub_0801D2B4 + pop {r4, pc} + .align 2, 0 +_080AB058: .4byte 0x00000139 diff --git a/asm/projectile/projectile19.inc b/asm/projectile/projectile19.inc new file mode 100644 index 00000000..3b0693b2 --- /dev/null +++ b/asm/projectile/projectile19.inc @@ -0,0 +1,308 @@ + thumb_func_start Projectile19 +Projectile19: @ 0x080AB05C + push {lr} + ldr r2, _080AB070 @ =gUnk_0812A494 + ldrb r1, [r0, #0xa] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_080AB070: .4byte gUnk_0812A494 + + thumb_func_start sub_080AB074 +sub_080AB074: @ 0x080AB074 + push {r4, r5, r6, r7, lr} + adds r4, r0, #0 + ldr r5, [r4, #0x50] + ldr r0, [r5, #4] + cmp r0, #0 + bne _080AB084 + bl DeleteThisEntity +_080AB084: + ldrb r6, [r4, #0xc] + cmp r6, #0 + bne _080AB0AA + adds r0, r4, #0 + bl sub_080AB12C + cmp r0, #0 + beq _080AB124 + movs r0, #1 + strb r0, [r4, #0xc] + strb r6, [r4, #0x1e] + adds r2, r4, #0 + adds r2, #0x29 + ldrb r1, [r2] + subs r0, #9 + ands r0, r1 + movs r1, #3 + orrs r0, r1 + strb r0, [r2] +_080AB0AA: + ldr r0, [r4, #0x50] + adds r7, r5, #0 + adds r7, #0x7f + movs r3, #0 + ldrsb r3, [r7, r3] + rsbs r3, r3, #0 + subs r3, #0xa + adds r1, r4, #0 + movs r2, #0 + bl sub_0806FA90 + ldr r3, _080AB128 @ =gSineTable + adds r2, r5, #0 + adds r2, #0x7c + ldrb r0, [r2] + lsls r0, r0, #1 + adds r0, r0, r3 + movs r6, #0 + ldrsh r1, [r0, r6] + adds r6, r5, #0 + adds r6, #0x7e + ldrb r0, [r6] + lsls r0, r0, #8 + muls r1, r0, r1 + ldr r0, [r4, #0x2c] + adds r0, r0, r1 + str r0, [r4, #0x2c] + ldrb r0, [r2] + adds r0, #0x40 + lsls r0, r0, #1 + adds r0, r0, r3 + movs r2, #0 + ldrsh r1, [r0, r2] + ldrb r0, [r6] + lsls r0, r0, #8 + muls r1, r0, r1 + ldr r0, [r4, #0x30] + subs r0, r0, r1 + str r0, [r4, #0x30] + movs r0, #0 + ldrsb r0, [r7, r0] + ldrh r6, [r4, #0x36] + adds r0, r0, r6 + strh r0, [r4, #0x36] + adds r0, r5, #0 + adds r0, #0x7b + ldrb r0, [r0] + cmp r0, #0 + beq _080AB124 + movs r0, #0x19 + bl sub_080A7EE0 + adds r5, r0, #0 + cmp r5, #0 + beq _080AB124 + movs r0, #4 + strb r0, [r5, #0xa] + adds r0, r4, #0 + adds r1, r5, #0 + bl CopyPositionAndSpriteOffset +_080AB124: + pop {r4, r5, r6, r7, pc} + .align 2, 0 +_080AB128: .4byte gSineTable + + thumb_func_start sub_080AB12C +sub_080AB12C: @ 0x080AB12C + push {r4, lr} + adds r4, r0, #0 + ldr r0, _080AB168 @ =gEntCount + ldrb r0, [r0] + cmp r0, #0x44 + bhi _080AB16C + movs r0, #0x19 + bl sub_080A7EE0 + adds r1, r0, #0 + movs r0, #1 + strb r0, [r1, #0xa] + str r4, [r1, #0x50] + movs r0, #0x19 + bl sub_080A7EE0 + adds r1, r0, #0 + movs r0, #2 + strb r0, [r1, #0xa] + str r4, [r1, #0x50] + movs r0, #0x19 + bl sub_080A7EE0 + adds r1, r0, #0 + movs r0, #3 + strb r0, [r1, #0xa] + str r4, [r1, #0x50] + movs r0, #1 + b _080AB16E + .align 2, 0 +_080AB168: .4byte gEntCount +_080AB16C: + movs r0, #0 +_080AB16E: + pop {r4, pc} + + thumb_func_start sub_080AB170 +sub_080AB170: @ 0x080AB170 + push {r4, r5, r6, lr} + adds r4, r0, #0 + ldr r6, [r4, #0x50] + ldr r0, [r6, #4] + cmp r0, #0 + bne _080AB180 + bl DeleteThisEntity +_080AB180: + ldrb r0, [r4, #0xc] + cmp r0, #0 + bne _080AB1AA + movs r0, #1 + strb r0, [r4, #0xc] + adds r2, r4, #0 + adds r2, #0x29 + ldrb r1, [r2] + subs r0, #0x3a + ands r0, r1 + strb r0, [r2] + movs r0, #5 + strb r0, [r4, #0x1e] + ldrb r1, [r2] + subs r0, #0xd + ands r0, r1 + movs r1, #3 + orrs r0, r1 + strb r0, [r2] + ldr r0, _080AB1C8 @ =gUnk_080FD460 + str r0, [r4, #0x48] +_080AB1AA: + ldr r5, [r6, #0x50] + adds r0, r4, #0 + adds r0, #0x7c + adds r2, r5, #0 + adds r2, #0x7c + ldrb r1, [r0] + adds r3, r0, #0 + ldrb r2, [r2] + cmp r1, r2 + beq _080AB1CC + ldrb r1, [r4, #0x10] + movs r0, #0x80 + orrs r0, r1 + b _080AB1D2 + .align 2, 0 +_080AB1C8: .4byte gUnk_080FD460 +_080AB1CC: + ldrb r1, [r4, #0x10] + movs r0, #0x7f + ands r0, r1 +_080AB1D2: + strb r0, [r4, #0x10] + adds r0, r5, #0 + adds r0, #0x7c + ldrb r0, [r0] + strb r0, [r3] + adds r0, r5, #0 + adds r0, #0x5a + ldrb r1, [r0] + movs r0, #0x20 + ands r0, r1 + cmp r0, #0 + bne _080AB208 + movs r0, #0x1f + ands r0, r1 + ldr r1, _080AB204 @ =gUnk_0812A4A8 + adds r0, r0, r1 + movs r2, #0 + ldrsb r2, [r0, r2] + movs r3, #1 + ldrsb r3, [r0, r3] + adds r0, r5, #0 + adds r1, r4, #0 + bl sub_0806FA90 + b _080AB216 + .align 2, 0 +_080AB204: .4byte gUnk_0812A4A8 +_080AB208: + movs r3, #0xa + rsbs r3, r3, #0 + adds r0, r5, #0 + adds r1, r4, #0 + movs r2, #0 + bl sub_0806FA90 +_080AB216: + movs r1, #0x2e + ldrsh r0, [r6, r1] + movs r2, #0x2e + ldrsh r1, [r4, r2] + subs r0, r0, r1 + ldrb r2, [r4, #0xa] + muls r0, r2, r0 + adds r3, r2, #0 + cmp r0, #0 + bge _080AB22C + adds r0, #3 +_080AB22C: + asrs r0, r0, #2 + ldrh r5, [r4, #0x2e] + adds r0, r0, r5 + strh r0, [r4, #0x2e] + movs r1, #0x32 + ldrsh r0, [r6, r1] + movs r5, #0x32 + ldrsh r1, [r4, r5] + subs r0, r0, r1 + muls r0, r3, r0 + cmp r0, #0 + bge _080AB246 + adds r0, #3 +_080AB246: + asrs r0, r0, #2 + ldrh r1, [r4, #0x32] + adds r0, r0, r1 + strh r0, [r4, #0x32] + movs r3, #0x36 + ldrsh r0, [r6, r3] + movs r5, #0x36 + ldrsh r1, [r4, r5] + subs r0, r0, r1 + muls r0, r2, r0 + cmp r0, #0 + bge _080AB260 + adds r0, #3 +_080AB260: + asrs r0, r0, #2 + ldrh r1, [r4, #0x36] + adds r0, r0, r1 + strh r0, [r4, #0x36] + pop {r4, r5, r6, pc} + .align 2, 0 + + thumb_func_start sub_080AB26C +sub_080AB26C: @ 0x080AB26C + push {lr} + adds r2, r0, #0 + ldrb r1, [r2, #0xc] + cmp r1, #0 + bne _080AB28C + movs r0, #1 + strb r0, [r2, #0xc] + movs r0, #5 + strb r0, [r2, #0xe] + strb r1, [r2, #0x1e] + adds r3, r2, #0 + adds r3, #0x29 + ldrb r1, [r3] + subs r0, #0x3e + ands r0, r1 + strb r0, [r3] +_080AB28C: + ldrb r0, [r2, #0xe] + subs r0, #1 + strb r0, [r2, #0xe] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _080AB29E + bl DeleteThisEntity + b _080AB2A4 +_080AB29E: + ldrb r0, [r2, #0x1e] + adds r0, #1 + strb r0, [r2, #0x1e] +_080AB2A4: + pop {pc} + .align 2, 0 diff --git a/asm/projectile/projectile1A.inc b/asm/projectile/projectile1A.inc new file mode 100644 index 00000000..e1902af1 --- /dev/null +++ b/asm/projectile/projectile1A.inc @@ -0,0 +1,311 @@ + thumb_func_start Projectile1A +Projectile1A: @ 0x080AB2A8 + push {r4, r5, lr} + adds r5, r0, #0 + ldr r4, _080AB2C0 @ =gUnk_0812A4C8 + bl GetNextFunction + lsls r0, r0, #2 + adds r0, r0, r4 + ldr r1, [r0] + adds r0, r5, #0 + bl _call_via_r1 + pop {r4, r5, pc} + .align 2, 0 +_080AB2C0: .4byte gUnk_0812A4C8 + + thumb_func_start sub_080AB2C4 +sub_080AB2C4: @ 0x080AB2C4 + push {lr} + ldr r2, _080AB2D8 @ =gUnk_0812A4DC + ldrb r1, [r0, #0xc] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_080AB2D8: .4byte gUnk_0812A4DC + + thumb_func_start sub_080AB2DC +sub_080AB2DC: @ 0x080AB2DC + push {r4, r5, lr} + adds r2, r0, #0 + adds r5, r2, #0 + adds r5, #0x41 + ldrb r1, [r5] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _080AB314 + movs r0, #3 + strb r0, [r2, #0xc] + ldrb r1, [r2, #0x10] + movs r4, #0x7f + adds r0, r4, #0 + ands r0, r1 + strb r0, [r2, #0x10] + adds r0, r2, #0 + movs r1, #0x53 + bl InitializeAnimation + ldrb r0, [r5] + ands r4, r0 + cmp r4, #0 + bne _080AB314 + movs r0, #4 + rsbs r0, r0, #0 + bl ModHealth +_080AB314: + pop {r4, r5, pc} + .align 2, 0 + + thumb_func_start sub_080AB318 +sub_080AB318: @ 0x080AB318 + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + adds r6, r0, #0 + movs r4, #1 + movs r0, #1 + mov r8, r0 + mov r1, r8 + strb r1, [r6, #0xc] + ldr r0, _080AB3D8 @ =0xFFFF0000 + str r0, [r6, #0x20] + movs r2, #0x2e + ldrsh r1, [r6, r2] + ldr r2, _080AB3DC @ =gRoomControls + ldrh r0, [r2, #6] + subs r1, r1, r0 + asrs r1, r1, #4 + movs r3, #0x3f + ands r1, r3 + movs r5, #0x32 + ldrsh r0, [r6, r5] + ldrh r2, [r2, #8] + subs r0, r0, r2 + asrs r0, r0, #4 + ands r0, r3 + lsls r0, r0, #6 + orrs r1, r0 + adds r0, r6, #0 + adds r0, #0x76 + strh r1, [r0] + ldr r0, [r6, #0x50] + adds r1, r6, #0 + bl CopyPosition + movs r1, #0x80 + lsls r1, r1, #5 + ldrb r2, [r6, #0x15] + adds r0, r6, #0 + bl sub_0806F5BC + adds r2, r6, #0 + adds r2, #0x29 + ldrb r1, [r2] + movs r0, #8 + rsbs r0, r0, #0 + ands r0, r1 + orrs r0, r4 + strb r0, [r2] + ldr r0, [r6, #0x50] + ldr r0, [r0, #0x34] + str r0, [r6, #0x34] + adds r0, r6, #0 + movs r1, #0x51 + bl InitializeAnimation + ldr r0, _080AB3E0 @ =0x000001B5 + bl SoundReq + adds r0, r6, #0 + bl sub_080AB4F8 + movs r1, #0x2e + ldrsh r2, [r6, r1] + movs r1, #0 + ldrsb r1, [r0, r1] + adds r5, r2, r1 + movs r2, #0x32 + ldrsh r1, [r6, r2] + ldrb r0, [r0, #1] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + adds r7, r1, r0 + adds r0, r6, #0 + adds r1, r5, #0 + adds r2, r7, #0 + bl sub_080041DC + adds r4, r0, #0 + bl Random + adds r1, r0, #0 + ldr r0, _080AB3E4 @ =0x000001FF + ands r1, r0 + ldr r0, _080AB3E8 @ =gScreenTransition + ldr r0, [r0] + mov r2, r8 + ands r0, r2 + cmp r0, #0 + beq _080AB3EC + adds r4, r4, r1 + movs r0, #0x80 + lsls r0, r0, #3 + cmp r4, r0 + ble _080AB3F4 + adds r4, r0, #0 + b _080AB3F4 + .align 2, 0 +_080AB3D8: .4byte 0xFFFF0000 +_080AB3DC: .4byte gRoomControls +_080AB3E0: .4byte 0x000001B5 +_080AB3E4: .4byte 0x000001FF +_080AB3E8: .4byte gScreenTransition +_080AB3EC: + subs r4, r4, r1 + cmp r4, #0x1f + bgt _080AB3F4 + movs r4, #0x20 +_080AB3F4: + lsls r1, r4, #8 + ldr r0, [r6, #0x34] + bl __divsi3 + lsls r0, r0, #0xd + str r0, [r6, #0x20] + adds r0, r6, #0 + adds r1, r5, #0 + adds r2, r7, #0 + bl sub_080045B4 + strb r0, [r6, #0x15] + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7, pc} + .align 2, 0 + + thumb_func_start sub_080AB414 +sub_080AB414: @ 0x080AB414 + push {r4, lr} + adds r4, r0, #0 + bl GetNextFrame + adds r0, r4, #0 + bl sub_0806F69C + adds r0, r4, #0 + movs r1, #0 + bl sub_08003FC4 + cmp r0, #0 + bne _080AB446 + movs r0, #2 + strb r0, [r4, #0xc] + movs r0, #0xf + strb r0, [r4, #0xe] + adds r0, r4, #0 + movs r1, #0x54 + bl InitializeAnimation + adds r0, r4, #0 + bl sub_080AB4A4 + b _080AB458 +_080AB446: + ldrb r0, [r4, #0xe] + adds r0, #1 + strb r0, [r4, #0xe] + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #0xe0 + bls _080AB458 + bl DeleteThisEntity +_080AB458: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_080AB45C +sub_080AB45C: @ 0x080AB45C + push {r4, lr} + adds r4, r0, #0 + bl GetNextFrame + adds r0, r4, #0 + adds r0, #0x5a + ldrb r1, [r0] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _080AB486 + movs r0, #3 + strb r0, [r4, #0xc] + ldrb r1, [r4, #0x10] + movs r0, #0x7f + ands r0, r1 + strb r0, [r4, #0x10] + adds r0, r4, #0 + movs r1, #0x53 + bl InitializeAnimation +_080AB486: + pop {r4, pc} + + thumb_func_start sub_080AB488 +sub_080AB488: @ 0x080AB488 + push {r4, lr} + adds r4, r0, #0 + bl GetNextFrame + adds r4, #0x5a + ldrb r1, [r4] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _080AB4A0 + bl DeleteThisEntity +_080AB4A0: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_080AB4A4 +sub_080AB4A4: @ 0x080AB4A4 + push {r4, r5, r6, r7, lr} + adds r6, r0, #0 + adds r7, r6, #0 + adds r7, #0x76 + ldrh r4, [r7] + movs r1, #0x2e + ldrsh r0, [r6, r1] + ldr r3, _080AB4F4 @ =gRoomControls + ldrh r1, [r3, #6] + subs r0, r0, r1 + asrs r5, r0, #4 + movs r2, #0x3f + ands r5, r2 + movs r1, #0x32 + ldrsh r0, [r6, r1] + ldrh r1, [r3, #8] + subs r0, r0, r1 + asrs r0, r0, #4 + ands r0, r2 + lsls r0, r0, #6 + orrs r5, r0 + cmp r4, r5 + beq _080AB4F2 + strh r5, [r7] + adds r0, r6, #0 + bl GetTileTypeByEntity + cmp r0, #0x13 + beq _080AB4E2 + cmp r0, #0x34 + bne _080AB4F2 +_080AB4E2: + movs r0, #0xd3 + lsls r0, r0, #2 + ldrh r1, [r7] + adds r2, r6, #0 + adds r2, #0x38 + ldrb r2, [r2] + bl sub_0807B7D8 +_080AB4F2: + pop {r4, r5, r6, r7, pc} + .align 2, 0 +_080AB4F4: .4byte gRoomControls + + thumb_func_start sub_080AB4F8 +sub_080AB4F8: @ 0x080AB4F8 + adds r1, r0, #0 + ldrb r0, [r1, #0xa] + lsls r0, r0, #5 + ldrb r1, [r1, #0xf] + lsls r1, r1, #1 + orrs r0, r1 + ldr r1, _080AB50C @ =gUnk_0812A4EC + adds r0, r0, r1 + bx lr + .align 2, 0 +_080AB50C: .4byte gUnk_0812A4EC diff --git a/asm/projectile/projectile1B.inc b/asm/projectile/projectile1B.inc new file mode 100644 index 00000000..91f31e85 --- /dev/null +++ b/asm/projectile/projectile1B.inc @@ -0,0 +1,207 @@ + thumb_func_start Projectile1B +Projectile1B: @ 0x080AB510 + push {r4, r5, lr} + adds r5, r0, #0 + ldr r4, _080AB528 @ =gUnk_0812A58C + bl GetNextFunction + lsls r0, r0, #2 + adds r0, r0, r4 + ldr r1, [r0] + adds r0, r5, #0 + bl _call_via_r1 + pop {r4, r5, pc} + .align 2, 0 +_080AB528: .4byte gUnk_0812A58C + + thumb_func_start sub_080AB52C +sub_080AB52C: @ 0x080AB52C + push {lr} + ldr r2, _080AB540 @ =gUnk_0812A5A0 + ldrb r1, [r0, #0xc] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_080AB540: .4byte gUnk_0812A5A0 + + thumb_func_start sub_080AB544 +sub_080AB544: @ 0x080AB544 + push {lr} + adds r2, r0, #0 + adds r0, #0x3d + movs r1, #0 + ldrsb r1, [r0, r1] + movs r0, #4 + rsbs r0, r0, #0 + cmp r1, r0 + bge _080AB57C + movs r1, #2 + movs r0, #2 + strb r0, [r2, #0xc] + adds r0, r2, #0 + adds r0, #0x3e + ldrb r0, [r0] + strb r0, [r2, #0x15] + ldrb r0, [r2, #0xa] + eors r1, r0 + lsls r1, r1, #3 + ldrb r0, [r2, #0x15] + subs r0, r0, r1 + adds r0, #1 + cmp r0, #2 + bhi _080AB576 + strb r1, [r2, #0x15] +_080AB576: + movs r0, #0xa0 + lsls r0, r0, #2 + strh r0, [r2, #0x24] +_080AB57C: + pop {pc} + .align 2, 0 + + thumb_func_start sub_080AB580 +sub_080AB580: @ 0x080AB580 + push {lr} + movs r1, #1 + strb r1, [r0, #0xc] + ldrb r1, [r0, #0xa] + lsls r1, r1, #3 + strb r1, [r0, #0x15] + ldr r1, _080AB598 @ =0x0000FFFC + strh r1, [r0, #0x36] + ldrb r1, [r0, #0xa] + bl InitializeAnimation + pop {pc} + .align 2, 0 +_080AB598: .4byte 0x0000FFFC + + thumb_func_start sub_080AB59C +sub_080AB59C: @ 0x080AB59C + push {r4, lr} + adds r4, r0, #0 + bl GetNextFrame + adds r0, r4, #0 + bl sub_080AF090 + cmp r0, #0 + bne _080AB5BC + adds r0, r4, #0 + movs r1, #2 + movs r2, #0 + bl CreateFx + bl DeleteThisEntity +_080AB5BC: + adds r0, r4, #0 + bl sub_080AB5F4 + pop {r4, pc} + + thumb_func_start sub_080AB5C4 +sub_080AB5C4: @ 0x080AB5C4 + push {r4, lr} + adds r4, r0, #0 + bl GetNextFrame + adds r0, r4, #0 + bl sub_080AF090 + adds r0, r4, #0 + bl sub_080AB634 + cmp r0, #0 + bne _080AB5F0 + ldrh r0, [r4, #0x2a] + cmp r0, #0 + beq _080AB5F0 + adds r0, r4, #0 + movs r1, #2 + movs r2, #0 + bl CreateFx + bl DeleteThisEntity +_080AB5F0: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_080AB5F4 +sub_080AB5F4: @ 0x080AB5F4 + push {r4, lr} + adds r4, r0, #0 + bl sub_080043E8 + cmp r0, #2 + beq _080AB61A + cmp r0, #2 + bhi _080AB60A + cmp r0, #1 + beq _080AB610 + b _080AB62E +_080AB60A: + cmp r0, #3 + beq _080AB624 + b _080AB62E +_080AB610: + adds r0, r4, #0 + bl CreateItemOnGround + movs r0, #1 + b _080AB630 +_080AB61A: + adds r0, r4, #0 + bl sub_080043A8 + movs r0, #1 + b _080AB630 +_080AB624: + adds r0, r4, #0 + bl CreateChestSpawner + movs r0, #1 + b _080AB630 +_080AB62E: + movs r0, #0 +_080AB630: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_080AB634 +sub_080AB634: @ 0x080AB634 + push {r4, r5, r6, lr} + adds r6, r0, #0 + ldr r0, [r6, #0x50] + movs r5, #0 + adds r4, r0, #0 + adds r4, #0x20 +_080AB640: + ldr r1, [r4] + cmp r1, #0 + beq _080AB684 + adds r0, r6, #0 + bl sub_080177A0 + cmp r0, #0 + beq _080AB684 + ldr r1, [r4] + ldrb r0, [r1, #0xc] + cmp r0, #2 + bhi _080AB67A + movs r0, #3 + strb r0, [r1, #0xc] + ldr r1, [r4] + movs r0, #0x1e + strb r0, [r1, #0xe] + ldr r2, [r4] + ldrb r0, [r2, #0x18] + movs r3, #4 + rsbs r3, r3, #0 + adds r1, r3, #0 + ands r0, r1 + strb r0, [r2, #0x18] + ldr r0, [r4] + movs r1, #0x45 + movs r2, #0 + bl CreateFx +_080AB67A: + adds r0, r6, #0 + bl DeleteEntity + movs r0, #1 + b _080AB68E +_080AB684: + adds r4, #4 + adds r5, #1 + cmp r5, #3 + bls _080AB640 + movs r0, #0 +_080AB68E: + pop {r4, r5, r6, pc} diff --git a/asm/projectile/projectile1C.inc b/asm/projectile/projectile1C.inc new file mode 100644 index 00000000..0113bf44 --- /dev/null +++ b/asm/projectile/projectile1C.inc @@ -0,0 +1,303 @@ + thumb_func_start Projectile1C +Projectile1C: @ 0x080AB690 + push {r4, lr} + adds r4, r0, #0 + ldr r0, [r4, #0x50] + ldrb r0, [r0, #0x18] + lsls r0, r0, #0x1e + cmp r0, #0 + bne _080AB6A2 + bl DeleteThisEntity +_080AB6A2: + ldr r0, _080AB6B4 @ =gUnk_0812A5E8 + ldrb r1, [r4, #0xc] + lsls r1, r1, #2 + adds r1, r1, r0 + ldr r1, [r1] + adds r0, r4, #0 + bl _call_via_r1 + pop {r4, pc} + .align 2, 0 +_080AB6B4: .4byte gUnk_0812A5E8 + + thumb_func_start sub_080AB6B8 +sub_080AB6B8: @ 0x080AB6B8 + push {lr} + adds r2, r0, #0 + ldr r0, [r2, #0x50] + ldr r0, [r0, #0x2c] + str r0, [r2, #0x74] + ldrb r0, [r2, #0xa] + cmp r0, #0 + bne _080AB6E8 + movs r0, #1 + strb r0, [r2, #0xc] + ldrb r1, [r2, #0x10] + movs r0, #0x7f + ands r0, r1 + strb r0, [r2, #0x10] + ldr r0, _080AB6E4 @ =gUnk_0812A614 + str r0, [r2, #0x48] + adds r0, r2, #0 + movs r1, #0 + bl InitializeAnimation + b _080AB6F8 + .align 2, 0 +_080AB6E4: .4byte gUnk_0812A614 +_080AB6E8: + movs r0, #2 + strb r0, [r2, #0xc] + movs r0, #4 + strb r0, [r2, #0xf] + ldrb r1, [r2, #0xe] + adds r0, r2, #0 + bl InitializeAnimation +_080AB6F8: + pop {pc} + .align 2, 0 + + thumb_func_start sub_080AB6FC +sub_080AB6FC: @ 0x080AB6FC + push {r4, lr} + adds r4, r0, #0 + bl GetNextFrame + adds r0, r4, #0 + adds r0, #0x5a + ldrb r1, [r0] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _080AB724 + movs r0, #2 + strb r0, [r4, #0xc] + adds r0, r4, #0 + movs r1, #1 + bl InitializeAnimation + adds r0, r4, #0 + bl sub_080AB758 +_080AB724: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_080AB728 +sub_080AB728: @ 0x080AB728 + push {r4, lr} + adds r4, r0, #0 + bl GetNextFrame + ldr r2, [r4, #0x50] + ldr r1, [r2, #0x2c] + ldr r0, [r4, #0x74] + subs r1, r1, r0 + ldr r0, [r4, #0x2c] + adds r0, r0, r1 + str r0, [r4, #0x2c] + ldr r0, [r2, #0x2c] + str r0, [r4, #0x74] + adds r0, r4, #0 + bl sub_080AB888 + ldr r0, [r4, #0x50] + ldrb r0, [r0, #0xf] + cmp r0, #0 + bne _080AB754 + bl DeleteThisEntity +_080AB754: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_080AB758 +sub_080AB758: @ 0x080AB758 + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + sub sp, #4 + adds r5, r0, #0 + movs r6, #6 + movs r7, #0 + movs r4, #0 + movs r0, #0x32 + ldrsh r2, [r5, r0] + ldr r1, _080AB818 @ =gRoomControls + ldrh r0, [r1, #8] + adds r0, #0xd4 + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + mov r8, r1 + cmp r2, r0 + bhi _080AB7B4 + movs r3, #7 +_080AB77E: + adds r0, r4, #0 + ands r0, r3 + cmp r0, #7 + bne _080AB798 + adds r0, r5, #0 + movs r1, #4 + adds r2, r6, #0 + str r3, [sp] + bl sub_080AB844 + adds r6, #0x3e + adds r7, #0x3e + ldr r3, [sp] +_080AB798: + adds r4, #1 + ands r4, r3 + movs r1, #0x32 + ldrsh r0, [r5, r1] + adds r0, r0, r7 + lsls r1, r4, #3 + adds r2, r0, r1 + ldr r0, _080AB818 @ =gRoomControls + ldrh r0, [r0, #8] + adds r0, #0xd4 + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + cmp r2, r0 + bls _080AB77E +_080AB7B4: + movs r4, #0 + movs r1, #0x32 + ldrsh r0, [r5, r1] + adds r2, r0, r7 + mov r1, r8 + ldrh r0, [r1, #8] + adds r0, #0xd4 + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + cmp r2, r0 + bhi _080AB802 + movs r3, #3 +_080AB7CC: + adds r0, r4, #0 + ands r0, r3 + cmp r0, #3 + bne _080AB7E6 + adds r0, r5, #0 + movs r1, #3 + adds r2, r6, #0 + str r3, [sp] + bl sub_080AB844 + adds r6, #0x1e + adds r7, #0x1e + ldr r3, [sp] +_080AB7E6: + adds r4, #1 + ands r4, r3 + movs r1, #0x32 + ldrsh r0, [r5, r1] + adds r0, r0, r7 + lsls r1, r4, #3 + adds r2, r0, r1 + ldr r0, _080AB818 @ =gRoomControls + ldrh r0, [r0, #8] + adds r0, #0xd4 + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + cmp r2, r0 + bls _080AB7CC +_080AB802: + movs r0, #2 + ands r0, r4 + cmp r0, #0 + beq _080AB81C + adds r0, r5, #0 + movs r1, #2 + adds r2, r6, #0 + bl sub_080AB844 + adds r6, #0xe + b _080AB830 + .align 2, 0 +_080AB818: .4byte gRoomControls +_080AB81C: + movs r0, #1 + ands r4, r0 + cmp r4, #0 + beq _080AB830 + adds r0, r5, #0 + movs r1, #1 + adds r2, r6, #0 + bl sub_080AB844 + adds r6, #6 +_080AB830: + adds r0, r5, #0 + movs r1, #6 + adds r2, r6, #0 + bl sub_080AB844 + add sp, #4 + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7, pc} + .align 2, 0 + + thumb_func_start sub_080AB844 +sub_080AB844: @ 0x080AB844 + push {r4, r5, r6, r7, lr} + adds r5, r0, #0 + adds r7, r1, #0 + adds r6, r2, #0 + movs r0, #0x1c + bl sub_080A7EE0 + adds r4, r0, #0 + cmp r4, #0 + beq _080AB880 + movs r0, #1 + strb r0, [r4, #0xa] + strb r7, [r4, #0xe] + ldr r0, [r5, #0x50] + str r0, [r4, #0x50] + lsls r3, r6, #0x10 + adds r0, r5, #0 + adds r1, r4, #0 + movs r2, #0 + bl PositionRelative + cmp r7, #1 + beq _080AB87C + ldr r0, _080AB878 @ =gUnk_0812A61C + b _080AB87E + .align 2, 0 +_080AB878: .4byte gUnk_0812A61C +_080AB87C: + ldr r0, _080AB884 @ =gUnk_0812A614 +_080AB87E: + str r0, [r4, #0x48] +_080AB880: + pop {r4, r5, r6, r7, pc} + .align 2, 0 +_080AB884: .4byte gUnk_0812A614 + + thumb_func_start sub_080AB888 +sub_080AB888: @ 0x080AB888 + push {lr} + adds r2, r0, #0 + ldrb r0, [r2, #0xf] + subs r0, #1 + strb r0, [r2, #0xf] + movs r3, #0 + ldrb r0, [r2, #0xe] + cmp r0, #3 + beq _080AB8A4 + cmp r0, #3 + ble _080AB8B6 + cmp r0, #4 + beq _080AB8A6 + b _080AB8B6 +_080AB8A4: + movs r3, #1 +_080AB8A6: + ldr r0, _080AB8C4 @ =gUnk_0812A5F4 + ldrb r1, [r2, #0xf] + lsls r1, r1, #1 + adds r1, r1, r3 + lsls r1, r1, #2 + adds r1, r1, r0 + ldr r0, [r1] + str r0, [r2, #0x48] +_080AB8B6: + ldrb r0, [r2, #0xf] + cmp r0, #0 + bne _080AB8C0 + movs r0, #4 + strb r0, [r2, #0xf] +_080AB8C0: + pop {pc} + .align 2, 0 +_080AB8C4: .4byte gUnk_0812A5F4 diff --git a/asm/projectile/projectile1D.inc b/asm/projectile/projectile1D.inc new file mode 100644 index 00000000..37499db0 --- /dev/null +++ b/asm/projectile/projectile1D.inc @@ -0,0 +1,209 @@ + thumb_func_start Projectile1D +Projectile1D: @ 0x080AB8C8 + push {r4, lr} + adds r4, r0, #0 + ldr r1, _080AB8E4 @ =gUnk_0812A6B4 + ldrb r0, [r4, #0xc] + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r1, [r0] + adds r0, r4, #0 + bl _call_via_r1 + adds r0, r4, #0 + bl sub_080AB9DC + pop {r4, pc} + .align 2, 0 +_080AB8E4: .4byte gUnk_0812A6B4 + + thumb_func_start sub_080AB8E8 +sub_080AB8E8: @ 0x080AB8E8 + push {r4, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xc] + adds r0, #1 + movs r1, #0 + strb r0, [r4, #0xc] + movs r0, #0xa0 + lsls r0, r0, #1 + strh r0, [r4, #0x24] + str r1, [r4, #0x34] + ldrb r0, [r4, #0xa] + cmp r0, #0 + bne _080AB90E + bl Random + movs r1, #0x18 + ands r0, r1 + strb r0, [r4, #0x15] + str r4, [r4, #0x50] +_080AB90E: + adds r0, r4, #0 + movs r1, #0 + bl InitializeAnimation + ldrb r0, [r4, #0xa] + cmp r0, #3 + bhi _080AB936 + movs r0, #0x1d + bl sub_080A7EE0 + adds r1, r0, #0 + ldrb r0, [r4, #0xa] + adds r0, #1 + strb r0, [r1, #0xa] + ldr r0, [r4, #0x50] + str r0, [r1, #0x50] + str r4, [r1, #0x54] + adds r0, r4, #0 + bl CopyPosition +_080AB936: + adds r1, r4, #0 + adds r1, #0x68 + movs r2, #7 +_080AB93C: + ldrh r0, [r4, #0x2e] + strh r0, [r1] + adds r1, #2 + ldrh r0, [r4, #0x32] + strh r0, [r1] + adds r1, #2 + subs r2, #1 + cmp r2, #0 + bge _080AB93C + pop {r4, pc} + + thumb_func_start sub_080AB950 +sub_080AB950: @ 0x080AB950 + push {r4, r5, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xa] + cmp r0, #0 + bne _080AB99C + adds r0, r4, #0 + bl ProcessMovement + ldrb r0, [r4, #0x15] + lsrs r0, r0, #3 + ldr r1, _080AB994 @ =gUnk_0812A6C4 + lsls r5, r0, #1 + adds r1, r5, r1 + ldrh r1, [r1] + ldrh r0, [r4, #0x2a] + ands r0, r1 + cmp r0, #0 + bne _080AB980 + ldrb r1, [r4, #0x15] + adds r0, r4, #0 + bl sub_080AB9FC + cmp r0, #0 + beq _080AB9D4 +_080AB980: + bl Random + ldr r2, _080AB998 @ =gUnk_0812A6BC + movs r1, #1 + ands r1, r0 + adds r1, r1, r5 + adds r1, r1, r2 + ldrb r0, [r1] + strb r0, [r4, #0x15] + b _080AB9D4 + .align 2, 0 +_080AB994: .4byte gUnk_0812A6C4 +_080AB998: .4byte gUnk_0812A6BC +_080AB99C: + ldr r0, [r4, #0x50] + cmp r0, #0 + bne _080AB9A6 + bl DeleteThisEntity +_080AB9A6: + ldr r0, [r4, #0x50] + ldr r0, [r0, #4] + cmp r0, #0 + bne _080AB9B2 + bl DeleteThisEntity +_080AB9B2: + ldr r1, [r4, #0x54] + cmp r1, #0 + beq _080AB9D0 + ldr r0, [r1, #4] + cmp r0, #0 + beq _080AB9D0 + adds r0, r1, #0 + adds r0, #0x68 + ldrh r0, [r0] + strh r0, [r4, #0x2e] + adds r0, r1, #0 + adds r0, #0x6a + ldrh r0, [r0] + strh r0, [r4, #0x32] + b _080AB9D4 +_080AB9D0: + bl DeleteThisEntity +_080AB9D4: + adds r0, r4, #0 + bl GetNextFrame + pop {r4, r5, pc} + + thumb_func_start sub_080AB9DC +sub_080AB9DC: @ 0x080AB9DC + push {r4, lr} + adds r4, r0, #0 + adds r0, #0x6c + adds r1, r4, #0 + adds r1, #0x68 + movs r2, #0x1c + bl MemCopy + ldrh r1, [r4, #0x2e] + adds r0, r4, #0 + adds r0, #0x84 + strh r1, [r0] + ldrh r1, [r4, #0x32] + adds r0, #2 + strh r1, [r0] + pop {r4, pc} + + thumb_func_start sub_080AB9FC +sub_080AB9FC: @ 0x080AB9FC + push {r4, r5, r6, r7, lr} + adds r5, r0, #0 + adds r4, r1, #0 + adds r0, #0x38 + ldrb r0, [r0] + bl GetLayerByIndex + movs r1, #0x2e + ldrsh r3, [r5, r1] + ldr r2, _080ABA4C @ =gRoomControls + ldrh r1, [r2, #6] + subs r3, r3, r1 + asrs r3, r3, #4 + movs r6, #0x3f + ands r3, r6 + movs r7, #0x32 + ldrsh r1, [r5, r7] + ldrh r2, [r2, #8] + subs r1, r1, r2 + asrs r1, r1, #4 + ands r1, r6 + lsls r1, r1, #6 + orrs r3, r1 + ldr r1, _080ABA50 @ =gUnk_080B4488 + lsrs r4, r4, #3 + lsls r4, r4, #1 + adds r4, r4, r1 + movs r2, #0 + ldrsh r1, [r4, r2] + adds r3, r3, r1 + ldr r7, _080ABA54 @ =0x00002004 + adds r0, r0, r7 + adds r0, r0, r3 + ldrb r0, [r0] + cmp r0, #0x1f + bls _080ABA58 + cmp r0, #0x3f + bhi _080ABA58 + movs r0, #1 + b _080ABA5A + .align 2, 0 +_080ABA4C: .4byte gRoomControls +_080ABA50: .4byte gUnk_080B4488 +_080ABA54: .4byte 0x00002004 +_080ABA58: + movs r0, #0 +_080ABA5A: + pop {r4, r5, r6, r7, pc} diff --git a/asm/projectile/projectile1E.inc b/asm/projectile/projectile1E.inc new file mode 100644 index 00000000..d0096e43 --- /dev/null +++ b/asm/projectile/projectile1E.inc @@ -0,0 +1,166 @@ + thumb_func_start Projectile1E +Projectile1E: @ 0x080ABA5C + push {lr} + ldr r2, _080ABA70 @ =gUnk_0812A6CC + ldrb r1, [r0, #0xc] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_080ABA70: .4byte gUnk_0812A6CC + + thumb_func_start sub_080ABA74 +sub_080ABA74: @ 0x080ABA74 + push {lr} + adds r2, r0, #0 + ldrb r0, [r2, #0xc] + adds r0, #1 + strb r0, [r2, #0xc] + adds r0, r2, #0 + adds r0, #0x86 + ldrh r0, [r0] + strh r0, [r2, #0x24] + ldrh r1, [r2, #0x2e] + adds r0, r2, #0 + adds r0, #0x68 + strh r1, [r0] + ldrh r0, [r2, #0x32] + adds r1, r2, #0 + adds r1, #0x6a + strh r0, [r1] + adds r0, r2, #0 + adds r0, #0x84 + ldrh r1, [r0] + subs r0, #0x18 + strh r1, [r0] + ldrb r0, [r2, #0xa] + cmp r0, #6 + bhi _080ABAAA + movs r0, #0 + b _080ABAAC +_080ABAAA: + movs r0, #1 +_080ABAAC: + strb r0, [r2, #0xb] + ldr r0, _080ABAC8 @ =gUnk_0812A6D4 + ldrb r1, [r2, #0xa] + adds r0, r1, r0 + ldrb r3, [r0] + ldrb r0, [r2, #0xb] + cmp r0, #0 + bne _080ABACC + movs r0, #8 + strb r0, [r2, #0x15] + ldrh r0, [r2, #0x32] + adds r0, r0, r3 + strh r0, [r2, #0x32] + b _080ABAD6 + .align 2, 0 +_080ABAC8: .4byte gUnk_0812A6D4 +_080ABACC: + movs r0, #0x10 + strb r0, [r2, #0x15] + ldrh r0, [r2, #0x2e] + adds r0, r0, r3 + strh r0, [r2, #0x2e] +_080ABAD6: + adds r0, r2, #0 + bl InitializeAnimation + pop {pc} + .align 2, 0 + + thumb_func_start sub_080ABAE0 +sub_080ABAE0: @ 0x080ABAE0 + push {r4, r5, r6, lr} + adds r4, r0, #0 + bl sub_080AF090 + ldrb r0, [r4, #0xb] + cmp r0, #0 + bne _080ABAFE + movs r1, #0x2e + ldrsh r0, [r4, r1] + adds r1, r4, #0 + adds r1, #0x68 + movs r2, #0 + ldrsh r1, [r1, r2] + subs r3, r0, r1 + b _080ABB0C +_080ABAFE: + movs r0, #0x32 + ldrsh r1, [r4, r0] + adds r0, r4, #0 + adds r0, #0x6a + movs r2, #0 + ldrsh r0, [r0, r2] + subs r3, r1, r0 +_080ABB0C: + adds r0, r4, #0 + adds r0, #0x6c + movs r1, #0 + ldrsh r2, [r0, r1] + adds r6, r0, #0 + cmp r2, #0 + bge _080ABB1E + rsbs r3, r3, #0 + rsbs r2, r2, #0 +_080ABB1E: + lsls r1, r3, #0x10 + lsls r0, r2, #0x10 + cmp r1, r0 + bls _080ABB84 + ldrb r0, [r4, #0x15] + movs r1, #0x10 + eors r0, r1 + strb r0, [r4, #0x15] + ldrb r0, [r4, #0xb] + adds r5, r0, #0 + cmp r5, #0 + bne _080ABB4E + adds r0, r4, #0 + adds r0, #0x68 + ldrh r0, [r0] + strh r0, [r4, #0x2e] + ldrb r2, [r4, #0x18] + lsls r1, r2, #0x19 + lsrs r1, r1, #0x1f + movs r0, #1 + eors r1, r0 + lsls r1, r1, #6 + subs r0, #0x42 + b _080ABB62 +_080ABB4E: + adds r0, r4, #0 + adds r0, #0x6a + ldrh r0, [r0] + strh r0, [r4, #0x32] + ldrb r2, [r4, #0x18] + lsrs r1, r2, #7 + movs r0, #1 + eors r1, r0 + lsls r1, r1, #7 + movs r0, #0x7f +_080ABB62: + ands r0, r2 + orrs r0, r1 + strb r0, [r4, #0x18] + cmp r3, #0 + ble _080ABB84 + lsls r0, r5, #0x18 + cmp r0, #0 + bne _080ABB7C + ldrh r0, [r6] + ldrh r2, [r4, #0x2e] + adds r0, r0, r2 + strh r0, [r4, #0x2e] + b _080ABB84 +_080ABB7C: + ldrh r0, [r6] + ldrh r1, [r4, #0x32] + adds r0, r0, r1 + strh r0, [r4, #0x32] +_080ABB84: + adds r0, r4, #0 + bl GetNextFrame + pop {r4, r5, r6, pc} diff --git a/asm/projectile/projectile1F.inc b/asm/projectile/projectile1F.inc new file mode 100644 index 00000000..a5a4f6af --- /dev/null +++ b/asm/projectile/projectile1F.inc @@ -0,0 +1,465 @@ + thumb_func_start Projectile1F +Projectile1F: @ 0x080ABB8C + push {r4, r5, lr} + adds r5, r0, #0 + ldr r4, _080ABBA4 @ =gUnk_0812A7D4 + bl GetNextFunction + lsls r0, r0, #2 + adds r0, r0, r4 + ldr r1, [r0] + adds r0, r5, #0 + bl _call_via_r1 + pop {r4, r5, pc} + .align 2, 0 +_080ABBA4: .4byte gUnk_0812A7D4 + + thumb_func_start sub_080ABBA8 +sub_080ABBA8: @ 0x080ABBA8 + push {lr} + adds r2, r0, #0 + ldrb r0, [r2, #0xa] + cmp r0, #1 + beq _080ABBC4 + cmp r0, #1 + bgt _080ABBDC + cmp r0, #0 + bne _080ABBDC + ldr r0, _080ABBC0 @ =gUnk_0812A7EC + b _080ABBC6 + .align 2, 0 +_080ABBC0: .4byte gUnk_0812A7EC +_080ABBC4: + ldr r0, _080ABBD8 @ =gUnk_0812A7F8 +_080ABBC6: + ldrb r1, [r2, #0xc] + lsls r1, r1, #2 + adds r1, r1, r0 + ldr r1, [r1] + adds r0, r2, #0 + bl _call_via_r1 + b _080ABBEC + .align 2, 0 +_080ABBD8: .4byte gUnk_0812A7F8 +_080ABBDC: + ldr r0, _080ABBF0 @ =gUnk_0812A800 + ldrb r1, [r2, #0xc] + lsls r1, r1, #2 + adds r1, r1, r0 + ldr r1, [r1] + adds r0, r2, #0 + bl _call_via_r1 +_080ABBEC: + pop {pc} + .align 2, 0 +_080ABBF0: .4byte gUnk_0812A800 + + thumb_func_start sub_080ABBF4 +sub_080ABBF4: @ 0x080ABBF4 + push {r4, lr} + adds r4, r0, #0 + adds r0, #0x41 + ldrb r1, [r0] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _080ABC52 + ldrb r0, [r4, #0xa] + cmp r0, #0 + blt _080ABC52 + cmp r0, #1 + ble _080ABC3E + cmp r0, #2 + bne _080ABC52 + movs r0, #0x3f + ands r0, r1 + cmp r0, #3 + beq _080ABC32 + cmp r0, #3 + bgt _080ABC24 + cmp r0, #0 + beq _080ABC2A + b _080ABC52 +_080ABC24: + cmp r0, #0x14 + beq _080ABC32 + b _080ABC52 +_080ABC2A: + movs r0, #4 + rsbs r0, r0, #0 + bl ModHealth +_080ABC32: + adds r0, r4, #0 + bl CreateDust + bl DeleteThisEntity + b _080ABC52 +_080ABC3E: + movs r0, #0x3f + ands r0, r1 + cmp r0, #0 + bne _080ABC52 + movs r0, #2 + rsbs r0, r0, #0 + bl ModHealth + bl DeleteThisEntity +_080ABC52: + pop {r4, pc} + + thumb_func_start sub_080ABC54 +sub_080ABC54: @ 0x080ABC54 + push {r4, lr} + adds r4, r0, #0 + bl sub_0806F520 + cmp r0, #0 + bne _080ABC6E + adds r0, r4, #0 + movs r1, #2 + movs r2, #0 + bl CreateFx + bl DeleteThisEntity +_080ABC6E: + ldr r0, _080ABC80 @ =gUnk_0812A808 + ldrb r1, [r4, #0xd] + lsls r1, r1, #2 + adds r1, r1, r0 + ldr r1, [r1] + adds r0, r4, #0 + bl _call_via_r1 + pop {r4, pc} + .align 2, 0 +_080ABC80: .4byte gUnk_0812A808 + + thumb_func_start sub_080ABC84 +sub_080ABC84: @ 0x080ABC84 + movs r1, #2 + strb r1, [r0, #0xd] + bx lr + .align 2, 0 + + thumb_func_start nullsub_542 +nullsub_542: @ 0x080ABC8C + bx lr + .align 2, 0 + + thumb_func_start sub_080ABC90 +sub_080ABC90: @ 0x080ABC90 + push {r4, lr} + adds r4, r0, #0 + bl sub_0806F3E4 + cmp r0, #0 + beq _080ABCBE + movs r0, #2 + rsbs r0, r0, #0 + bl ModHealth + ldr r0, _080ABCC0 @ =gPlayerEntity + movs r1, #0x7a + bl sub_0800449C + bl sub_08079D84 + adds r0, r4, #0 + movs r1, #2 + movs r2, #0 + bl CreateFx + bl DeleteThisEntity +_080ABCBE: + pop {r4, pc} + .align 2, 0 +_080ABCC0: .4byte gPlayerEntity + + thumb_func_start sub_080ABCC4 +sub_080ABCC4: @ 0x080ABCC4 + push {r4, r5, lr} + adds r5, r0, #0 + movs r4, #0 + movs r0, #1 + strb r0, [r5, #0xc] + bl Random + movs r1, #0x3f + ands r0, r1 + adds r0, #0x30 + strb r0, [r5, #0xe] + strb r4, [r5, #0xf] + bl Random + movs r1, #0x1f + ands r0, r1 + strb r0, [r5, #0x15] + movs r0, #0x2e + ldrsh r1, [r5, r0] + ldr r2, _080ABD3C @ =gRoomControls + ldrh r0, [r2, #6] + subs r1, r1, r0 + asrs r1, r1, #4 + movs r3, #0x3f + ands r1, r3 + movs r4, #0x32 + ldrsh r0, [r5, r4] + ldrh r2, [r2, #8] + subs r0, r0, r2 + asrs r0, r0, #4 + ands r0, r3 + lsls r0, r0, #6 + orrs r1, r0 + adds r0, r5, #0 + adds r0, #0x74 + strh r1, [r0] + ldrh r0, [r0] + movs r1, #2 + bl GetTileType + adds r1, r5, #0 + adds r1, #0x76 + strh r0, [r1] + adds r2, r5, #0 + adds r2, #0x29 + ldrb r1, [r2] + movs r0, #8 + rsbs r0, r0, #0 + ands r0, r1 + movs r1, #2 + orrs r0, r1 + strb r0, [r2] + adds r0, r5, #0 + movs r1, #0 + bl InitializeAnimation + ldr r0, _080ABD40 @ =0x0000014B + bl SoundReq + pop {r4, r5, pc} + .align 2, 0 +_080ABD3C: .4byte gRoomControls +_080ABD40: .4byte 0x0000014B + + thumb_func_start sub_080ABD44 +sub_080ABD44: @ 0x080ABD44 + push {r4, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xe] + subs r0, #1 + strb r0, [r4, #0xe] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _080ABD60 + movs r0, #2 + strb r0, [r4, #0xc] + adds r0, r4, #0 + movs r1, #1 + bl InitializeAnimation +_080ABD60: + adds r0, r4, #0 + bl sub_080AF090 + adds r0, r4, #0 + bl GetNextFrame + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_080ABD70 +sub_080ABD70: @ 0x080ABD70 + push {r4, r5, lr} + adds r5, r0, #0 + bl GetNextFrame + adds r2, r5, #0 + adds r2, #0x5a + ldrb r1, [r2] + movs r0, #0x10 + ands r0, r1 + cmp r0, #0 + beq _080ABDEE + movs r0, #0xef + ands r0, r1 + movs r1, #0 + strb r0, [r2] + strh r1, [r5, #0x24] + movs r0, #0x2e + ldrsh r1, [r5, r0] + ldr r2, _080ABDDC @ =gRoomControls + ldrh r0, [r2, #6] + subs r1, r1, r0 + asrs r1, r1, #4 + movs r3, #0x3f + ands r1, r3 + movs r4, #0x32 + ldrsh r0, [r5, r4] + ldrh r2, [r2, #8] + subs r0, r0, r2 + asrs r0, r0, #4 + ands r0, r3 + lsls r0, r0, #6 + orrs r1, r0 + adds r4, r5, #0 + adds r4, #0x74 + strh r1, [r4] + ldrh r0, [r4] + movs r1, #2 + bl GetTileType + adds r1, r5, #0 + adds r1, #0x76 + strh r0, [r1] + ldrh r1, [r1] + cmp r1, #0x13 + beq _080ABDE4 + ldr r0, _080ABDE0 @ =0x00000315 + cmp r1, r0 + bne _080ABDEE + ldrh r1, [r4] + movs r0, #0x6e + movs r2, #2 + bl SetTileType + b _080ABDEE + .align 2, 0 +_080ABDDC: .4byte gRoomControls +_080ABDE0: .4byte 0x00000315 +_080ABDE4: + ldrh r1, [r4] + movs r0, #0x6d + movs r2, #2 + bl SetTileType +_080ABDEE: + adds r0, r5, #0 + adds r0, #0x5a + ldrb r1, [r0] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _080ABE00 + bl DeleteThisEntity +_080ABE00: + pop {r4, r5, pc} + .align 2, 0 + + thumb_func_start sub_080ABE04 +sub_080ABE04: @ 0x080ABE04 + push {r4, r5, lr} + adds r4, r0, #0 + bl Random + adds r5, r0, #0 + movs r0, #0xff + ands r5, r0 + movs r0, #1 + strb r0, [r4, #0xc] + ldr r0, _080ABE48 @ =0xFFFF0000 + str r0, [r4, #0x20] + ldrh r0, [r4, #0x36] + subs r0, #0xa0 + strh r0, [r4, #0x36] + ldr r3, _080ABE4C @ =gRoomControls + ldrh r2, [r3, #6] + ldr r1, _080ABE50 @ =0x00007FF0 + adds r0, r1, #0 + ands r0, r2 + movs r2, #8 + orrs r0, r2 + strh r0, [r4, #0x2e] + ldrh r0, [r3, #8] + ands r1, r0 + orrs r1, r2 + strh r1, [r4, #0x32] + movs r0, #0x2e + ldrsh r1, [r4, r0] + movs r0, #0x10 + ands r0, r5 + cmp r0, #0 + beq _080ABE54 + adds r1, #0x10 + b _080ABE56 + .align 2, 0 +_080ABE48: .4byte 0xFFFF0000 +_080ABE4C: .4byte gRoomControls +_080ABE50: .4byte 0x00007FF0 +_080ABE54: + adds r1, #0xc0 +_080ABE56: + movs r0, #0xe0 + ands r0, r5 + lsrs r0, r0, #1 + adds r0, r1, r0 + strh r0, [r4, #0x2e] + movs r0, #0xf + ands r5, r0 + lsls r0, r5, #4 + ldrh r1, [r4, #0x32] + adds r0, r0, r1 + strh r0, [r4, #0x32] + adds r0, r4, #0 + bl sub_08004168 + adds r0, r4, #0 + movs r1, #0 + bl InitializeAnimation + ldr r0, _080ABE84 @ =0x0000012D + bl SoundReq + pop {r4, r5, pc} + .align 2, 0 +_080ABE84: .4byte 0x0000012D + + thumb_func_start sub_080ABE88 +sub_080ABE88: @ 0x080ABE88 + push {r4, lr} + adds r4, r0, #0 + movs r1, #0xc0 + lsls r1, r1, #5 + bl sub_08003FC4 + cmp r0, #0 + bne _080ABEA6 + adds r0, r4, #0 + movs r1, #4 + movs r2, #0 + bl CreateFx + bl DeleteThisEntity +_080ABEA6: + pop {r4, pc} + + thumb_func_start sub_080ABEA8 +sub_080ABEA8: @ 0x080ABEA8 + push {r4, lr} + adds r4, r0, #0 + movs r2, #1 + strb r2, [r4, #0xc] + movs r0, #0x60 + strb r0, [r4, #0xe] + adds r3, r4, #0 + adds r3, #0x29 + ldrb r1, [r3] + subs r0, #0x68 + ands r0, r1 + movs r1, #2 + orrs r0, r1 + strb r0, [r3] + strb r2, [r4, #0x1c] + ldrb r0, [r4, #0xb] + cmp r0, #0 + bne _080ABEDA + bl Random + movs r1, #0xf + ands r0, r1 + lsls r0, r0, #1 + strb r0, [r4, #0x15] + b _080ABEEC +_080ABEDA: + adds r0, r4, #0 + movs r1, #0 + bl sub_08049F84 + strb r0, [r4, #0x15] + ldr r1, _080ABEFC @ =0x0000013F + adds r0, r4, #0 + bl sub_0801D2B4 +_080ABEEC: + adds r0, r4, #0 + movs r1, #0 + bl InitializeAnimation + ldr r0, _080ABF00 @ =0x00000193 + bl SoundReq + pop {r4, pc} + .align 2, 0 +_080ABEFC: .4byte 0x0000013F +_080ABF00: .4byte 0x00000193 + + thumb_func_start sub_080ABF04 +sub_080ABF04: @ 0x080ABF04 + push {r4, lr} + adds r4, r0, #0 + bl sub_080040A8 + cmp r0, #0 + bne _080ABF14 + bl DeleteThisEntity +_080ABF14: + adds r0, r4, #0 + bl sub_0806F69C + adds r0, r4, #0 + bl GetNextFrame + pop {r4, pc} + .align 2, 0 diff --git a/asm/projectile/projectile2.inc b/asm/projectile/projectile2.inc new file mode 100644 index 00000000..12312402 --- /dev/null +++ b/asm/projectile/projectile2.inc @@ -0,0 +1,189 @@ + thumb_func_start Projectile2 +Projectile2: @ 0x080A8190 + push {r4, r5, lr} + adds r5, r0, #0 + ldr r4, _080A81A8 @ =gUnk_0812960C + bl GetNextFunction + lsls r0, r0, #2 + adds r0, r0, r4 + ldr r1, [r0] + adds r0, r5, #0 + bl _call_via_r1 + pop {r4, r5, pc} + .align 2, 0 +_080A81A8: .4byte gUnk_0812960C + + thumb_func_start sub_080A81AC +sub_080A81AC: @ 0x080A81AC + push {lr} + ldr r2, _080A81C0 @ =gUnk_08129620 + ldrb r1, [r0, #0xc] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_080A81C0: .4byte gUnk_08129620 + + thumb_func_start sub_080A81C4 +sub_080A81C4: @ 0x080A81C4 + push {lr} + adds r1, r0, #0 + adds r0, #0x41 + ldrb r0, [r0] + cmp r0, #0x80 + bne _080A81D8 + adds r0, r1, #0 + bl DeleteEntity + b _080A81DE +_080A81D8: + adds r0, r1, #0 + bl sub_080A82D8 +_080A81DE: + pop {pc} + + thumb_func_start sub_080A81E0 +sub_080A81E0: @ 0x080A81E0 + push {lr} + movs r1, #1 + strb r1, [r0, #0xc] + movs r1, #0x3c + strb r1, [r0, #0xe] + ldr r1, _080A81F8 @ =0x0000FFFE + strh r1, [r0, #0x36] + movs r1, #0 + bl InitializeAnimation + pop {pc} + .align 2, 0 +_080A81F8: .4byte 0x0000FFFE + + thumb_func_start sub_080A81FC +sub_080A81FC: @ 0x080A81FC + push {r4, lr} + adds r4, r0, #0 + bl GetNextFrame + adds r0, r4, #0 + bl sub_080AF090 + ldrh r0, [r4, #0x2a] + cmp r0, #0 + bne _080A8240 + adds r0, r4, #0 + bl sub_080A7EB0 + cmp r0, #0 + beq _080A8222 + adds r0, r4, #0 + bl DeleteEntity + b _080A8246 +_080A8222: + adds r0, r4, #0 + bl sub_08016AD2 + ldrb r0, [r4, #0xe] + subs r0, #1 + strb r0, [r4, #0xe] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _080A8246 + movs r0, #2 + strb r0, [r4, #0xc] + movs r0, #0x90 + lsls r0, r0, #1 + strh r0, [r4, #0x24] + b _080A8246 +_080A8240: + adds r0, r4, #0 + bl sub_080A82D8 +_080A8246: + pop {r4, pc} + + thumb_func_start sub_080A8248 +sub_080A8248: @ 0x080A8248 + push {r4, lr} + adds r4, r0, #0 + bl GetNextFrame + adds r0, r4, #0 + bl sub_080AF090 + movs r1, #0xc0 + lsls r1, r1, #5 + adds r0, r4, #0 + bl sub_08003FC4 + cmp r0, #0 + bne _080A827A + movs r0, #3 + strb r0, [r4, #0xc] + ldrb r1, [r4, #0x10] + movs r0, #0x7f + ands r0, r1 + strb r0, [r4, #0x10] + movs r0, #0xe0 + strh r0, [r4, #0x24] + movs r0, #0xe0 + lsls r0, r0, #8 + str r0, [r4, #0x20] +_080A827A: + pop {r4, pc} + + thumb_func_start sub_080A827C +sub_080A827C: @ 0x080A827C + push {r4, lr} + adds r4, r0, #0 + ldrb r2, [r4, #0x18] + lsls r1, r2, #0x1e + lsrs r1, r1, #0x1e + movs r0, #1 + eors r1, r0 + subs r0, #5 + ands r0, r2 + orrs r0, r1 + strb r0, [r4, #0x18] + adds r0, r4, #0 + bl sub_0806F69C + adds r0, r4, #0 + bl GetNextFrame + movs r1, #0xc0 + lsls r1, r1, #5 + adds r0, r4, #0 + bl sub_080044EC + cmp r0, #0 + bne _080A82B2 + adds r0, r4, #0 + bl DeleteEntity +_080A82B2: + pop {r4, pc} + + thumb_func_start sub_080A82B4 +sub_080A82B4: @ 0x080A82B4 + push {r4, lr} + adds r4, r0, #0 + bl GetNextFrame + adds r0, r4, #0 + bl sub_0806F69C + movs r1, #0xc0 + lsls r1, r1, #5 + adds r0, r4, #0 + bl sub_08003FC4 + cmp r0, #0 + bne _080A82D6 + adds r0, r4, #0 + bl DeleteEntity +_080A82D6: + pop {r4, pc} + + thumb_func_start sub_080A82D8 +sub_080A82D8: @ 0x080A82D8 + movs r1, #4 + strb r1, [r0, #0xc] + ldrb r2, [r0, #0x10] + movs r1, #0x7f + ands r1, r2 + strb r1, [r0, #0x10] + movs r1, #0x80 + lsls r1, r1, #9 + str r1, [r0, #0x20] + ldrb r1, [r0, #0x15] + movs r2, #0x10 + eors r1, r2 + strb r1, [r0, #0x15] + movs r1, #0x80 + strh r1, [r0, #0x24] + bx lr diff --git a/asm/projectile/projectile20.inc b/asm/projectile/projectile20.inc new file mode 100644 index 00000000..a3180085 --- /dev/null +++ b/asm/projectile/projectile20.inc @@ -0,0 +1,69 @@ + thumb_func_start Projectile20 +Projectile20: @ 0x080ABF24 + push {r4, r5, lr} + adds r5, r0, #0 + ldr r4, _080ABF3C @ =gUnk_0812A84C + bl GetNextFunction + lsls r0, r0, #2 + adds r0, r0, r4 + ldr r1, [r0] + adds r0, r5, #0 + bl _call_via_r1 + pop {r4, r5, pc} + .align 2, 0 +_080ABF3C: .4byte gUnk_0812A84C + + thumb_func_start sub_080ABF40 +sub_080ABF40: @ 0x080ABF40 + push {r4, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xc] + cmp r0, #0 + bne _080ABF66 + movs r0, #1 + strb r0, [r4, #0xc] + ldr r1, _080ABFA0 @ =gPlayerEntity + adds r0, r4, #0 + bl GetFacingDirection + strb r0, [r4, #0x15] + adds r0, r4, #0 + movs r1, #0 + bl InitializeAnimation + ldr r0, _080ABFA4 @ =0x00000199 + bl SoundReq +_080ABF66: + ldrh r2, [r4, #0x36] + movs r0, #0x36 + ldrsh r1, [r4, r0] + movs r0, #6 + rsbs r0, r0, #0 + cmp r1, r0 + bge _080ABF78 + adds r0, r2, #2 + strh r0, [r4, #0x36] +_080ABF78: + adds r0, r4, #0 + bl sub_080AF090 + ldrh r0, [r4, #0x2a] + cmp r0, #0 + beq _080ABF88 + bl DeleteThisEntity +_080ABF88: + adds r0, r4, #0 + bl GetNextFrame + adds r0, r4, #0 + bl sub_080A7EB0 + cmp r0, #0 + beq _080ABF9C + bl DeleteThisEntity +_080ABF9C: + pop {r4, pc} + .align 2, 0 +_080ABFA0: .4byte gPlayerEntity +_080ABFA4: .4byte 0x00000199 + + thumb_func_start sub_080ABFA8 +sub_080ABFA8: @ 0x080ABFA8 + push {lr} + bl DeleteThisEntity + pop {pc} diff --git a/asm/projectile/projectile21.inc b/asm/projectile/projectile21.inc new file mode 100644 index 00000000..39532e19 --- /dev/null +++ b/asm/projectile/projectile21.inc @@ -0,0 +1,364 @@ + thumb_func_start Projectile21 +Projectile21: @ 0x080ABFB0 + push {r4, r5, lr} + adds r5, r0, #0 + ldr r4, _080ABFC8 @ =gUnk_0812A954 + bl GetNextFunction + lsls r0, r0, #2 + adds r0, r0, r4 + ldr r1, [r0] + adds r0, r5, #0 + bl _call_via_r1 + pop {r4, r5, pc} + .align 2, 0 +_080ABFC8: .4byte gUnk_0812A954 + + thumb_func_start sub_080ABFCC +sub_080ABFCC: @ 0x080ABFCC + push {lr} + ldr r2, _080ABFE0 @ =gUnk_0812A968 + ldrb r1, [r0, #0xc] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_080ABFE0: .4byte gUnk_0812A968 + + thumb_func_start sub_080ABFE4 +sub_080ABFE4: @ 0x080ABFE4 + push {lr} + bl DeleteThisEntity + pop {pc} + + thumb_func_start sub_080ABFEC +sub_080ABFEC: @ 0x080ABFEC + push {r4, lr} + adds r4, r0, #0 + ldrb r1, [r4, #0xa] + adds r1, #1 + bl InitializeAnimation + ldrb r1, [r4, #0xa] + cmp r1, #0 + beq _080AC030 + cmp r1, #1 + beq _080AC048 + movs r1, #0 + movs r0, #2 + strb r0, [r4, #0xc] + strb r1, [r4, #0xe] + movs r0, #0xff + strb r0, [r4, #0xf] + ldr r1, _080AC028 @ =gUnk_0812A97C + ldrb r0, [r4, #0xb] + lsls r0, r0, #1 + adds r0, r0, r1 + ldrh r0, [r0] + strh r0, [r4, #0x24] + adds r1, r4, #0 + adds r1, #0x44 + movs r0, #0x88 + strb r0, [r1] + ldr r0, _080AC02C @ =0x00000193 + b _080AC06A + .align 2, 0 +_080AC028: .4byte gUnk_0812A97C +_080AC02C: .4byte 0x00000193 +_080AC030: + movs r0, #1 + strb r0, [r4, #0xc] + strb r1, [r4, #0xe] + movs r0, #7 + strb r0, [r4, #0xf] + adds r1, r4, #0 + adds r1, #0x85 + movs r0, #0x18 + strb r0, [r1] + subs r1, #0x41 + movs r0, #0x88 + b _080AC058 +_080AC048: + strb r1, [r4, #0xc] + ldrb r1, [r4, #0x10] + movs r0, #0x7f + ands r0, r1 + strb r0, [r4, #0x10] + adds r1, r4, #0 + adds r1, #0x85 + movs r0, #0x18 +_080AC058: + strb r0, [r1] + ldr r0, [r4, #0x50] + adds r1, r4, #0 + bl CopyPositionAndSpriteOffset + ldrh r0, [r4, #0x36] + subs r0, #0x14 + strh r0, [r4, #0x36] + ldr r0, _080AC070 @ =0x00000149 +_080AC06A: + bl SoundReq + pop {r4, pc} + .align 2, 0 +_080AC070: .4byte 0x00000149 + + thumb_func_start sub_080AC074 +sub_080AC074: @ 0x080AC074 + push {r4, lr} + adds r4, r0, #0 + ldr r0, [r4, #0x50] + ldr r0, [r0, #4] + cmp r0, #0 + bne _080AC084 + bl DeleteThisEntity +_080AC084: + ldr r0, [r4, #0x50] + adds r1, r4, #0 + bl CopyPositionAndSpriteOffset + ldrh r0, [r4, #0x36] + subs r0, #0x14 + strh r0, [r4, #0x36] + adds r1, r4, #0 + adds r1, #0x85 + ldrb r0, [r1] + cmp r0, #0 + beq _080AC0B2 + subs r0, #1 + strb r0, [r1] + movs r1, #0xff + ands r0, r1 + movs r1, #7 + ands r0, r1 + cmp r0, #0 + bne _080AC0B2 + ldr r0, _080AC0E8 @ =0x00000149 + bl SoundReq +_080AC0B2: + adds r0, r4, #0 + bl GetNextFrame + adds r0, r4, #0 + adds r0, #0x5a + ldrb r1, [r0] + movs r0, #1 + ands r0, r1 + cmp r0, #0 + beq _080AC0FE + ldrb r0, [r4, #0xa] + cmp r0, #0 + bne _080AC0F0 + movs r0, #2 + strb r0, [r4, #0xc] + ldr r1, _080AC0EC @ =gPlayerEntity + adds r0, r4, #0 + bl GetFacingDirection + strb r0, [r4, #0x15] + movs r0, #0xc0 + lsls r0, r0, #1 + strh r0, [r4, #0x24] + adds r0, #0x13 + bl SoundReq + b _080AC0F8 + .align 2, 0 +_080AC0E8: .4byte 0x00000149 +_080AC0EC: .4byte gPlayerEntity +_080AC0F0: + movs r0, #3 + strb r0, [r4, #0xc] + movs r0, #0x10 + strb r0, [r4, #0xe] +_080AC0F8: + ldrh r0, [r4, #0x36] + subs r0, #0x28 + strh r0, [r4, #0x36] +_080AC0FE: + pop {r4, pc} + + thumb_func_start sub_080AC100 +sub_080AC100: @ 0x080AC100 + push {r4, lr} + adds r4, r0, #0 + ldrh r2, [r4, #0x36] + movs r0, #0x36 + ldrsh r1, [r4, r0] + movs r0, #6 + rsbs r0, r0, #0 + cmp r1, r0 + bge _080AC116 + adds r0, r2, #3 + strh r0, [r4, #0x36] +_080AC116: + adds r0, r4, #0 + bl sub_080AF090 + ldrh r0, [r4, #0x2a] + cmp r0, #0 + beq _080AC126 + bl DeleteThisEntity +_080AC126: + adds r0, r4, #0 + bl GetNextFrame + adds r0, r4, #0 + bl sub_080A7EB0 + cmp r0, #0 + beq _080AC13A + bl DeleteThisEntity +_080AC13A: + ldrb r0, [r4, #0xe] + cmp r0, #0x1d + bhi _080AC160 + adds r0, #1 + strb r0, [r4, #0xe] + movs r1, #0xff + ands r0, r1 + ldrb r1, [r4, #0xf] + ands r0, r1 + cmp r0, #0 + bne _080AC160 + ldr r1, _080AC164 @ =gPlayerEntity + adds r0, r4, #0 + bl GetFacingDirection + adds r1, r0, #0 + adds r0, r4, #0 + bl sub_08004596 +_080AC160: + pop {r4, pc} + .align 2, 0 +_080AC164: .4byte gPlayerEntity + + thumb_func_start sub_080AC168 +sub_080AC168: @ 0x080AC168 + push {r4, r5, r6, lr} + adds r4, r0, #0 + bl GetNextFrame + ldr r0, [r4, #0x34] + ldr r1, _080AC1C0 @ =0xFFFF8000 + adds r0, r0, r1 + str r0, [r4, #0x34] + ldrb r0, [r4, #0xe] + subs r0, #1 + strb r0, [r4, #0xe] + lsls r0, r0, #0x18 + lsrs r6, r0, #0x18 + cmp r6, #0 + bne _080AC1F8 + movs r0, #4 + strb r0, [r4, #0xc] + strb r0, [r4, #0xe] + bl Random + adds r5, r0, #0 + movs r0, #7 + ands r5, r0 + ldr r0, _080AC1C4 @ =gUnk_0812A982 + adds r0, r5, r0 + ldrb r0, [r0] + strb r0, [r4, #0xf] + ldr r1, _080AC1C8 @ =gPlayerEntity + adds r0, r4, #0 + bl GetFacingDirection + adds r1, r0, #0 + ldr r0, [r4, #0x50] + adds r0, #0x84 + ldrb r0, [r0] + cmp r0, #3 + bne _080AC1D0 + ldr r0, _080AC1CC @ =gUnk_0812A98A + adds r0, r5, r0 + ldrb r0, [r0] + subs r1, r1, r0 + strb r6, [r4, #0xb] + b _080AC1F2 + .align 2, 0 +_080AC1C0: .4byte 0xFFFF8000 +_080AC1C4: .4byte gUnk_0812A982 +_080AC1C8: .4byte gPlayerEntity +_080AC1CC: .4byte gUnk_0812A98A +_080AC1D0: + cmp r0, #2 + bne _080AC1E4 + ldr r0, _080AC1E0 @ =gUnk_0812A98A + adds r0, r5, r0 + ldrb r0, [r0] + subs r1, r1, r0 + movs r0, #1 + b _080AC1F0 + .align 2, 0 +_080AC1E0: .4byte gUnk_0812A98A +_080AC1E4: + ldr r0, _080AC1FC @ =gUnk_0812A98A + adds r0, r5, r0 + ldrb r0, [r0] + lsrs r0, r0, #1 + subs r1, r1, r0 + movs r0, #2 +_080AC1F0: + strb r0, [r4, #0xb] +_080AC1F2: + movs r0, #0x1f + ands r1, r0 + strb r1, [r4, #0x15] +_080AC1F8: + pop {r4, r5, r6, pc} + .align 2, 0 +_080AC1FC: .4byte gUnk_0812A98A + + thumb_func_start sub_080AC200 +sub_080AC200: @ 0x080AC200 + push {r4, r5, lr} + adds r4, r0, #0 + bl GetNextFrame + ldrb r0, [r4, #0xe] + subs r0, #1 + strb r0, [r4, #0xe] + movs r5, #0xff + lsls r0, r0, #0x18 + cmp r0, #0 + bne _080AC270 + movs r0, #0x10 + strb r0, [r4, #0xe] + movs r0, #0x21 + bl sub_080A7EE0 + adds r1, r0, #0 + cmp r1, #0 + beq _080AC23C + movs r0, #2 + strb r0, [r1, #0xa] + ldrb r0, [r4, #0xb] + strb r0, [r1, #0xb] + ldrb r0, [r4, #0x15] + strb r0, [r1, #0x15] + ldr r0, [r4, #0x50] + str r0, [r1, #0x50] + adds r0, r4, #0 + bl CopyPosition +_080AC23C: + ldrb r0, [r4, #0xf] + subs r0, #1 + strb r0, [r4, #0xf] + ands r0, r5 + cmp r0, #0 + bne _080AC24C + bl DeleteThisEntity +_080AC24C: + ldr r0, [r4, #0x50] + adds r0, #0x84 + ldrb r0, [r0] + cmp r0, #3 + bne _080AC25C + ldrb r0, [r4, #0x15] + adds r0, #3 + b _080AC26A +_080AC25C: + cmp r0, #2 + bne _080AC266 + ldrb r0, [r4, #0x15] + adds r0, #3 + b _080AC26A +_080AC266: + ldrb r0, [r4, #0x15] + adds r0, #2 +_080AC26A: + movs r1, #0x1f + ands r0, r1 + strb r0, [r4, #0x15] +_080AC270: + pop {r4, r5, pc} + .align 2, 0 diff --git a/asm/projectile/projectile22.inc b/asm/projectile/projectile22.inc new file mode 100644 index 00000000..e331464e --- /dev/null +++ b/asm/projectile/projectile22.inc @@ -0,0 +1,841 @@ + thumb_func_start Projectile22 +Projectile22: @ 0x080AC274 + push {r4, r5, lr} + adds r4, r0, #0 + ldr r0, [r4, #0x50] + ldr r0, [r0, #4] + cmp r0, #0 + bne _080AC284 + bl DeleteThisEntity +_080AC284: + ldr r1, _080AC2BC @ =gUnk_0812A994 + ldrb r0, [r4, #0xb] + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r1, [r0] + adds r0, r4, #0 + bl _call_via_r1 + ldrb r0, [r4, #0xa] + cmp r0, #0 + bne _080AC2C0 + ldrb r0, [r4, #0x1b] + movs r1, #0xc0 + orrs r0, r1 + strb r0, [r4, #0x1b] + ldrb r0, [r4, #0x19] + orrs r0, r1 + strb r0, [r4, #0x19] + adds r2, r4, #0 + adds r2, #0x29 + ldrb r1, [r2] + movs r0, #8 + rsbs r0, r0, #0 + ands r0, r1 + movs r1, #1 + orrs r0, r1 + strb r0, [r2] + b _080AC324 + .align 2, 0 +_080AC2BC: .4byte gUnk_0812A994 +_080AC2C0: + ldr r5, [r4, #0x50] + ldrb r2, [r5, #0x1b] + lsrs r2, r2, #6 + lsls r2, r2, #6 + ldrb r3, [r4, #0x1b] + movs r1, #0x3f + adds r0, r1, #0 + ands r0, r3 + orrs r0, r2 + strb r0, [r4, #0x1b] + ldrb r0, [r5, #0x19] + lsrs r0, r0, #6 + lsls r0, r0, #6 + ldrb r2, [r4, #0x19] + ands r1, r2 + orrs r1, r0 + strb r1, [r4, #0x19] + adds r0, r5, #0 + adds r0, #0x29 + ldrb r1, [r0] + lsls r1, r1, #0x1d + lsrs r1, r1, #0x1d + subs r1, #2 + adds r3, r4, #0 + adds r3, #0x29 + movs r0, #7 + ands r1, r0 + ldrb r2, [r3] + movs r0, #8 + rsbs r0, r0, #0 + ands r0, r2 + orrs r0, r1 + strb r0, [r3] + ldrb r0, [r5, #0x19] + lsrs r0, r0, #6 + cmp r0, #3 + bne _080AC31C + adds r0, r5, #0 + adds r0, #0x7c + ldrb r0, [r0] + cmp r0, #0 + bne _080AC31C + ldrb r1, [r4, #0x10] + movs r0, #0x7f + ands r0, r1 + b _080AC322 +_080AC31C: + ldrb r1, [r4, #0x10] + movs r0, #0x80 + orrs r0, r1 +_080AC322: + strb r0, [r4, #0x10] +_080AC324: + pop {r4, r5, pc} + .align 2, 0 + + thumb_func_start sub_080AC328 +sub_080AC328: @ 0x080AC328 + push {lr} + ldr r2, _080AC33C @ =gUnk_0812A9A8 + ldrb r1, [r0, #0xc] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_080AC33C: .4byte gUnk_0812A9A8 + + thumb_func_start sub_080AC340 +sub_080AC340: @ 0x080AC340 + push {r4, r5, lr} + adds r5, r0, #0 + bl sub_080AC5E4 + cmp r0, #0 + beq _080AC380 + movs r2, #1 + movs r4, #1 + strb r4, [r5, #0xc] + movs r0, #0xc + strb r0, [r5, #0x1e] + ldrb r1, [r5, #0x18] + subs r0, #0x10 + ands r0, r1 + orrs r0, r2 + strb r0, [r5, #0x18] + bl Random + ldr r1, _080AC384 @ =gUnk_0812A9B4 + ands r0, r4 + lsls r0, r0, #1 + adds r0, r0, r1 + ldrh r0, [r0] + adds r1, r5, #0 + adds r1, #0x7a + strh r0, [r1] + subs r1, #0x42 + movs r0, #2 + strb r0, [r1] + adds r0, r5, #0 + bl sub_080AC388 +_080AC380: + pop {r4, r5, pc} + .align 2, 0 +_080AC384: .4byte gUnk_0812A9B4 + + thumb_func_start sub_080AC388 +sub_080AC388: @ 0x080AC388 + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + adds r5, r0, #0 + ldr r1, _080AC3E4 @ =gUnk_0812A9B8 + ldrb r0, [r5, #0xa] + adds r0, r0, r1 + ldrb r3, [r0] + ldr r0, [r5, #0x50] + mov sl, r0 + ldrb r0, [r0, #0x14] + movs r1, #0x80 + mov sb, r1 + mov r1, sb + eors r1, r0 + adds r6, r5, #0 + adds r6, #0x7c + ldrh r4, [r6] + lsrs r0, r4, #8 + subs r1, r1, r0 + adds r2, r5, #0 + adds r2, #0x7a + ldrh r7, [r2] + mov ip, r7 + movs r7, #0 + ldrsh r0, [r2, r7] + cmp r0, #0 + bge _080AC404 + subs r0, r1, r3 + movs r7, #0xff + mov r8, r7 + ands r0, r7 + cmp r0, #0x7f + bhi _080AC3E8 + movs r1, #0 + ldrsh r0, [r2, r1] + rsbs r0, r0, #0 + strh r0, [r2] + mov r2, sl + ldrb r0, [r2, #0x14] + mov r7, sb + eors r0, r7 + subs r0, r0, r3 + b _080AC422 + .align 2, 0 +_080AC3E4: .4byte gUnk_0812A9B8 +_080AC3E8: + mov r2, ip + adds r0, r4, r2 + strh r0, [r6] + adds r0, r1, r3 + mov r7, r8 + ands r0, r7 + cmp r0, #0x80 + bls _080AC45A + mov r1, sl + ldrb r0, [r1, #0x14] + mov r2, sb + eors r0, r2 + adds r0, r0, r3 + b _080AC44E +_080AC404: + adds r0, r1, r3 + movs r7, #0xff + mov r8, r7 + ands r0, r7 + cmp r0, #0x80 + bls _080AC432 + movs r1, #0 + ldrsh r0, [r2, r1] + rsbs r0, r0, #0 + strh r0, [r2] + mov r2, sl + ldrb r0, [r2, #0x14] + mov r7, sb + eors r0, r7 + adds r0, r0, r3 +_080AC422: + movs r1, #0xff + ands r0, r1 + lsls r0, r0, #8 + strh r0, [r6] + adds r0, r5, #0 + bl sub_080AC884 + b _080AC45A +_080AC432: + mov r2, ip + adds r0, r4, r2 + strh r0, [r6] + subs r0, r1, r3 + mov r7, r8 + ands r0, r7 + subs r0, #1 + cmp r0, #0x7e + bhi _080AC45A + mov r1, sl + ldrb r0, [r1, #0x14] + mov r2, sb + eors r0, r2 + subs r0, r0, r3 +_080AC44E: + movs r1, #0xff + ands r0, r1 + lsls r0, r0, #8 + movs r1, #0x80 + orrs r0, r1 + strh r0, [r6] +_080AC45A: + adds r0, r5, #0 + adds r0, #0x7c + ldrh r0, [r0] + lsrs r0, r0, #8 + strb r0, [r5, #0x15] + adds r0, r5, #0 + bl sub_080AC6F0 + adds r0, r5, #0 + bl sub_080AC760 + adds r0, r5, #0 + bl sub_080AC7C4 + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7, pc} + + thumb_func_start sub_080AC480 +sub_080AC480: @ 0x080AC480 + push {r4, lr} + adds r4, r0, #0 + ldrb r1, [r4, #0xe] + cmp r1, #0 + beq _080AC4BE + ldr r0, [r4, #0x50] + adds r0, #0x45 + ldrb r0, [r0] + cmp r0, #0 + bne _080AC4A2 + movs r0, #1 + strb r0, [r4, #0xc] + adds r1, r4, #0 + adds r1, #0x3f + movs r0, #0x1d + strb r0, [r1] + b _080AC50A +_080AC4A2: + subs r0, r1, #1 + strb r0, [r4, #0xe] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _080AC50A + adds r0, r4, #0 + adds r0, #0x3f + movs r1, #0x1c + strb r1, [r0] + movs r0, #0x8b + lsls r0, r0, #1 + bl SoundReq + b _080AC50A +_080AC4BE: + ldrb r0, [r4, #0xf] + subs r0, #1 + strb r0, [r4, #0xf] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _080AC4D6 + movs r0, #1 + strb r0, [r4, #0xc] + adds r1, r4, #0 + adds r1, #0x3f + movs r0, #0x1d + strb r0, [r1] +_080AC4D6: + adds r1, r4, #0 + adds r1, #0x7c + ldrh r2, [r1] + adds r0, r4, #0 + adds r0, #0x7a + movs r3, #0 + ldrsh r0, [r0, r3] + cmp r0, #0 + ble _080AC4EE + movs r3, #0xc0 + lsls r3, r3, #2 + b _080AC4F0 +_080AC4EE: + ldr r3, _080AC50C @ =0xFFFFFD00 +_080AC4F0: + adds r0, r2, r3 + strh r0, [r1] + lsrs r0, r0, #8 + strb r0, [r4, #0x15] + adds r0, r4, #0 + bl sub_080AC6F0 + adds r0, r4, #0 + bl sub_080AC760 + adds r0, r4, #0 + bl sub_080AC7C4 +_080AC50A: + pop {r4, pc} + .align 2, 0 +_080AC50C: .4byte 0xFFFFFD00 + + thumb_func_start sub_080AC510 +sub_080AC510: @ 0x080AC510 + push {r4, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xc] + cmp r0, #0 + bne _080AC556 + movs r3, #1 + movs r0, #1 + strb r0, [r4, #0xc] + ldr r2, _080AC558 @ =gUnk_0812A9BA + ldrb r1, [r4, #0xa] + lsls r0, r1, #1 + adds r0, r0, r1 + ldrb r1, [r4, #0xb] + adds r0, r0, r1 + subs r0, #1 + adds r0, r0, r2 + ldrb r0, [r0] + strb r0, [r4, #0x1e] + ldrb r1, [r4, #0x18] + movs r0, #4 + rsbs r0, r0, #0 + ands r0, r1 + orrs r0, r3 + strb r0, [r4, #0x18] + adds r1, r4, #0 + adds r1, #0x38 + movs r0, #2 + strb r0, [r1] + ldrh r1, [r4, #0xa] + movs r0, #0xc0 + lsls r0, r0, #2 + cmp r1, r0 + bne _080AC556 + ldr r0, _080AC55C @ =gUnk_080FD458 + str r0, [r4, #0x48] +_080AC556: + pop {r4, pc} + .align 2, 0 +_080AC558: .4byte gUnk_0812A9BA +_080AC55C: .4byte gUnk_080FD458 + + thumb_func_start sub_080AC560 +sub_080AC560: @ 0x080AC560 + push {r4, r5, lr} + adds r4, r0, #0 + ldr r5, [r4, #0x54] + ldr r0, [r5, #4] + cmp r0, #0 + bne _080AC570 + bl DeleteThisEntity +_080AC570: + ldrb r0, [r4, #0xc] + cmp r0, #0 + bne _080AC5A6 + movs r0, #1 + strb r0, [r4, #0xc] + adds r1, r4, #0 + adds r1, #0x38 + movs r0, #2 + strb r0, [r1] + ldrb r0, [r4, #0xa] + cmp r0, #0 + bne _080AC590 + ldr r0, _080AC58C @ =gUnk_080FD168 + b _080AC592 + .align 2, 0 +_080AC58C: .4byte gUnk_080FD168 +_080AC590: + ldr r0, _080AC5DC @ =gUnk_080FD448 +_080AC592: + str r0, [r4, #0x48] + movs r0, #0xff + strb r0, [r4, #0x1e] + ldrb r1, [r4, #0x18] + movs r0, #4 + rsbs r0, r0, #0 + ands r0, r1 + movs r1, #1 + orrs r0, r1 + strb r0, [r4, #0x18] +_080AC5A6: + adds r0, r4, #0 + adds r0, #0x79 + ldrb r2, [r0] + lsls r2, r2, #8 + ldr r3, _080AC5E0 @ =gSineTable + ldrb r0, [r5, #0x15] + lsls r0, r0, #1 + adds r0, r0, r3 + movs r1, #0 + ldrsh r0, [r0, r1] + adds r1, r0, #0 + muls r1, r2, r1 + ldr r0, [r5, #0x2c] + adds r0, r0, r1 + str r0, [r4, #0x2c] + ldrb r0, [r5, #0x15] + adds r0, #0x40 + lsls r0, r0, #1 + adds r0, r0, r3 + movs r1, #0 + ldrsh r0, [r0, r1] + adds r1, r0, #0 + muls r1, r2, r1 + ldr r0, [r5, #0x30] + subs r0, r0, r1 + str r0, [r4, #0x30] + pop {r4, r5, pc} + .align 2, 0 +_080AC5DC: .4byte gUnk_080FD448 +_080AC5E0: .4byte gSineTable + + thumb_func_start sub_080AC5E4 +sub_080AC5E4: @ 0x080AC5E4 + push {r4, r5, r6, r7, lr} + mov r7, sb + mov r6, r8 + push {r6, r7} + adds r5, r0, #0 + ldrb r4, [r5, #0xa] + cmp r4, #0 + bne _080AC668 + ldr r0, _080AC664 @ =gEntCount + ldrb r0, [r0] + cmp r0, #0x43 + bhi _080AC670 + adds r1, r5, #0 + adds r1, #0x79 + movs r0, #0x11 + strb r0, [r1] + movs r0, #0x22 + bl sub_080A7EE0 + adds r6, r0, #0 + ldrb r0, [r5, #0xa] + strb r0, [r6, #0xa] + movs r0, #1 + strb r0, [r6, #0xb] + ldr r0, [r5, #0x50] + str r0, [r6, #0x50] + adds r1, r6, #0 + adds r1, #0x79 + movs r0, #0x12 + strb r0, [r1] + str r6, [r5, #0x54] + movs r0, #0x22 + bl sub_080A7EE0 + adds r7, r0, #0 + ldrb r0, [r5, #0xa] + strb r0, [r7, #0xa] + movs r0, #2 + strb r0, [r7, #0xb] + ldr r0, [r5, #0x50] + str r0, [r7, #0x50] + adds r0, r7, #0 + adds r0, #0x79 + movs r1, #0x14 + mov r8, r1 + mov r1, r8 + strb r1, [r0] + str r7, [r6, #0x54] + movs r0, #0x22 + bl sub_080A7EE0 + ldrb r1, [r5, #0xa] + strb r1, [r0, #0xa] + movs r1, #3 + strb r1, [r0, #0xb] + ldr r1, [r5, #0x50] + str r1, [r0, #0x50] + str r4, [r0, #0x54] + adds r1, r0, #0 + adds r1, #0x79 + strb r4, [r1] + str r0, [r7, #0x54] + b _080AC6C8 + .align 2, 0 +_080AC664: .4byte gEntCount +_080AC668: + ldr r0, _080AC674 @ =gEntCount + ldrb r0, [r0] + cmp r0, #0x44 + bls _080AC678 +_080AC670: + movs r0, #0 + b _080AC6E8 + .align 2, 0 +_080AC674: .4byte gEntCount +_080AC678: + adds r1, r5, #0 + adds r1, #0x79 + movs r0, #0 + mov sb, r0 + movs r0, #0xf + strb r0, [r1] + movs r0, #0x22 + bl sub_080A7EE0 + adds r6, r0, #0 + ldrb r0, [r5, #0xa] + strb r0, [r6, #0xa] + movs r0, #1 + strb r0, [r6, #0xb] + ldr r0, [r5, #0x50] + str r0, [r6, #0x50] + adds r0, r6, #0 + adds r0, #0x79 + movs r1, #0x10 + mov r8, r1 + mov r1, r8 + strb r1, [r0] + str r6, [r5, #0x54] + movs r0, #0x22 + bl sub_080A7EE0 + adds r7, r0, #0 + ldrb r0, [r5, #0xa] + strb r0, [r7, #0xa] + movs r0, #2 + strb r0, [r7, #0xb] + ldr r0, [r5, #0x50] + str r0, [r7, #0x50] + mov r0, sb + str r0, [r7, #0x54] + adds r1, r7, #0 + adds r1, #0x79 + movs r0, #0x20 + strb r0, [r1] + str r7, [r6, #0x54] +_080AC6C8: + movs r0, #0x22 + bl sub_080A7EE0 + adds r6, r0, #0 + ldrb r0, [r5, #0xa] + strb r0, [r6, #0xa] + movs r0, #4 + strb r0, [r6, #0xb] + ldr r0, [r5, #0x50] + str r0, [r6, #0x50] + str r5, [r6, #0x54] + adds r0, r6, #0 + adds r0, #0x79 + mov r1, r8 + strb r1, [r0] + movs r0, #1 +_080AC6E8: + pop {r3, r4} + mov r8, r3 + mov sb, r4 + pop {r4, r5, r6, r7, pc} + + thumb_func_start sub_080AC6F0 +sub_080AC6F0: @ 0x080AC6F0 + push {r4, r5, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0x15] + movs r2, #0x1f + ands r2, r0 + lsrs r0, r0, #5 + lsls r1, r0, #1 + adds r3, r1, r0 + ldr r1, _080AC724 @ =gUnk_0812A9C0 + ldrb r0, [r4, #0x14] + adds r0, r0, r1 + ldrb r0, [r0] + subs r0, r0, r3 + adds r5, r1, #0 + cmp r0, #3 + bhi _080AC73A + cmp r0, #1 + beq _080AC72E + cmp r0, #1 + blo _080AC728 + cmp r0, #2 + beq _080AC732 + cmp r2, #0x19 + bhi _080AC75C + b _080AC73A + .align 2, 0 +_080AC724: .4byte gUnk_0812A9C0 +_080AC728: + cmp r2, #6 + bls _080AC75C + b _080AC73A +_080AC72E: + subs r0, r2, #5 + b _080AC736 +_080AC732: + adds r0, r2, #0 + subs r0, #0xf +_080AC736: + cmp r0, #0xc + bls _080AC75C +_080AC73A: + adds r0, r3, #3 + cmp r2, #0x1a + bhi _080AC74E + adds r0, r3, #2 + cmp r2, #0x10 + bhi _080AC74E + adds r0, r3, #0 + cmp r2, #5 + bls _080AC74E + adds r0, #1 +_080AC74E: + movs r1, #0x18 + bl __modsi3 + strb r0, [r4, #0x14] + adds r0, r0, r5 + ldrb r0, [r0] + strb r0, [r4, #0x1e] +_080AC75C: + pop {r4, r5, pc} + .align 2, 0 + + thumb_func_start sub_080AC760 +sub_080AC760: @ 0x080AC760 + push {r4, r5, r6, lr} + adds r6, r0, #0 + ldr r4, [r6, #0x54] + ldrb r0, [r4, #0x15] + ldrb r3, [r6, #0x15] + subs r2, r0, r3 + movs r1, #0xff + ands r2, r1 + adds r0, r2, #0 + adds r0, #8 + ands r0, r1 + cmp r0, #0x10 + ble _080AC78A + cmp r2, #0x80 + ble _080AC784 + adds r0, r3, #0 + subs r0, #8 + b _080AC788 +_080AC784: + adds r0, r3, #0 + adds r0, #8 +_080AC788: + strb r0, [r4, #0x15] +_080AC78A: + ldr r5, [r4, #0x54] + ldr r0, [r5, #0x54] + cmp r0, #0 + bne _080AC79C + ldr r0, [r6, #0x50] + ldrb r0, [r0, #0x14] + movs r1, #0x80 + eors r0, r1 + b _080AC7BE +_080AC79C: + ldrb r0, [r5, #0x15] + ldrb r3, [r4, #0x15] + subs r2, r0, r3 + movs r1, #0xff + ands r2, r1 + adds r0, r2, #0 + adds r0, #8 + ands r0, r1 + cmp r0, #0x10 + ble _080AC7C0 + cmp r2, #0x80 + ble _080AC7BA + adds r0, r3, #0 + subs r0, #8 + b _080AC7BE +_080AC7BA: + adds r0, r3, #0 + adds r0, #8 +_080AC7BE: + strb r0, [r5, #0x15] +_080AC7C0: + pop {r4, r5, r6, pc} + .align 2, 0 + + thumb_func_start sub_080AC7C4 +sub_080AC7C4: @ 0x080AC7C4 + push {r4, r5, r6, r7, lr} + mov r7, sb + mov r6, r8 + push {r6, r7} + adds r4, r0, #0 + ldr r0, [r4, #0x54] + mov r8, r0 + ldr r7, [r0, #0x54] + ldr r5, [r7, #0x54] + cmp r5, #0 + beq _080AC7E4 + ldr r0, [r4, #0x50] + adds r1, r5, #0 + bl CopyPosition + b _080AC7E6 +_080AC7E4: + ldr r5, [r4, #0x50] +_080AC7E6: + adds r0, r7, #0 + adds r0, #0x79 + ldrb r2, [r0] + lsls r2, r2, #8 + ldr r3, _080AC880 @ =gSineTable + mov sb, r3 + ldrb r1, [r7, #0x15] + lsls r0, r1, #1 + add r0, sb + movs r3, #0 + ldrsh r0, [r0, r3] + adds r6, r0, #0 + muls r6, r2, r6 + adds r1, #0x40 + lsls r1, r1, #1 + add r1, sb + movs r3, #0 + ldrsh r0, [r1, r3] + muls r0, r2, r0 + rsbs r3, r0, #0 + adds r0, r5, #0 + adds r1, r7, #0 + adds r2, r6, #0 + bl PositionRelative + mov r0, r8 + adds r0, #0x79 + ldrb r2, [r0] + lsls r2, r2, #8 + mov r0, r8 + ldrb r1, [r0, #0x15] + lsls r0, r1, #1 + add r0, sb + movs r3, #0 + ldrsh r0, [r0, r3] + adds r6, r0, #0 + muls r6, r2, r6 + adds r1, #0x40 + lsls r1, r1, #1 + add r1, sb + movs r3, #0 + ldrsh r0, [r1, r3] + muls r0, r2, r0 + rsbs r3, r0, #0 + adds r0, r7, #0 + mov r1, r8 + adds r2, r6, #0 + bl PositionRelative + adds r0, r4, #0 + adds r0, #0x79 + ldrb r2, [r0] + lsls r2, r2, #8 + ldrb r1, [r4, #0x15] + lsls r0, r1, #1 + add r0, sb + movs r3, #0 + ldrsh r0, [r0, r3] + adds r6, r0, #0 + muls r6, r2, r6 + adds r1, #0x40 + lsls r1, r1, #1 + add r1, sb + movs r3, #0 + ldrsh r0, [r1, r3] + muls r0, r2, r0 + rsbs r3, r0, #0 + mov r0, r8 + adds r1, r4, #0 + adds r2, r6, #0 + bl PositionRelative + pop {r3, r4} + mov r8, r3 + mov sb, r4 + pop {r4, r5, r6, r7, pc} + .align 2, 0 +_080AC880: .4byte gSineTable + + thumb_func_start sub_080AC884 +sub_080AC884: @ 0x080AC884 + push {lr} + adds r1, r0, #0 + ldr r0, [r1, #0x50] + adds r2, r0, #0 + adds r2, #0x72 + ldrh r0, [r2] + cmp r0, #0 + beq _080AC8A4 + movs r0, #0 + strh r0, [r2] + movs r0, #2 + strb r0, [r1, #0xc] + movs r0, #0x3c + strb r0, [r1, #0xe] + movs r0, #0x56 + strb r0, [r1, #0xf] +_080AC8A4: + pop {pc} + .align 2, 0 diff --git a/asm/projectile/projectile23.inc b/asm/projectile/projectile23.inc new file mode 100644 index 00000000..414b0ee1 --- /dev/null +++ b/asm/projectile/projectile23.inc @@ -0,0 +1,201 @@ + thumb_func_start Projectile23 +Projectile23: @ 0x080AC8A8 + push {r4, r5, lr} + adds r5, r0, #0 + ldr r4, _080AC8C0 @ =gUnk_0812A9D8 + bl GetNextFunction + lsls r0, r0, #2 + adds r0, r0, r4 + ldr r1, [r0] + adds r0, r5, #0 + bl _call_via_r1 + pop {r4, r5, pc} + .align 2, 0 +_080AC8C0: .4byte gUnk_0812A9D8 + + thumb_func_start sub_080AC8C4 +sub_080AC8C4: @ 0x080AC8C4 + push {lr} + ldr r2, _080AC8D8 @ =gUnk_0812A9EC + ldrb r1, [r0, #0xc] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_080AC8D8: .4byte gUnk_0812A9EC + + thumb_func_start sub_080AC8DC +sub_080AC8DC: @ 0x080AC8DC + push {r4, lr} + adds r4, r0, #0 + adds r0, #0x41 + ldrb r0, [r0] + movs r1, #0x7f + ands r1, r0 + cmp r1, #0 + blt _080AC8FE + cmp r1, #3 + ble _080AC8F8 + cmp r1, #0x1f + bgt _080AC8FE + cmp r1, #0x1e + blt _080AC8FE +_080AC8F8: + bl DeleteThisEntity + b _080AC920 +_080AC8FE: + ldrb r0, [r4, #0xc] + cmp r0, #3 + beq _080AC920 + movs r0, #3 + strb r0, [r4, #0xc] + ldrb r1, [r4, #0x10] + movs r0, #0x7f + ands r0, r1 + strb r0, [r4, #0x10] + ldrh r0, [r4, #0x24] + lsls r0, r0, #0x10 + asrs r0, r0, #0x11 + strh r0, [r4, #0x24] + adds r0, r4, #0 + movs r1, #1 + bl InitializeAnimation +_080AC920: + adds r0, r4, #0 + bl sub_080AC8C4 + pop {r4, pc} + + thumb_func_start sub_080AC928 +sub_080AC928: @ 0x080AC928 + push {r4, lr} + adds r4, r0, #0 + movs r0, #1 + strb r0, [r4, #0xc] + movs r0, #0x3c + strb r0, [r4, #0xe] + adds r1, r4, #0 + adds r1, #0x38 + movs r0, #2 + strb r0, [r1] + adds r0, r4, #0 + bl UpdateSpriteForCollisionLayer + adds r0, r4, #0 + movs r1, #0 + bl InitializeAnimation + adds r0, r4, #0 + bl sub_080AC954 + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_080AC954 +sub_080AC954: @ 0x080AC954 + push {r4, r5, lr} + adds r5, r0, #0 + ldr r0, [r5, #0x50] + ldr r0, [r0, #4] + cmp r0, #0 + bne _080AC964 + bl DeleteThisEntity +_080AC964: + ldr r0, [r5, #0x50] + ldrb r3, [r0, #0x14] + ldr r4, _080AC9C4 @ =gSineTable + lsls r1, r3, #1 + adds r1, r1, r4 + movs r2, #0 + ldrsh r1, [r1, r2] + lsls r2, r1, #2 + adds r2, r2, r1 + lsls r2, r2, #0xb + adds r3, #0x40 + lsls r3, r3, #1 + adds r3, r3, r4 + movs r4, #0 + ldrsh r1, [r3, r4] + lsls r3, r1, #2 + adds r3, r3, r1 + lsls r3, r3, #0xb + rsbs r3, r3, #0 + adds r1, r5, #0 + bl PositionRelative + adds r0, r5, #0 + bl GetNextFrame + ldrb r0, [r5, #0xe] + subs r0, #1 + strb r0, [r5, #0xe] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _080AC9C0 + movs r0, #2 + strb r0, [r5, #0xc] + ldrb r0, [r5, #0x10] + movs r1, #0x80 + orrs r0, r1 + strb r0, [r5, #0x10] + ldr r1, _080AC9C8 @ =gPlayerEntity + adds r0, r5, #0 + bl GetFacingDirection + strb r0, [r5, #0x15] + movs r0, #0x97 + lsls r0, r0, #1 + bl SoundReq +_080AC9C0: + pop {r4, r5, pc} + .align 2, 0 +_080AC9C4: .4byte gSineTable +_080AC9C8: .4byte gPlayerEntity + + thumb_func_start sub_080AC9CC +sub_080AC9CC: @ 0x080AC9CC + push {r4, lr} + adds r4, r0, #0 + bl sub_080AF090 + adds r0, r4, #0 + bl GetNextFrame + adds r0, r4, #0 + bl sub_080A7EB0 + cmp r0, #0 + beq _080AC9E8 + bl DeleteThisEntity +_080AC9E8: + ldrb r0, [r4, #0xe] + subs r0, #1 + strb r0, [r4, #0xe] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _080ACA10 + movs r0, #3 + strb r0, [r4, #0xc] + ldrb r1, [r4, #0x10] + movs r0, #0x7f + ands r0, r1 + strb r0, [r4, #0x10] + ldrh r0, [r4, #0x24] + lsls r0, r0, #0x10 + asrs r0, r0, #0x11 + strh r0, [r4, #0x24] + adds r0, r4, #0 + movs r1, #1 + bl InitializeAnimation +_080ACA10: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_080ACA14 +sub_080ACA14: @ 0x080ACA14 + push {r4, lr} + adds r4, r0, #0 + bl sub_080AF090 + adds r0, r4, #0 + bl GetNextFrame + adds r4, #0x5a + ldrb r1, [r4] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _080ACA32 + bl DeleteThisEntity +_080ACA32: + pop {r4, pc} diff --git a/asm/projectile/projectile24.inc b/asm/projectile/projectile24.inc new file mode 100644 index 00000000..81ce2840 --- /dev/null +++ b/asm/projectile/projectile24.inc @@ -0,0 +1,220 @@ + thumb_func_start Projectile24 +Projectile24: @ 0x080ACA34 + push {r4, r5, lr} + adds r5, r0, #0 + ldr r4, _080ACA4C @ =gUnk_0812AA5C + bl GetNextFunction + lsls r0, r0, #2 + adds r0, r0, r4 + ldr r1, [r0] + adds r0, r5, #0 + bl _call_via_r1 + pop {r4, r5, pc} + .align 2, 0 +_080ACA4C: .4byte gUnk_0812AA5C + + thumb_func_start sub_080ACA50 +sub_080ACA50: @ 0x080ACA50 + push {lr} + ldr r2, _080ACA64 @ =gUnk_0812AA74 + ldrb r1, [r0, #0xc] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_080ACA64: .4byte gUnk_0812AA74 + + thumb_func_start sub_080ACA68 +sub_080ACA68: @ 0x080ACA68 + push {r4, lr} + adds r4, r0, #0 + adds r0, #0x41 + ldrb r0, [r0] + movs r1, #0x7f + ands r1, r0 + cmp r1, #0xc + bgt _080ACA82 + cmp r1, #0xa + bge _080ACA86 + cmp r1, #6 + beq _080ACA86 + b _080ACAC0 +_080ACA82: + cmp r1, #0x1a + bne _080ACAC0 +_080ACA86: + movs r0, #2 + strb r0, [r4, #0xc] + ldrb r1, [r4, #0x10] + movs r0, #0x7f + ands r0, r1 + strb r0, [r4, #0x10] + movs r1, #0x80 + lsls r1, r1, #1 + adds r0, r1, #0 + ldrh r1, [r4, #0x24] + adds r0, r0, r1 + strh r0, [r4, #0x24] + ldr r0, [r4, #0x4c] + str r0, [r4, #0x54] + adds r0, r4, #0 + bl sub_080ACB40 + cmp r0, #0 + beq _080ACAB0 + movs r0, #0 + b _080ACAB6 +_080ACAB0: + adds r0, r4, #0 + adds r0, #0x3e + ldrb r0, [r0] +_080ACAB6: + strb r0, [r4, #0x15] + movs r0, #0xd8 + bl SoundReq + b _080ACAC4 +_080ACAC0: + bl DeleteThisEntity +_080ACAC4: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_080ACAC8 +sub_080ACAC8: @ 0x080ACAC8 + push {lr} + movs r2, #0 + movs r1, #1 + strb r1, [r0, #0xc] + movs r1, #0x10 + strb r1, [r0, #0x15] + ldr r1, _080ACAE8 @ =0x0000FFFC + strh r1, [r0, #0x36] + str r2, [r0, #0x54] + movs r1, #7 + bl InitializeAnimation + ldr r0, _080ACAEC @ =0x00000199 + bl SoundReq + pop {pc} + .align 2, 0 +_080ACAE8: .4byte 0x0000FFFC +_080ACAEC: .4byte 0x00000199 + + thumb_func_start sub_080ACAF0 +sub_080ACAF0: @ 0x080ACAF0 + push {r4, lr} + adds r4, r0, #0 + bl sub_080AF090 + adds r0, r4, #0 + bl GetNextFrame + adds r0, r4, #0 + bl sub_080A7EB0 + cmp r0, #0 + beq _080ACB0C + bl DeleteThisEntity +_080ACB0C: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_080ACB10 +sub_080ACB10: @ 0x080ACB10 + push {r4, lr} + adds r4, r0, #0 + bl sub_080AF090 + ldrh r0, [r4, #0x2a] + cmp r0, #0 + beq _080ACB22 + bl DeleteThisEntity +_080ACB22: + adds r0, r4, #0 + bl GetNextFrame + adds r0, r4, #0 + bl sub_080ACB90 + adds r0, r4, #0 + bl sub_080A7EB0 + cmp r0, #0 + beq _080ACB3C + bl DeleteThisEntity +_080ACB3C: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_080ACB40 +sub_080ACB40: @ 0x080ACB40 + push {lr} + adds r2, r0, #0 + ldr r0, [r2, #0x50] + ldr r1, [r0, #0x50] + ldr r3, [r2, #0x54] + ldr r0, [r1, #0x64] + ldr r0, [r0, #0x1c] + ldr r0, [r0, #0x54] + cmp r0, r2 + beq _080ACB5A + ldr r0, [r0, #0x54] + cmp r3, r0 + beq _080ACB86 +_080ACB5A: + ldr r1, [r1, #0x64] + ldr r0, [r1, #0x20] + ldr r0, [r0, #0x54] + cmp r0, r2 + beq _080ACB6A + ldr r0, [r0, #0x54] + cmp r3, r0 + beq _080ACB86 +_080ACB6A: + ldr r0, [r1, #0x24] + ldr r0, [r0, #0x54] + cmp r0, r2 + beq _080ACB78 + ldr r0, [r0, #0x54] + cmp r3, r0 + beq _080ACB86 +_080ACB78: + ldr r0, [r1, #0x28] + ldr r0, [r0, #0x54] + cmp r0, r2 + beq _080ACB8A + ldr r0, [r0, #0x54] + cmp r3, r0 + bne _080ACB8A +_080ACB86: + movs r0, #0 + b _080ACB8C +_080ACB8A: + movs r0, #1 +_080ACB8C: + pop {pc} + .align 2, 0 + + thumb_func_start sub_080ACB90 +sub_080ACB90: @ 0x080ACB90 + push {r4, lr} + adds r2, r0, #0 + ldr r3, [r2, #0x50] + movs r0, #0x2e + ldrsh r1, [r2, r0] + movs r4, #0x2e + ldrsh r0, [r3, r4] + cmp r1, r0 + bne _080ACBC6 + movs r0, #0x32 + ldrsh r1, [r2, r0] + movs r4, #0x32 + ldrsh r0, [r3, r4] + cmp r1, r0 + bgt _080ACBC6 + movs r0, #1 + strb r0, [r3, #0xf] + adds r0, r2, #0 + movs r1, #0x1f + movs r2, #0x40 + bl CreateFx + ldr r0, _080ACBC8 @ =0x00000119 + bl EnqueueSFX + bl DeleteThisEntity +_080ACBC6: + pop {r4, pc} + .align 2, 0 +_080ACBC8: .4byte 0x00000119 diff --git a/asm/projectile/projectile3.inc b/asm/projectile/projectile3.inc new file mode 100644 index 00000000..4e932c78 --- /dev/null +++ b/asm/projectile/projectile3.inc @@ -0,0 +1,178 @@ + thumb_func_start Projectile3 +Projectile3: @ 0x080A82F8 + push {r4, r5, lr} + adds r5, r0, #0 + ldr r4, _080A8310 @ =gUnk_08129650 + bl GetNextFunction + lsls r0, r0, #2 + adds r0, r0, r4 + ldr r1, [r0] + adds r0, r5, #0 + bl _call_via_r1 + pop {r4, r5, pc} + .align 2, 0 +_080A8310: .4byte gUnk_08129650 + + thumb_func_start sub_080A8314 +sub_080A8314: @ 0x080A8314 + push {lr} + ldr r2, _080A8328 @ =gUnk_08129664 + ldrb r1, [r0, #0xc] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_080A8328: .4byte gUnk_08129664 + + thumb_func_start sub_080A832C +sub_080A832C: @ 0x080A832C + push {lr} + adds r3, r0, #0 + adds r2, r3, #0 + adds r2, #0x41 + ldrb r0, [r2] + cmp r0, #0x80 + bne _080A8358 + adds r1, r3, #0 + adds r1, #0x3d + movs r0, #0x10 + strb r0, [r1] + adds r1, #5 + movs r0, #0xc + strb r0, [r1] + adds r1, #4 + movs r0, #0xc0 + lsls r0, r0, #1 + strh r0, [r1] + ldr r0, [r3, #0x50] + ldrb r1, [r2] + adds r0, #0x41 + strb r1, [r0] +_080A8358: + adds r0, r3, #0 + adds r0, #0x3d + ldrb r1, [r0] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _080A836A + ldr r0, [r3, #0x50] + b _080A836E +_080A836A: + ldr r0, [r3, #0x50] + rsbs r1, r1, #0 +_080A836E: + adds r0, #0x3d + strb r1, [r0] + ldr r0, [r3, #0x50] + movs r1, #0x42 + adds r1, r1, r3 + mov ip, r1 + ldrb r1, [r1] + adds r0, #0x42 + strb r1, [r0] + ldr r0, [r3, #0x50] + adds r1, r3, #0 + adds r1, #0x46 + ldrh r1, [r1] + adds r0, #0x46 + movs r2, #0 + strh r1, [r0] + ldr r0, [r3, #0x50] + adds r1, r3, #0 + adds r1, #0x3e + ldrb r1, [r1] + adds r0, #0x3e + strb r1, [r0] + mov r0, ip + strb r2, [r0] + pop {pc} + + thumb_func_start sub_080A83A0 +sub_080A83A0: @ 0x080A83A0 + push {r4, lr} + adds r4, r0, #0 + bl AllocMutableHitbox + cmp r0, #0 + beq _080A83B0 + movs r0, #1 + strb r0, [r4, #0xc] +_080A83B0: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_080A83B4 +sub_080A83B4: @ 0x080A83B4 + push {r4, r5, lr} + adds r4, r0, #0 + ldr r5, [r4, #0x50] + cmp r5, #0 + bne _080A83C2 + bl DeleteThisEntity +_080A83C2: + ldr r0, [r5, #4] + cmp r0, #0 + bne _080A83CC + bl DeleteThisEntity +_080A83CC: + adds r0, r5, #0 + adds r0, #0x5a + ldrb r0, [r0] + lsls r0, r0, #0x1a + lsrs r0, r0, #0x18 + ldr r1, _080A8424 @ =gUnk_0812966C + adds r2, r0, r1 + ldr r1, [r4, #0x48] + ldrb r0, [r2] + strb r0, [r1] + adds r2, #1 + adds r0, r5, #0 + adds r0, #0x5b + ldrb r0, [r0] + cmp r0, #0x40 + bne _080A83F4 + ldr r1, [r4, #0x48] + ldrb r0, [r1] + rsbs r0, r0, #0 + strb r0, [r1] +_080A83F4: + ldr r1, [r4, #0x48] + ldrb r0, [r2] + strb r0, [r1, #1] + adds r2, #1 + ldr r1, [r4, #0x48] + ldrb r0, [r2] + strb r0, [r1, #6] + ldr r1, [r4, #0x48] + ldrb r0, [r2, #1] + strb r0, [r1, #7] + adds r0, r5, #0 + adds r0, #0x43 + ldrb r0, [r0] + cmp r0, #0 + beq _080A8428 + ldrb r1, [r4, #0x10] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _080A8438 + movs r0, #0x7f + ands r0, r1 + b _080A8436 + .align 2, 0 +_080A8424: .4byte gUnk_0812966C +_080A8428: + ldrb r1, [r4, #0x10] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + bne _080A8438 + movs r0, #0x80 + orrs r0, r1 +_080A8436: + strb r0, [r4, #0x10] +_080A8438: + pop {r4, r5, pc} + .align 2, 0 diff --git a/asm/projectile/projectile4.inc b/asm/projectile/projectile4.inc new file mode 100644 index 00000000..746d621c --- /dev/null +++ b/asm/projectile/projectile4.inc @@ -0,0 +1,328 @@ + thumb_func_start Projectile4 +Projectile4: @ 0x080A843C + push {r4, r5, lr} + adds r5, r0, #0 + ldr r4, _080A8454 @ =gUnk_081296F0 + bl GetNextFunction + lsls r0, r0, #2 + adds r0, r0, r4 + ldr r1, [r0] + adds r0, r5, #0 + bl _call_via_r1 + pop {r4, r5, pc} + .align 2, 0 +_080A8454: .4byte gUnk_081296F0 + + thumb_func_start sub_080A8458 +sub_080A8458: @ 0x080A8458 + push {lr} + ldr r2, _080A846C @ =gUnk_08129704 + ldrb r1, [r0, #0xc] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_080A846C: .4byte gUnk_08129704 + + thumb_func_start sub_080A8470 +sub_080A8470: @ 0x080A8470 + push {r4, lr} + adds r4, r0, #0 + adds r2, r4, #0 + adds r2, #0x41 + ldrb r0, [r2] + cmp r0, #0x80 + bne _080A8496 + adds r0, r4, #0 + adds r0, #0x3f + ldrb r0, [r0] + cmp r0, #0x68 + bne _080A848E + movs r0, #0x86 + bl EnqueueSFX +_080A848E: + adds r0, r4, #0 + bl DeleteEntity + b _080A84C6 +_080A8496: + adds r0, r4, #0 + adds r0, #0x3e + ldrb r0, [r0] + adds r0, #4 + movs r1, #0x18 + ands r0, r1 + strb r0, [r4, #0x15] + ldrb r0, [r2] + adds r0, #0x7e + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #1 + bhi _080A84B8 + adds r0, r4, #0 + bl sub_080A8680 + b _080A84C6 +_080A84B8: + adds r0, r4, #0 + movs r1, #0x19 + bl InitializeAnimation + adds r0, r4, #0 + bl sub_080A86A0 +_080A84C6: + pop {r4, pc} + + thumb_func_start sub_080A84C8 +sub_080A84C8: @ 0x080A84C8 + push {r4, lr} + adds r4, r0, #0 + movs r1, #0 + movs r0, #1 + strb r0, [r4, #0xc] + movs r0, #0x30 + strb r0, [r4, #0xe] + strb r1, [r4, #0xf] + ldrh r0, [r4, #0x36] + subs r0, #4 + strh r0, [r4, #0x36] + movs r0, #0x15 + bl CheckGlobalFlag + cmp r0, #0 + bne _080A84F0 + adds r1, r4, #0 + adds r1, #0x3f + movs r0, #0x68 + strb r0, [r1] +_080A84F0: + ldr r0, _080A8500 @ =0x0000018D + bl EnqueueSFX + adds r0, r4, #0 + movs r1, #0x18 + bl InitializeAnimation + pop {r4, pc} + .align 2, 0 +_080A8500: .4byte 0x0000018D + + thumb_func_start sub_080A8504 +sub_080A8504: @ 0x080A8504 + push {r4, r5, lr} + adds r4, r0, #0 + bl GetNextFrame + adds r0, r4, #0 + bl sub_080AF090 + cmp r0, #0 + beq _080A853C + adds r0, r4, #0 + bl sub_080A7EB0 + cmp r0, #0 + beq _080A8524 + bl DeleteThisEntity +_080A8524: + adds r0, r4, #0 + bl sub_08016AD2 + ldrb r0, [r4, #0xe] + subs r0, #1 + strb r0, [r4, #0xe] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _080A8558 + movs r0, #4 + strb r0, [r4, #0xc] + b _080A8558 +_080A853C: + ldrh r1, [r4, #0x2a] + adds r0, r4, #0 + bl sub_0800417E + adds r0, r4, #0 + bl sub_08016AD2 + adds r0, r4, #0 + movs r1, #0x19 + bl InitializeAnimation + adds r0, r4, #0 + bl sub_080A86A0 +_080A8558: + ldrb r0, [r4, #0xf] + cmp r0, #0 + beq _080A85B6 + ldr r5, [r4, #0x50] + ldr r0, [r5, #4] + cmp r0, #0 + beq _080A85B6 + adds r0, r4, #0 + adds r1, r5, #0 + bl sub_080177A0 + cmp r0, #0 + beq _080A85B6 + adds r0, r4, #0 + adds r0, #0x3d + movs r3, #0 + movs r2, #0x10 + strb r2, [r0] + ldrb r0, [r4, #0x15] + rsbs r0, r0, #0 + adds r1, r4, #0 + adds r1, #0x3e + strb r0, [r1] + adds r1, #3 + movs r0, #0x80 + strb r0, [r1] + adds r0, r4, #0 + adds r0, #0x42 + movs r1, #0xc + strb r1, [r0] + adds r0, #4 + strh r3, [r0] + adds r0, r5, #0 + adds r0, #0x3d + strb r2, [r0] + ldrb r0, [r4, #0x15] + adds r2, r5, #0 + adds r2, #0x3e + strb r0, [r2] + adds r2, #3 + movs r0, #0xc2 + strb r0, [r2] + adds r0, r5, #0 + adds r0, #0x42 + strb r1, [r0] + adds r0, #4 + strh r3, [r0] +_080A85B6: + pop {r4, r5, pc} + + thumb_func_start sub_080A85B8 +sub_080A85B8: @ 0x080A85B8 + push {r4, lr} + adds r4, r0, #0 + bl GetNextFrame + adds r0, r4, #0 + bl sub_080AF090 + cmp r0, #0 + beq _080A85F2 + adds r0, r4, #0 + bl sub_080A7EB0 + cmp r0, #0 + beq _080A85D8 + bl DeleteThisEntity +_080A85D8: + ldrb r0, [r4, #0xe] + subs r0, #1 + strb r0, [r4, #0xe] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _080A860E + movs r0, #1 + strb r0, [r4, #0xc] + ldrb r0, [r4, #0x10] + movs r1, #0x80 + orrs r0, r1 + strb r0, [r4, #0x10] + b _080A860E +_080A85F2: + ldrh r1, [r4, #0x2a] + adds r0, r4, #0 + bl sub_0800417E + adds r0, r4, #0 + bl sub_08016AD2 + adds r0, r4, #0 + movs r1, #0x19 + bl InitializeAnimation + adds r0, r4, #0 + bl sub_080A86A0 +_080A860E: + pop {r4, pc} + + thumb_func_start sub_080A8610 +sub_080A8610: @ 0x080A8610 + push {r4, lr} + adds r4, r0, #0 + bl GetNextFrame + adds r4, #0x5a + ldrb r1, [r4] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _080A8628 + bl DeleteThisEntity +_080A8628: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_080A862C +sub_080A862C: @ 0x080A862C + push {r4, lr} + adds r4, r0, #0 + bl GetNextFrame + adds r0, r4, #0 + bl sub_080AF090 + movs r1, #0xa0 + lsls r1, r1, #6 + adds r0, r4, #0 + bl sub_080044EC + cmp r0, #0 + beq _080A864E + cmp r0, #1 + beq _080A8654 + b _080A8662 +_080A864E: + bl DeleteThisEntity + b _080A867E +_080A8654: + ldrb r0, [r4, #0x10] + movs r1, #0x7f + ands r1, r0 + strb r1, [r4, #0x10] + movs r0, #0x90 + lsls r0, r0, #1 + strh r0, [r4, #0x24] +_080A8662: + ldrb r1, [r4, #0x10] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + bne _080A867E + ldrb r2, [r4, #0x18] + lsls r1, r2, #0x1e + lsrs r1, r1, #0x1e + movs r0, #1 + eors r1, r0 + subs r0, #5 + ands r0, r2 + orrs r0, r1 + strb r0, [r4, #0x18] +_080A867E: + pop {r4, pc} + + thumb_func_start sub_080A8680 +sub_080A8680: @ 0x080A8680 + push {lr} + movs r1, #2 + strb r1, [r0, #0xc] + ldrb r2, [r0, #0x10] + movs r1, #0x7f + ands r1, r2 + strb r1, [r0, #0x10] + movs r1, #3 + strb r1, [r0, #0xe] + movs r1, #1 + strb r1, [r0, #0xf] + movs r0, #0x8c + lsls r0, r0, #1 + bl EnqueueSFX + pop {pc} + + thumb_func_start sub_080A86A0 +sub_080A86A0: @ 0x080A86A0 + push {lr} + movs r3, #0 + movs r1, #3 + strb r1, [r0, #0xc] + ldrb r2, [r0, #0x10] + movs r1, #0x7f + ands r1, r2 + strb r1, [r0, #0x10] + strh r3, [r0, #0x24] + movs r0, #0xc7 + lsls r0, r0, #1 + bl EnqueueSFX + pop {pc} diff --git a/asm/projectile/projectile5.inc b/asm/projectile/projectile5.inc new file mode 100644 index 00000000..078cf51c --- /dev/null +++ b/asm/projectile/projectile5.inc @@ -0,0 +1,139 @@ + thumb_func_start Projectile5 +Projectile5: @ 0x080A86BC + push {r4, r5, lr} + adds r5, r0, #0 + ldr r4, _080A86D4 @ =gUnk_08129718 + bl GetNextFunction + lsls r0, r0, #2 + adds r0, r0, r4 + ldr r1, [r0] + adds r0, r5, #0 + bl _call_via_r1 + pop {r4, r5, pc} + .align 2, 0 +_080A86D4: .4byte gUnk_08129718 + + thumb_func_start sub_080A86D8 +sub_080A86D8: @ 0x080A86D8 + push {lr} + ldr r2, _080A86EC @ =gUnk_0812972C + ldrb r1, [r0, #0xc] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_080A86EC: .4byte gUnk_0812972C + + thumb_func_start sub_080A86F0 +sub_080A86F0: @ 0x080A86F0 + push {r4, r5, r6, lr} + adds r4, r0, #0 + ldr r1, [r4, #0x50] + cmp r1, #0 + bne _080A8700 + bl DeleteThisEntity + b _080A876E +_080A8700: + adds r5, r1, #0 + adds r5, #0x83 + ldrb r1, [r5] + movs r3, #0x3f + adds r0, r3, #0 + ands r0, r1 + cmp r0, #3 + bne _080A8768 + ldr r0, _080A875C @ =gPlayerState + ldrb r0, [r0, #0xf] + cmp r0, #0 + beq _080A876E + movs r1, #0x2e + ldrsh r0, [r4, r1] + ldr r2, _080A8760 @ =gRoomControls + ldrh r1, [r2, #6] + subs r0, r0, r1 + asrs r0, r0, #4 + ands r0, r3 + movs r6, #0x32 + ldrsh r1, [r4, r6] + ldrh r2, [r2, #8] + subs r1, r1, r2 + asrs r1, r1, #4 + ands r1, r3 + lsls r1, r1, #6 + orrs r0, r1 + ldr r1, _080A8764 @ =gPlayerEntity + adds r1, #0x38 + ldrb r1, [r1] + bl sub_080002E0 + cmp r0, #0 + bne _080A876E + adds r0, r4, #0 + adds r0, #0x41 + ldrb r0, [r0] + cmp r0, #0x80 + bne _080A876E + ldrb r1, [r5] + movs r0, #0x7f + ands r0, r1 + strb r0, [r5] + bl DeleteThisEntity + b _080A876E + .align 2, 0 +_080A875C: .4byte gPlayerState +_080A8760: .4byte gRoomControls +_080A8764: .4byte gPlayerEntity +_080A8768: + adds r0, r4, #0 + bl DeleteEntity +_080A876E: + pop {r4, r5, r6, pc} + + thumb_func_start sub_080A8770 +sub_080A8770: @ 0x080A8770 + movs r1, #1 + strb r1, [r0, #0xc] + adds r3, r0, #0 + adds r3, #0x3c + ldrb r2, [r3] + movs r1, #0x10 + orrs r1, r2 + strb r1, [r3] + ldr r1, _080A8788 @ =gUnk_08129734 + str r1, [r0, #0x48] + bx lr + .align 2, 0 +_080A8788: .4byte gUnk_08129734 + + thumb_func_start sub_080A878C +sub_080A878C: @ 0x080A878C + push {r4, r5, lr} + adds r5, r0, #0 + ldr r4, [r5, #0x50] + cmp r4, #0 + bne _080A879A + bl DeleteThisEntity +_080A879A: + ldr r0, [r4, #4] + cmp r0, #0 + bne _080A87A4 + bl DeleteThisEntity +_080A87A4: + adds r0, r4, #0 + adds r0, #0x83 + ldrb r1, [r0] + movs r0, #0x7f + ands r0, r1 + cmp r0, #3 + beq _080A87B6 + bl DeleteThisEntity +_080A87B6: + adds r0, r4, #0 + adds r1, r5, #0 + bl CopyPosition + ldrh r0, [r5, #0x36] + adds r0, #2 + strh r0, [r5, #0x36] + pop {r4, r5, pc} + .align 2, 0 diff --git a/asm/projectile/projectile6.inc b/asm/projectile/projectile6.inc new file mode 100644 index 00000000..044f1f50 --- /dev/null +++ b/asm/projectile/projectile6.inc @@ -0,0 +1,361 @@ + thumb_func_start Projectile6 +Projectile6: @ 0x080A87C8 + push {r4, r5, lr} + adds r5, r0, #0 + ldr r4, _080A87E0 @ =gUnk_08129740 + bl GetNextFunction + lsls r0, r0, #2 + adds r0, r0, r4 + ldr r1, [r0] + adds r0, r5, #0 + bl _call_via_r1 + pop {r4, r5, pc} + .align 2, 0 +_080A87E0: .4byte gUnk_08129740 + + thumb_func_start sub_080A87E4 +sub_080A87E4: @ 0x080A87E4 + push {r4, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xa] + cmp r0, #1 + bne _080A8804 + ldr r0, [r4, #0x54] + cmp r0, #0 + bne _080A87F8 + bl DeleteThisEntity +_080A87F8: + ldr r0, [r4, #0x54] + ldr r0, [r0, #4] + cmp r0, #0 + bne _080A8804 + bl DeleteThisEntity +_080A8804: + ldr r0, _080A8818 @ =gUnk_08129754 + ldrb r1, [r4, #0xc] + lsls r1, r1, #2 + adds r1, r1, r0 + ldr r1, [r1] + adds r0, r4, #0 + bl _call_via_r1 + pop {r4, pc} + .align 2, 0 +_080A8818: .4byte gUnk_08129754 + + thumb_func_start sub_080A881C +sub_080A881C: @ 0x080A881C + push {lr} + adds r1, r0, #0 + adds r2, r1, #0 + adds r2, #0x46 + movs r0, #0 + strh r0, [r2] + ldrb r2, [r1, #0xa] + cmp r2, #0 + bne _080A8854 + ldr r0, [r1, #0x50] + str r2, [r0, #0x54] + adds r0, r1, #0 + adds r0, #0x41 + ldrb r0, [r0] + cmp r0, #0x80 + bne _080A884A + ldr r0, _080A8850 @ =gPlayerState + movs r1, #0xf0 + strb r1, [r0, #0xf] + movs r0, #2 + rsbs r0, r0, #0 + bl ModHealth +_080A884A: + bl DeleteThisEntity + b _080A8866 + .align 2, 0 +_080A8850: .4byte gPlayerState +_080A8854: + ldrb r0, [r1, #0xc] + cmp r0, #1 + bhi _080A8866 + movs r0, #2 + strb r0, [r1, #0xc] + ldr r0, [r1, #0x50] + adds r0, #0x83 + movs r1, #0xc0 + strb r1, [r0] +_080A8866: + pop {pc} + + thumb_func_start sub_080A8868 +sub_080A8868: @ 0x080A8868 + push {r4, lr} + adds r3, r0, #0 + movs r4, #0 + movs r0, #1 + strb r0, [r3, #0xc] + strb r4, [r3, #0xd] + ldrb r1, [r3, #0x18] + subs r0, #0x32 + ands r0, r1 + movs r1, #0x10 + orrs r0, r1 + strb r0, [r3, #0x18] + movs r0, #0x80 + lsls r0, r0, #8 + str r0, [r3, #0x20] + ldr r0, _080A88A4 @ =gUnk_08129764 + str r0, [r3, #0x48] + adds r2, r3, #0 + adds r2, #0x3c + ldrb r0, [r2] + orrs r1, r0 + strb r1, [r2] + ldrb r0, [r3, #0xa] + cmp r0, #1 + beq _080A88B8 + cmp r0, #1 + bgt _080A88A8 + cmp r0, #0 + beq _080A88AE + b _080A88C6 + .align 2, 0 +_080A88A4: .4byte gUnk_08129764 +_080A88A8: + cmp r0, #2 + beq _080A88BE + b _080A88C6 +_080A88AE: + adds r0, r3, #0 + movs r1, #0 + bl InitializeAnimation + b _080A88C6 +_080A88B8: + strb r4, [r3, #0xe] + strb r4, [r3, #0xf] + b _080A88C6 +_080A88BE: + adds r0, r3, #0 + movs r1, #5 + bl InitializeAnimation +_080A88C6: + pop {r4, pc} + + thumb_func_start sub_080A88C8 +sub_080A88C8: @ 0x080A88C8 + push {r4, r5, r6, lr} + adds r4, r0, #0 + ldr r6, [r4, #0x50] + cmp r6, #0 + bne _080A88D6 + movs r0, #2 + strb r0, [r4, #0xc] +_080A88D6: + ldr r0, [r6, #4] + cmp r0, #0 + bne _080A88E0 + movs r0, #2 + strb r0, [r4, #0xc] +_080A88E0: + ldr r3, _080A88FC @ =0xFFFF0000 + adds r0, r6, #0 + adds r1, r4, #0 + movs r2, #0 + bl PositionRelative + ldrb r5, [r4, #0xa] + cmp r5, #1 + beq _080A890E + cmp r5, #1 + bgt _080A8900 + cmp r5, #0 + beq _080A8906 + b _080A8982 + .align 2, 0 +_080A88FC: .4byte 0xFFFF0000 +_080A8900: + cmp r5, #2 + beq _080A8962 + b _080A8982 +_080A8906: + ldrh r0, [r4, #0x36] + adds r0, #0x10 + strh r0, [r4, #0x36] + b _080A8982 +_080A890E: + ldrh r0, [r4, #0x36] + adds r0, #0xe + strh r0, [r4, #0x36] + ldr r0, [r4, #0x54] + bl sub_08078954 + ldr r1, [r4, #0x54] + adds r0, r4, #0 + bl CopyPosition + ldrb r0, [r4, #0xe] + adds r1, r0, #1 + strb r1, [r4, #0xe] + lsls r0, r1, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #0xf + bls _080A8982 + ldr r2, [r4, #0x54] + ldrb r0, [r2, #0xe] + cmp r0, #0 + bne _080A8982 + movs r3, #2 + ands r1, r3 + cmp r1, #0 + beq _080A8946 + ldrb r0, [r2, #0xf] + adds r0, #1 + strb r0, [r2, #0xf] +_080A8946: + ldr r0, [r4, #0x54] + ldrb r1, [r0, #0xf] + cmp r1, #0x1f + bhi _080A8982 + movs r0, #3 + ands r0, r1 + cmp r0, #3 + bne _080A8982 + adds r1, r6, #0 + adds r1, #0x83 + movs r0, #0xc0 + strb r0, [r1] + strb r3, [r4, #0xc] + b _080A8982 +_080A8962: + ldrh r0, [r4, #0x36] + adds r0, #0xe + strh r0, [r4, #0x36] + ldr r1, _080A8984 @ =gPlayerEntity + adds r0, r4, #0 + movs r2, #0xe + movs r3, #0xe + bl sub_080041A0 + cmp r0, #0 + beq _080A8982 + strb r5, [r4, #0xc] + adds r1, r6, #0 + adds r1, #0x83 + movs r0, #0xc0 + strb r0, [r1] +_080A8982: + pop {r4, r5, r6, pc} + .align 2, 0 +_080A8984: .4byte gPlayerEntity + + thumb_func_start sub_080A8988 +sub_080A8988: @ 0x080A8988 + push {r4, r5, lr} + adds r5, r0, #0 + ldrb r0, [r5, #0xa] + cmp r0, #1 + bne _080A89B4 + ldr r4, [r5, #0x54] + cmp r4, #0 + bne _080A899C + bl DeleteThisEntity +_080A899C: + ldr r0, [r4, #4] + cmp r0, #0 + bne _080A89A6 + bl DeleteThisEntity +_080A89A6: + adds r0, r4, #0 + bl sub_08078954 + adds r0, r5, #0 + adds r1, r4, #0 + bl CopyPosition +_080A89B4: + movs r1, #0xa0 + lsls r1, r1, #6 + adds r0, r5, #0 + bl sub_080044EC + cmp r0, #1 + bne _080A8A44 + adds r0, r5, #0 + bl sub_080043E8 + cmp r0, #0 + beq _080A8A00 + cmp r0, #2 + beq _080A89E0 + cmp r0, #2 + bhi _080A89DA + cmp r0, #1 + beq _080A89E6 + b _080A89FC +_080A89DA: + cmp r0, #3 + beq _080A89F2 + b _080A89FC +_080A89E0: + adds r0, r5, #0 + movs r1, #0xb + b _080A89EA +_080A89E6: + adds r0, r5, #0 + movs r1, #0 +_080A89EA: + movs r2, #0 + bl CreateFx + b _080A89FC +_080A89F2: + adds r0, r5, #0 + movs r1, #0xc + movs r2, #0 + bl CreateFx +_080A89FC: + bl DeleteThisEntity +_080A8A00: + ldrb r0, [r5, #0xa] + cmp r0, #1 + beq _080A8A3E + cmp r0, #1 + bgt _080A8A10 + cmp r0, #0 + beq _080A8A16 + b _080A8A44 +_080A8A10: + cmp r0, #2 + beq _080A8A2A + b _080A8A44 +_080A8A16: + adds r0, r5, #0 + movs r1, #1 + bl InitializeAnimation + movs r0, #0x84 + bl EnqueueSFX + movs r0, #3 + strb r0, [r5, #0xc] + b _080A8A44 +_080A8A2A: + adds r0, r5, #0 + movs r1, #5 + movs r2, #0x80 + bl CreateFx + adds r4, r0, #0 + cmp r4, #0 + beq _080A8A3E + movs r0, #0 + str r0, [r4, #0x50] +_080A8A3E: + adds r0, r5, #0 + bl DeleteEntity +_080A8A44: + pop {r4, r5, pc} + .align 2, 0 + + thumb_func_start sub_080A8A48 +sub_080A8A48: @ 0x080A8A48 + push {r4, lr} + adds r4, r0, #0 + bl GetNextFrame + adds r0, r4, #0 + adds r0, #0x5a + ldrb r1, [r0] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _080A8A64 + adds r0, r4, #0 + bl DeleteEntity +_080A8A64: + pop {r4, pc} + .align 2, 0 diff --git a/asm/projectile/projectile7.inc b/asm/projectile/projectile7.inc new file mode 100644 index 00000000..f95a15ab --- /dev/null +++ b/asm/projectile/projectile7.inc @@ -0,0 +1,158 @@ + thumb_func_start Projectile7 +Projectile7: @ 0x080A8A68 + push {r4, lr} + adds r4, r0, #0 + bl GetNextFunction + cmp r0, #0 + beq _080A8A78 + bl DeleteThisEntity +_080A8A78: + ldr r0, _080A8A8C @ =gUnk_0812979C + ldrb r1, [r4, #0xc] + lsls r1, r1, #2 + adds r1, r1, r0 + ldr r1, [r1] + adds r0, r4, #0 + bl _call_via_r1 + pop {r4, pc} + .align 2, 0 +_080A8A8C: .4byte gUnk_0812979C + + thumb_func_start sub_080A8A90 +sub_080A8A90: @ 0x080A8A90 + push {lr} + adds r2, r0, #0 + ldrb r0, [r2, #0xa] + cmp r0, #0 + bne _080A8AAA + movs r0, #1 + strb r0, [r2, #0xc] + ldrb r1, [r2, #0x15] + lsrs r1, r1, #3 + adds r0, r2, #0 + bl InitializeAnimation + b _080A8AC2 +_080A8AAA: + movs r0, #2 + strb r0, [r2, #0xc] + ldrb r1, [r2, #0x15] + lsrs r1, r1, #3 + movs r0, #4 + orrs r1, r0 + adds r0, r2, #0 + bl InitializeAnimation + ldr r0, _080A8AC4 @ =0x0000015F + bl EnqueueSFX +_080A8AC2: + pop {pc} + .align 2, 0 +_080A8AC4: .4byte 0x0000015F + + thumb_func_start sub_080A8AC8 +sub_080A8AC8: @ 0x080A8AC8 + push {r4, r5, lr} + adds r4, r0, #0 + ldr r5, [r4, #0x50] + cmp r5, #0 + bne _080A8AD8 + bl DeleteEntity + b _080A8B34 +_080A8AD8: + ldr r0, [r5, #4] + cmp r0, #0 + bne _080A8AE6 + adds r0, r4, #0 + bl DeleteEntity + b _080A8B34 +_080A8AE6: + ldrb r0, [r4, #0x18] + lsls r0, r0, #0x1e + lsrs r0, r0, #0x1e + cmp r0, #1 + bne _080A8B2E + adds r0, r5, #0 + adds r1, r4, #0 + bl CopyPosition + ldrb r0, [r5, #0x15] + adds r2, r0, #4 + movs r0, #0x18 + ands r2, r0 + ldrb r0, [r4, #0xe] + cmp r0, #0 + beq _080A8B1A + movs r0, #0 + strb r2, [r4, #0x15] + lsrs r1, r2, #2 + strb r1, [r4, #0x14] + strb r0, [r4, #0xe] + lsrs r1, r2, #3 + adds r0, r4, #0 + bl InitializeAnimation + b _080A8B2E +_080A8B1A: + lsrs r0, r2, #2 + ldrb r1, [r4, #0x14] + cmp r0, r1 + beq _080A8B2E + strb r2, [r4, #0x15] + strb r0, [r4, #0x14] + lsrs r1, r2, #3 + adds r0, r4, #0 + bl InitializeAnimation +_080A8B2E: + adds r0, r4, #0 + bl GetNextFrame +_080A8B34: + pop {r4, r5, pc} + .align 2, 0 + + thumb_func_start sub_080A8B38 +sub_080A8B38: @ 0x080A8B38 + push {r4, lr} + adds r4, r0, #0 + bl GetNextFrame + adds r0, r4, #0 + bl sub_080AF090 + adds r2, r0, #0 + cmp r2, #0 + beq _080A8B66 + adds r0, r4, #0 + bl sub_080A7EB0 + cmp r0, #0 + beq _080A8B5E + adds r0, r4, #0 + bl DeleteEntity + b _080A8B74 +_080A8B5E: + adds r0, r4, #0 + bl sub_08016AD2 + b _080A8B74 +_080A8B66: + movs r0, #3 + strb r0, [r4, #0xc] + ldrb r1, [r4, #0x10] + movs r0, #0x7f + ands r0, r1 + strb r0, [r4, #0x10] + strh r2, [r4, #0x24] +_080A8B74: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_080A8B78 +sub_080A8B78: @ 0x080A8B78 + push {r4, lr} + adds r4, r0, #0 + bl GetNextFrame + adds r0, r4, #0 + adds r0, #0x5a + ldrb r1, [r0] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _080A8B94 + adds r0, r4, #0 + bl DeleteEntity +_080A8B94: + pop {r4, pc} + .align 2, 0 diff --git a/asm/projectile/projectile8.inc b/asm/projectile/projectile8.inc new file mode 100644 index 00000000..5e753c64 --- /dev/null +++ b/asm/projectile/projectile8.inc @@ -0,0 +1,144 @@ + thumb_func_start Projectile8 +Projectile8: @ 0x080A8B98 + push {r4, lr} + adds r4, r0, #0 + bl GetNextFunction + cmp r0, #0 + beq _080A8BA8 + bl DeleteThisEntity +_080A8BA8: + ldr r0, _080A8BBC @ =gUnk_0812982C + ldrb r1, [r4, #0xc] + lsls r1, r1, #2 + adds r1, r1, r0 + ldr r1, [r1] + adds r0, r4, #0 + bl _call_via_r1 + pop {r4, pc} + .align 2, 0 +_080A8BBC: .4byte gUnk_0812982C + + thumb_func_start sub_080A8BC0 +sub_080A8BC0: @ 0x080A8BC0 + push {lr} + adds r2, r0, #0 + ldrb r0, [r2, #0xa] + cmp r0, #0 + bne _080A8BDA + movs r0, #1 + strb r0, [r2, #0xc] + ldrb r1, [r2, #0x15] + lsrs r1, r1, #3 + adds r0, r2, #0 + bl InitializeAnimation + b _080A8BF4 +_080A8BDA: + movs r0, #2 + strb r0, [r2, #0xc] + ldrb r1, [r2, #0x15] + lsrs r1, r1, #3 + movs r0, #4 + orrs r1, r0 + adds r0, r2, #0 + bl InitializeAnimation + movs r0, #0xaf + lsls r0, r0, #1 + bl EnqueueSFX +_080A8BF4: + pop {pc} + .align 2, 0 + + thumb_func_start sub_080A8BF8 +sub_080A8BF8: @ 0x080A8BF8 + push {r4, r5, lr} + adds r4, r0, #0 + ldr r5, [r4, #0x50] + cmp r5, #0 + bne _080A8C08 + bl DeleteEntity + b _080A8C48 +_080A8C08: + ldr r0, [r5, #4] + cmp r0, #0 + bne _080A8C16 + adds r0, r4, #0 + bl DeleteEntity + b _080A8C48 +_080A8C16: + ldrb r0, [r4, #0x18] + lsls r0, r0, #0x1e + lsrs r0, r0, #0x1e + cmp r0, #1 + bne _080A8C42 + adds r0, r5, #0 + adds r1, r4, #0 + bl CopyPosition + ldrb r0, [r4, #0xe] + cmp r0, #0 + beq _080A8C42 + ldrb r0, [r5, #0x15] + movs r1, #0x18 + ands r1, r0 + movs r0, #0 + strb r1, [r4, #0x15] + strb r0, [r4, #0xe] + lsrs r1, r1, #3 + adds r0, r4, #0 + bl InitializeAnimation +_080A8C42: + adds r0, r4, #0 + bl GetNextFrame +_080A8C48: + pop {r4, r5, pc} + .align 2, 0 + + thumb_func_start sub_080A8C4C +sub_080A8C4C: @ 0x080A8C4C + push {r4, lr} + adds r4, r0, #0 + bl GetNextFrame + adds r0, r4, #0 + bl sub_080AF090 + adds r2, r0, #0 + cmp r2, #0 + beq _080A8C7A + adds r0, r4, #0 + bl sub_080A7EB0 + cmp r0, #0 + beq _080A8C72 + adds r0, r4, #0 + bl DeleteEntity + b _080A8C88 +_080A8C72: + adds r0, r4, #0 + bl sub_08016AD2 + b _080A8C88 +_080A8C7A: + movs r0, #3 + strb r0, [r4, #0xc] + ldrb r1, [r4, #0x10] + movs r0, #0x7f + ands r0, r1 + strb r0, [r4, #0x10] + strh r2, [r4, #0x24] +_080A8C88: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_080A8C8C +sub_080A8C8C: @ 0x080A8C8C + push {r4, lr} + adds r4, r0, #0 + bl GetNextFrame + adds r0, r4, #0 + adds r0, #0x5a + ldrb r1, [r0] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _080A8CA8 + adds r0, r4, #0 + bl DeleteEntity +_080A8CA8: + pop {r4, pc} + .align 2, 0 diff --git a/asm/projectile/projectile9.inc b/asm/projectile/projectile9.inc new file mode 100644 index 00000000..397c4882 --- /dev/null +++ b/asm/projectile/projectile9.inc @@ -0,0 +1,144 @@ + thumb_func_start Projectile9 +Projectile9: @ 0x080A8CAC + push {r4, lr} + adds r4, r0, #0 + bl GetNextFunction + cmp r0, #0 + beq _080A8CBC + bl DeleteThisEntity +_080A8CBC: + ldr r0, _080A8CD0 @ =gUnk_081298B8 + ldrb r1, [r4, #0xc] + lsls r1, r1, #2 + adds r1, r1, r0 + ldr r1, [r1] + adds r0, r4, #0 + bl _call_via_r1 + pop {r4, pc} + .align 2, 0 +_080A8CD0: .4byte gUnk_081298B8 + + thumb_func_start sub_080A8CD4 +sub_080A8CD4: @ 0x080A8CD4 + push {lr} + adds r2, r0, #0 + ldrb r0, [r2, #0xa] + cmp r0, #0 + bne _080A8CEE + movs r0, #1 + strb r0, [r2, #0xc] + ldrb r1, [r2, #0x15] + lsrs r1, r1, #3 + adds r0, r2, #0 + bl InitializeAnimation + b _080A8D08 +_080A8CEE: + movs r0, #2 + strb r0, [r2, #0xc] + ldrb r1, [r2, #0x15] + lsrs r1, r1, #3 + movs r0, #4 + orrs r1, r0 + adds r0, r2, #0 + bl InitializeAnimation + movs r0, #0xb0 + lsls r0, r0, #1 + bl EnqueueSFX +_080A8D08: + pop {pc} + .align 2, 0 + + thumb_func_start sub_080A8D0C +sub_080A8D0C: @ 0x080A8D0C + push {r4, r5, lr} + adds r4, r0, #0 + ldr r5, [r4, #0x50] + cmp r5, #0 + bne _080A8D1C + bl DeleteEntity + b _080A8D5C +_080A8D1C: + ldr r0, [r5, #4] + cmp r0, #0 + bne _080A8D2A + adds r0, r4, #0 + bl DeleteEntity + b _080A8D5C +_080A8D2A: + ldrb r0, [r4, #0x18] + lsls r0, r0, #0x1e + lsrs r0, r0, #0x1e + cmp r0, #1 + bne _080A8D56 + adds r0, r5, #0 + adds r1, r4, #0 + bl CopyPosition + ldrb r0, [r4, #0xe] + cmp r0, #0 + beq _080A8D56 + ldrb r0, [r5, #0x15] + movs r1, #0x18 + ands r1, r0 + movs r0, #0 + strb r1, [r4, #0x15] + strb r0, [r4, #0xe] + lsrs r1, r1, #3 + adds r0, r4, #0 + bl InitializeAnimation +_080A8D56: + adds r0, r4, #0 + bl GetNextFrame +_080A8D5C: + pop {r4, r5, pc} + .align 2, 0 + + thumb_func_start sub_080A8D60 +sub_080A8D60: @ 0x080A8D60 + push {r4, lr} + adds r4, r0, #0 + bl GetNextFrame + adds r0, r4, #0 + bl sub_080AF090 + adds r2, r0, #0 + cmp r2, #0 + beq _080A8D8E + adds r0, r4, #0 + bl sub_080A7EB0 + cmp r0, #0 + beq _080A8D86 + adds r0, r4, #0 + bl DeleteEntity + b _080A8D9C +_080A8D86: + adds r0, r4, #0 + bl sub_08016AD2 + b _080A8D9C +_080A8D8E: + movs r0, #3 + strb r0, [r4, #0xc] + ldrb r1, [r4, #0x10] + movs r0, #0x7f + ands r0, r1 + strb r0, [r4, #0x10] + strh r2, [r4, #0x24] +_080A8D9C: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_080A8DA0 +sub_080A8DA0: @ 0x080A8DA0 + push {r4, lr} + adds r4, r0, #0 + bl GetNextFrame + adds r0, r4, #0 + adds r0, #0x5a + ldrb r1, [r0] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _080A8DBC + adds r0, r4, #0 + bl DeleteEntity +_080A8DBC: + pop {r4, pc} + .align 2, 0 diff --git a/asm/projectile/projectileA.inc b/asm/projectile/projectileA.inc new file mode 100644 index 00000000..76dbbd24 --- /dev/null +++ b/asm/projectile/projectileA.inc @@ -0,0 +1,452 @@ + thumb_func_start ProjectileA +ProjectileA: @ 0x080A8DC0 + push {r4, r5, lr} + adds r5, r0, #0 + ldr r4, _080A8DD8 @ =gUnk_08129954 + bl GetNextFunction + lsls r0, r0, #2 + adds r0, r0, r4 + ldr r1, [r0] + adds r0, r5, #0 + bl _call_via_r1 + pop {r4, r5, pc} + .align 2, 0 +_080A8DD8: .4byte gUnk_08129954 + + thumb_func_start sub_080A8DDC +sub_080A8DDC: @ 0x080A8DDC + push {r4, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xa] + cmp r0, #3 + beq _080A8E12 + adds r0, r4, #0 + adds r0, #0x41 + ldrb r1, [r0] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _080A8E12 + movs r2, #0x7f + adds r0, r2, #0 + ands r0, r1 + cmp r0, #0x1e + beq _080A8E12 + movs r0, #3 + strb r0, [r4, #0xc] + ldrb r1, [r4, #0x10] + adds r0, r2, #0 + ands r0, r1 + strb r0, [r4, #0x10] + adds r0, r4, #0 + movs r1, #0x53 + bl InitializeAnimation +_080A8E12: + ldr r0, _080A8E24 @ =gUnk_08129968 + ldrb r1, [r4, #0xc] + lsls r1, r1, #2 + adds r1, r1, r0 + ldr r1, [r1] + adds r0, r4, #0 + bl _call_via_r1 + pop {r4, pc} + .align 2, 0 +_080A8E24: .4byte gUnk_08129968 + + thumb_func_start sub_080A8E28 +sub_080A8E28: @ 0x080A8E28 + push {r4, r5, r6, lr} + adds r5, r0, #0 + movs r0, #1 + strb r0, [r5, #0xc] + ldr r0, _080A8E80 @ =0xFFFF0000 + str r0, [r5, #0x20] + ldrb r0, [r5, #0xa] + cmp r0, #3 + beq _080A8E6E + ldr r0, [r5, #0x50] + adds r1, r5, #0 + bl CopyPosition + movs r1, #0x80 + lsls r1, r1, #5 + ldrb r2, [r5, #0x15] + adds r0, r5, #0 + bl sub_0806F5BC + ldr r0, [r5, #0x50] + ldr r2, [r5, #0x54] + ldr r1, [r0, #0x30] + ldr r0, [r2, #0x30] + subs r1, r1, r0 + str r1, [r5, #0x34] + ldr r0, [r5, #0x30] + subs r0, r0, r1 + str r0, [r5, #0x30] + adds r0, r5, #0 + movs r1, #0x51 + bl InitializeAnimation + ldr r0, _080A8E84 @ =0x000001B5 + bl SoundReq +_080A8E6E: + ldrb r4, [r5, #0xa] + cmp r4, #2 + beq _080A8EF2 + cmp r4, #2 + ble _080A8E88 + cmp r4, #3 + beq _080A8F02 + b _080A8FAE + .align 2, 0 +_080A8E80: .4byte 0xFFFF0000 +_080A8E84: .4byte 0x000001B5 +_080A8E88: + cmp r4, #0 + bge _080A8E8E + b _080A8FAE +_080A8E8E: + ldr r0, _080A8EC0 @ =gPlayerEntity + movs r2, #0x2e + ldrsh r1, [r0, r2] + movs r3, #0x32 + ldrsh r2, [r0, r3] + adds r0, r5, #0 + bl sub_080041DC + adds r4, r0, #0 + ldrb r6, [r5, #0xa] + cmp r6, #1 + bne _080A8ECE + bl Random + adds r2, r0, #0 + ldr r0, _080A8EC4 @ =0x000001FF + ands r2, r0 + ldr r0, _080A8EC8 @ =gScreenTransition + ldr r0, [r0] + ands r0, r6 + cmp r0, #0 + bne _080A8ECC + adds r4, r4, r2 + b _080A8ECE + .align 2, 0 +_080A8EC0: .4byte gPlayerEntity +_080A8EC4: .4byte 0x000001FF +_080A8EC8: .4byte gScreenTransition +_080A8ECC: + subs r4, r4, r2 +_080A8ECE: + cmp r4, #0x1f + bgt _080A8ED6 + movs r4, #0x20 + b _080A8EE0 +_080A8ED6: + movs r0, #0x80 + lsls r0, r0, #3 + cmp r4, r0 + ble _080A8EE0 + adds r4, r0, #0 +_080A8EE0: + lsls r1, r4, #8 + ldr r0, [r5, #0x34] + bl __divsi3 + lsls r0, r0, #0xd + str r0, [r5, #0x20] + movs r0, #0x1e + strb r0, [r5, #0xf] + b _080A8FAE +_080A8EF2: + ldr r0, [r5, #0x34] + movs r1, #0xc0 + lsls r1, r1, #9 + bl __divsi3 + lsls r0, r0, #0xc + str r0, [r5, #0x20] + b _080A8FAE +_080A8F02: + ldr r0, _080A8F64 @ =0xFF600000 + str r0, [r5, #0x34] + bl Random + ands r4, r0 + lsls r2, r4, #1 + ldr r1, _080A8F68 @ =gUnk_08129978 + adds r0, r2, r1 + ldrb r0, [r0] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + ldrh r3, [r5, #0x2e] + adds r0, r0, r3 + strh r0, [r5, #0x2e] + adds r0, r2, #1 + adds r0, r0, r1 + ldrb r0, [r0] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + ldrh r1, [r5, #0x32] + adds r0, r0, r1 + strh r0, [r5, #0x32] + movs r0, #2 + ands r2, r0 + cmp r2, #0 + beq _080A8F74 + bl Random + ldr r2, _080A8F6C @ =gUnk_08129988 + movs r1, #0xf + ands r1, r0 + adds r1, r1, r2 + movs r0, #0 + ldrsb r0, [r1, r0] + ldrh r2, [r5, #0x2e] + adds r0, r0, r2 + strh r0, [r5, #0x2e] + bl Random + ldr r2, _080A8F70 @ =gUnk_08129980 + movs r1, #7 + ands r1, r0 + adds r1, r1, r2 + movs r0, #0 + ldrsb r0, [r1, r0] + ldrh r3, [r5, #0x32] + adds r0, r0, r3 + b _080A8F9E + .align 2, 0 +_080A8F64: .4byte 0xFF600000 +_080A8F68: .4byte gUnk_08129978 +_080A8F6C: .4byte gUnk_08129988 +_080A8F70: .4byte gUnk_08129980 +_080A8F74: + bl Random + ldr r2, _080A8FB0 @ =gUnk_08129980 + movs r1, #7 + ands r1, r0 + adds r1, r1, r2 + movs r0, #0 + ldrsb r0, [r1, r0] + ldrh r1, [r5, #0x2e] + adds r0, r0, r1 + strh r0, [r5, #0x2e] + bl Random + ldr r2, _080A8FB4 @ =gUnk_08129988 + movs r1, #0xf + ands r1, r0 + adds r1, r1, r2 + movs r0, #0 + ldrsb r0, [r1, r0] + ldrh r2, [r5, #0x32] + adds r0, r0, r2 +_080A8F9E: + strh r0, [r5, #0x32] + adds r0, r5, #0 + bl sub_08004168 + adds r0, r5, #0 + movs r1, #0 + bl InitializeAnimation +_080A8FAE: + pop {r4, r5, r6, pc} + .align 2, 0 +_080A8FB0: .4byte gUnk_08129980 +_080A8FB4: .4byte gUnk_08129988 + + thumb_func_start sub_080A8FB8 +sub_080A8FB8: @ 0x080A8FB8 + push {r4, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xa] + cmp r0, #3 + bne _080A8FE8 + movs r1, #0xc0 + lsls r1, r1, #5 + adds r0, r4, #0 + bl sub_08003FC4 + cmp r0, #0 + bne _080A9054 + adds r0, r4, #0 + movs r1, #7 + bl sub_08008790 + adds r0, r4, #0 + movs r1, #4 + movs r2, #0 + bl CreateFx + bl DeleteThisEntity + b _080A9054 +_080A8FE8: + adds r0, r4, #0 + bl GetNextFrame + adds r0, r4, #0 + bl sub_0806F69C + ldrb r0, [r4, #0xa] + cmp r0, #2 + beq _080A901C + ldrb r0, [r4, #0xf] + subs r0, #1 + strb r0, [r4, #0xf] + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #0xff + bne _080A901C + movs r0, #0x1e + strb r0, [r4, #0xf] + ldr r1, _080A9048 @ =gPlayerEntity + adds r0, r4, #0 + bl GetFacingDirection + adds r1, r0, #0 + adds r0, r4, #0 + bl sub_08004596 +_080A901C: + adds r0, r4, #0 + movs r1, #0 + bl sub_08003FC4 + cmp r0, #0 + bne _080A9054 + movs r0, #2 + strb r0, [r4, #0xc] + adds r0, r4, #0 + bl sub_080A90D8 + ldrb r0, [r4, #0xa] + cmp r0, #2 + bne _080A904C + movs r0, #0xf + strb r0, [r4, #0xe] + adds r0, r4, #0 + movs r1, #0x54 + bl InitializeAnimation + b _080A9054 + .align 2, 0 +_080A9048: .4byte gPlayerEntity +_080A904C: + adds r0, r4, #0 + movs r1, #0x52 + bl InitializeAnimation +_080A9054: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_080A9058 +sub_080A9058: @ 0x080A9058 + push {r4, lr} + adds r4, r0, #0 + bl GetNextFrame + ldrb r0, [r4, #0xa] + cmp r0, #2 + bne _080A9098 + ldrb r0, [r4, #0xe] + subs r0, #1 + strb r0, [r4, #0xe] + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #0xff + bne _080A908A + ldrb r0, [r4, #0x10] + movs r1, #0x7f + ands r1, r0 + strb r1, [r4, #0x10] + movs r0, #3 + strb r0, [r4, #0xc] + adds r0, r4, #0 + movs r1, #0x55 + bl InitializeAnimation + b _080A90BA +_080A908A: + adds r0, r4, #0 + bl sub_0806F69C + adds r0, r4, #0 + bl sub_080A90D8 + b _080A90BA +_080A9098: + adds r0, r4, #0 + adds r0, #0x5a + ldrb r1, [r0] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _080A90BA + movs r0, #3 + strb r0, [r4, #0xc] + ldrb r1, [r4, #0x10] + movs r0, #0x7f + ands r0, r1 + strb r0, [r4, #0x10] + adds r0, r4, #0 + movs r1, #0x53 + bl InitializeAnimation +_080A90BA: + pop {r4, pc} + + thumb_func_start sub_080A90BC +sub_080A90BC: @ 0x080A90BC + push {r4, lr} + adds r4, r0, #0 + bl GetNextFrame + adds r4, #0x5a + ldrb r1, [r4] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _080A90D4 + bl DeleteThisEntity +_080A90D4: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_080A90D8 +sub_080A90D8: @ 0x080A90D8 + push {r4, r5, r6, r7, lr} + adds r5, r0, #0 + movs r0, #0x74 + adds r0, r0, r5 + mov ip, r0 + ldrh r3, [r0] + movs r1, #0x2e + ldrsh r0, [r5, r1] + ldr r7, _080A9154 @ =gRoomControls + ldrh r1, [r7, #6] + subs r0, r0, r1 + asrs r4, r0, #4 + movs r6, #0x3f + adds r2, r4, #0 + ands r2, r6 + movs r1, #0x32 + ldrsh r0, [r5, r1] + ldrh r1, [r7, #8] + subs r0, r0, r1 + asrs r1, r0, #4 + adds r0, r1, #0 + ands r0, r6 + lsls r0, r0, #6 + orrs r2, r0 + cmp r3, r2 + beq _080A9152 + movs r0, #0x3f + ands r4, r0 + ands r1, r0 + lsls r0, r1, #6 + orrs r4, r0 + mov r2, ip + strh r4, [r2] + adds r0, r5, #0 + bl GetTileTypeByEntity + cmp r0, #0x13 + beq _080A9128 + cmp r0, #0x34 + bne _080A9152 +_080A9128: + movs r0, #0xd3 + lsls r0, r0, #2 + movs r3, #0x2e + ldrsh r1, [r5, r3] + ldrh r2, [r7, #6] + subs r1, r1, r2 + asrs r1, r1, #4 + ands r1, r6 + movs r3, #0x32 + ldrsh r2, [r5, r3] + ldrh r3, [r7, #8] + subs r2, r2, r3 + asrs r2, r2, #4 + ands r2, r6 + lsls r2, r2, #6 + orrs r1, r2 + adds r2, r5, #0 + adds r2, #0x38 + ldrb r2, [r2] + bl sub_0807B7D8 +_080A9152: + pop {r4, r5, r6, r7, pc} + .align 2, 0 +_080A9154: .4byte gRoomControls diff --git a/asm/projectile/projectileB.inc b/asm/projectile/projectileB.inc new file mode 100644 index 00000000..9519e05c --- /dev/null +++ b/asm/projectile/projectileB.inc @@ -0,0 +1,71 @@ + thumb_func_start ProjectileB +ProjectileB: @ 0x080A9158 + push {r4, r5, lr} + adds r5, r0, #0 + ldrb r0, [r5, #0xc] + cmp r0, #0 + bne _080A9166 + movs r0, #1 + strb r0, [r5, #0xc] +_080A9166: + ldr r4, [r5, #0x50] + cmp r4, #0 + beq _080A917C + adds r0, r4, #0 + adds r0, #0x45 + ldrb r0, [r0] + cmp r0, #0 + beq _080A917C + ldr r0, [r4, #4] + cmp r0, #0 + bne _080A91A4 +_080A917C: + adds r0, r5, #0 + adds r0, #0x41 + ldrb r1, [r0] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _080A9198 + ldr r1, [r5, #0x4c] + ldr r0, _080A91A0 @ =gPlayerEntity + cmp r1, r0 + bne _080A9198 + adds r0, r5, #0 + bl sub_0803C0AC +_080A9198: + adds r0, r5, #0 + bl DeleteEntity + b _080A91D8 + .align 2, 0 +_080A91A0: .4byte gPlayerEntity +_080A91A4: + ldr r1, _080A91DC @ =gUnk_08129998 + ldrb r0, [r4, #0x14] + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r0, [r0] + str r0, [r5, #0x48] + adds r0, r4, #0 + adds r1, r5, #0 + bl CopyPosition + adds r0, r4, #0 + adds r0, #0x3d + ldrb r0, [r0] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + cmp r0, #0 + beq _080A91D8 + adds r1, r5, #0 + adds r1, #0x3d + ldrb r2, [r1] + movs r0, #0 + ldrsb r0, [r1, r0] + cmp r0, #0 + bne _080A91D8 + movs r0, #0xff + strb r0, [r1] +_080A91D8: + pop {r4, r5, pc} + .align 2, 0 +_080A91DC: .4byte gUnk_08129998 diff --git a/asm/projectile/projectileC.inc b/asm/projectile/projectileC.inc new file mode 100644 index 00000000..da1f8dfd --- /dev/null +++ b/asm/projectile/projectileC.inc @@ -0,0 +1,143 @@ + thumb_func_start ProjectileC +ProjectileC: @ 0x080A91E0 + push {r4, r5, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xa] + cmp r0, #0 + bne _080A9288 + ldrb r0, [r4, #0xc] + cmp r0, #0 + bne _080A9204 + movs r0, #1 + strb r0, [r4, #0xc] + bl Random + strb r0, [r4, #0xe] + ldrb r1, [r4, #0x18] + movs r0, #4 + rsbs r0, r0, #0 + ands r0, r1 + strb r0, [r4, #0x18] +_080A9204: + adds r0, r4, #0 + adds r0, #0x41 + ldrb r0, [r0] + cmp r0, #0x80 + bne _080A921C + ldr r1, [r4, #0x50] + cmp r1, #0 + beq _080A9218 + movs r0, #0xff + strb r0, [r1, #0xa] +_080A9218: + bl DeleteThisEntity +_080A921C: + ldr r0, [r4, #0x50] + adds r1, r4, #0 + bl CopyPosition + ldrb r0, [r4, #0xf] + cmp r0, #0 + beq _080A9230 + subs r0, #1 + strb r0, [r4, #0xf] + b _080A92F6 +_080A9230: + adds r0, r4, #0 + bl sub_080644C8 + cmp r0, #0 + beq _080A92F6 + ldrb r1, [r4, #0xe] + adds r0, r1, #1 + strb r0, [r4, #0xe] + movs r0, #3 + ands r0, r1 + cmp r0, #0 + bne _080A92F6 + movs r0, #0xc + bl sub_080A7EE0 + adds r5, r0, #0 + cmp r5, #0 + beq _080A92F6 + movs r0, #1 + strb r0, [r5, #0xa] + ldr r0, [r4, #0x50] + adds r0, #0x3e + ldrb r1, [r0] + ldr r3, _080A9284 @ =gUnk_081299C8 + ldrb r0, [r4, #0xe] + lsrs r0, r0, #2 + movs r2, #7 + ands r0, r2 + adds r0, r0, r3 + lsls r1, r1, #3 + ldrb r0, [r0] + adds r1, r1, r0 + movs r0, #0x1f + ands r1, r0 + strb r1, [r5, #0x15] + ldr r0, [r4, #0x50] + str r0, [r5, #0x50] + adds r0, r4, #0 + adds r1, r5, #0 + bl CopyPosition + b _080A92F6 + .align 2, 0 +_080A9284: .4byte gUnk_081299C8 +_080A9288: + ldrb r0, [r4, #0xc] + cmp r0, #0 + bne _080A92B0 + movs r0, #1 + strb r0, [r4, #0xc] + movs r0, #0x12 + strb r0, [r4, #0xe] + ldrb r1, [r4, #0x18] + subs r0, #0x16 + ands r0, r1 + strb r0, [r4, #0x18] + movs r0, #0x80 + lsls r0, r0, #4 + strh r0, [r4, #0x24] + ldr r0, _080A92F8 @ =gUnk_080FD1E4 + str r0, [r4, #0x48] + adds r0, r4, #0 + movs r1, #0 + bl InitializeAnimation +_080A92B0: + adds r0, r4, #0 + adds r0, #0x41 + ldrb r0, [r0] + cmp r0, #0x80 + bne _080A92C8 + ldr r1, [r4, #0x50] + cmp r1, #0 + beq _080A92C4 + movs r0, #0xff + strb r0, [r1, #0xa] +_080A92C4: + bl DeleteThisEntity +_080A92C8: + ldrb r0, [r4, #0xe] + subs r0, #1 + strb r0, [r4, #0xe] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _080A92D8 + bl DeleteThisEntity +_080A92D8: + adds r0, r4, #0 + bl sub_0806F69C + ldr r0, _080A92FC @ =gUnk_02027EB4 + movs r2, #0x2e + ldrsh r1, [r4, r2] + movs r3, #0x32 + ldrsh r2, [r4, r3] + movs r3, #2 + bl sub_080AE4CC + cmp r0, #0 + beq _080A92F6 + bl DeleteThisEntity +_080A92F6: + pop {r4, r5, pc} + .align 2, 0 +_080A92F8: .4byte gUnk_080FD1E4 +_080A92FC: .4byte gUnk_02027EB4 diff --git a/asm/projectile/projectileD.inc b/asm/projectile/projectileD.inc new file mode 100644 index 00000000..6d59c0fa --- /dev/null +++ b/asm/projectile/projectileD.inc @@ -0,0 +1,271 @@ + thumb_func_start ProjectileD +ProjectileD: @ 0x080A9300 + push {r4, r5, lr} + adds r5, r0, #0 + ldr r4, _080A9318 @ =gUnk_081299D0 + bl GetNextFunction + lsls r0, r0, #2 + adds r0, r0, r4 + ldr r1, [r0] + adds r0, r5, #0 + bl _call_via_r1 + pop {r4, r5, pc} + .align 2, 0 +_080A9318: .4byte gUnk_081299D0 + + thumb_func_start sub_080A931C +sub_080A931C: @ 0x080A931C + push {lr} + ldr r2, _080A9330 @ =gUnk_081299E4 + ldrb r1, [r0, #0xc] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_080A9330: .4byte gUnk_081299E4 + + thumb_func_start sub_080A9334 +sub_080A9334: @ 0x080A9334 + push {r4, lr} + adds r4, r0, #0 + adds r0, #0x41 + ldrb r1, [r0] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _080A936C + movs r0, #0x3f + ands r0, r1 + cmp r0, #0 + beq _080A9368 + movs r0, #2 + rsbs r0, r0, #0 + bl ModHealth + adds r0, r4, #0 + bl sub_080A9488 + adds r0, r4, #0 + adds r0, #0x42 + movs r1, #0 + strb r1, [r0] + subs r0, #5 + strb r1, [r0] + b _080A936C +_080A9368: + bl DeleteThisEntity +_080A936C: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_080A9370 +sub_080A9370: @ 0x080A9370 + push {r4, lr} + movs r4, #0 + movs r3, #1 + movs r1, #1 + strb r1, [r0, #0xc] + ldrb r2, [r0, #0x18] + subs r1, #5 + ands r1, r2 + orrs r1, r3 + strb r1, [r0, #0x18] + ldrb r2, [r0, #0x10] + movs r1, #0x7f + ands r1, r2 + strb r1, [r0, #0x10] + movs r1, #0x6a + strb r1, [r0, #0xe] + strb r4, [r0, #0xf] + movs r1, #0xa0 + lsls r1, r1, #4 + str r1, [r0, #0x20] + ldrb r1, [r0, #0xa] + bl sub_080A94C0 + pop {r4, pc} + + thumb_func_start sub_080A93A0 +sub_080A93A0: @ 0x080A93A0 + push {r4, r5, lr} + adds r4, r0, #0 + ldr r5, [r4, #0x50] + cmp r5, #0 + beq _080A93B0 + ldr r0, [r5, #4] + cmp r0, #0 + bne _080A93B4 +_080A93B0: + bl DeleteThisEntity +_080A93B4: + ldrb r0, [r4, #0xf] + cmp r0, #0 + beq _080A93BE + bl DeleteThisEntity +_080A93BE: + ldrb r0, [r5, #0xf] + cmp r0, #0 + beq _080A93DA + movs r2, #0 + movs r0, #2 + strb r0, [r4, #0xc] + ldrb r1, [r4, #0x10] + movs r0, #0x80 + orrs r0, r1 + strb r0, [r4, #0x10] + str r2, [r5, #0x54] + movs r0, #0xfc + bl SoundReq +_080A93DA: + pop {r4, r5, pc} + + thumb_func_start sub_080A93DC +sub_080A93DC: @ 0x080A93DC + push {r4, lr} + adds r4, r0, #0 + ldrh r0, [r4, #0x2a] + cmp r0, #0 + beq _080A9414 + movs r0, #3 + strb r0, [r4, #0xc] + ldrb r1, [r4, #0x10] + movs r0, #0x7f + ands r0, r1 + strb r0, [r4, #0x10] + movs r0, #0x20 + strb r0, [r4, #0xe] + adds r0, r4, #0 + adds r0, #0x58 + ldrb r1, [r0] + adds r1, #2 + adds r0, r4, #0 + bl InitializeAnimation + movs r0, #0xc5 + lsls r0, r0, #1 + bl EnqueueSFX + adds r0, r4, #0 + bl sub_0806F69C + b _080A9424 +_080A9414: + ldrb r0, [r4, #0xe] + subs r0, #1 + strb r0, [r4, #0xe] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _080A9424 + bl DeleteThisEntity +_080A9424: + adds r0, r4, #0 + bl sub_080AF090 + pop {r4, pc} + + thumb_func_start sub_080A942C +sub_080A942C: @ 0x080A942C + push {r4, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xe] + subs r0, #1 + strb r0, [r4, #0xe] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _080A9440 + bl DeleteThisEntity +_080A9440: + adds r0, r4, #0 + bl GetNextFrame + pop {r4, pc} + + thumb_func_start sub_080A9448 +sub_080A9448: @ 0x080A9448 + push {r4, lr} + adds r4, r0, #0 + movs r1, #0xa0 + lsls r1, r1, #6 + bl sub_08003FC4 + cmp r0, #0 + bne _080A9464 + adds r0, r4, #0 + bl CreateDust + bl DeleteThisEntity + b _080A9486 +_080A9464: + ldrb r0, [r4, #0xe] + subs r0, #1 + strb r0, [r4, #0xe] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _080A9486 + movs r0, #2 + strb r0, [r4, #0xe] + ldrb r0, [r4, #0x14] + adds r0, #1 + movs r1, #3 + ands r0, r1 + strb r0, [r4, #0x14] + ldrb r1, [r4, #0x14] + adds r0, r4, #0 + bl sub_080A94C0 +_080A9486: + pop {r4, pc} + + thumb_func_start sub_080A9488 +sub_080A9488: @ 0x080A9488 + push {r4, lr} + adds r4, r0, #0 + movs r0, #4 + strb r0, [r4, #0xc] + ldrb r1, [r4, #0x10] + movs r0, #0x7f + ands r0, r1 + strb r0, [r4, #0x10] + movs r0, #2 + strb r0, [r4, #0xe] + movs r0, #0xc0 + lsls r0, r0, #9 + str r0, [r4, #0x20] + adds r0, r4, #0 + adds r0, #0x3e + ldrb r1, [r0] + movs r0, #0x18 + ands r0, r1 + lsrs r0, r0, #3 + strb r0, [r4, #0x14] + movs r0, #0x74 + bl EnqueueSFX + ldrb r1, [r4, #0x14] + adds r0, r4, #0 + bl sub_080A94C0 + pop {r4, pc} + + thumb_func_start sub_080A94C0 +sub_080A94C0: @ 0x080A94C0 + push {r4, lr} + lsls r1, r1, #3 + ldr r2, _080A94FC @ =gUnk_081299F8 + adds r1, r1, r2 + ldrb r3, [r1] + movs r2, #1 + ands r3, r2 + lsls r3, r3, #6 + ldrb r4, [r0, #0x18] + movs r2, #0x41 + rsbs r2, r2, #0 + ands r2, r4 + orrs r2, r3 + strb r2, [r0, #0x18] + ldrb r3, [r1, #1] + lsls r3, r3, #7 + movs r4, #0x7f + ands r2, r4 + orrs r2, r3 + strb r2, [r0, #0x18] + ldrb r2, [r1, #2] + adds r3, r0, #0 + adds r3, #0x58 + strb r2, [r3] + ldr r1, [r1, #4] + str r1, [r0, #0x48] + ldrb r1, [r3] + bl InitializeAnimation + pop {r4, pc} + .align 2, 0 +_080A94FC: .4byte gUnk_081299F8 diff --git a/asm/projectile/projectileE.inc b/asm/projectile/projectileE.inc new file mode 100644 index 00000000..0a810580 --- /dev/null +++ b/asm/projectile/projectileE.inc @@ -0,0 +1,117 @@ + thumb_func_start ProjectileE +ProjectileE: @ 0x080A9500 + push {lr} + ldr r2, _080A9514 @ =gUnk_08129A64 + ldrb r1, [r0, #0xc] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_080A9514: .4byte gUnk_08129A64 + + thumb_func_start sub_080A9518 +sub_080A9518: @ 0x080A9518 + push {lr} + movs r1, #1 + strb r1, [r0, #0xc] + movs r1, #0xa + strb r1, [r0, #0xe] + ldrh r1, [r0, #0x36] + subs r1, #2 + strh r1, [r0, #0x36] + ldrh r1, [r0, #0x32] + adds r1, #2 + strh r1, [r0, #0x32] + movs r1, #0 + bl InitializeAnimation + ldr r0, _080A953C @ =0x00000149 + bl SoundReq + pop {pc} + .align 2, 0 +_080A953C: .4byte 0x00000149 + + thumb_func_start sub_080A9540 +sub_080A9540: @ 0x080A9540 + push {r4, lr} + adds r3, r0, #0 + ldrb r0, [r3, #0xe] + subs r0, #1 + strb r0, [r3, #0xe] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _080A9578 + movs r0, #2 + strb r0, [r3, #0xc] + ldrb r1, [r3, #0x10] + movs r0, #0x7f + ands r0, r1 + strb r0, [r3, #0x10] + adds r2, r3, #0 + adds r2, #0x29 + ldrb r0, [r2] + movs r1, #7 + orrs r0, r1 + strb r0, [r2] + ldrh r0, [r3, #0x32] + adds r0, #6 + strh r0, [r3, #0x32] + adds r0, r3, #0 + movs r1, #1 + bl InitializeAnimation + b _080A95B6 +_080A9578: + ldrh r1, [r3, #0x36] + movs r2, #0x36 + ldrsh r0, [r3, r2] + cmp r0, #0 + beq _080A9586 + adds r0, r1, #1 + strh r0, [r3, #0x36] +_080A9586: + ldrb r1, [r3, #0x15] + lsls r1, r1, #1 + ldr r0, _080A95B8 @ =gSineTable + adds r1, r1, r0 + movs r4, #0 + ldrsh r2, [r1, r4] + movs r4, #0x24 + ldrsh r0, [r3, r4] + muls r2, r0, r2 + ldr r0, [r3, #0x2c] + adds r0, r0, r2 + str r0, [r3, #0x2c] + adds r1, #0x80 + movs r0, #0 + ldrsh r1, [r1, r0] + movs r2, #0x24 + ldrsh r0, [r3, r2] + muls r1, r0, r1 + ldr r0, [r3, #0x30] + subs r0, r0, r1 + str r0, [r3, #0x30] + adds r0, r3, #0 + bl GetNextFrame +_080A95B6: + pop {r4, pc} + .align 2, 0 +_080A95B8: .4byte gSineTable + + thumb_func_start sub_080A95BC +sub_080A95BC: @ 0x080A95BC + push {r4, lr} + adds r4, r0, #0 + bl GetNextFrame + adds r0, r4, #0 + adds r0, #0x5a + ldrb r1, [r0] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _080A95D8 + adds r0, r4, #0 + bl DeleteEntity +_080A95D8: + pop {r4, pc} + .align 2, 0 diff --git a/asm/projectile/projectileF.inc b/asm/projectile/projectileF.inc new file mode 100644 index 00000000..5f1bd4ce --- /dev/null +++ b/asm/projectile/projectileF.inc @@ -0,0 +1,530 @@ + thumb_func_start ProjectileF +ProjectileF: @ 0x080A95DC + push {r4, r5, lr} + adds r5, r0, #0 + ldr r4, _080A95F4 @ =gUnk_08129ABC + bl GetNextFunction + lsls r0, r0, #2 + adds r0, r0, r4 + ldr r1, [r0] + adds r0, r5, #0 + bl _call_via_r1 + pop {r4, r5, pc} + .align 2, 0 +_080A95F4: .4byte gUnk_08129ABC + + thumb_func_start sub_080A95F8 +sub_080A95F8: @ 0x080A95F8 + push {lr} + ldr r2, _080A960C @ =gUnk_08129AD0 + ldrb r1, [r0, #0xc] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_080A960C: .4byte gUnk_08129AD0 + + thumb_func_start sub_080A9610 +sub_080A9610: @ 0x080A9610 + push {r4, r5, lr} + adds r4, r0, #0 + movs r5, #1 + strb r5, [r4, #0xc] + ldrb r0, [r4, #0xa] + cmp r0, #1 + beq _080A9660 + cmp r0, #1 + bgt _080A9628 + cmp r0, #0 + beq _080A9632 + b _080A9756 +_080A9628: + cmp r0, #2 + beq _080A96D0 + cmp r0, #3 + beq _080A9718 + b _080A9756 +_080A9632: + movs r1, #0x90 + lsls r1, r1, #7 + ldrb r2, [r4, #0x15] + adds r0, r4, #0 + bl sub_0806F62C + movs r1, #0 + movs r0, #0x80 + lsls r0, r0, #2 + strh r0, [r4, #0x24] + strb r1, [r4, #0xe] + ldrb r0, [r4, #0x15] + strb r0, [r4, #0xf] + adds r1, r4, #0 + adds r1, #0x78 + movs r0, #0x96 + lsls r0, r0, #1 + strh r0, [r1] + adds r0, r4, #0 + movs r1, #0 + bl InitAnimationForceUpdate + b _080A9756 +_080A9660: + ldrb r0, [r4, #0x19] + movs r1, #0xc0 + orrs r0, r1 + strb r0, [r4, #0x19] + adds r2, r4, #0 + adds r2, #0x29 + ldrb r1, [r2] + movs r0, #8 + rsbs r0, r0, #0 + ands r0, r1 + movs r1, #6 + orrs r0, r1 + strb r0, [r2] + bl Random + ldr r2, _080A96C8 @ =0x000001FF + adds r1, r2, #0 + ands r0, r1 + adds r2, #1 + adds r1, r2, #0 + adds r0, r0, r1 + strh r0, [r4, #0x24] + bl Random + ldr r1, _080A96CC @ =0x00001FFF + ands r1, r0 + movs r0, #0xc0 + lsls r0, r0, #9 + adds r1, r1, r0 + str r1, [r4, #0x20] + bl Random + movs r1, #7 + ands r0, r1 + subs r0, #4 + ldrb r1, [r4, #0x15] + subs r1, r1, r0 + strb r1, [r4, #0x15] + movs r0, #0x96 + lsls r0, r0, #2 + str r0, [r4, #0x78] + movs r0, #0x24 + ldrsh r1, [r4, r0] + ldrb r2, [r4, #0x15] + adds r0, r4, #0 + bl sub_0806F62C + adds r0, r4, #0 + movs r1, #4 + bl InitializeAnimation + b _080A9756 + .align 2, 0 +_080A96C8: .4byte 0x000001FF +_080A96CC: .4byte 0x00001FFF +_080A96D0: + bl Random + ands r0, r5 + cmp r0, #0 + beq _080A96EA + bl Random + movs r1, #7 + ands r0, r1 + ldrb r1, [r4, #0x15] + adds r0, r0, r1 + strb r0, [r4, #0x15] + b _080A96F8 +_080A96EA: + bl Random + movs r1, #7 + ands r0, r1 + ldrb r1, [r4, #0x15] + subs r1, r1, r0 + strb r1, [r4, #0x15] +_080A96F8: + movs r0, #0x80 + lsls r0, r0, #2 + strh r0, [r4, #0x24] + movs r0, #0x30 + strb r0, [r4, #0xe] + movs r1, #0xa0 + lsls r1, r1, #7 + ldrb r2, [r4, #0x15] + adds r0, r4, #0 + bl sub_0806F62C + adds r0, r4, #0 + movs r1, #5 + bl InitializeAnimation + b _080A9756 +_080A9718: + ldr r0, _080A9760 @ =gPlayerEntity + adds r1, r4, #0 + bl CopyPosition + ldr r0, _080A9764 @ =0xFF600000 + str r0, [r4, #0x34] + ldrh r0, [r4, #0x2e] + adds r0, #0x60 + strh r0, [r4, #0x2e] + ldrh r0, [r4, #0x32] + adds r0, #0x40 + strh r0, [r4, #0x32] + bl Random + movs r1, #0xc0 + bl __modsi3 + ldrh r1, [r4, #0x2e] + subs r1, r1, r0 + strh r1, [r4, #0x2e] + bl Random + movs r1, #0x7f + ands r1, r0 + ldrh r0, [r4, #0x32] + subs r0, r0, r1 + strh r0, [r4, #0x32] + adds r0, r4, #0 + movs r1, #0 + bl InitializeAnimation +_080A9756: + ldr r0, _080A9768 @ =0x000001B5 + bl SoundReq + pop {r4, r5, pc} + .align 2, 0 +_080A9760: .4byte gPlayerEntity +_080A9764: .4byte 0xFF600000 +_080A9768: .4byte 0x000001B5 + + thumb_func_start sub_080A976C +sub_080A976C: @ 0x080A976C + push {r4, r5, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xa] + cmp r0, #1 + bne _080A9778 + b _080A9908 +_080A9778: + cmp r0, #1 + bgt _080A9782 + cmp r0, #0 + beq _080A9790 + b _080A99EE +_080A9782: + cmp r0, #2 + bne _080A9788 + b _080A99A0 +_080A9788: + cmp r0, #3 + bne _080A978E + b _080A99D2 +_080A978E: + b _080A99EE +_080A9790: + ldr r0, [r4, #0x50] + ldrb r0, [r0, #0xc] + cmp r0, #2 + bne _080A979C + bl DeleteThisEntity +_080A979C: + ldrb r0, [r4, #0xb] + cmp r0, #0 + bne _080A97E0 + adds r0, r4, #0 + adds r0, #0x41 + ldrb r1, [r0] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _080A97E0 + movs r5, #0x7f + adds r0, r5, #0 + ands r0, r1 + cmp r0, #0 + bne _080A97C0 + adds r0, r4, #0 + bl sub_080A99F0 +_080A97C0: + adds r0, r4, #0 + adds r0, #0x3e + ldrb r0, [r0] + lsls r0, r0, #3 + strb r0, [r4, #0x15] + movs r1, #0 + movs r0, #0x80 + lsls r0, r0, #3 + strh r0, [r4, #0x24] + movs r0, #1 + strb r0, [r4, #0xb] + strb r1, [r4, #0xe] + ldrb r1, [r4, #0x10] + adds r0, r5, #0 + ands r0, r1 + strb r0, [r4, #0x10] +_080A97E0: + ldr r1, [r4, #0x50] + adds r0, r4, #0 + movs r2, #0x40 + bl sub_0806FC80 + cmp r0, #0 + beq _080A9848 + ldrb r0, [r4, #0xb] + cmp r0, #0 + bne _080A9804 + ldrb r0, [r4, #0x15] + movs r1, #0x80 + eors r0, r1 + strb r0, [r4, #0x15] + movs r0, #0x80 + lsls r0, r0, #3 + strh r0, [r4, #0x24] + b _080A9848 +_080A9804: + ldr r1, [r4, #0x50] + adds r1, #0x45 + ldrb r0, [r1] + subs r0, #1 + strb r0, [r1] + ldr r0, [r4, #0x50] + adds r0, #0x3d + movs r1, #0x1e + strb r1, [r0] + ldr r1, [r4, #0x50] + adds r0, r1, #0 + adds r0, #0x7c + ldrb r0, [r0] + cmp r0, #0 + beq _080A983C + adds r1, #0x42 + movs r0, #0x18 + strb r0, [r1] + ldr r0, [r4, #0x50] + adds r0, #0x46 + movs r1, #0x80 + lsls r1, r1, #2 + strh r1, [r0] + ldr r1, [r4, #0x50] + ldrb r0, [r4, #0x15] + lsrs r0, r0, #3 + adds r1, #0x3e + strb r0, [r1] +_080A983C: + ldr r0, _080A98B8 @ =0x00000127 + bl SoundReq + adds r0, r4, #0 + bl sub_080A99F0 +_080A9848: + adds r0, r4, #0 + bl UpdateAnimationSingleFrame + adds r5, r4, #0 + adds r5, #0x78 + ldrh r0, [r5] + subs r0, #1 + strh r0, [r5] + movs r0, #0x24 + ldrsh r1, [r4, r0] + ldrb r2, [r4, #0x15] + adds r0, r4, #0 + bl sub_0806F62C + ldrb r1, [r4, #0x15] + lsrs r1, r1, #3 + adds r0, r4, #0 + movs r2, #0 + bl sub_080AE58C + ldrh r1, [r4, #0x2a] + movs r0, #0xee + lsls r0, r0, #8 + ands r0, r1 + cmp r0, #0 + beq _080A9882 + ldrb r0, [r4, #0x15] + rsbs r0, r0, #0 + strb r0, [r4, #0x15] +_080A9882: + ldrh r1, [r4, #0x2a] + movs r0, #0xee + ands r0, r1 + cmp r0, #0 + beq _080A989A + ldrb r0, [r4, #0x15] + rsbs r0, r0, #0 + movs r2, #0x80 + rsbs r2, r2, #0 + adds r1, r2, #0 + eors r0, r1 + strb r0, [r4, #0x15] +_080A989A: + ldrb r0, [r4, #0x15] + ldrb r1, [r4, #0xf] + cmp r0, r1 + bne _080A98A4 + b _080A99EE +_080A98A4: + movs r0, #0xb2 + lsls r0, r0, #1 + bl SoundReq + ldrh r0, [r5] + cmp r0, #0 + bne _080A98BC + movs r0, #4 + b _080A98C0 + .align 2, 0 +_080A98B8: .4byte 0x00000127 +_080A98BC: + ldrb r0, [r4, #0xe] + adds r0, #1 +_080A98C0: + strb r0, [r4, #0xe] + ldrb r0, [r4, #0x15] + strb r0, [r4, #0xf] + ldrb r0, [r4, #0xe] + cmp r0, #1 + bhi _080A98CE + b _080A99EE +_080A98CE: + movs r5, #0 +_080A98D0: + adds r0, r4, #0 + movs r1, #0xf + movs r2, #1 + bl sub_0804A98C + adds r1, r0, #0 + str r1, [r4, #0x54] + cmp r1, #0 + beq _080A98FC + ldr r0, [r4, #0x50] + str r0, [r1, #0x50] + ldr r1, [r4, #0x54] + ldr r0, _080A9904 @ =gUnk_08129ADC + adds r0, r5, r0 + ldrb r0, [r0] + ldrb r2, [r4, #0x15] + adds r0, r0, r2 + strb r0, [r1, #0x15] + ldr r1, [r4, #0x54] + adds r0, r4, #0 + bl CopyPosition +_080A98FC: + adds r5, #1 + cmp r5, #2 + bls _080A98D0 + b _080A9998 + .align 2, 0 +_080A9904: .4byte gUnk_08129ADC +_080A9908: + ldr r0, [r4, #0x50] + ldrb r0, [r0, #0xc] + cmp r0, #2 + bne _080A9916 + adds r0, r4, #0 + bl sub_080A99F0 +_080A9916: + adds r0, r4, #0 + bl GetNextFrame + movs r1, #0xc0 + lsls r1, r1, #5 + adds r0, r4, #0 + bl sub_08003FC4 + cmp r0, #0 + beq _080A9950 + ldrb r1, [r4, #0x15] + lsrs r1, r1, #3 + adds r0, r4, #0 + movs r2, #0 + bl sub_080AE58C + ldrh r0, [r4, #0x2a] + cmp r0, #0 + bne _080A994A + movs r0, #0x24 + ldrsh r1, [r4, r0] + ldrb r2, [r4, #0x15] + adds r0, r4, #0 + bl sub_0806F62C + b _080A9950 +_080A994A: + adds r0, r4, #0 + bl sub_080A99F0 +_080A9950: + ldr r2, [r4, #0x78] + cmp r2, #0x1d + bhi _080A9978 + movs r0, #7 + ands r0, r2 + cmp r0, #0 + beq _080A996E + ldrb r0, [r4, #0x18] + movs r1, #4 + rsbs r1, r1, #0 + ands r1, r0 + movs r0, #1 + orrs r1, r0 + strb r1, [r4, #0x18] + b _080A9978 +_080A996E: + ldrb r1, [r4, #0x18] + movs r0, #4 + rsbs r0, r0, #0 + ands r0, r1 + strb r0, [r4, #0x18] +_080A9978: + subs r1, r2, #1 + str r1, [r4, #0x78] + movs r0, #1 + rsbs r0, r0, #0 + cmp r1, r0 + bne _080A998A + adds r0, r4, #0 + bl sub_080A99F0 +_080A998A: + adds r0, r4, #0 + adds r0, #0x41 + ldrb r1, [r0] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _080A99EE +_080A9998: + adds r0, r4, #0 + bl sub_080A99F0 + b _080A99EE +_080A99A0: + adds r0, r4, #0 + bl GetNextFrame + ldrb r0, [r4, #0xe] + subs r0, #1 + strb r0, [r4, #0xe] + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #0xff + beq _080A99C2 + movs r2, #0x24 + ldrsh r1, [r4, r2] + ldrb r2, [r4, #0x15] + adds r0, r4, #0 + bl sub_0806F62C + b _080A99EE +_080A99C2: + ldr r1, [r4, #0x54] + cmp r1, #0 + beq _080A99CC + movs r0, #1 + strb r0, [r1, #0xe] +_080A99CC: + bl DeleteThisEntity + b _080A99EE +_080A99D2: + movs r1, #0xc0 + lsls r1, r1, #5 + adds r0, r4, #0 + bl sub_08003FC4 + cmp r0, #0 + bne _080A99EE + adds r0, r4, #0 + movs r1, #4 + movs r2, #0 + bl CreateFx + bl DeleteThisEntity +_080A99EE: + pop {r4, r5, pc} + + thumb_func_start sub_080A99F0 +sub_080A99F0: @ 0x080A99F0 + push {lr} + movs r1, #4 + movs r2, #0 + bl CreateFx + bl DeleteThisEntity + pop {pc} diff --git a/asm/sub_08016AE4.s b/asm/sub_08016AE4.s index b389ddfd..c5b75bef 100644 --- a/asm/sub_08016AE4.s +++ b/asm/sub_08016AE4.s @@ -27,7 +27,7 @@ _08016B0A: adds r0, r4, #0 ldrb r1, [r0, #9] lsls r1, r1, #2 - ldr r2, _08016B2C @ =gUnk_08129320 + ldr r2, _08016B2C @ =gProjectileFunctions ldr r1, [r2, r1] bl _call_via_r1 movs r1, #0x41 @@ -41,4 +41,4 @@ _08016B22: pop {r3, r4} bx r3 .align 2, 0 -_08016B2C: .4byte gUnk_08129320 +_08016B2C: .4byte gProjectileFunctions diff --git a/data/animations/projectile/projectile1.inc b/data/animations/projectile/projectile1.inc new file mode 100644 index 00000000..e67e7676 --- /dev/null +++ b/data/animations/projectile/projectile1.inc @@ -0,0 +1,6 @@ +gUnk_081295F4:: @ 081295F4 + .incbin "baserom.gba", 0x1295F4, 0x0000010 + +gUnk_08129604:: @ 08129604 + .4byte gUnk_081295F4 + .4byte 00000000 diff --git a/data/animations/projectile/projectile11.inc b/data/animations/projectile/projectile11.inc new file mode 100644 index 00000000..34216740 --- /dev/null +++ b/data/animations/projectile/projectile11.inc @@ -0,0 +1,22 @@ +gUnk_08129B84:: @ 08129B84 + .incbin "baserom.gba", 0x129B84, 0x0000011 + +gUnk_08129B95:: @ 08129B95 + .incbin "baserom.gba", 0x129B95, 0x0000011 + +gUnk_08129BA6:: @ 08129BA6 + .incbin "baserom.gba", 0x129BA6, 0x0000011 + +gUnk_08129BB7:: @ 08129BB7 + .incbin "baserom.gba", 0x129BB7, 0x0000011 + +gUnk_08129BC8:: @ 08129BC8 + .4byte gUnk_08129B84 + .4byte gUnk_08129B95 + .4byte gUnk_08129B84 + .4byte gUnk_08129B95 + .4byte gUnk_08129BA6 + .4byte gUnk_08129BB7 + .4byte gUnk_08129BA6 + .4byte gUnk_08129BB7 + .4byte 00000000 diff --git a/data/animations/projectile/projectile12.inc b/data/animations/projectile/projectile12.inc new file mode 100644 index 00000000..6afc21cf --- /dev/null +++ b/data/animations/projectile/projectile12.inc @@ -0,0 +1,6 @@ +gUnk_08129C08:: @ 08129C08 + .incbin "baserom.gba", 0x129C08, 0x000006C + +gUnk_08129C74:: @ 08129C74 + .4byte gUnk_08129C08 + .4byte 00000000 diff --git a/data/animations/projectile/projectile13.inc b/data/animations/projectile/projectile13.inc new file mode 100644 index 00000000..f1e00ee3 --- /dev/null +++ b/data/animations/projectile/projectile13.inc @@ -0,0 +1,130 @@ +gUnk_08129D1C:: @ 08129D1C + .incbin "baserom.gba", 0x129D1C, 0x0000005 + +gUnk_08129D21:: @ 08129D21 + .incbin "baserom.gba", 0x129D21, 0x0000005 + +gUnk_08129D26:: @ 08129D26 + .incbin "baserom.gba", 0x129D26, 0x0000005 + +gUnk_08129D2B:: @ 08129D2B + .incbin "baserom.gba", 0x129D2B, 0x0000005 + +gUnk_08129D30:: @ 08129D30 + .incbin "baserom.gba", 0x129D30, 0x0000005 + +gUnk_08129D35:: @ 08129D35 + .incbin "baserom.gba", 0x129D35, 0x0000005 + +gUnk_08129D3A:: @ 08129D3A + .incbin "baserom.gba", 0x129D3A, 0x0000005 + +gUnk_08129D3F:: @ 08129D3F + .incbin "baserom.gba", 0x129D3F, 0x0000005 + +gUnk_08129D44:: @ 08129D44 + .incbin "baserom.gba", 0x129D44, 0x0000011 + +gUnk_08129D55:: @ 08129D55 + .incbin "baserom.gba", 0x129D55, 0x0000011 + +gUnk_08129D66:: @ 08129D66 + .incbin "baserom.gba", 0x129D66, 0x0000011 + +gUnk_08129D77:: @ 08129D77 + .incbin "baserom.gba", 0x129D77, 0x0000011 + +gUnk_08129D88:: @ 08129D88 + .incbin "baserom.gba", 0x129D88, 0x0000011 + +gUnk_08129D99:: @ 08129D99 + .incbin "baserom.gba", 0x129D99, 0x0000011 + +gUnk_08129DAA:: @ 08129DAA + .incbin "baserom.gba", 0x129DAA, 0x0000011 + +gUnk_08129DBB:: @ 08129DBB + .incbin "baserom.gba", 0x129DBB, 0x0000011 + +gUnk_08129DCC:: @ 08129DCC + .incbin "baserom.gba", 0x129DCC, 0x000000C + +gUnk_08129DD8:: @ 08129DD8 + .incbin "baserom.gba", 0x129DD8, 0x000000C + +gUnk_08129DE4:: @ 08129DE4 + .incbin "baserom.gba", 0x129DE4, 0x000000C + +gUnk_08129DF0:: @ 08129DF0 + .incbin "baserom.gba", 0x129DF0, 0x000000C + +gUnk_08129DFC:: @ 08129DFC + .incbin "baserom.gba", 0x129DFC, 0x000000C + +gUnk_08129E08:: @ 08129E08 + .incbin "baserom.gba", 0x129E08, 0x000000C + +gUnk_08129E14:: @ 08129E14 + .incbin "baserom.gba", 0x129E14, 0x000000C + +gUnk_08129E20:: @ 08129E20 + .incbin "baserom.gba", 0x129E20, 0x000000C + +gUnk_08129E2C:: @ 08129E2C + .incbin "baserom.gba", 0x129E2C, 0x0000021 + +gUnk_08129E4D:: @ 08129E4D + .incbin "baserom.gba", 0x129E4D, 0x0000021 + +gUnk_08129E6E:: @ 08129E6E + .incbin "baserom.gba", 0x129E6E, 0x0000021 + +gUnk_08129E8F:: @ 08129E8F + .incbin "baserom.gba", 0x129E8F, 0x0000021 + +gUnk_08129EB0:: @ 08129EB0 + .incbin "baserom.gba", 0x129EB0, 0x0000021 + +gUnk_08129ED1:: @ 08129ED1 + .incbin "baserom.gba", 0x129ED1, 0x0000021 + +gUnk_08129EF2:: @ 08129EF2 + .incbin "baserom.gba", 0x129EF2, 0x0000021 + +gUnk_08129F13:: @ 08129F13 + .incbin "baserom.gba", 0x129F13, 0x0000021 + +gUnk_08129F34:: @ 08129F34 + .4byte gUnk_08129D1C + .4byte gUnk_08129D21 + .4byte gUnk_08129D26 + .4byte gUnk_08129D2B + .4byte gUnk_08129D30 + .4byte gUnk_08129D35 + .4byte gUnk_08129D3A + .4byte gUnk_08129D3F + .4byte gUnk_08129D44 + .4byte gUnk_08129D55 + .4byte gUnk_08129D66 + .4byte gUnk_08129D77 + .4byte gUnk_08129D88 + .4byte gUnk_08129D99 + .4byte gUnk_08129DAA + .4byte gUnk_08129DBB + .4byte gUnk_08129DCC + .4byte gUnk_08129DD8 + .4byte gUnk_08129DE4 + .4byte gUnk_08129DF0 + .4byte gUnk_08129DFC + .4byte gUnk_08129E08 + .4byte gUnk_08129E14 + .4byte gUnk_08129E20 + .4byte gUnk_08129E2C + .4byte gUnk_08129E4D + .4byte gUnk_08129E6E + .4byte gUnk_08129E8F + .4byte gUnk_08129EB0 + .4byte gUnk_08129ED1 + .4byte gUnk_08129EF2 + .4byte gUnk_08129F13 + .4byte 00000000 diff --git a/data/animations/projectile/projectile15.inc b/data/animations/projectile/projectile15.inc new file mode 100644 index 00000000..07d57912 --- /dev/null +++ b/data/animations/projectile/projectile15.inc @@ -0,0 +1,82 @@ +gUnk_0812A08C:: @ 0812A08C + .incbin "baserom.gba", 0x12A08C, 0x0000004 + +gUnk_0812A090:: @ 0812A090 + .incbin "baserom.gba", 0x12A090, 0x0000004 + +gUnk_0812A094:: @ 0812A094 + .incbin "baserom.gba", 0x12A094, 0x0000004 + +gUnk_0812A098:: @ 0812A098 + .incbin "baserom.gba", 0x12A098, 0x0000004 + +gUnk_0812A09C:: @ 0812A09C + .incbin "baserom.gba", 0x12A09C, 0x000000C + +gUnk_0812A0A8:: @ 0812A0A8 + .incbin "baserom.gba", 0x12A0A8, 0x000000C + +gUnk_0812A0B4:: @ 0812A0B4 + .incbin "baserom.gba", 0x12A0B4, 0x000000C + +gUnk_0812A0C0:: @ 0812A0C0 + .incbin "baserom.gba", 0x12A0C0, 0x000000C + +gUnk_0812A0CC:: @ 0812A0CC + .incbin "baserom.gba", 0x12A0CC, 0x0000048 + +gUnk_0812A114:: @ 0812A114 + .incbin "baserom.gba", 0x12A114, 0x0000048 + +gUnk_0812A15C:: @ 0812A15C + .incbin "baserom.gba", 0x12A15C, 0x0000048 + +gUnk_0812A1A4:: @ 0812A1A4 + .incbin "baserom.gba", 0x12A1A4, 0x0000048 + +gUnk_0812A1EC:: @ 0812A1EC + .incbin "baserom.gba", 0x12A1EC, 0x0000024 + +gUnk_0812A210:: @ 0812A210 + .incbin "baserom.gba", 0x12A210, 0x0000024 + +gUnk_0812A234:: @ 0812A234 + .incbin "baserom.gba", 0x12A234, 0x0000024 + +gUnk_0812A258:: @ 0812A258 + .incbin "baserom.gba", 0x12A258, 0x0000024 + +gUnk_0812A27C:: @ 0812A27C + .incbin "baserom.gba", 0x12A27C, 0x000003C + +gUnk_0812A2B8:: @ 0812A2B8 + .incbin "baserom.gba", 0x12A2B8, 0x000003C + +gUnk_0812A2F4:: @ 0812A2F4 + .incbin "baserom.gba", 0x12A2F4, 0x000003C + +gUnk_0812A330:: @ 0812A330 + .incbin "baserom.gba", 0x12A330, 0x000003C + +gUnk_0812A36C:: @ 0812A36C + .4byte gUnk_0812A08C + .4byte gUnk_0812A090 + .4byte gUnk_0812A094 + .4byte gUnk_0812A098 + .4byte gUnk_0812A09C + .4byte gUnk_0812A0A8 + .4byte gUnk_0812A0B4 + .4byte gUnk_0812A0C0 + .4byte gUnk_0812A0CC + .4byte gUnk_0812A114 + .4byte gUnk_0812A15C + .4byte gUnk_0812A1A4 + .4byte gUnk_0812A1EC + .4byte gUnk_0812A210 + .4byte gUnk_0812A234 + .4byte gUnk_0812A258 + .4byte gUnk_0812A27C + .4byte gUnk_0812A2B8 + .4byte gUnk_0812A2F4 + .4byte gUnk_0812A330 + .4byte 00000000 diff --git a/data/animations/projectile/projectile16.inc b/data/animations/projectile/projectile16.inc new file mode 100644 index 00000000..9f92ce50 --- /dev/null +++ b/data/animations/projectile/projectile16.inc @@ -0,0 +1,6 @@ +gUnk_0812A3FC:: @ 0812A3FC + .incbin "baserom.gba", 0x12A3FC, 0x0000014 + +gUnk_0812A410:: @ 0812A410 + .4byte gUnk_0812A3FC + .4byte 00000000 diff --git a/data/animations/projectile/projectile18.inc b/data/animations/projectile/projectile18.inc new file mode 100644 index 00000000..f926a4f8 --- /dev/null +++ b/data/animations/projectile/projectile18.inc @@ -0,0 +1,10 @@ +gUnk_0812A44C:: @ 0812A44C + .incbin "baserom.gba", 0x12A44C, 0x0000021 + +gUnk_0812A46D:: @ 0812A46D + .incbin "baserom.gba", 0x12A46D, 0x000001B + +gUnk_0812A488:: @ 0812A488 + .4byte gUnk_0812A44C + .4byte gUnk_0812A46D + .4byte 00000000 diff --git a/data/animations/projectile/projectile1B.inc b/data/animations/projectile/projectile1B.inc new file mode 100644 index 00000000..4523ef4e --- /dev/null +++ b/data/animations/projectile/projectile1B.inc @@ -0,0 +1,15 @@ +gUnk_0812A5AC:: @ 0812A5AC + .incbin "baserom.gba", 0x12A5AC, 0x000000D + +gUnk_0812A5B9:: @ 0812A5B9 + .incbin "baserom.gba", 0x12A5B9, 0x000000D + +gUnk_0812A5C6:: @ 0812A5C6 + .incbin "baserom.gba", 0x12A5C6, 0x000000E + +gUnk_0812A5D4:: @ 0812A5D4 + .4byte gUnk_0812A5B9 + .4byte gUnk_0812A5AC + .4byte gUnk_0812A5B9 + .4byte gUnk_0812A5C6 + .4byte 00000000 diff --git a/data/animations/projectile/projectile1C.inc b/data/animations/projectile/projectile1C.inc new file mode 100644 index 00000000..0697b0aa --- /dev/null +++ b/data/animations/projectile/projectile1C.inc @@ -0,0 +1,30 @@ +gUnk_0812A63C:: @ 0812A63C + .incbin "baserom.gba", 0x12A63C, 0x0000020 + +gUnk_0812A65C:: @ 0812A65C + .incbin "baserom.gba", 0x12A65C, 0x0000009 + +gUnk_0812A665:: @ 0812A665 + .incbin "baserom.gba", 0x12A665, 0x0000009 + +gUnk_0812A66E:: @ 0812A66E + .incbin "baserom.gba", 0x12A66E, 0x0000009 + +gUnk_0812A677:: @ 0812A677 + .incbin "baserom.gba", 0x12A677, 0x0000009 + +gUnk_0812A680:: @ 0812A680 + .incbin "baserom.gba", 0x12A680, 0x0000009 + +gUnk_0812A689:: @ 0812A689 + .incbin "baserom.gba", 0x12A689, 0x000000B + +gUnk_0812A694:: @ 0812A694 + .4byte gUnk_0812A63C + .4byte gUnk_0812A65C + .4byte gUnk_0812A665 + .4byte gUnk_0812A66E + .4byte gUnk_0812A677 + .4byte gUnk_0812A680 + .4byte gUnk_0812A689 + .4byte 00000000 diff --git a/data/animations/projectile/projectile1E.inc b/data/animations/projectile/projectile1E.inc new file mode 100644 index 00000000..ec23a101 --- /dev/null +++ b/data/animations/projectile/projectile1E.inc @@ -0,0 +1,58 @@ +gUnk_0812A6E2:: @ 0812A6E2 + .incbin "baserom.gba", 0x12A6E2, 0x000000D + +gUnk_0812A6EF:: @ 0812A6EF + .incbin "baserom.gba", 0x12A6EF, 0x000000D + +gUnk_0812A6FC:: @ 0812A6FC + .incbin "baserom.gba", 0x12A6FC, 0x000000D + +gUnk_0812A709:: @ 0812A709 + .incbin "baserom.gba", 0x12A709, 0x000000D + +gUnk_0812A716:: @ 0812A716 + .incbin "baserom.gba", 0x12A716, 0x000000D + +gUnk_0812A723:: @ 0812A723 + .incbin "baserom.gba", 0x12A723, 0x000000D + +gUnk_0812A730:: @ 0812A730 + .incbin "baserom.gba", 0x12A730, 0x000000D + +gUnk_0812A73D:: @ 0812A73D + .incbin "baserom.gba", 0x12A73D, 0x000000D + +gUnk_0812A74A:: @ 0812A74A + .incbin "baserom.gba", 0x12A74A, 0x000000D + +gUnk_0812A757:: @ 0812A757 + .incbin "baserom.gba", 0x12A757, 0x000000D + +gUnk_0812A764:: @ 0812A764 + .incbin "baserom.gba", 0x12A764, 0x000000D + +gUnk_0812A771:: @ 0812A771 + .incbin "baserom.gba", 0x12A771, 0x000000D + +gUnk_0812A77E:: @ 0812A77E + .incbin "baserom.gba", 0x12A77E, 0x000000D + +gUnk_0812A78B:: @ 0812A78B + .incbin "baserom.gba", 0x12A78B, 0x000000D + +gUnk_0812A798:: @ 0812A798 + .4byte gUnk_0812A6E2 + .4byte gUnk_0812A6EF + .4byte gUnk_0812A6FC + .4byte gUnk_0812A709 + .4byte gUnk_0812A716 + .4byte gUnk_0812A723 + .4byte gUnk_0812A730 + .4byte gUnk_0812A73D + .4byte gUnk_0812A74A + .4byte gUnk_0812A757 + .4byte gUnk_0812A764 + .4byte gUnk_0812A771 + .4byte gUnk_0812A77E + .4byte gUnk_0812A78B + .4byte 00000000 diff --git a/data/animations/projectile/projectile1F.inc b/data/animations/projectile/projectile1F.inc new file mode 100644 index 00000000..ca4fdf94 --- /dev/null +++ b/data/animations/projectile/projectile1F.inc @@ -0,0 +1,10 @@ +gUnk_0812A814:: @ 0812A814 + .incbin "baserom.gba", 0x12A814, 0x0000011 + +gUnk_0812A825:: @ 0812A825 + .incbin "baserom.gba", 0x12A825, 0x000001B + +gUnk_0812A840:: @ 0812A840 + .4byte gUnk_0812A814 + .4byte gUnk_0812A825 + .4byte 00000000 diff --git a/data/animations/projectile/projectile2.inc b/data/animations/projectile/projectile2.inc new file mode 100644 index 00000000..b24baeda --- /dev/null +++ b/data/animations/projectile/projectile2.inc @@ -0,0 +1,6 @@ +gUnk_08129634:: @ 08129634 + .incbin "baserom.gba", 0x129634, 0x0000014 + +gUnk_08129648:: @ 08129648 + .4byte gUnk_08129634 + .4byte 00000000 diff --git a/data/animations/projectile/projectile20.inc b/data/animations/projectile/projectile20.inc new file mode 100644 index 00000000..99cf4488 --- /dev/null +++ b/data/animations/projectile/projectile20.inc @@ -0,0 +1,18 @@ +gUnk_0812A860:: @ 0812A860 + .incbin "baserom.gba", 0x12A860, 0x0000011 + +gUnk_0812A871:: @ 0812A871 + .incbin "baserom.gba", 0x12A871, 0x0000059 + +gUnk_0812A8CA:: @ 0812A8CA + .incbin "baserom.gba", 0x12A8CA, 0x0000061 + +gUnk_0812A92B:: @ 0812A92B + .incbin "baserom.gba", 0x12A92B, 0x0000015 + +gUnk_0812A940:: @ 0812A940 + .4byte gUnk_0812A860 + .4byte gUnk_0812A871 + .4byte gUnk_0812A8CA + .4byte gUnk_0812A92B + .4byte 00000000 diff --git a/data/animations/projectile/projectile23.inc b/data/animations/projectile/projectile23.inc new file mode 100644 index 00000000..9bfccd37 --- /dev/null +++ b/data/animations/projectile/projectile23.inc @@ -0,0 +1,10 @@ +gUnk_0812A9FC:: @ 0812A9FC + .incbin "baserom.gba", 0x12A9FC, 0x0000035 + +gUnk_0812AA31:: @ 0812AA31 + .incbin "baserom.gba", 0x12AA31, 0x000001F + +gUnk_0812AA50:: @ 0812AA50 + .4byte gUnk_0812A9FC + .4byte gUnk_0812AA31 + .4byte 00000000 diff --git a/data/animations/projectile/projectile6.inc b/data/animations/projectile/projectile6.inc new file mode 100644 index 00000000..12cc87a3 --- /dev/null +++ b/data/animations/projectile/projectile6.inc @@ -0,0 +1,10 @@ +gUnk_08129770:: @ 08129770 + .incbin "baserom.gba", 0x129770, 0x0000005 + +gUnk_08129775:: @ 08129775 + .incbin "baserom.gba", 0x129775, 0x000001B + +gUnk_08129790:: @ 08129790 + .4byte gUnk_08129770 + .4byte gUnk_08129775 + .4byte 00000000 diff --git a/data/animations/projectile/projectile7.inc b/data/animations/projectile/projectile7.inc new file mode 100644 index 00000000..e12f93c4 --- /dev/null +++ b/data/animations/projectile/projectile7.inc @@ -0,0 +1,50 @@ +gUnk_081297AC:: @ 081297AC + .incbin "baserom.gba", 0x1297AC, 0x0000009 + +gUnk_081297B5:: @ 081297B5 + .incbin "baserom.gba", 0x1297B5, 0x0000009 + +gUnk_081297BE:: @ 081297BE + .incbin "baserom.gba", 0x1297BE, 0x0000009 + +gUnk_081297C7:: @ 081297C7 + .incbin "baserom.gba", 0x1297C7, 0x0000009 + +gUnk_081297D0:: @ 081297D0 + .incbin "baserom.gba", 0x1297D0, 0x0000005 + +gUnk_081297D5:: @ 081297D5 + .incbin "baserom.gba", 0x1297D5, 0x0000005 + +gUnk_081297DA:: @ 081297DA + .incbin "baserom.gba", 0x1297DA, 0x0000005 + +gUnk_081297DF:: @ 081297DF + .incbin "baserom.gba", 0x1297DF, 0x0000005 + +gUnk_081297E4:: @ 081297E4 + .incbin "baserom.gba", 0x1297E4, 0x0000005 + +gUnk_081297E9:: @ 081297E9 + .incbin "baserom.gba", 0x1297E9, 0x0000005 + +gUnk_081297EE:: @ 081297EE + .incbin "baserom.gba", 0x1297EE, 0x0000005 + +gUnk_081297F3:: @ 081297F3 + .incbin "baserom.gba", 0x1297F3, 0x0000005 + +gUnk_081297F8:: @ 081297F8 + .4byte gUnk_081297AC + .4byte gUnk_081297B5 + .4byte gUnk_081297BE + .4byte gUnk_081297C7 + .4byte gUnk_081297D0 + .4byte gUnk_081297D5 + .4byte gUnk_081297DA + .4byte gUnk_081297DF + .4byte gUnk_081297E4 + .4byte gUnk_081297E9 + .4byte gUnk_081297EE + .4byte gUnk_081297F3 + .4byte 00000000 diff --git a/data/animations/projectile/projectile8.inc b/data/animations/projectile/projectile8.inc new file mode 100644 index 00000000..6b7560d6 --- /dev/null +++ b/data/animations/projectile/projectile8.inc @@ -0,0 +1,34 @@ +gUnk_0812983C:: @ 0812983C + .incbin "baserom.gba", 0x12983C, 0x0000009 + +gUnk_08129845:: @ 08129845 + .incbin "baserom.gba", 0x129845, 0x0000009 + +gUnk_0812984E:: @ 0812984E + .incbin "baserom.gba", 0x12984E, 0x0000009 + +gUnk_08129857:: @ 08129857 + .incbin "baserom.gba", 0x129857, 0x0000009 + +gUnk_08129860:: @ 08129860 + .incbin "baserom.gba", 0x129860, 0x000000D + +gUnk_0812986D:: @ 0812986D + .incbin "baserom.gba", 0x12986D, 0x000000D + +gUnk_0812987A:: @ 0812987A + .incbin "baserom.gba", 0x12987A, 0x000000D + +gUnk_08129887:: @ 08129887 + .incbin "baserom.gba", 0x129887, 0x000000D + +gUnk_08129894:: @ 08129894 + .4byte gUnk_0812983C + .4byte gUnk_08129845 + .4byte gUnk_0812984E + .4byte gUnk_08129857 + .4byte gUnk_08129860 + .4byte gUnk_0812986D + .4byte gUnk_0812987A + .4byte gUnk_08129887 + .4byte 00000000 diff --git a/data/animations/projectile/projectile9.inc b/data/animations/projectile/projectile9.inc new file mode 100644 index 00000000..df7c2393 --- /dev/null +++ b/data/animations/projectile/projectile9.inc @@ -0,0 +1,34 @@ +gUnk_081298C8:: @ 081298C8 + .incbin "baserom.gba", 0x1298C8, 0x0000009 + +gUnk_081298D1:: @ 081298D1 + .incbin "baserom.gba", 0x1298D1, 0x0000009 + +gUnk_081298DA:: @ 081298DA + .incbin "baserom.gba", 0x1298DA, 0x0000009 + +gUnk_081298E3:: @ 081298E3 + .incbin "baserom.gba", 0x1298E3, 0x0000009 + +gUnk_081298EC:: @ 081298EC + .incbin "baserom.gba", 0x1298EC, 0x0000011 + +gUnk_081298FD:: @ 081298FD + .incbin "baserom.gba", 0x1298FD, 0x0000011 + +gUnk_0812990E:: @ 0812990E + .incbin "baserom.gba", 0x12990E, 0x0000011 + +gUnk_0812991F:: @ 0812991F + .incbin "baserom.gba", 0x12991F, 0x0000011 + +gUnk_08129930:: @ 08129930 + .4byte gUnk_081298C8 + .4byte gUnk_081298D1 + .4byte gUnk_081298DA + .4byte gUnk_081298E3 + .4byte gUnk_081298EC + .4byte gUnk_081298FD + .4byte gUnk_0812990E + .4byte gUnk_0812991F + .4byte 00000000 diff --git a/data/animations/projectile/projectileD.inc b/data/animations/projectile/projectileD.inc new file mode 100644 index 00000000..690972b8 --- /dev/null +++ b/data/animations/projectile/projectileD.inc @@ -0,0 +1,18 @@ + +gUnk_08129A28:: @ 08129A28 + .incbin "baserom.gba", 0x129A28, 0x0000005 + +gUnk_08129A2D:: @ 08129A2D + .incbin "baserom.gba", 0x129A2D, 0x0000005 + +gUnk_08129A32:: @ 08129A32 + .incbin "baserom.gba", 0x129A32, 0x0000011 + +gUnk_08129A43:: @ 08129A43 + .incbin "baserom.gba", 0x129A43, 0x0000011 + +gUnk_08129A54:: @ 08129A54 + .4byte gUnk_08129A28 + .4byte gUnk_08129A2D + .4byte gUnk_08129A32 + .4byte gUnk_08129A43 diff --git a/data/animations/projectile/projectileE.inc b/data/animations/projectile/projectileE.inc new file mode 100644 index 00000000..31772bc7 --- /dev/null +++ b/data/animations/projectile/projectileE.inc @@ -0,0 +1,10 @@ +gUnk_08129A70:: @ 08129A70 + .incbin "baserom.gba", 0x129A70, 0x0000019 + +gUnk_08129A89:: @ 08129A89 + .incbin "baserom.gba", 0x129A89, 0x0000027 + +gUnk_08129AB0:: @ 08129AB0 + .4byte gUnk_08129A70 + .4byte gUnk_08129A89 + .4byte 00000000 diff --git a/data/const/projectile/projectile0.inc b/data/const/projectile/projectile0.inc new file mode 100644 index 00000000..cd8f1287 --- /dev/null +++ b/data/const/projectile/projectile0.inc @@ -0,0 +1,191 @@ +gUnk_081293B8:: @ 081293B8 + .incbin "baserom.gba", 0x1293B8, 0x0000014 + +gUnk_081293CC:: @ 081293CC + .4byte sub_080A7FB4 + .4byte sub_080A801C + .4byte sub_080A7FD8 + .4byte sub_080A7FEC + .4byte sub_080A7FEC + +gUnk_081293E0:: @ 081293E0 + .4byte gUnk_08129460 + .4byte gUnk_081294A8 + .4byte gUnk_081294F0 + .4byte gUnk_08129538 + +gUnk_081293F0:: @ 081293F0 + .4byte gUnk_08129550 + .4byte gUnk_08129558 + .4byte gUnk_08129560 + .4byte gUnk_08129568 + +gUnk_08129400:: @ 08129400 + .4byte gUnk_08129590 + .4byte gUnk_081295A0 + .4byte gUnk_081295B0 + .4byte gUnk_081295C0 + +gUnk_08129410:: @ 08129410 + .4byte gUnk_08129598 + .4byte gUnk_081295A8 + .4byte gUnk_081295B8 + .4byte gUnk_081295C8 + +gUnk_08129420:: @ 08129420 + .4byte gUnk_08129570 + .4byte gUnk_08129578 + .4byte gUnk_08129580 + .4byte gUnk_08129588 + +gUnk_08129430:: @ 08129430 + .incbin "baserom.gba", 0x129430, 0x0000008 + +gUnk_08129438:: @ 08129438 + .incbin "baserom.gba", 0x129438, 0x0000008 + +gUnk_08129440:: @ 08129440 + .incbin "baserom.gba", 0x129440, 0x0000008 + +gUnk_08129448:: @ 08129448 + .incbin "baserom.gba", 0x129448, 0x0000008 + +gUnk_08129450:: @ 08129450 + .incbin "baserom.gba", 0x129450, 0x0000008 + +gUnk_08129458:: @ 08129458 + .incbin "baserom.gba", 0x129458, 0x0000008 + +gUnk_08129460:: @ 08129460 + .4byte gUnk_08129430 + .4byte gUnk_08129438 + .4byte gUnk_08129440 + .4byte gUnk_08129448 + .4byte gUnk_08129450 + .4byte gUnk_08129458 + +gUnk_08129478:: @ 08129478 + .incbin "baserom.gba", 0x129478, 0x0000008 + +gUnk_08129480:: @ 08129480 + .incbin "baserom.gba", 0x129480, 0x0000008 + +gUnk_08129488:: @ 08129488 + .incbin "baserom.gba", 0x129488, 0x0000008 + +gUnk_08129490:: @ 08129490 + .incbin "baserom.gba", 0x129490, 0x0000008 + +gUnk_08129498:: @ 08129498 + .incbin "baserom.gba", 0x129498, 0x0000008 + +gUnk_081294A0:: @ 081294A0 + .incbin "baserom.gba", 0x1294A0, 0x0000008 + +gUnk_081294A8:: @ 081294A8 + .4byte gUnk_08129478 + .4byte gUnk_08129480 + .4byte gUnk_08129488 + .4byte gUnk_08129490 + .4byte gUnk_08129498 + .4byte gUnk_081294A0 + +gUnk_081294C0:: @ 081294C0 + .incbin "baserom.gba", 0x1294C0, 0x0000008 + +gUnk_081294C8:: @ 081294C8 + .incbin "baserom.gba", 0x1294C8, 0x0000008 + +gUnk_081294D0:: @ 081294D0 + .incbin "baserom.gba", 0x1294D0, 0x0000008 + +gUnk_081294D8:: @ 081294D8 + .incbin "baserom.gba", 0x1294D8, 0x0000008 + +gUnk_081294E0:: @ 081294E0 + .incbin "baserom.gba", 0x1294E0, 0x0000008 + +gUnk_081294E8:: @ 081294E8 + .incbin "baserom.gba", 0x1294E8, 0x0000008 + +gUnk_081294F0:: @ 081294F0 + .4byte gUnk_081294C0 + .4byte gUnk_081294C8 + .4byte gUnk_081294D0 + .4byte gUnk_081294D8 + .4byte gUnk_081294E0 + .4byte gUnk_081294E8 + +gUnk_08129508:: @ 08129508 + .incbin "baserom.gba", 0x129508, 0x0000008 + +gUnk_08129510:: @ 08129510 + .incbin "baserom.gba", 0x129510, 0x0000008 + +gUnk_08129518:: @ 08129518 + .incbin "baserom.gba", 0x129518, 0x0000008 + +gUnk_08129520:: @ 08129520 + .incbin "baserom.gba", 0x129520, 0x0000008 + +gUnk_08129528:: @ 08129528 + .incbin "baserom.gba", 0x129528, 0x0000008 + +gUnk_08129530:: @ 08129530 + .incbin "baserom.gba", 0x129530, 0x0000008 + +gUnk_08129538:: @ 08129538 + .4byte gUnk_08129508 + .4byte gUnk_08129510 + .4byte gUnk_08129518 + .4byte gUnk_08129520 + .4byte gUnk_08129528 + .4byte gUnk_08129530 + +gUnk_08129550:: @ 08129550 + .incbin "baserom.gba", 0x129550, 0x0000008 + +gUnk_08129558:: @ 08129558 + .incbin "baserom.gba", 0x129558, 0x0000008 + +gUnk_08129560:: @ 08129560 + .incbin "baserom.gba", 0x129560, 0x0000008 + +gUnk_08129568:: @ 08129568 + .incbin "baserom.gba", 0x129568, 0x0000008 + +gUnk_08129570:: @ 08129570 + .incbin "baserom.gba", 0x129570, 0x0000008 + +gUnk_08129578:: @ 08129578 + .incbin "baserom.gba", 0x129578, 0x0000008 + +gUnk_08129580:: @ 08129580 + .incbin "baserom.gba", 0x129580, 0x0000008 + +gUnk_08129588:: @ 08129588 + .incbin "baserom.gba", 0x129588, 0x0000008 + +gUnk_08129590:: @ 08129590 + .incbin "baserom.gba", 0x129590, 0x0000008 + +gUnk_08129598:: @ 08129598 + .incbin "baserom.gba", 0x129598, 0x0000008 + +gUnk_081295A0:: @ 081295A0 + .incbin "baserom.gba", 0x1295A0, 0x0000008 + +gUnk_081295A8:: @ 081295A8 + .incbin "baserom.gba", 0x1295A8, 0x0000008 + +gUnk_081295B0:: @ 081295B0 + .incbin "baserom.gba", 0x1295B0, 0x0000008 + +gUnk_081295B8:: @ 081295B8 + .incbin "baserom.gba", 0x1295B8, 0x0000008 + +gUnk_081295C0:: @ 081295C0 + .incbin "baserom.gba", 0x1295C0, 0x0000008 + +gUnk_081295C8:: @ 081295C8 + .incbin "baserom.gba", 0x1295C8, 0x0000008 diff --git a/data/const/projectile/projectile1.inc b/data/const/projectile/projectile1.inc new file mode 100644 index 00000000..b75a952b --- /dev/null +++ b/data/const/projectile/projectile1.inc @@ -0,0 +1,12 @@ +gUnk_081295D0:: @ 081295D0 + .4byte sub_080A804C + .4byte sub_080A8064 + .4byte DeleteEntity + .4byte DeleteEntity + .4byte DeleteEntity + +gUnk_081295E4:: @ 081295E4 + .4byte sub_080A8088 + .4byte sub_080A80A0 + .4byte sub_080A80F4 + .4byte sub_080A8118 diff --git a/data/const/projectile/projectile10.inc b/data/const/projectile/projectile10.inc new file mode 100644 index 00000000..7036c5e1 --- /dev/null +++ b/data/const/projectile/projectile10.inc @@ -0,0 +1,27 @@ +gUnk_08129AE0:: @ 08129AE0 + .4byte sub_080A9A1C + .4byte sub_080A9A34 + .4byte DeleteEntity + .4byte DeleteEntity + .4byte DeleteEntity + .4byte sub_080A9A64 + +gUnk_08129AF8:: @ 08129AF8 + .4byte sub_080A9ACC + .4byte sub_080A9B24 + .4byte sub_080A9B54 + .4byte sub_080A9B80 + +gUnk_08129B08:: @ 08129B08 + .4byte sub_080A9A94 + .4byte sub_080A9AA4 + .4byte sub_080A9AAC + .4byte sub_080A9AB4 + .4byte nullsub_128 + .4byte sub_080A9AC4 + +gUnk_08129B20:: @ 08129B20 + .incbin "baserom.gba", 0x129B20, 0x0000030 + +gUnk_08129B50:: @ 08129B50 + .incbin "baserom.gba", 0x129B50, 0x0000008 diff --git a/data/const/projectile/projectile11.inc b/data/const/projectile/projectile11.inc new file mode 100644 index 00000000..24d0cf2d --- /dev/null +++ b/data/const/projectile/projectile11.inc @@ -0,0 +1,17 @@ +gUnk_08129B58:: @ 08129B58 + .4byte sub_080A9CD4 + .4byte nullsub_539 + .4byte DeleteEntity + .4byte DeleteEntity + .4byte DeleteEntity + .4byte sub_080A9CF0 + +gUnk_08129B70:: @ 08129B70 + .4byte sub_080A9D6C + .4byte sub_080A9D80 + +gUnk_08129B78:: @ 08129B78 + .4byte sub_080A9D20 + .4byte nullsub_540 + .4byte sub_080A9D2C + diff --git a/data/const/projectile/projectile12.inc b/data/const/projectile/projectile12.inc new file mode 100644 index 00000000..a0b77366 --- /dev/null +++ b/data/const/projectile/projectile12.inc @@ -0,0 +1,11 @@ +gUnk_08129BEC:: @ 08129BEC + .4byte sub_080A9DC0 + .4byte sub_080A9DD8 + .4byte DeleteEntity + .4byte DeleteEntity + .4byte DeleteEntity + +gUnk_08129C00:: @ 08129C00 + .4byte sub_080A9DFC + .4byte sub_080A9E14 + diff --git a/data/const/projectile/projectile13.inc b/data/const/projectile/projectile13.inc new file mode 100644 index 00000000..b22b9331 --- /dev/null +++ b/data/const/projectile/projectile13.inc @@ -0,0 +1,57 @@ +gUnk_08129C7C:: @ 08129C7C + .4byte sub_080A9E94 + .4byte sub_080A9EBC + .4byte DeleteEntity + .4byte DeleteEntity + .4byte DeleteEntity + +gUnk_08129C90:: @ 08129C90 + .4byte sub_080A9F50 + .4byte sub_080A9F90 + .4byte sub_080A9FD0 + .4byte sub_080AA044 + .4byte sub_080AA110 + +gUnk_08129CA4:: @ 08129CA4 + .incbin "baserom.gba", 0x129CA4, 0x0000008 + +gUnk_08129CAC:: @ 08129CAC + .incbin "baserom.gba", 0x129CAC, 0x0000008 + +gUnk_08129CB4:: @ 08129CB4 + .incbin "baserom.gba", 0x129CB4, 0x0000008 + +gUnk_08129CBC:: @ 08129CBC + .incbin "baserom.gba", 0x129CBC, 0x0000008 + +gUnk_08129CC4:: @ 08129CC4 + .incbin "baserom.gba", 0x129CC4, 0x0000008 + +gUnk_08129CCC:: @ 08129CCC + .incbin "baserom.gba", 0x129CCC, 0x0000008 + +gUnk_08129CD4:: @ 08129CD4 + .incbin "baserom.gba", 0x129CD4, 0x0000008 + +gUnk_08129CDC:: @ 08129CDC + .incbin "baserom.gba", 0x129CDC, 0x0000008 + +gUnk_08129CE4:: @ 08129CE4 + .incbin "baserom.gba", 0x129CE4, 0x0000008 + +gUnk_08129CEC:: @ 08129CEC + .incbin "baserom.gba", 0x129CEC, 0x0000008 + +gUnk_08129CF4:: @ 08129CF4 + .4byte gUnk_08129CB4 + .4byte gUnk_08129CBC + .4byte gUnk_08129CC4 + .4byte gUnk_08129CCC + .4byte gUnk_08129CD4 + .4byte gUnk_08129CDC + .4byte gUnk_08129CE4 + .4byte gUnk_08129CEC + +gUnk_08129D14:: @ 08129D14 + .incbin "baserom.gba", 0x129D14, 0x0000008 + diff --git a/data/const/projectile/projectile14.inc b/data/const/projectile/projectile14.inc new file mode 100644 index 00000000..9091b7e7 --- /dev/null +++ b/data/const/projectile/projectile14.inc @@ -0,0 +1,19 @@ +gUnk_08129FB8:: @ 08129FB8 + .4byte sub_080AA41C + .4byte sub_080AA450 + .4byte DeleteEntity + .4byte DeleteEntity + .4byte DeleteEntity + .4byte sub_080AA464 + +gUnk_08129FD0:: @ 08129FD0 + .incbin "baserom.gba", 0x129FD0, 0x0000014 + +gUnk_08129FE4:: @ 08129FE4 + .incbin "baserom.gba", 0x129FE4, 0x0000014 + +gUnk_08129FF8:: @ 08129FF8 + .incbin "baserom.gba", 0x129FF8, 0x000000C + +gUnk_0812A004:: @ 0812A004 + .incbin "baserom.gba", 0x12A004, 0x0000010 diff --git a/data/const/projectile/projectile15.inc b/data/const/projectile/projectile15.inc new file mode 100644 index 00000000..2b0720a7 --- /dev/null +++ b/data/const/projectile/projectile15.inc @@ -0,0 +1,39 @@ +gUnk_0812A014:: @ 0812A014 + .4byte sub_080AA6A8 + .4byte sub_080AA6C0 + .4byte DeleteEntity + .4byte DeleteEntity + .4byte DeleteEntity + .4byte sub_080AA78C + +gUnk_0812A02C:: @ 0812A02C + .4byte sub_080AA834 + .4byte sub_080AA878 + .4byte sub_080AA898 + .4byte sub_080AA9C4 + +gUnk_0812A03C:: @ 0812A03C + .incbin "baserom.gba", 0x12A03C, 0x0000010 + +gUnk_0812A04C:: @ 0812A04C + .4byte gUnk_080FD41C + .4byte gUnk_080FD424 + .4byte gUnk_080FD42C + .4byte gUnk_080FD434 + +gUnk_0812A05C:: @ 0812A05C + .4byte sub_080AA8B8 + .4byte sub_080AA9AC + +gUnk_0812A064:: @ 0812A064 + .incbin "baserom.gba", 0x12A064, 0x0000008 + +gUnk_0812A06C:: @ 0812A06C + .incbin "baserom.gba", 0x12A06C, 0x0000008 + +gUnk_0812A074:: @ 0812A074 + .incbin "baserom.gba", 0x12A074, 0x0000010 + +gUnk_0812A084:: @ 0812A084 + .incbin "baserom.gba", 0x12A084, 0x0000008 + diff --git a/data/const/projectile/projectile16.inc b/data/const/projectile/projectile16.inc new file mode 100644 index 00000000..9532e9ca --- /dev/null +++ b/data/const/projectile/projectile16.inc @@ -0,0 +1,17 @@ +gUnk_0812A3C0:: @ 0812A3C0 + .4byte sub_080AAB04 + .4byte sub_080AAB1C + .4byte DeleteEntity + .4byte DeleteEntity + .4byte DeleteEntity + +gUnk_0812A3D4:: @ 0812A3D4 + .4byte sub_080AAB24 + .4byte sub_080AAB38 + .4byte sub_080AAB64 + +gUnk_0812A3E0:: @ 0812A3E0 + .incbin "baserom.gba", 0x12A3E0, 0x0000014 + +gUnk_0812A3F4:: @ 0812A3F4 + .incbin "baserom.gba", 0x12A3F4, 0x0000008 diff --git a/data/const/projectile/projectile18.inc b/data/const/projectile/projectile18.inc new file mode 100644 index 00000000..7b1edb36 --- /dev/null +++ b/data/const/projectile/projectile18.inc @@ -0,0 +1,14 @@ +gUnk_0812A418:: @ 0812A418 + .4byte sub_080AAC0C + .4byte sub_080AAC44 + .4byte DeleteEntity + .4byte sub_080AACE0 + .4byte DeleteEntity + .4byte sub_080AAD70 + +gUnk_0812A430:: @ 0812A430 + .incbin "baserom.gba", 0x12A430, 0x0000010 + +gUnk_0812A440:: @ 0812A440 + .incbin "baserom.gba", 0x12A440, 0x000000C + diff --git a/data/const/projectile/projectile19.inc b/data/const/projectile/projectile19.inc new file mode 100644 index 00000000..7f05d701 --- /dev/null +++ b/data/const/projectile/projectile19.inc @@ -0,0 +1,9 @@ +gUnk_0812A494:: @ 0812A494 + .4byte sub_080AB074 + .4byte sub_080AB170 + .4byte sub_080AB170 + .4byte sub_080AB170 + .4byte sub_080AB26C + +gUnk_0812A4A8:: @ 0812A4A8 + .incbin "baserom.gba", 0x12A4A8, 0x0000020 diff --git a/data/const/projectile/projectile1A.inc b/data/const/projectile/projectile1A.inc new file mode 100644 index 00000000..c015d016 --- /dev/null +++ b/data/const/projectile/projectile1A.inc @@ -0,0 +1,15 @@ +gUnk_0812A4C8:: @ 0812A4C8 + .4byte sub_080AB2C4 + .4byte sub_080AB2DC + .4byte DeleteEntity + .4byte DeleteEntity + .4byte DeleteEntity + +gUnk_0812A4DC:: @ 0812A4DC + .4byte sub_080AB318 + .4byte sub_080AB414 + .4byte sub_080AB45C + .4byte sub_080AB488 + +gUnk_0812A4EC:: @ 0812A4EC + .incbin "baserom.gba", 0x12A4EC, 0x00000A0 diff --git a/data/const/projectile/projectile1B.inc b/data/const/projectile/projectile1B.inc new file mode 100644 index 00000000..4087114f --- /dev/null +++ b/data/const/projectile/projectile1B.inc @@ -0,0 +1,11 @@ +gUnk_0812A58C:: @ 0812A58C + .4byte sub_080AB52C + .4byte sub_080AB544 + .4byte DeleteEntity + .4byte DeleteEntity + .4byte DeleteEntity + +gUnk_0812A5A0:: @ 0812A5A0 + .4byte sub_080AB580 + .4byte sub_080AB59C + .4byte sub_080AB5C4 diff --git a/data/const/projectile/projectile1C.inc b/data/const/projectile/projectile1C.inc new file mode 100644 index 00000000..794688f9 --- /dev/null +++ b/data/const/projectile/projectile1C.inc @@ -0,0 +1,30 @@ +gUnk_0812A5E8:: @ 0812A5E8 + .4byte sub_080AB6B8 + .4byte sub_080AB6FC + .4byte sub_080AB728 + +gUnk_0812A5F4:: @ 0812A5F4 + .4byte gUnk_0812A61C + .4byte gUnk_0812A61C + .4byte gUnk_0812A624 + .4byte gUnk_0812A61C + .4byte gUnk_0812A62C + .4byte gUnk_0812A624 + .4byte gUnk_0812A634 + .4byte gUnk_0812A624 + +gUnk_0812A614:: @ 0812A614 + .incbin "baserom.gba", 0x12A614, 0x0000008 + +gUnk_0812A61C:: @ 0812A61C + .incbin "baserom.gba", 0x12A61C, 0x0000008 + +gUnk_0812A624:: @ 0812A624 + .incbin "baserom.gba", 0x12A624, 0x0000008 + +gUnk_0812A62C:: @ 0812A62C + .incbin "baserom.gba", 0x12A62C, 0x0000008 + +gUnk_0812A634:: @ 0812A634 + .incbin "baserom.gba", 0x12A634, 0x0000008 + diff --git a/data/const/projectile/projectile1D.inc b/data/const/projectile/projectile1D.inc new file mode 100644 index 00000000..aeaa579c --- /dev/null +++ b/data/const/projectile/projectile1D.inc @@ -0,0 +1,9 @@ +gUnk_0812A6B4:: @ 0812A6B4 + .4byte sub_080AB8E8 + .4byte sub_080AB950 + +gUnk_0812A6BC:: @ 0812A6BC + .incbin "baserom.gba", 0x12A6BC, 0x0000008 + +gUnk_0812A6C4:: @ 0812A6C4 + .incbin "baserom.gba", 0x12A6C4, 0x0000008 diff --git a/data/const/projectile/projectile1E.inc b/data/const/projectile/projectile1E.inc new file mode 100644 index 00000000..98e15e05 --- /dev/null +++ b/data/const/projectile/projectile1E.inc @@ -0,0 +1,7 @@ +gUnk_0812A6CC:: @ 0812A6CC + .4byte sub_080ABA74 + .4byte sub_080ABAE0 + +gUnk_0812A6D4:: @ 0812A6D4 + .incbin "baserom.gba", 0x12A6D4, 0x000000E + diff --git a/data/const/projectile/projectile1F.inc b/data/const/projectile/projectile1F.inc new file mode 100644 index 00000000..3e506d70 --- /dev/null +++ b/data/const/projectile/projectile1F.inc @@ -0,0 +1,26 @@ +gUnk_0812A7D4:: @ 0812A7D4 + .4byte sub_080ABBA8 + .4byte sub_080ABBF4 + .4byte DeleteEntity + .4byte DeleteEntity + .4byte DeleteEntity + .4byte sub_080ABC54 + +gUnk_0812A7EC:: @ 0812A7EC + .4byte sub_080ABCC4 + .4byte sub_080ABD44 + .4byte sub_080ABD70 + +gUnk_0812A7F8:: @ 0812A7F8 + .4byte sub_080ABE04 + .4byte sub_080ABE88 + +gUnk_0812A800:: @ 0812A800 + .4byte sub_080ABEA8 + .4byte sub_080ABF04 + +gUnk_0812A808:: @ 0812A808 + .4byte sub_080ABC84 + .4byte nullsub_542 + .4byte sub_080ABC90 + diff --git a/data/const/projectile/projectile2.inc b/data/const/projectile/projectile2.inc new file mode 100644 index 00000000..455adcd2 --- /dev/null +++ b/data/const/projectile/projectile2.inc @@ -0,0 +1,14 @@ +gUnk_0812960C:: @ 0812960C + .4byte sub_080A81AC + .4byte sub_080A81C4 + .4byte DeleteEntity + .4byte DeleteEntity + .4byte DeleteEntity + +gUnk_08129620:: @ 08129620 + .4byte sub_080A81E0 + .4byte sub_080A81FC + .4byte sub_080A8248 + .4byte sub_080A827C + .4byte sub_080A82B4 + diff --git a/data/const/projectile/projectile20.inc b/data/const/projectile/projectile20.inc new file mode 100644 index 00000000..6793b20a --- /dev/null +++ b/data/const/projectile/projectile20.inc @@ -0,0 +1,7 @@ +gUnk_0812A84C:: @ 0812A84C + .4byte sub_080ABF40 + .4byte sub_080ABFA8 + .4byte DeleteEntity + .4byte DeleteEntity + .4byte DeleteEntity + diff --git a/data/const/projectile/projectile21.inc b/data/const/projectile/projectile21.inc new file mode 100644 index 00000000..8cb313b7 --- /dev/null +++ b/data/const/projectile/projectile21.inc @@ -0,0 +1,22 @@ +gUnk_0812A954:: @ 0812A954 + .4byte sub_080ABFCC + .4byte sub_080ABFE4 + .4byte DeleteEntity + .4byte DeleteEntity + .4byte DeleteEntity + +gUnk_0812A968:: @ 0812A968 + .4byte sub_080ABFEC + .4byte sub_080AC074 + .4byte sub_080AC100 + .4byte sub_080AC168 + .4byte sub_080AC200 + +gUnk_0812A97C:: @ 0812A97C + .incbin "baserom.gba", 0x12A97C, 0x0000006 + +gUnk_0812A982:: @ 0812A982 + .incbin "baserom.gba", 0x12A982, 0x0000008 + +gUnk_0812A98A:: @ 0812A98A + .incbin "baserom.gba", 0x12A98A, 0x000000A diff --git a/data/const/projectile/projectile22.inc b/data/const/projectile/projectile22.inc new file mode 100644 index 00000000..551bf8ab --- /dev/null +++ b/data/const/projectile/projectile22.inc @@ -0,0 +1,23 @@ +gUnk_0812A994:: @ 0812A994 + .4byte sub_080AC328 + .4byte sub_080AC510 + .4byte sub_080AC510 + .4byte sub_080AC510 + .4byte sub_080AC560 + +gUnk_0812A9A8:: @ 0812A9A8 + .4byte sub_080AC340 + .4byte sub_080AC388 + .4byte sub_080AC480 + +gUnk_0812A9B4:: @ 0812A9B4 + .incbin "baserom.gba", 0x12A9B4, 0x0000004 + +gUnk_0812A9B8:: @ 0812A9B8 + .incbin "baserom.gba", 0x12A9B8, 0x0000002 + +gUnk_0812A9BA:: @ 0812A9BA + .incbin "baserom.gba", 0x12A9BA, 0x0000006 + +gUnk_0812A9C0:: @ 0812A9C0 + .incbin "baserom.gba", 0x12A9C0, 0x0000018 diff --git a/data/const/projectile/projectile23.inc b/data/const/projectile/projectile23.inc new file mode 100644 index 00000000..628da62b --- /dev/null +++ b/data/const/projectile/projectile23.inc @@ -0,0 +1,13 @@ +gUnk_0812A9D8:: @ 0812A9D8 + .4byte sub_080AC8C4 + .4byte sub_080AC8DC + .4byte DeleteEntity + .4byte DeleteEntity + .4byte DeleteEntity + +gUnk_0812A9EC:: @ 0812A9EC + .4byte sub_080AC928 + .4byte sub_080AC954 + .4byte sub_080AC9CC + .4byte sub_080ACA14 + diff --git a/data/const/projectile/projectile24.inc b/data/const/projectile/projectile24.inc new file mode 100644 index 00000000..e3fb4502 --- /dev/null +++ b/data/const/projectile/projectile24.inc @@ -0,0 +1,12 @@ +gUnk_0812AA5C:: @ 0812AA5C + .4byte sub_080ACA50 + .4byte sub_080ACA68 + .4byte DeleteEntity + .4byte DeleteEntity + .4byte DeleteEntity + .4byte sub_080ACA50 + +gUnk_0812AA74:: @ 0812AA74 + .4byte sub_080ACAC8 + .4byte sub_080ACAF0 + .4byte sub_080ACB10 diff --git a/data/const/projectile/projectile3.inc b/data/const/projectile/projectile3.inc new file mode 100644 index 00000000..45751995 --- /dev/null +++ b/data/const/projectile/projectile3.inc @@ -0,0 +1,13 @@ +gUnk_08129650:: @ 08129650 + .4byte sub_080A8314 + .4byte sub_080A832C + .4byte DeleteEntity + .4byte DeleteEntity + .4byte DeleteEntity + +gUnk_08129664:: @ 08129664 + .4byte sub_080A83A0 + .4byte sub_080A83B4 + +gUnk_0812966C:: @ 0812966C + .incbin "baserom.gba", 0x12966C, 0x0000084 diff --git a/data/const/projectile/projectile4.inc b/data/const/projectile/projectile4.inc new file mode 100644 index 00000000..213c57bb --- /dev/null +++ b/data/const/projectile/projectile4.inc @@ -0,0 +1,13 @@ +gUnk_081296F0:: @ 081296F0 + .4byte sub_080A8458 + .4byte sub_080A8470 + .4byte DeleteEntity + .4byte DeleteEntity + .4byte DeleteEntity + +gUnk_08129704:: @ 08129704 + .4byte sub_080A84C8 + .4byte sub_080A8504 + .4byte sub_080A85B8 + .4byte sub_080A8610 + .4byte sub_080A862C diff --git a/data/const/projectile/projectile5.inc b/data/const/projectile/projectile5.inc new file mode 100644 index 00000000..05d0175a --- /dev/null +++ b/data/const/projectile/projectile5.inc @@ -0,0 +1,13 @@ +gUnk_08129718:: @ 08129718 + .4byte sub_080A86D8 + .4byte sub_080A86F0 + .4byte DeleteEntity + .4byte DeleteEntity + .4byte DeleteEntity + +gUnk_0812972C:: @ 0812972C + .4byte sub_080A8770 + .4byte sub_080A878C + +gUnk_08129734:: @ 08129734 + .incbin "baserom.gba", 0x129734, 0x000000C diff --git a/data/const/projectile/projectile6.inc b/data/const/projectile/projectile6.inc new file mode 100644 index 00000000..0d7acc53 --- /dev/null +++ b/data/const/projectile/projectile6.inc @@ -0,0 +1,16 @@ +gUnk_08129740:: @ 08129740 + .4byte sub_080A87E4 + .4byte sub_080A881C + .4byte DeleteEntity + .4byte DeleteEntity + .4byte DeleteEntity + +gUnk_08129754:: @ 08129754 + .4byte sub_080A8868 + .4byte sub_080A88C8 + .4byte sub_080A8988 + .4byte sub_080A8A48 + +gUnk_08129764:: @ 08129764 + .incbin "baserom.gba", 0x129764, 0x000000C + diff --git a/data/const/projectile/projectile7.inc b/data/const/projectile/projectile7.inc new file mode 100644 index 00000000..81544f4c --- /dev/null +++ b/data/const/projectile/projectile7.inc @@ -0,0 +1,6 @@ +gUnk_0812979C:: @ 0812979C + .4byte sub_080A8A90 + .4byte sub_080A8AC8 + .4byte sub_080A8B38 + .4byte sub_080A8B78 + diff --git a/data/const/projectile/projectile8.inc b/data/const/projectile/projectile8.inc new file mode 100644 index 00000000..9c755a68 --- /dev/null +++ b/data/const/projectile/projectile8.inc @@ -0,0 +1,6 @@ +gUnk_0812982C:: @ 0812982C + .4byte sub_080A8BC0 + .4byte sub_080A8BF8 + .4byte sub_080A8C4C + .4byte sub_080A8C8C + diff --git a/data/const/projectile/projectile9.inc b/data/const/projectile/projectile9.inc new file mode 100644 index 00000000..964b70e3 --- /dev/null +++ b/data/const/projectile/projectile9.inc @@ -0,0 +1,6 @@ +gUnk_081298B8:: @ 081298B8 + .4byte sub_080A8CD4 + .4byte sub_080A8D0C + .4byte sub_080A8D60 + .4byte sub_080A8DA0 + diff --git a/data/const/projectile/projectileA.inc b/data/const/projectile/projectileA.inc new file mode 100644 index 00000000..0c6730a0 --- /dev/null +++ b/data/const/projectile/projectileA.inc @@ -0,0 +1,21 @@ +gUnk_08129954:: @ 08129954 + .4byte sub_080A8DDC + .4byte sub_080A8DDC + .4byte DeleteEntity + .4byte DeleteEntity + .4byte DeleteEntity + +gUnk_08129968:: @ 08129968 + .4byte sub_080A8E28 + .4byte sub_080A8FB8 + .4byte sub_080A9058 + .4byte sub_080A90BC + +gUnk_08129978:: @ 08129978 + .incbin "baserom.gba", 0x129978, 0x0000008 + +gUnk_08129980:: @ 08129980 + .incbin "baserom.gba", 0x129980, 0x0000008 + +gUnk_08129988:: @ 08129988 + .incbin "baserom.gba", 0x129988, 0x0000010 diff --git a/data/const/projectile/projectileB.inc b/data/const/projectile/projectileB.inc new file mode 100644 index 00000000..b51e8747 --- /dev/null +++ b/data/const/projectile/projectileB.inc @@ -0,0 +1,17 @@ +gUnk_08129998:: @ 08129998 + .4byte gUnk_081299A8 + .4byte gUnk_081299B0 + .4byte gUnk_081299B8 + .4byte gUnk_081299C0 + +gUnk_081299A8:: @ 081299A8 + .incbin "baserom.gba", 0x1299A8, 0x0000008 + +gUnk_081299B0:: @ 081299B0 + .incbin "baserom.gba", 0x1299B0, 0x0000008 + +gUnk_081299B8:: @ 081299B8 + .incbin "baserom.gba", 0x1299B8, 0x0000008 + +gUnk_081299C0:: @ 081299C0 + .incbin "baserom.gba", 0x1299C0, 0x0000008 diff --git a/data/const/projectile/projectileC.inc b/data/const/projectile/projectileC.inc new file mode 100644 index 00000000..b9ea82a1 --- /dev/null +++ b/data/const/projectile/projectileC.inc @@ -0,0 +1,2 @@ +gUnk_081299C8:: @ 081299C8 + .incbin "baserom.gba", 0x1299C8, 0x0000008 diff --git a/data/const/projectile/projectileD.inc b/data/const/projectile/projectileD.inc new file mode 100644 index 00000000..3759831a --- /dev/null +++ b/data/const/projectile/projectileD.inc @@ -0,0 +1,22 @@ +gUnk_081299D0:: @ 081299D0 + .4byte sub_080A931C + .4byte sub_080A9334 + .4byte DeleteEntity + .4byte DeleteEntity + .4byte DeleteEntity + +gUnk_081299E4:: @ 081299E4 + .4byte sub_080A9370 + .4byte sub_080A93A0 + .4byte sub_080A93DC + .4byte sub_080A942C + .4byte sub_080A9448 + +gUnk_081299F8:: @ 081299F8 + .incbin "baserom.gba", 0x1299F8, 0x0000020 + +gUnk_08129A18:: @ 08129A18 + .incbin "baserom.gba", 0x129A18, 0x0000008 + +gUnk_08129A20:: @ 08129A20 + .incbin "baserom.gba", 0x129A20, 0x0000008 diff --git a/data/const/projectile/projectileE.inc b/data/const/projectile/projectileE.inc new file mode 100644 index 00000000..a64ee849 --- /dev/null +++ b/data/const/projectile/projectileE.inc @@ -0,0 +1,5 @@ +gUnk_08129A64:: @ 08129A64 + .4byte sub_080A9518 + .4byte sub_080A9540 + .4byte sub_080A95BC + diff --git a/data/const/projectile/projectileF.inc b/data/const/projectile/projectileF.inc new file mode 100644 index 00000000..587f9325 --- /dev/null +++ b/data/const/projectile/projectileF.inc @@ -0,0 +1,14 @@ +gUnk_08129ABC:: @ 08129ABC + .4byte sub_080A95F8 + .4byte sub_080A95F8 + .4byte DeleteEntity + .4byte DeleteEntity + .4byte DeleteEntity + +gUnk_08129AD0:: @ 08129AD0 + .4byte sub_080A9610 + .4byte sub_080A976C + .4byte sub_080A99F0 + +gUnk_08129ADC:: @ 08129ADC + .incbin "baserom.gba", 0x129ADC, 0x0000004 diff --git a/data/data_080D3D94.s b/data/data_080D3D94.s index 619b2de5..47a34d5a 100644 --- a/data/data_080D3D94.s +++ b/data/data_080D3D94.s @@ -23,13 +23,20 @@ gUnk_080D4070:: @ 080D4070 .incbin "baserom.gba", 0x0D4070, 0x00000A0 gUnk_080D4110:: @ 080D4110 - .incbin "baserom.gba", 0x0D4110, 0x0000010 + .4byte gUnk_080D3E90 + .4byte gUnk_080D3F30 + .4byte gUnk_080D3FD0 + .4byte gUnk_080D4070 gUnk_080D4120:: @ 080D4120 - .incbin "baserom.gba", 0x0D4120, 0x000000C + .4byte sub_0804AAD4 + .4byte sub_0804AB04 + .4byte sub_0804AB24 gUnk_080D412C:: @ 080D412C - .incbin "baserom.gba", 0x0D412C, 0x000000C + .4byte sub_0804AB70 + .4byte sub_0804AC1C + .4byte sub_0804ACC8 gUnk_080D4138:: @ 080D4138 .incbin "baserom.gba", 0x0D4138, 0x0000008 diff --git a/data/data_08108C94.s b/data/data_08108C94.s index 229e08dd..1937df9b 100644 --- a/data/data_08108C94.s +++ b/data/data_08108C94.s @@ -11,4 +11,4 @@ .include "data/const/manager/manager23.inc" - .include "data/const/manager/manager24.inc" \ No newline at end of file + .include "data/const/manager/manager24.inc" diff --git a/data/data_08124712.s b/data/data_08124712.s index 429af36a..32c71c49 100644 --- a/data/data_08124712.s +++ b/data/data_08124712.s @@ -558,7 +558,554 @@ gUnk_08128190:: @ 08128190 .incbin "baserom.gba", 0x128190, 0x0000018 gUnk_081281A8:: @ 081281A8 TODO figurineData? - .incbin "baserom.gba", 0x1281A8, 0x0000890 + .4byte gUnk_085B5EC0 + .4byte gUnk_0883FB00 + .4byte 0x00000580 + .4byte 00000000 + .4byte gUnk_085B5EC0 + .4byte gUnk_0883FB00 + .4byte 0x00000580 + .4byte 00000000 + .4byte gUnk_085B5FA0 + .4byte gUnk_08840080 + .4byte 0x000005e0 + .4byte 00000000 + .4byte gUnk_085B6080 + .4byte gUnk_08840660 + .4byte 0x00000480 + .4byte 00000000 + .4byte gUnk_085B6160 + .4byte gUnk_08840AE0 + .4byte 0x000004c0 + .4byte 00000000 + .4byte gUnk_085B6240 + .4byte gUnk_08840FA0 + .4byte 0x00000500 + .4byte 00000000 + .4byte gUnk_085B6320 + .4byte gUnk_088414A0 + .4byte 0x00000380 + .4byte 00000000 + .4byte gUnk_085B6400 + .4byte gUnk_08841820 + .4byte 0x000002c0 + .4byte 00000000 + .4byte gUnk_085B64E0 + .4byte gUnk_08841AE0 + .4byte 0x000004e0 + .4byte 00000000 + .4byte gUnk_085B65C0 + .4byte gUnk_08841FC0 + .4byte 0x00000320 + .4byte 00000000 + .4byte gUnk_085B66A0 + .4byte gUnk_088422E0 + .4byte 0x00000da0 + .4byte 00000000 + .4byte gUnk_085B6780 + .4byte gUnk_08843080 + .4byte 0x00000e60 + .4byte 00000000 + .4byte gUnk_085B6860 + .4byte gUnk_08843EE0 + .4byte 0x00000ee0 + .4byte 00000000 + .4byte gUnk_085B6940 + .4byte gUnk_08844DC0 + .4byte 0x00000de0 + .4byte 00000000 + .4byte gUnk_085B6A20 + .4byte gUnk_08845BA0 + .4byte 0x00001a00 + .4byte 00000000 + .4byte gUnk_085B6B00 + .4byte gUnk_088475A0 + .4byte 0x000019c0 + .4byte 00000000 + .4byte gUnk_085B6BE0 + .4byte gUnk_08848F60 + .4byte 0x000010c0 + .4byte 00000000 + .4byte gUnk_085B6CC0 + .4byte gUnk_0884A020 + .4byte 0x000003e0 + .4byte 00000000 + .4byte gUnk_085B6DA0 + .4byte gUnk_0884A400 + .4byte 0x000003a0 + .4byte 00000000 + .4byte gUnk_085B6E80 + .4byte gUnk_0884A7A0 + .4byte 0x00000360 + .4byte 00000000 + .4byte gUnk_085B6F60 + .4byte gUnk_0884AB00 + .4byte 0x00000b80 + .4byte 00000000 + .4byte gUnk_085B7040 + .4byte gUnk_0884B680 + .4byte 0x00000b00 + .4byte 00000000 + .4byte gUnk_085B7120 + .4byte gUnk_0884C180 + .4byte 0x00000ae0 + .4byte 00000000 + .4byte gUnk_085B7200 + .4byte gUnk_0884CC60 + .4byte 0x00000480 + .4byte 00000000 + .4byte gUnk_085B72E0 + .4byte gUnk_0884D0E0 + .4byte 0x00000320 + .4byte 00000000 + .4byte gUnk_085B73C0 + .4byte gUnk_0884D400 + .4byte 0x00000360 + .4byte 00000000 + .4byte gUnk_085B74A0 + .4byte gUnk_0884D760 + .4byte 0x000003a0 + .4byte 00000000 + .4byte gUnk_085B7580 + .4byte gUnk_0884DB00 + .4byte 0x00000400 + .4byte 00000000 + .4byte gUnk_085B7660 + .4byte gUnk_0884DF00 + .4byte 0x000007e0 + .4byte 00000000 + .4byte gUnk_085B7740 + .4byte gUnk_0884E6E0 + .4byte 0x00002a00 + .4byte 00000000 + .4byte gUnk_085B7820 + .4byte gUnk_088510E0 + .4byte 0x00002a00 + .4byte 00000000 + .4byte gUnk_085B7900 + .4byte gUnk_08853AE0 + .4byte 0x00002a00 + .4byte 00000000 + .4byte gUnk_085B79E0 + .4byte gUnk_088564E0 + .4byte 0x000003c0 + .4byte 00000000 + .4byte gUnk_085B7AC0 + .4byte gUnk_088568A0 + .4byte 0x00000380 + .4byte 00000000 + .4byte gUnk_085B7BA0 + .4byte gUnk_08856C20 + .4byte 0x00000380 + .4byte 00000000 + .4byte gUnk_085B7C80 + .4byte gUnk_08856FA0 + .4byte 0x00000380 + .4byte 00000000 + .4byte gUnk_085B7D60 + .4byte gUnk_08857320 + .4byte 0x00000560 + .4byte 00000000 + .4byte gUnk_085B7E40 + .4byte gUnk_08857880 + .4byte 0x00000480 + .4byte 00000000 + .4byte gUnk_085B7F20 + .4byte gUnk_08857D00 + .4byte 0x00000480 + .4byte 00000000 + .4byte gUnk_085B8000 + .4byte gUnk_08858180 + .4byte 0x00000500 + .4byte 00000000 + .4byte gUnk_085B80E0 + .4byte gUnk_08858680 + .4byte 0x000014c0 + .4byte 00000000 + .4byte gUnk_085B81C0 + .4byte gUnk_08859B40 + .4byte 0x00000660 + .4byte 00000000 + .4byte gUnk_085B82A0 + .4byte gUnk_0885A1A0 + .4byte 0x00001080 + .4byte 00000000 + .4byte gUnk_085B8380 + .4byte gUnk_0885B220 + .4byte 0x00000800 + .4byte 00000000 + .4byte gUnk_085B8460 + .4byte gUnk_0885BA20 + .4byte 0x00000800 + .4byte 00000000 + .4byte gUnk_085B8540 + .4byte gUnk_0885C220 + .4byte 0x00000500 + .4byte 00000000 + .4byte gUnk_085B8620 + .4byte gUnk_0885C720 + .4byte 0x00000500 + .4byte 00000000 + .4byte gUnk_085B8700 + .4byte gUnk_0885CC20 + .4byte 0x00003080 + .4byte 00000000 + .4byte gUnk_085B87E0 + .4byte gUnk_0885FCA0 + .4byte 0x000029e0 + .4byte 00000000 + .4byte gUnk_085B88C0 + .4byte gUnk_08862680 + .4byte 0x00003a00 + .4byte 00000000 + .4byte gUnk_085B89E0 + .4byte gUnk_08866080 + .4byte 0x000029c0 + .4byte 00000000 + .4byte gUnk_085B8AC0 + .4byte gUnk_08868A40 + .4byte 0x000034e0 + .4byte 00000000 + .4byte gUnk_085B8BA0 + .4byte gUnk_0886BF20 + .4byte 0x00003900 + .4byte 00000000 + .4byte gUnk_085B8C80 + .4byte gUnk_0886F820 + .4byte 0x000030e0 + .4byte 00000000 + .4byte gUnk_085B8D60 + .4byte gUnk_08872900 + .4byte 0x00002c80 + .4byte 00000000 + .4byte gUnk_085B8E40 + .4byte gUnk_08875580 + .4byte 0x00003500 + .4byte 00000000 + .4byte gUnk_085B8F20 + .4byte gUnk_08878A80 + .4byte 0x00002780 + .4byte 00000000 + .4byte gUnk_085B9000 + .4byte gUnk_0887B200 + .4byte 0x00002ea0 + .4byte 00000000 + .4byte gUnk_085B90E0 + .4byte gUnk_0887E0A0 + .4byte 0x00003320 + .4byte 00000000 + .4byte gUnk_085B91C0 + .4byte gUnk_088813C0 + .4byte 0x00002ae0 + .4byte 00000000 + .4byte gUnk_085B92A0 + .4byte gUnk_08883EA0 + .4byte 0x00001f00 + .4byte 00000000 + .4byte gUnk_085B9380 + .4byte gUnk_08885DA0 + .4byte 0x00004000 + .4byte 00000000 + .4byte gUnk_085B9460 + .4byte gUnk_08889DA0 + .4byte 0x00003f80 + .4byte 00000000 + .4byte gUnk_085B9540 + .4byte gUnk_0888DD20 + .4byte 0x00001c40 + .4byte 00000000 + .4byte gUnk_085B9620 + .4byte gUnk_0888F960 + .4byte 0x00001660 + .4byte 00000000 + .4byte gUnk_085B9700 + .4byte gUnk_08890FC0 + .4byte 0x00001c80 + .4byte 00000000 + .4byte gUnk_085B97E0 + .4byte gUnk_08892C40 + .4byte 0x00002300 + .4byte 00000000 + .4byte gUnk_085B98C0 + .4byte gUnk_08894F40 + .4byte 0x00002480 + .4byte 00000000 + .4byte gUnk_085B99A0 + .4byte gUnk_088973C0 + .4byte 0x00000440 + .4byte 00000000 + .4byte gUnk_085B9A80 + .4byte gUnk_08897800 + .4byte 0x000008c0 + .4byte 00000000 + .4byte gUnk_085B9B60 + .4byte gUnk_088980C0 + .4byte 0x00000e00 + .4byte 00000000 + .4byte gUnk_085B9C40 + .4byte gUnk_08898EC0 + .4byte 0x00000380 + .4byte 00000000 + .4byte gUnk_085B9D20 + .4byte gUnk_08899240 + .4byte 0x00000920 + .4byte 00000000 + .4byte gUnk_085B9E00 + .4byte gUnk_08899B60 + .4byte 0x000002e0 + .4byte 00000000 + .4byte gUnk_085B9EE0 + .4byte gUnk_08899E40 + .4byte 0x000007a0 + .4byte 00000000 + .4byte gUnk_085B9FC0 + .4byte gUnk_0889A5E0 + .4byte 0x00000300 + .4byte 00000000 + .4byte gUnk_085BA0A0 + .4byte gUnk_0889A8E0 + .4byte 0x00000f00 + .4byte 00000000 + .4byte gUnk_085BA180 + .4byte gUnk_0889B7E0 + .4byte 0x00000360 + .4byte 00000000 + .4byte gUnk_085BA260 + .4byte gUnk_0889BB40 + .4byte 0x00000780 + .4byte 00000000 + .4byte gUnk_085BA340 + .4byte gUnk_0889C2C0 + .4byte 0x00000400 + .4byte 00000000 + .4byte gUnk_085BA420 + .4byte gUnk_0889C6C0 + .4byte 0x00000380 + .4byte 00000000 + .4byte gUnk_085BA500 + .4byte gUnk_0889CA40 + .4byte 0x00000a00 + .4byte 00000000 + .4byte gUnk_085BA5E0 + .4byte gUnk_0889D440 + .4byte 0x00000a00 + .4byte 00000000 + .4byte gUnk_085BA6C0 + .4byte gUnk_0889DE40 + .4byte 0x00000300 + .4byte 00000000 + .4byte gUnk_085BA7A0 + .4byte gUnk_0889E140 + .4byte 0x000004c0 + .4byte 00000000 + .4byte gUnk_085BA880 + .4byte gUnk_0889E600 + .4byte 0x000007c0 + .4byte 00000000 + .4byte gUnk_085BA960 + .4byte gUnk_0889EDC0 + .4byte 0x00000b20 + .4byte 00000000 + .4byte gUnk_085BAA40 + .4byte gUnk_0889F8E0 + .4byte 0x000007e0 + .4byte 00000000 + .4byte gUnk_085BAB20 + .4byte gUnk_088A00C0 + .4byte 0x00000360 + .4byte 00000000 + .4byte gUnk_085BAC00 + .4byte gUnk_088A0420 + .4byte 0x000008c0 + .4byte 00000000 + .4byte gUnk_085BACE0 + .4byte gUnk_088A0CE0 + .4byte 0x000007c0 + .4byte 00000000 + .4byte gUnk_085BADC0 + .4byte gUnk_088A14A0 + .4byte 0x00000dc0 + .4byte 00000000 + .4byte gUnk_085BAEA0 + .4byte gUnk_088A2260 + .4byte 0x00000300 + .4byte 00000000 + .4byte gUnk_085BAF80 + .4byte gUnk_088A2560 + .4byte 0x000002e0 + .4byte 00000000 + .4byte gUnk_085BB060 + .4byte gUnk_088A2840 + .4byte 0x00000500 + .4byte 00000000 + .4byte gUnk_085BB140 + .4byte gUnk_088A2D40 + .4byte 0x000007c0 + .4byte 00000000 + .4byte gUnk_085BB220 + .4byte gUnk_088A3500 + .4byte 0x00000300 + .4byte 00000000 + .4byte gUnk_085BB300 + .4byte gUnk_088A3800 + .4byte 0x000007a0 + .4byte 00000000 + .4byte gUnk_085BB3E0 + .4byte gUnk_088A3FA0 + .4byte 0x00000500 + .4byte 00000000 + .4byte gUnk_085BB4C0 + .4byte gUnk_088A44A0 + .4byte 0x000003c0 + .4byte 00000000 + .4byte gUnk_085BB5A0 + .4byte gUnk_088A4860 + .4byte 0x000009a0 + .4byte 00000000 + .4byte gUnk_085BB680 + .4byte gUnk_088A5200 + .4byte 0x00000dc0 + .4byte 00000000 + .4byte gUnk_085BB760 + .4byte gUnk_088A5FC0 + .4byte 0x000003a0 + .4byte 00000000 + .4byte gUnk_085BB840 + .4byte gUnk_088A6360 + .4byte 0x00000980 + .4byte 00000000 + .4byte gUnk_085BB920 + .4byte gUnk_088A6CE0 + .4byte 0x000007c0 + .4byte 00000000 + .4byte gUnk_085BBA00 + .4byte gUnk_088A74A0 + .4byte 0x00000820 + .4byte 00000000 + .4byte gUnk_085BBAE0 + .4byte gUnk_088A7CC0 + .4byte 0x00000340 + .4byte 00000000 + .4byte gUnk_085BBBC0 + .4byte gUnk_088A8000 + .4byte 0x00000500 + .4byte 00000000 + .4byte gUnk_085BBCA0 + .4byte gUnk_088A8500 + .4byte 0x00000500 + .4byte 00000000 + .4byte gUnk_085BBD80 + .4byte gUnk_088A8A00 + .4byte 0x000007c0 + .4byte 00000000 + .4byte gUnk_085BBE60 + .4byte gUnk_088A91C0 + .4byte 0x00000660 + .4byte 00000000 + .4byte gUnk_085BBF40 + .4byte gUnk_088A9820 + .4byte 0x000003c0 + .4byte 00000000 + .4byte gUnk_085BC020 + .4byte gUnk_088A9BE0 + .4byte 0x00000460 + .4byte 00000000 + .4byte gUnk_085BC100 + .4byte gUnk_088AA040 + .4byte 0x00000380 + .4byte 00000000 + .4byte gUnk_085BC1E0 + .4byte gUnk_088AA3C0 + .4byte 0x00000820 + .4byte 00000000 + .4byte gUnk_085BC2C0 + .4byte gUnk_088AABE0 + .4byte 0x000006a0 + .4byte 00000000 + .4byte gUnk_085BC3A0 + .4byte gUnk_088AB280 + .4byte 0x00000980 + .4byte 00000000 + .4byte gUnk_085BC480 + .4byte gUnk_088ABC00 + .4byte 0x000005e0 + .4byte 00000000 + .4byte gUnk_085BC560 + .4byte gUnk_088AC1E0 + .4byte 0x000008a0 + .4byte 00000000 + .4byte gUnk_085BC640 + .4byte gUnk_088ACA80 + .4byte 0x000008c0 + .4byte 00000000 + .4byte gUnk_085BC720 + .4byte gUnk_088AD340 + .4byte 0x000005a0 + .4byte 00000000 + .4byte gUnk_085BC800 + .4byte gUnk_088AD8E0 + .4byte 0x00000620 + .4byte 00000000 + .4byte gUnk_085BC8E0 + .4byte gUnk_088ADF00 + .4byte 0x00000f00 + .4byte 00000000 + .4byte gUnk_085BC9C0 + .4byte gUnk_088AEE00 + .4byte 0x00000640 + .4byte 00000000 + .4byte gUnk_085BCAA0 + .4byte gUnk_088AF440 + .4byte 0x00002580 + .4byte 00000000 + .4byte gUnk_085BCB80 + .4byte gUnk_088B19C0 + .4byte 0x000017a0 + .4byte 00000000 + .4byte gUnk_085BCC60 + .4byte gUnk_088B3160 + .4byte 0x000019a0 + .4byte 00000000 + .4byte gUnk_085BCD40 + .4byte gUnk_088B4B00 + .4byte 0x00001300 + .4byte 00000000 + .4byte gUnk_085BCE20 + .4byte gUnk_088B5E00 + .4byte 0x00001ea0 + .4byte 00000000 + .4byte gUnk_085BCF00 + .4byte gUnk_088B7CA0 + .4byte 0x00001640 + .4byte 00000000 + .4byte gUnk_085BCFE0 + .4byte gUnk_088B92E0 + .4byte 0x000017c0 + .4byte 00000000 + .4byte gUnk_085BD0C0 + .4byte gUnk_088BAAA0 + .4byte 0x00000e00 + .4byte 00000000 + .4byte gUnk_085BD1A0 + .4byte gUnk_088BB8A0 + .4byte 0x00000580 + .4byte 00000000 + .4byte gUnk_085BD280 + .4byte gUnk_088BBE20 + .4byte 0x00000c40 + .4byte 00000000 + .4byte gUnk_085BD360 + .4byte gUnk_088BCA60 + .4byte 0x00001100 + .4byte 00000000 + .4byte gUnk_085BD440 + .4byte gUnk_088BDB60 + .4byte 0x00002580 + .4byte 00000000 + .4byte gUnk_085BD520 + .4byte gUnk_088C00E0 + .4byte 0x000018e0 + .4byte 00000000 gUnk_08128A38:: @ 08128A38 .incbin "baserom.gba", 0x128A38, 0x00000A0 @@ -567,10 +1114,16 @@ gUnk_08128AD8:: @ 08128AD8 .incbin "baserom.gba", 0x128AD8, 0x0000058 gUnk_08128B30:: @ 08128B30 - .incbin "baserom.gba", 0x128B30, 0x0000018 + .4byte sub_080A4F28 + .4byte sub_080A4FA0 + .4byte sub_080A4FB8 + .4byte sub_080A50B8 + .4byte sub_080A50E8 + .4byte sub_080A5108 gUnk_08128B48:: @ 08128B48 - .incbin "baserom.gba", 0x128B48, 0x0000008 + .4byte sub_080A5238 + .4byte sub_080A529C gUnk_08128B50:: @ 08128B50 .incbin "baserom.gba", 0x128B50, 0x0000014 @@ -582,7 +1135,8 @@ gUnk_08128BF4:: @ 08128BF4 .incbin "baserom.gba", 0x128BF4, 0x0000004 gUnk_08128BF8:: @ 08128BF8 - .incbin "baserom.gba", 0x128BF8, 0x0000008 + .4byte sub_080A5594 + .4byte sub_080A56A0 gUnk_08128C00:: @ 08128C00 .incbin "baserom.gba", 0x128C00, 0x0000004 @@ -597,13 +1151,19 @@ gUnk_08128C94:: @ 08128C94 .incbin "baserom.gba", 0x128C94, 0x0000080 gUnk_08128D14:: @ 08128D14 - .incbin "baserom.gba", 0x128D14, 0x0000010 + .4byte sub_080A59AC + .4byte sub_080A59C8 + .4byte sub_080A5A54 + .4byte sub_080A5A90 gUnk_08128D24:: @ 08128D24 - .incbin "baserom.gba", 0x128D24, 0x000000C + .4byte sub_080A5AF4 + .4byte sub_080A5B34 + .4byte sub_080A5BB8 gUnk_08128D30:: @ 08128D30 - .incbin "baserom.gba", 0x128D30, 0x0000008 + .4byte sub_080A5C44 + .4byte sub_080A5C9C gUnk_08128D38:: @ 08128D38 .incbin "baserom.gba", 0x128D38, 0x0000004 @@ -618,7 +1178,8 @@ gUnk_08128D51:: @ 08128D51 .incbin "baserom.gba", 0x128D51, 0x0000007 gUnk_08128D58:: @ 08128D58 - .incbin "baserom.gba", 0x128D58, 0x0000008 + .4byte sub_080A6024 + .4byte sub_080A6044 gUnk_08128D60:: @ 08128D60 .incbin "baserom.gba", 0x128D60, 0x0000010 @@ -627,7 +1188,8 @@ gUnk_08128D70:: @ 08128D70 .incbin "baserom.gba", 0x128D70, 0x0000040 gUnk_08128DB0:: @ 08128DB0 - .incbin "baserom.gba", 0x128DB0, 0x0000008 + .4byte sub_080A6108 + .4byte sub_080A612C gUnk_08128DB8:: @ 08128DB8 .incbin "baserom.gba", 0x128DB8, 0x0000004 @@ -636,7 +1198,8 @@ gUnk_08128DBC:: @ 08128DBC .incbin "baserom.gba", 0x128DBC, 0x0000010 gUnk_08128DCC:: @ 08128DCC - .incbin "baserom.gba", 0x128DCC, 0x0000008 + .4byte sub_080A6290 + .4byte sub_080A62E0 gUnk_08128DD4:: @ 08128DD4 .incbin "baserom.gba", 0x128DD4, 0x0000004 @@ -648,10 +1211,12 @@ gUnk_08128DE8:: @ 08128DE8 .incbin "baserom.gba", 0x128DE8, 0x0000088 gUnk_08128E70:: @ 08128E70 - .incbin "baserom.gba", 0x128E70, 0x0000008 + .4byte sub_080A6534 + .4byte sub_080A65AC gUnk_08128E78:: @ 08128E78 - .incbin "baserom.gba", 0x128E78, 0x0000008 + .4byte sub_080A6650 + .4byte sub_080A667C gUnk_08128E80:: @ 08128E80 .incbin "baserom.gba", 0x128E80, 0x0000004 @@ -663,10 +1228,15 @@ gUnk_08128E94:: @ 08128E94 .incbin "baserom.gba", 0x128E94, 0x0000088 gUnk_08128F1C:: @ 08128F1C - .incbin "baserom.gba", 0x128F1C, 0x0000008 + .4byte sub_080A6B04 + .4byte sub_080A6C1C gUnk_08128F24:: @ 08128F24 - .incbin "baserom.gba", 0x128F24, 0x0000014 + .4byte sub_080A6CA8 + .4byte sub_080A6CD8 + .4byte sub_080A6DD0 + .4byte sub_080A6DF8 + .4byte sub_080A6E44 gUnk_08128F38:: @ 08128F38 .incbin "baserom.gba", 0x128F38, 0x0000014 @@ -716,989 +1286,173 @@ gUnk_08129030:: @ 08129030 .include "data/const/playerItem/playerItemSword.inc" -gUnk_08129320:: @ 08129320 - .incbin "baserom.gba", 0x129320, 0x0000098 - -gUnk_081293B8:: @ 081293B8 - .incbin "baserom.gba", 0x1293B8, 0x0000014 - -gUnk_081293CC:: @ 081293CC - .incbin "baserom.gba", 0x1293CC, 0x0000014 - -gUnk_081293E0:: @ 081293E0 - .incbin "baserom.gba", 0x1293E0, 0x0000010 - -gUnk_081293F0:: @ 081293F0 - .incbin "baserom.gba", 0x1293F0, 0x0000010 - -gUnk_08129400:: @ 08129400 - .incbin "baserom.gba", 0x129400, 0x0000010 - -gUnk_08129410:: @ 08129410 - .incbin "baserom.gba", 0x129410, 0x0000010 - -gUnk_08129420:: @ 08129420 - .incbin "baserom.gba", 0x129420, 0x0000010 - -gUnk_08129430:: @ 08129430 - .incbin "baserom.gba", 0x129430, 0x0000008 - -gUnk_08129438:: @ 08129438 - .incbin "baserom.gba", 0x129438, 0x0000008 - -gUnk_08129440:: @ 08129440 - .incbin "baserom.gba", 0x129440, 0x0000008 - -gUnk_08129448:: @ 08129448 - .incbin "baserom.gba", 0x129448, 0x0000008 - -gUnk_08129450:: @ 08129450 - .incbin "baserom.gba", 0x129450, 0x0000008 - -gUnk_08129458:: @ 08129458 - .incbin "baserom.gba", 0x129458, 0x0000008 - -gUnk_08129460:: @ 08129460 - .incbin "baserom.gba", 0x129460, 0x0000018 - -gUnk_08129478:: @ 08129478 - .incbin "baserom.gba", 0x129478, 0x0000008 - -gUnk_08129480:: @ 08129480 - .incbin "baserom.gba", 0x129480, 0x0000008 - -gUnk_08129488:: @ 08129488 - .incbin "baserom.gba", 0x129488, 0x0000008 - -gUnk_08129490:: @ 08129490 - .incbin "baserom.gba", 0x129490, 0x0000008 - -gUnk_08129498:: @ 08129498 - .incbin "baserom.gba", 0x129498, 0x0000008 - -gUnk_081294A0:: @ 081294A0 - .incbin "baserom.gba", 0x1294A0, 0x0000008 - -gUnk_081294A8:: @ 081294A8 - .incbin "baserom.gba", 0x1294A8, 0x0000018 - -gUnk_081294C0:: @ 081294C0 - .incbin "baserom.gba", 0x1294C0, 0x0000008 - -gUnk_081294C8:: @ 081294C8 - .incbin "baserom.gba", 0x1294C8, 0x0000008 - -gUnk_081294D0:: @ 081294D0 - .incbin "baserom.gba", 0x1294D0, 0x0000008 - -gUnk_081294D8:: @ 081294D8 - .incbin "baserom.gba", 0x1294D8, 0x0000008 - -gUnk_081294E0:: @ 081294E0 - .incbin "baserom.gba", 0x1294E0, 0x0000008 - -gUnk_081294E8:: @ 081294E8 - .incbin "baserom.gba", 0x1294E8, 0x0000008 - -gUnk_081294F0:: @ 081294F0 - .incbin "baserom.gba", 0x1294F0, 0x0000018 - -gUnk_08129508:: @ 08129508 - .incbin "baserom.gba", 0x129508, 0x0000008 - -gUnk_08129510:: @ 08129510 - .incbin "baserom.gba", 0x129510, 0x0000008 - -gUnk_08129518:: @ 08129518 - .incbin "baserom.gba", 0x129518, 0x0000008 - -gUnk_08129520:: @ 08129520 - .incbin "baserom.gba", 0x129520, 0x0000008 - -gUnk_08129528:: @ 08129528 - .incbin "baserom.gba", 0x129528, 0x0000008 - -gUnk_08129530:: @ 08129530 - .incbin "baserom.gba", 0x129530, 0x0000008 - -gUnk_08129538:: @ 08129538 - .incbin "baserom.gba", 0x129538, 0x0000018 - -gUnk_08129550:: @ 08129550 - .incbin "baserom.gba", 0x129550, 0x0000008 - -gUnk_08129558:: @ 08129558 - .incbin "baserom.gba", 0x129558, 0x0000008 - -gUnk_08129560:: @ 08129560 - .incbin "baserom.gba", 0x129560, 0x0000008 - -gUnk_08129568:: @ 08129568 - .incbin "baserom.gba", 0x129568, 0x0000008 - -gUnk_08129570:: @ 08129570 - .incbin "baserom.gba", 0x129570, 0x0000008 - -gUnk_08129578:: @ 08129578 - .incbin "baserom.gba", 0x129578, 0x0000008 - -gUnk_08129580:: @ 08129580 - .incbin "baserom.gba", 0x129580, 0x0000008 - -gUnk_08129588:: @ 08129588 - .incbin "baserom.gba", 0x129588, 0x0000008 - -gUnk_08129590:: @ 08129590 - .incbin "baserom.gba", 0x129590, 0x0000008 - -gUnk_08129598:: @ 08129598 - .incbin "baserom.gba", 0x129598, 0x0000008 - -gUnk_081295A0:: @ 081295A0 - .incbin "baserom.gba", 0x1295A0, 0x0000008 - -gUnk_081295A8:: @ 081295A8 - .incbin "baserom.gba", 0x1295A8, 0x0000008 - -gUnk_081295B0:: @ 081295B0 - .incbin "baserom.gba", 0x1295B0, 0x0000008 - -gUnk_081295B8:: @ 081295B8 - .incbin "baserom.gba", 0x1295B8, 0x0000008 - -gUnk_081295C0:: @ 081295C0 - .incbin "baserom.gba", 0x1295C0, 0x0000008 - -gUnk_081295C8:: @ 081295C8 - .incbin "baserom.gba", 0x1295C8, 0x0000008 - -gUnk_081295D0:: @ 081295D0 - .incbin "baserom.gba", 0x1295D0, 0x0000014 - -gUnk_081295E4:: @ 081295E4 - .incbin "baserom.gba", 0x1295E4, 0x0000010 - -gUnk_081295F4:: @ 081295F4 - .incbin "baserom.gba", 0x1295F4, 0x0000010 - -gUnk_08129604:: @ 08129604 - .incbin "baserom.gba", 0x129604, 0x0000008 - -gUnk_0812960C:: @ 0812960C - .incbin "baserom.gba", 0x12960C, 0x0000014 - -gUnk_08129620:: @ 08129620 - .incbin "baserom.gba", 0x129620, 0x0000014 - -gUnk_08129634:: @ 08129634 - .incbin "baserom.gba", 0x129634, 0x0000014 - -gUnk_08129648:: @ 08129648 - .incbin "baserom.gba", 0x129648, 0x0000008 - -gUnk_08129650:: @ 08129650 - .incbin "baserom.gba", 0x129650, 0x0000014 - -gUnk_08129664:: @ 08129664 - .incbin "baserom.gba", 0x129664, 0x0000008 - -gUnk_0812966C:: @ 0812966C - .incbin "baserom.gba", 0x12966C, 0x0000084 - -gUnk_081296F0:: @ 081296F0 - .incbin "baserom.gba", 0x1296F0, 0x0000014 - -gUnk_08129704:: @ 08129704 - .incbin "baserom.gba", 0x129704, 0x0000014 - -gUnk_08129718:: @ 08129718 - .incbin "baserom.gba", 0x129718, 0x0000014 - -gUnk_0812972C:: @ 0812972C - .incbin "baserom.gba", 0x12972C, 0x0000008 - -gUnk_08129734:: @ 08129734 - .incbin "baserom.gba", 0x129734, 0x000000C - -gUnk_08129740:: @ 08129740 - .incbin "baserom.gba", 0x129740, 0x0000014 - -gUnk_08129754:: @ 08129754 - .incbin "baserom.gba", 0x129754, 0x0000010 - -gUnk_08129764:: @ 08129764 - .incbin "baserom.gba", 0x129764, 0x000000C - -gUnk_08129770:: @ 08129770 - .incbin "baserom.gba", 0x129770, 0x0000005 - -gUnk_08129775:: @ 08129775 - .incbin "baserom.gba", 0x129775, 0x000001B - -gUnk_08129790:: @ 08129790 - .incbin "baserom.gba", 0x129790, 0x000000C - -gUnk_0812979C:: @ 0812979C - .incbin "baserom.gba", 0x12979C, 0x0000010 - -gUnk_081297AC:: @ 081297AC - .incbin "baserom.gba", 0x1297AC, 0x0000009 - -gUnk_081297B5:: @ 081297B5 - .incbin "baserom.gba", 0x1297B5, 0x0000009 - -gUnk_081297BE:: @ 081297BE - .incbin "baserom.gba", 0x1297BE, 0x0000009 - -gUnk_081297C7:: @ 081297C7 - .incbin "baserom.gba", 0x1297C7, 0x0000009 - -gUnk_081297D0:: @ 081297D0 - .incbin "baserom.gba", 0x1297D0, 0x0000005 - -gUnk_081297D5:: @ 081297D5 - .incbin "baserom.gba", 0x1297D5, 0x0000005 - -gUnk_081297DA:: @ 081297DA - .incbin "baserom.gba", 0x1297DA, 0x0000005 - -gUnk_081297DF:: @ 081297DF - .incbin "baserom.gba", 0x1297DF, 0x0000005 - -gUnk_081297E4:: @ 081297E4 - .incbin "baserom.gba", 0x1297E4, 0x0000005 - -gUnk_081297E9:: @ 081297E9 - .incbin "baserom.gba", 0x1297E9, 0x0000005 - -gUnk_081297EE:: @ 081297EE - .incbin "baserom.gba", 0x1297EE, 0x0000005 - -gUnk_081297F3:: @ 081297F3 - .incbin "baserom.gba", 0x1297F3, 0x0000005 - -gUnk_081297F8:: @ 081297F8 - .incbin "baserom.gba", 0x1297F8, 0x0000034 - -gUnk_0812982C:: @ 0812982C - .incbin "baserom.gba", 0x12982C, 0x0000010 - -gUnk_0812983C:: @ 0812983C - .incbin "baserom.gba", 0x12983C, 0x0000009 - -gUnk_08129845:: @ 08129845 - .incbin "baserom.gba", 0x129845, 0x0000009 - -gUnk_0812984E:: @ 0812984E - .incbin "baserom.gba", 0x12984E, 0x0000009 - -gUnk_08129857:: @ 08129857 - .incbin "baserom.gba", 0x129857, 0x0000009 - -gUnk_08129860:: @ 08129860 - .incbin "baserom.gba", 0x129860, 0x000000D - -gUnk_0812986D:: @ 0812986D - .incbin "baserom.gba", 0x12986D, 0x000000D - -gUnk_0812987A:: @ 0812987A - .incbin "baserom.gba", 0x12987A, 0x000000D - -gUnk_08129887:: @ 08129887 - .incbin "baserom.gba", 0x129887, 0x000000D - -gUnk_08129894:: @ 08129894 - .incbin "baserom.gba", 0x129894, 0x0000024 - -gUnk_081298B8:: @ 081298B8 - .incbin "baserom.gba", 0x1298B8, 0x0000010 - -gUnk_081298C8:: @ 081298C8 - .incbin "baserom.gba", 0x1298C8, 0x0000009 - -gUnk_081298D1:: @ 081298D1 - .incbin "baserom.gba", 0x1298D1, 0x0000009 - -gUnk_081298DA:: @ 081298DA - .incbin "baserom.gba", 0x1298DA, 0x0000009 - -gUnk_081298E3:: @ 081298E3 - .incbin "baserom.gba", 0x1298E3, 0x0000009 - -gUnk_081298EC:: @ 081298EC - .incbin "baserom.gba", 0x1298EC, 0x0000011 - -gUnk_081298FD:: @ 081298FD - .incbin "baserom.gba", 0x1298FD, 0x0000011 - -gUnk_0812990E:: @ 0812990E - .incbin "baserom.gba", 0x12990E, 0x0000011 - -gUnk_0812991F:: @ 0812991F - .incbin "baserom.gba", 0x12991F, 0x0000011 - -gUnk_08129930:: @ 08129930 - .incbin "baserom.gba", 0x129930, 0x0000024 - -gUnk_08129954:: @ 08129954 - .incbin "baserom.gba", 0x129954, 0x0000014 - -gUnk_08129968:: @ 08129968 - .incbin "baserom.gba", 0x129968, 0x0000010 - -gUnk_08129978:: @ 08129978 - .incbin "baserom.gba", 0x129978, 0x0000008 - -gUnk_08129980:: @ 08129980 - .incbin "baserom.gba", 0x129980, 0x0000008 - -gUnk_08129988:: @ 08129988 - .incbin "baserom.gba", 0x129988, 0x0000010 - -gUnk_08129998:: @ 08129998 - .incbin "baserom.gba", 0x129998, 0x0000010 - -gUnk_081299A8:: @ 081299A8 - .incbin "baserom.gba", 0x1299A8, 0x0000008 - -gUnk_081299B0:: @ 081299B0 - .incbin "baserom.gba", 0x1299B0, 0x0000008 - -gUnk_081299B8:: @ 081299B8 - .incbin "baserom.gba", 0x1299B8, 0x0000008 - -gUnk_081299C0:: @ 081299C0 - .incbin "baserom.gba", 0x1299C0, 0x0000008 - -gUnk_081299C8:: @ 081299C8 - .incbin "baserom.gba", 0x1299C8, 0x0000008 - -gUnk_081299D0:: @ 081299D0 - .incbin "baserom.gba", 0x1299D0, 0x0000014 - -gUnk_081299E4:: @ 081299E4 - .incbin "baserom.gba", 0x1299E4, 0x0000014 - -gUnk_081299F8:: @ 081299F8 - .incbin "baserom.gba", 0x1299F8, 0x0000020 - -gUnk_08129A18:: @ 08129A18 - .incbin "baserom.gba", 0x129A18, 0x0000008 - -gUnk_08129A20:: @ 08129A20 - .incbin "baserom.gba", 0x129A20, 0x0000008 - -gUnk_08129A28:: @ 08129A28 - .incbin "baserom.gba", 0x129A28, 0x0000005 - -gUnk_08129A2D:: @ 08129A2D - .incbin "baserom.gba", 0x129A2D, 0x0000005 - -gUnk_08129A32:: @ 08129A32 - .incbin "baserom.gba", 0x129A32, 0x0000011 - -gUnk_08129A43:: @ 08129A43 - .incbin "baserom.gba", 0x129A43, 0x0000011 - -gUnk_08129A54:: @ 08129A54 - .incbin "baserom.gba", 0x129A54, 0x0000010 - -gUnk_08129A64:: @ 08129A64 - .incbin "baserom.gba", 0x129A64, 0x000000C - -gUnk_08129A70:: @ 08129A70 - .incbin "baserom.gba", 0x129A70, 0x0000019 - -gUnk_08129A89:: @ 08129A89 - .incbin "baserom.gba", 0x129A89, 0x0000027 - -gUnk_08129AB0:: @ 08129AB0 - .incbin "baserom.gba", 0x129AB0, 0x000000C - -gUnk_08129ABC:: @ 08129ABC - .incbin "baserom.gba", 0x129ABC, 0x0000014 - -gUnk_08129AD0:: @ 08129AD0 - .incbin "baserom.gba", 0x129AD0, 0x000000C - -gUnk_08129ADC:: @ 08129ADC - .incbin "baserom.gba", 0x129ADC, 0x0000004 - -gUnk_08129AE0:: @ 08129AE0 - .incbin "baserom.gba", 0x129AE0, 0x0000018 - -gUnk_08129AF8:: @ 08129AF8 - .incbin "baserom.gba", 0x129AF8, 0x0000010 - -gUnk_08129B08:: @ 08129B08 - .incbin "baserom.gba", 0x129B08, 0x0000018 - -gUnk_08129B20:: @ 08129B20 - .incbin "baserom.gba", 0x129B20, 0x0000030 - -gUnk_08129B50:: @ 08129B50 - .incbin "baserom.gba", 0x129B50, 0x0000008 - -gUnk_08129B58:: @ 08129B58 - .incbin "baserom.gba", 0x129B58, 0x0000018 - -gUnk_08129B70:: @ 08129B70 - .incbin "baserom.gba", 0x129B70, 0x0000008 - -gUnk_08129B78:: @ 08129B78 - .incbin "baserom.gba", 0x129B78, 0x000000C - -gUnk_08129B84:: @ 08129B84 - .incbin "baserom.gba", 0x129B84, 0x0000011 - -gUnk_08129B95:: @ 08129B95 - .incbin "baserom.gba", 0x129B95, 0x0000011 - -gUnk_08129BA6:: @ 08129BA6 - .incbin "baserom.gba", 0x129BA6, 0x0000011 - -gUnk_08129BB7:: @ 08129BB7 - .incbin "baserom.gba", 0x129BB7, 0x0000011 - -gUnk_08129BC8:: @ 08129BC8 - .incbin "baserom.gba", 0x129BC8, 0x0000024 - -gUnk_08129BEC:: @ 08129BEC - .incbin "baserom.gba", 0x129BEC, 0x0000014 - -gUnk_08129C00:: @ 08129C00 - .incbin "baserom.gba", 0x129C00, 0x0000008 - -gUnk_08129C08:: @ 08129C08 - .incbin "baserom.gba", 0x129C08, 0x000006C - -gUnk_08129C74:: @ 08129C74 - .incbin "baserom.gba", 0x129C74, 0x0000008 - -gUnk_08129C7C:: @ 08129C7C - .incbin "baserom.gba", 0x129C7C, 0x0000014 - -gUnk_08129C90:: @ 08129C90 - .incbin "baserom.gba", 0x129C90, 0x0000014 - -gUnk_08129CA4:: @ 08129CA4 - .incbin "baserom.gba", 0x129CA4, 0x0000008 - -gUnk_08129CAC:: @ 08129CAC - .incbin "baserom.gba", 0x129CAC, 0x0000008 - -gUnk_08129CB4:: @ 08129CB4 - .incbin "baserom.gba", 0x129CB4, 0x0000008 - -gUnk_08129CBC:: @ 08129CBC - .incbin "baserom.gba", 0x129CBC, 0x0000008 - -gUnk_08129CC4:: @ 08129CC4 - .incbin "baserom.gba", 0x129CC4, 0x0000008 - -gUnk_08129CCC:: @ 08129CCC - .incbin "baserom.gba", 0x129CCC, 0x0000008 - -gUnk_08129CD4:: @ 08129CD4 - .incbin "baserom.gba", 0x129CD4, 0x0000008 - -gUnk_08129CDC:: @ 08129CDC - .incbin "baserom.gba", 0x129CDC, 0x0000008 - -gUnk_08129CE4:: @ 08129CE4 - .incbin "baserom.gba", 0x129CE4, 0x0000008 - -gUnk_08129CEC:: @ 08129CEC - .incbin "baserom.gba", 0x129CEC, 0x0000008 - -gUnk_08129CF4:: @ 08129CF4 - .incbin "baserom.gba", 0x129CF4, 0x0000020 - -gUnk_08129D14:: @ 08129D14 - .incbin "baserom.gba", 0x129D14, 0x0000008 - -gUnk_08129D1C:: @ 08129D1C - .incbin "baserom.gba", 0x129D1C, 0x0000005 - -gUnk_08129D21:: @ 08129D21 - .incbin "baserom.gba", 0x129D21, 0x0000005 - -gUnk_08129D26:: @ 08129D26 - .incbin "baserom.gba", 0x129D26, 0x0000005 - -gUnk_08129D2B:: @ 08129D2B - .incbin "baserom.gba", 0x129D2B, 0x0000005 - -gUnk_08129D30:: @ 08129D30 - .incbin "baserom.gba", 0x129D30, 0x0000005 - -gUnk_08129D35:: @ 08129D35 - .incbin "baserom.gba", 0x129D35, 0x0000005 - -gUnk_08129D3A:: @ 08129D3A - .incbin "baserom.gba", 0x129D3A, 0x0000005 - -gUnk_08129D3F:: @ 08129D3F - .incbin "baserom.gba", 0x129D3F, 0x0000005 - -gUnk_08129D44:: @ 08129D44 - .incbin "baserom.gba", 0x129D44, 0x0000011 - -gUnk_08129D55:: @ 08129D55 - .incbin "baserom.gba", 0x129D55, 0x0000011 - -gUnk_08129D66:: @ 08129D66 - .incbin "baserom.gba", 0x129D66, 0x0000011 - -gUnk_08129D77:: @ 08129D77 - .incbin "baserom.gba", 0x129D77, 0x0000011 - -gUnk_08129D88:: @ 08129D88 - .incbin "baserom.gba", 0x129D88, 0x0000011 - -gUnk_08129D99:: @ 08129D99 - .incbin "baserom.gba", 0x129D99, 0x0000011 - -gUnk_08129DAA:: @ 08129DAA - .incbin "baserom.gba", 0x129DAA, 0x0000011 - -gUnk_08129DBB:: @ 08129DBB - .incbin "baserom.gba", 0x129DBB, 0x0000011 - -gUnk_08129DCC:: @ 08129DCC - .incbin "baserom.gba", 0x129DCC, 0x000000C - -gUnk_08129DD8:: @ 08129DD8 - .incbin "baserom.gba", 0x129DD8, 0x000000C - -gUnk_08129DE4:: @ 08129DE4 - .incbin "baserom.gba", 0x129DE4, 0x000000C - -gUnk_08129DF0:: @ 08129DF0 - .incbin "baserom.gba", 0x129DF0, 0x000000C - -gUnk_08129DFC:: @ 08129DFC - .incbin "baserom.gba", 0x129DFC, 0x000000C - -gUnk_08129E08:: @ 08129E08 - .incbin "baserom.gba", 0x129E08, 0x000000C - -gUnk_08129E14:: @ 08129E14 - .incbin "baserom.gba", 0x129E14, 0x000000C - -gUnk_08129E20:: @ 08129E20 - .incbin "baserom.gba", 0x129E20, 0x000000C - -gUnk_08129E2C:: @ 08129E2C - .incbin "baserom.gba", 0x129E2C, 0x0000021 - -gUnk_08129E4D:: @ 08129E4D - .incbin "baserom.gba", 0x129E4D, 0x0000021 - -gUnk_08129E6E:: @ 08129E6E - .incbin "baserom.gba", 0x129E6E, 0x0000021 - -gUnk_08129E8F:: @ 08129E8F - .incbin "baserom.gba", 0x129E8F, 0x0000021 - -gUnk_08129EB0:: @ 08129EB0 - .incbin "baserom.gba", 0x129EB0, 0x0000021 - -gUnk_08129ED1:: @ 08129ED1 - .incbin "baserom.gba", 0x129ED1, 0x0000021 - -gUnk_08129EF2:: @ 08129EF2 - .incbin "baserom.gba", 0x129EF2, 0x0000021 - -gUnk_08129F13:: @ 08129F13 - .incbin "baserom.gba", 0x129F13, 0x0000021 - -gUnk_08129F34:: @ 08129F34 - .incbin "baserom.gba", 0x129F34, 0x0000084 - -gUnk_08129FB8:: @ 08129FB8 - .incbin "baserom.gba", 0x129FB8, 0x0000018 - -gUnk_08129FD0:: @ 08129FD0 - .incbin "baserom.gba", 0x129FD0, 0x0000014 - -gUnk_08129FE4:: @ 08129FE4 - .incbin "baserom.gba", 0x129FE4, 0x0000014 - -gUnk_08129FF8:: @ 08129FF8 - .incbin "baserom.gba", 0x129FF8, 0x000000C - -gUnk_0812A004:: @ 0812A004 - .incbin "baserom.gba", 0x12A004, 0x0000010 - -gUnk_0812A014:: @ 0812A014 - .incbin "baserom.gba", 0x12A014, 0x0000018 - -gUnk_0812A02C:: @ 0812A02C - .incbin "baserom.gba", 0x12A02C, 0x0000010 - -gUnk_0812A03C:: @ 0812A03C - .incbin "baserom.gba", 0x12A03C, 0x0000010 - -gUnk_0812A04C:: @ 0812A04C - .incbin "baserom.gba", 0x12A04C, 0x0000010 - -gUnk_0812A05C:: @ 0812A05C - .incbin "baserom.gba", 0x12A05C, 0x0000008 - -gUnk_0812A064:: @ 0812A064 - .incbin "baserom.gba", 0x12A064, 0x0000008 - -gUnk_0812A06C:: @ 0812A06C - .incbin "baserom.gba", 0x12A06C, 0x0000008 - -gUnk_0812A074:: @ 0812A074 - .incbin "baserom.gba", 0x12A074, 0x0000010 - -gUnk_0812A084:: @ 0812A084 - .incbin "baserom.gba", 0x12A084, 0x0000008 - -gUnk_0812A08C:: @ 0812A08C - .incbin "baserom.gba", 0x12A08C, 0x0000004 - -gUnk_0812A090:: @ 0812A090 - .incbin "baserom.gba", 0x12A090, 0x0000004 - -gUnk_0812A094:: @ 0812A094 - .incbin "baserom.gba", 0x12A094, 0x0000004 - -gUnk_0812A098:: @ 0812A098 - .incbin "baserom.gba", 0x12A098, 0x0000004 - -gUnk_0812A09C:: @ 0812A09C - .incbin "baserom.gba", 0x12A09C, 0x000000C - -gUnk_0812A0A8:: @ 0812A0A8 - .incbin "baserom.gba", 0x12A0A8, 0x000000C - -gUnk_0812A0B4:: @ 0812A0B4 - .incbin "baserom.gba", 0x12A0B4, 0x000000C - -gUnk_0812A0C0:: @ 0812A0C0 - .incbin "baserom.gba", 0x12A0C0, 0x000000C - -gUnk_0812A0CC:: @ 0812A0CC - .incbin "baserom.gba", 0x12A0CC, 0x0000048 - -gUnk_0812A114:: @ 0812A114 - .incbin "baserom.gba", 0x12A114, 0x0000048 - -gUnk_0812A15C:: @ 0812A15C - .incbin "baserom.gba", 0x12A15C, 0x0000048 - -gUnk_0812A1A4:: @ 0812A1A4 - .incbin "baserom.gba", 0x12A1A4, 0x0000048 - -gUnk_0812A1EC:: @ 0812A1EC - .incbin "baserom.gba", 0x12A1EC, 0x0000024 - -gUnk_0812A210:: @ 0812A210 - .incbin "baserom.gba", 0x12A210, 0x0000024 - -gUnk_0812A234:: @ 0812A234 - .incbin "baserom.gba", 0x12A234, 0x0000024 - -gUnk_0812A258:: @ 0812A258 - .incbin "baserom.gba", 0x12A258, 0x0000024 - -gUnk_0812A27C:: @ 0812A27C - .incbin "baserom.gba", 0x12A27C, 0x000003C - -gUnk_0812A2B8:: @ 0812A2B8 - .incbin "baserom.gba", 0x12A2B8, 0x000003C - -gUnk_0812A2F4:: @ 0812A2F4 - .incbin "baserom.gba", 0x12A2F4, 0x000003C - -gUnk_0812A330:: @ 0812A330 - .incbin "baserom.gba", 0x12A330, 0x000003C - -gUnk_0812A36C:: @ 0812A36C - .incbin "baserom.gba", 0x12A36C, 0x0000054 - -gUnk_0812A3C0:: @ 0812A3C0 - .incbin "baserom.gba", 0x12A3C0, 0x0000014 - -gUnk_0812A3D4:: @ 0812A3D4 - .incbin "baserom.gba", 0x12A3D4, 0x000000C - -gUnk_0812A3E0:: @ 0812A3E0 - .incbin "baserom.gba", 0x12A3E0, 0x0000014 - -gUnk_0812A3F4:: @ 0812A3F4 - .incbin "baserom.gba", 0x12A3F4, 0x0000008 - -gUnk_0812A3FC:: @ 0812A3FC - .incbin "baserom.gba", 0x12A3FC, 0x0000014 - -gUnk_0812A410:: @ 0812A410 - .incbin "baserom.gba", 0x12A410, 0x0000008 - -gUnk_0812A418:: @ 0812A418 - .incbin "baserom.gba", 0x12A418, 0x0000018 - -gUnk_0812A430:: @ 0812A430 - .incbin "baserom.gba", 0x12A430, 0x0000010 - -gUnk_0812A440:: @ 0812A440 - .incbin "baserom.gba", 0x12A440, 0x000000C - -gUnk_0812A44C:: @ 0812A44C - .incbin "baserom.gba", 0x12A44C, 0x0000021 - -gUnk_0812A46D:: @ 0812A46D - .incbin "baserom.gba", 0x12A46D, 0x000001B - -gUnk_0812A488:: @ 0812A488 - .incbin "baserom.gba", 0x12A488, 0x000000C - -gUnk_0812A494:: @ 0812A494 - .incbin "baserom.gba", 0x12A494, 0x0000014 - -gUnk_0812A4A8:: @ 0812A4A8 - .incbin "baserom.gba", 0x12A4A8, 0x0000020 - -gUnk_0812A4C8:: @ 0812A4C8 - .incbin "baserom.gba", 0x12A4C8, 0x0000014 - -gUnk_0812A4DC:: @ 0812A4DC - .incbin "baserom.gba", 0x12A4DC, 0x0000010 - -gUnk_0812A4EC:: @ 0812A4EC - .incbin "baserom.gba", 0x12A4EC, 0x00000A0 - -gUnk_0812A58C:: @ 0812A58C - .incbin "baserom.gba", 0x12A58C, 0x0000014 - -gUnk_0812A5A0:: @ 0812A5A0 - .incbin "baserom.gba", 0x12A5A0, 0x000000C - -gUnk_0812A5AC:: @ 0812A5AC - .incbin "baserom.gba", 0x12A5AC, 0x000000D - -gUnk_0812A5B9:: @ 0812A5B9 - .incbin "baserom.gba", 0x12A5B9, 0x000000D - -gUnk_0812A5C6:: @ 0812A5C6 - .incbin "baserom.gba", 0x12A5C6, 0x000000E - -gUnk_0812A5D4:: @ 0812A5D4 - .incbin "baserom.gba", 0x12A5D4, 0x0000014 - -gUnk_0812A5E8:: @ 0812A5E8 - .incbin "baserom.gba", 0x12A5E8, 0x000000C - -gUnk_0812A5F4:: @ 0812A5F4 - .incbin "baserom.gba", 0x12A5F4, 0x0000020 - -gUnk_0812A614:: @ 0812A614 - .incbin "baserom.gba", 0x12A614, 0x0000008 - -gUnk_0812A61C:: @ 0812A61C - .incbin "baserom.gba", 0x12A61C, 0x0000008 - -gUnk_0812A624:: @ 0812A624 - .incbin "baserom.gba", 0x12A624, 0x0000008 - -gUnk_0812A62C:: @ 0812A62C - .incbin "baserom.gba", 0x12A62C, 0x0000008 - -gUnk_0812A634:: @ 0812A634 - .incbin "baserom.gba", 0x12A634, 0x0000008 - -gUnk_0812A63C:: @ 0812A63C - .incbin "baserom.gba", 0x12A63C, 0x0000020 - -gUnk_0812A65C:: @ 0812A65C - .incbin "baserom.gba", 0x12A65C, 0x0000009 - -gUnk_0812A665:: @ 0812A665 - .incbin "baserom.gba", 0x12A665, 0x0000009 - -gUnk_0812A66E:: @ 0812A66E - .incbin "baserom.gba", 0x12A66E, 0x0000009 - -gUnk_0812A677:: @ 0812A677 - .incbin "baserom.gba", 0x12A677, 0x0000009 - -gUnk_0812A680:: @ 0812A680 - .incbin "baserom.gba", 0x12A680, 0x0000009 - -gUnk_0812A689:: @ 0812A689 - .incbin "baserom.gba", 0x12A689, 0x000000B - -gUnk_0812A694:: @ 0812A694 - .incbin "baserom.gba", 0x12A694, 0x0000020 - -gUnk_0812A6B4:: @ 0812A6B4 - .incbin "baserom.gba", 0x12A6B4, 0x0000008 - -gUnk_0812A6BC:: @ 0812A6BC - .incbin "baserom.gba", 0x12A6BC, 0x0000008 - -gUnk_0812A6C4:: @ 0812A6C4 - .incbin "baserom.gba", 0x12A6C4, 0x0000008 - -gUnk_0812A6CC:: @ 0812A6CC - .incbin "baserom.gba", 0x12A6CC, 0x0000008 - -gUnk_0812A6D4:: @ 0812A6D4 - .incbin "baserom.gba", 0x12A6D4, 0x000000E - -gUnk_0812A6E2:: @ 0812A6E2 - .incbin "baserom.gba", 0x12A6E2, 0x000000D - -gUnk_0812A6EF:: @ 0812A6EF - .incbin "baserom.gba", 0x12A6EF, 0x000000D - -gUnk_0812A6FC:: @ 0812A6FC - .incbin "baserom.gba", 0x12A6FC, 0x000000D - -gUnk_0812A709:: @ 0812A709 - .incbin "baserom.gba", 0x12A709, 0x000000D - -gUnk_0812A716:: @ 0812A716 - .incbin "baserom.gba", 0x12A716, 0x000000D - -gUnk_0812A723:: @ 0812A723 - .incbin "baserom.gba", 0x12A723, 0x000000D - -gUnk_0812A730:: @ 0812A730 - .incbin "baserom.gba", 0x12A730, 0x000000D - -gUnk_0812A73D:: @ 0812A73D - .incbin "baserom.gba", 0x12A73D, 0x000000D - -gUnk_0812A74A:: @ 0812A74A - .incbin "baserom.gba", 0x12A74A, 0x000000D - -gUnk_0812A757:: @ 0812A757 - .incbin "baserom.gba", 0x12A757, 0x000000D - -gUnk_0812A764:: @ 0812A764 - .incbin "baserom.gba", 0x12A764, 0x000000D - -gUnk_0812A771:: @ 0812A771 - .incbin "baserom.gba", 0x12A771, 0x000000D - -gUnk_0812A77E:: @ 0812A77E - .incbin "baserom.gba", 0x12A77E, 0x000000D - -gUnk_0812A78B:: @ 0812A78B - .incbin "baserom.gba", 0x12A78B, 0x000000D - -gUnk_0812A798:: @ 0812A798 - .incbin "baserom.gba", 0x12A798, 0x000003C - -gUnk_0812A7D4:: @ 0812A7D4 - .incbin "baserom.gba", 0x12A7D4, 0x0000018 - -gUnk_0812A7EC:: @ 0812A7EC - .incbin "baserom.gba", 0x12A7EC, 0x000000C - -gUnk_0812A7F8:: @ 0812A7F8 - .incbin "baserom.gba", 0x12A7F8, 0x0000008 - -gUnk_0812A800:: @ 0812A800 - .incbin "baserom.gba", 0x12A800, 0x0000008 - -gUnk_0812A808:: @ 0812A808 - .incbin "baserom.gba", 0x12A808, 0x000000C - -gUnk_0812A814:: @ 0812A814 - .incbin "baserom.gba", 0x12A814, 0x0000011 - -gUnk_0812A825:: @ 0812A825 - .incbin "baserom.gba", 0x12A825, 0x000001B - -gUnk_0812A840:: @ 0812A840 - .incbin "baserom.gba", 0x12A840, 0x000000C - -gUnk_0812A84C:: @ 0812A84C - .incbin "baserom.gba", 0x12A84C, 0x0000014 - -gUnk_0812A860:: @ 0812A860 - .incbin "baserom.gba", 0x12A860, 0x0000011 - -gUnk_0812A871:: @ 0812A871 - .incbin "baserom.gba", 0x12A871, 0x0000059 - -gUnk_0812A8CA:: @ 0812A8CA - .incbin "baserom.gba", 0x12A8CA, 0x0000061 - -gUnk_0812A92B:: @ 0812A92B - .incbin "baserom.gba", 0x12A92B, 0x0000015 - -gUnk_0812A940:: @ 0812A940 - .incbin "baserom.gba", 0x12A940, 0x0000014 - -gUnk_0812A954:: @ 0812A954 - .incbin "baserom.gba", 0x12A954, 0x0000014 - -gUnk_0812A968:: @ 0812A968 - .incbin "baserom.gba", 0x12A968, 0x0000014 - -gUnk_0812A97C:: @ 0812A97C - .incbin "baserom.gba", 0x12A97C, 0x0000006 - -gUnk_0812A982:: @ 0812A982 - .incbin "baserom.gba", 0x12A982, 0x0000008 - -gUnk_0812A98A:: @ 0812A98A - .incbin "baserom.gba", 0x12A98A, 0x000000A - -gUnk_0812A994:: @ 0812A994 - .incbin "baserom.gba", 0x12A994, 0x0000014 - -gUnk_0812A9A8:: @ 0812A9A8 - .incbin "baserom.gba", 0x12A9A8, 0x000000C - -gUnk_0812A9B4:: @ 0812A9B4 - .incbin "baserom.gba", 0x12A9B4, 0x0000004 - -gUnk_0812A9B8:: @ 0812A9B8 - .incbin "baserom.gba", 0x12A9B8, 0x0000002 - -gUnk_0812A9BA:: @ 0812A9BA - .incbin "baserom.gba", 0x12A9BA, 0x0000006 - -gUnk_0812A9C0:: @ 0812A9C0 - .incbin "baserom.gba", 0x12A9C0, 0x0000018 - -gUnk_0812A9D8:: @ 0812A9D8 - .incbin "baserom.gba", 0x12A9D8, 0x0000014 - -gUnk_0812A9EC:: @ 0812A9EC - .incbin "baserom.gba", 0x12A9EC, 0x0000010 - -gUnk_0812A9FC:: @ 0812A9FC - .incbin "baserom.gba", 0x12A9FC, 0x0000035 - -gUnk_0812AA31:: @ 0812AA31 - .incbin "baserom.gba", 0x12AA31, 0x000001F - -gUnk_0812AA50:: @ 0812AA50 - .4byte gUnk_0812A9FC - .4byte gUnk_0812AA31 - .4byte 00000000 - -gUnk_0812AA5C:: @ 0812AA5C - .4byte sub_080ACA50 - .4byte sub_080ACA68 +gProjectileFunctions:: @ 08129320 + .4byte Projectile0 + .4byte Projectile1 + .4byte Projectile2 + .4byte Projectile3 + .4byte Projectile4 + .4byte Projectile5 + .4byte Projectile6 + .4byte Projectile7 + .4byte Projectile8 + .4byte Projectile9 + .4byte ProjectileA + .4byte ProjectileB + .4byte ProjectileC + .4byte ProjectileD + .4byte ProjectileE + .4byte ProjectileF + .4byte Projectile10 + .4byte Projectile11 + .4byte Projectile12 + .4byte Projectile13 + .4byte Projectile14 + .4byte Projectile15 + .4byte Projectile16 + .4byte Projectile17 + .4byte Projectile18 + .4byte Projectile19 + .4byte Projectile1A + .4byte Projectile1B + .4byte Projectile1C + .4byte Projectile1D + .4byte Projectile1E + .4byte Projectile1F + .4byte Projectile20 + .4byte Projectile21 + .4byte Projectile22 + .4byte Projectile23 + .4byte Projectile24 .4byte DeleteEntity - .4byte DeleteEntity - .4byte DeleteEntity - .4byte sub_080ACA50 -gUnk_0812AA74:: @ 0812AA74 - .4byte sub_080ACAC8 - .4byte sub_080ACAF0 - .4byte sub_080ACB10 + @ TODO convert .inc files into .s files and include them in linker.ld + .include "data/const/projectile/projectile0.inc" + + .include "data/const/projectile/projectile1.inc" + .include "data/animations/projectile/projectile1.inc" + + .include "data/const/projectile/projectile2.inc" + .include "data/animations/projectile/projectile2.inc" + + .include "data/const/projectile/projectile3.inc" + + .include "data/const/projectile/projectile4.inc" + + .include "data/const/projectile/projectile5.inc" + + .include "data/const/projectile/projectile6.inc" + .include "data/animations/projectile/projectile6.inc" + + .include "data/const/projectile/projectile7.inc" + .include "data/animations/projectile/projectile7.inc" + + .include "data/const/projectile/projectile8.inc" + .include "data/animations/projectile/projectile8.inc" + + .include "data/const/projectile/projectile9.inc" + .include "data/animations/projectile/projectile9.inc" + + .include "data/const/projectile/projectileA.inc" + + .include "data/const/projectile/projectileB.inc" + + .include "data/const/projectile/projectileC.inc" + + .include "data/const/projectile/projectileD.inc" + .include "data/animations/projectile/projectileD.inc" + + .include "data/const/projectile/projectileE.inc" + .include "data/animations/projectile/projectileE.inc" + + .include "data/const/projectile/projectileF.inc" + + .include "data/const/projectile/projectile10.inc" + + .include "data/const/projectile/projectile11.inc" + .include "data/animations/projectile/projectile11.inc" + + .include "data/const/projectile/projectile12.inc" + .include "data/animations/projectile/projectile12.inc" + + .include "data/const/projectile/projectile13.inc" + .include "data/animations/projectile/projectile13.inc" + + .include "data/const/projectile/projectile14.inc" + + .include "data/const/projectile/projectile15.inc" + .include "data/animations/projectile/projectile15.inc" + + .include "data/const/projectile/projectile16.inc" + .include "data/animations/projectile/projectile16.inc" + + .include "data/const/projectile/projectile18.inc" + .include "data/animations/projectile/projectile18.inc" + + .include "data/const/projectile/projectile19.inc" + + .include "data/const/projectile/projectile1A.inc" + + .include "data/const/projectile/projectile1B.inc" + .include "data/animations/projectile/projectile1B.inc" + + .include "data/const/projectile/projectile1C.inc" + .include "data/animations/projectile/projectile1C.inc" + + .include "data/const/projectile/projectile1D.inc" + + .include "data/const/projectile/projectile1E.inc" + .include "data/animations/projectile/projectile1E.inc" + + .include "data/const/projectile/projectile1F.inc" + .include "data/animations/projectile/projectile1F.inc" + + .include "data/const/projectile/projectile20.inc" + .include "data/animations/projectile/projectile20.inc" + + .include "data/const/projectile/projectile21.inc" + + .include "data/const/projectile/projectile22.inc" + + .include "data/const/projectile/projectile23.inc" + .include "data/animations/projectile/projectile23.inc" + + .include "data/const/projectile/projectile24.inc" + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @ TODO convert .inc files into .s files and include them in linker.ld .include "data/const/playerItem/playerItem10.inc"