diff --git a/asm/non_matching/bigGoron/sub_0806D5D4.inc b/asm/non_matching/bigGoron/sub_0806D5D4.inc deleted file mode 100644 index c9084c09..00000000 --- a/asm/non_matching/bigGoron/sub_0806D5D4.inc +++ /dev/null @@ -1,21 +0,0 @@ - .syntax unified - push {lr} - bl InitBiggoronTimer - movs r0, #0xd - bl IsItemEquipped - adds r1, r0, #0 - cmp r1, #2 - beq _0806D5F0 - ldr r0, _0806D5FC @ =gSave - adds r0, #0xb4 - adds r0, r1, r0 - movs r1, #0 - strb r1, [r0] -_0806D5F0: - movs r0, #0xd - movs r1, #0 - bl sub_0807CAA0 - pop {pc} - .align 2, 0 -_0806D5FC: .4byte gSave - .syntax divided diff --git a/asm/non_matching/castorWildsStatue/sub_080675D4.inc b/asm/non_matching/castorWildsStatue/sub_080675D4.inc deleted file mode 100644 index 48e73e86..00000000 --- a/asm/non_matching/castorWildsStatue/sub_080675D4.inc +++ /dev/null @@ -1,131 +0,0 @@ - .syntax unified - push {r4, r5, r6, r7, lr} - mov r7, r8 - push {r7} - adds r4, r0, #0 - ldr r5, _080676D0 @ =gUnk_08110E78 - ldrb r0, [r4, #0xd] - lsls r0, r0, #2 - adds r7, r0, #0 - subs r7, #0xc - movs r0, #0x3f - mov r8, r0 - movs r6, #8 -_080675EC: - adds r0, r4, #0 - movs r1, #2 - movs r2, #0 - bl CreateFx - adds r3, r0, #0 - cmp r3, #0 - beq _08067646 - movs r0, #0 - ldrsb r0, [r5, r0] - ldrh r1, [r3, #0x2e] - adds r0, r0, r1 - strh r0, [r3, #0x2e] - movs r0, #1 - ldrsb r0, [r5, r0] - ldrh r1, [r3, #0x32] - adds r0, r0, r1 - strh r0, [r3, #0x32] - strh r7, [r3, #0x36] - adds r0, r4, #0 - adds r0, #0x38 - ldrb r1, [r0] - adds r0, r3, #0 - adds r0, #0x38 - strb r1, [r0] - ldrb r1, [r4, #0x1b] - lsrs r1, r1, #6 - lsls r1, r1, #6 - ldrb r2, [r3, #0x1b] - mov r0, r8 - ands r0, r2 - orrs r0, r1 - strb r0, [r3, #0x1b] - ldrb r1, [r4, #0x19] - lsrs r1, r1, #6 - lsls r1, r1, #6 - ldrb r2, [r3, #0x19] - mov r0, r8 - ands r0, r2 - orrs r0, r1 - strb r0, [r3, #0x19] - adds r0, r4, #0 - adds r1, r3, #0 - bl SortEntityAbove -_08067646: - subs r6, #1 - adds r5, #2 - cmp r6, #0 - bge _080675EC - ldr r5, _080676D4 @ =gUnk_08110E8A - movs r0, #0x3f - mov r8, r0 - movs r6, #3 -_08067656: - adds r0, r4, #0 - movs r1, #4 - movs r2, #0 - bl CreateFx - adds r3, r0, #0 - cmp r3, #0 - beq _080676B0 - movs r0, #0 - ldrsb r0, [r5, r0] - ldrh r1, [r3, #0x2e] - adds r0, r0, r1 - strh r0, [r3, #0x2e] - movs r0, #1 - ldrsb r0, [r5, r0] - ldrh r1, [r3, #0x32] - adds r0, r0, r1 - strh r0, [r3, #0x32] - strh r7, [r3, #0x36] - adds r0, r4, #0 - adds r0, #0x38 - ldrb r1, [r0] - adds r0, r3, #0 - adds r0, #0x38 - strb r1, [r0] - ldrb r1, [r4, #0x1b] - lsrs r1, r1, #6 - lsls r1, r1, #6 - ldrb r2, [r3, #0x1b] - mov r0, r8 - ands r0, r2 - orrs r0, r1 - strb r0, [r3, #0x1b] - ldrb r1, [r4, #0x19] - lsrs r1, r1, #6 - lsls r1, r1, #6 - ldrb r2, [r3, #0x19] - mov r0, r8 - ands r0, r2 - orrs r0, r1 - strb r0, [r3, #0x19] - adds r0, r4, #0 - adds r1, r3, #0 - bl SortEntityAbove -_080676B0: - subs r6, #1 - adds r5, #2 - cmp r6, #0 - bge _08067656 - ldrb r0, [r4, #0xd] - cmp r0, #2 - bls _080676C8 - ldrb r1, [r4, #0x18] - movs r0, #4 - rsbs r0, r0, #0 - ands r0, r1 - strb r0, [r4, #0x18] -_080676C8: - pop {r3} - mov r8, r3 - pop {r4, r5, r6, r7, pc} - .align 2, 0 -_080676D0: .4byte gUnk_08110E78 -_080676D4: .4byte gUnk_08110E8A - .syntax divided diff --git a/asm/non_matching/common/sub_0801DFB4.inc b/asm/non_matching/common/sub_0801DFB4.inc deleted file mode 100644 index 2dfd039c..00000000 --- a/asm/non_matching/common/sub_0801DFB4.inc +++ /dev/null @@ -1,44 +0,0 @@ - .syntax unified - push {r4, r5, r6, r7, lr} - mov r7, r8 - push {r7} - mov r8, r0 - adds r4, r1, #0 - adds r5, r2, #0 - adds r6, r3, #0 - ldr r7, _0801E004 @ =gFuseInfo - adds r0, r7, #0 - movs r1, #0x10 - bl MemClear - strh r4, [r7, #6] - strh r5, [r7, #8] - strh r6, [r7, #0xa] - mov r0, r8 - str r0, [r7, #0xc] - ldr r0, _0801E008 @ =gUnk_03003DF0 - ldrb r0, [r0, #2] - strb r0, [r7, #3] - mov r1, r8 - cmp r1, #0 - beq _0801DFF8 - ldrb r1, [r1, #0x11] - lsls r0, r1, #0x1c - lsrs r0, r0, #0x1c - strb r0, [r7, #4] - movs r0, #0x10 - rsbs r0, r0, #0 - ands r0, r1 - movs r1, #2 - orrs r0, r1 - mov r1, r8 - strb r0, [r1, #0x11] -_0801DFF8: - movs r0, #0 - strb r0, [r7] - pop {r3} - mov r8, r3 - pop {r4, r5, r6, r7, pc} - .align 2, 0 -_0801E004: .4byte gFuseInfo -_0801E008: .4byte gUnk_03003DF0 - .syntax divided diff --git a/asm/non_matching/player/PlayerNormal.inc b/asm/non_matching/player/PlayerNormal.inc deleted file mode 100644 index fb4b93a2..00000000 --- a/asm/non_matching/player/PlayerNormal.inc +++ /dev/null @@ -1,544 +0,0 @@ - .syntax unified - - .text - - push {r4, r5, r6, r7, lr} - adds r5, r0, #0 - ldr r6, _080707F0 @ =gPlayerState - adds r3, r6, #0 - adds r3, #0xa8 - movs r4, #0 - strb r4, [r3] - ldr r1, [r6, #0x30] - movs r7, #0x10 - adds r0, r1, #0 - ands r0, r7 - mov ip, r6 - cmp r0, #0 - beq _08070818 - adds r2, r5, #0 - adds r2, #0x29 - ldrb r1, [r2] - movs r0, #0x39 - rsbs r0, r0, #0 - ands r0, r1 - strb r0, [r2] - adds r0, r5, #0 - adds r0, #0x42 - strb r4, [r0] - movs r0, #0xa0 - lsls r0, r0, #1 - strh r0, [r5, #0x24] - movs r0, #0x80 - strb r0, [r6, #6] - strb r7, [r3] - ldrb r0, [r5, #0x14] - lsrs r0, r0, #1 - adds r0, #0x5c - adds r1, r5, #0 - adds r1, #0x58 - ldrb r1, [r1] - cmp r0, r1 - bne _080707F8 - ldrh r0, [r5, #0x12] - cmp r0, #2 - bne _080707F8 - ldr r0, _080707F4 @ =gPlayerEntity - bl UpdateAnimationSingleFrame - b _08070800 - .align 2, 0 -_080707F0: .4byte gPlayerState -_080707F4: .4byte gPlayerEntity -_080707F8: - movs r0, #0x97 - lsls r0, r0, #2 - mov r1, ip - strh r0, [r1, #8] -_08070800: - ldr r0, _08070814 @ =gPlayerEntity - bl sub_0806F948 - bl ResetPlayer - adds r0, r5, #0 - bl sub_08077698 - b _08070BE4 - .align 2, 0 -_08070814: .4byte gPlayerEntity -_08070818: - movs r0, #0x80 - lsls r0, r0, #5 - ands r0, r1 - cmp r0, #0 - beq _08070842 - adds r1, r5, #0 - adds r1, #0x40 - movs r0, #0x1e - strb r0, [r1] - movs r0, #0xc - strb r0, [r3] - movs r1, #0 - movs r2, #0x24 - ldrsh r0, [r5, r2] - cmp r0, #0 - bne _0807083A - movs r1, #1 -_0807083A: - adds r0, r5, #0 - bl sub_08070BEC - b _08070BE4 -_08070842: - movs r4, #0x80 - lsls r4, r4, #0xc - ands r4, r1 - cmp r4, #0 - beq _08070852 - bl ResolvePlayerAnimation - b _08070BE4 -_08070852: - adds r0, r5, #0 - bl sub_080085B0 - adds r0, r5, #0 - adds r0, #0x40 - strb r4, [r0] - bl RunQueuedAction - cmp r0, #0 - beq _08070868 - b _08070BE4 -_08070868: - adds r0, r6, #0 - adds r0, #0x26 - ldrb r0, [r0] - cmp r0, #0 - bne _080708AC - ldrb r1, [r6, #2] - movs r2, #0xc0 - adds r0, r2, #0 - ands r0, r1 - cmp r0, #0 - bne _080708AC - ldrb r0, [r6, #3] - cmp r0, #0 - bne _0807088E - adds r0, r6, #0 - adds r0, #0x21 - ldrb r0, [r0] - cmp r0, #0 - beq _08070892 -_0807088E: - strh r2, [r5, #0x24] - b _080708AC -_08070892: - ldrb r0, [r6, #0x1b] - cmp r0, #0 - beq _0807089C - movs r0, #0xe0 - b _080708AA -_0807089C: - ldrb r0, [r6, #0x1c] - cmp r0, #0 - beq _080708A6 - movs r0, #0x80 - b _080708AA -_080708A6: - movs r0, #0xa0 - lsls r0, r0, #1 -_080708AA: - strh r0, [r5, #0x24] -_080708AC: - ldr r4, _08070918 @ =gPlayerState - ldrb r0, [r4, #6] - movs r1, #0x80 - orrs r1, r0 - strb r1, [r4, #6] - ldr r0, [r4, #0x30] - ldr r6, _0807091C @ =0x10000002 - ands r0, r6 - cmp r0, #0 - bne _080708C4 - bl UpdateFloorType -_080708C4: - bl RunQueuedAction - cmp r0, #0 - beq _080708CE - b _08070BE4 -_080708CE: - ldrb r0, [r4, #2] - cmp r0, #0 - beq _080708D6 - b _080709D8 -_080708D6: - ldr r0, [r4, #0x30] - movs r1, #0x80 - lsls r1, r1, #3 - ands r0, r1 - cmp r0, #0 - beq _080708E4 - b _080709D8 -_080708E4: - adds r0, r5, #0 - adds r0, #0x42 - ldrb r0, [r0] - cmp r0, #0 - bne _08070924 - bl sub_080782C0 - cmp r0, #0 - beq _08070924 - ldr r0, _08070920 @ =gRoomVars - ldrb r0, [r0, #6] - cmp r0, #0 - bne _08070902 - bl ResetPlayer -_08070902: - ldr r0, [r4, #0x30] - ands r0, r6 - cmp r0, #0 - beq _0807090C - b _08070BE4 -_0807090C: - bl UpdateFloorType - bl RunQueuedAction - b _08070BE4 - .align 2, 0 -_08070918: .4byte gPlayerState -_0807091C: .4byte 0x10000002 -_08070920: .4byte gRoomVars -_08070924: - ldr r0, _0807094C @ =gPlayerState - ldr r1, [r0, #0x30] - ldr r2, _08070950 @ =0x00041635 - ands r1, r2 - adds r0, #0xaa - ldrb r0, [r0] - orrs r1, r0 - cmp r1, #0 - bne _080709D8 - bl UpdatePlayerCollision - cmp r0, #0xf - bls _08070940 - b _08070BE4 -_08070940: - lsls r0, r0, #2 - ldr r1, _08070954 @ =_08070958 - adds r0, r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_0807094C: .4byte gPlayerState -_08070950: .4byte 0x00041635 -_08070954: .4byte _08070958 -_08070958: @ jump table - .4byte _08070998 @ case 0 - .4byte _08070BE4 @ case 1 - .4byte _08070BE4 @ case 2 - .4byte _080709A8 @ case 3 - .4byte _080709C2 @ case 4 - .4byte _08070BE4 @ case 5 - .4byte _08070BE4 @ case 6 - .4byte _08070BE4 @ case 7 - .4byte _08070BE4 @ case 8 - .4byte _08070BE4 @ case 9 - .4byte _08070BE4 @ case 10 - .4byte _08070BE4 @ case 11 - .4byte _08070BE4 @ case 12 - .4byte _08070BE4 @ case 13 - .4byte _08070BE4 @ case 14 - .4byte _080709B4 @ case 15 -_08070998: - ldr r0, _080709A4 @ =gPlayerState - ldrb r1, [r0, #6] - movs r2, #0x80 - eors r1, r2 - strb r1, [r0, #6] - b _080709D8 - .align 2, 0 -_080709A4: .4byte gPlayerState -_080709A8: - ldr r1, _080709B0 @ =gPlayerState - movs r0, #0x80 - strb r0, [r1, #6] - b _080709D8 - .align 2, 0 -_080709B0: .4byte gPlayerState -_080709B4: - ldrb r1, [r5, #0x10] - movs r0, #0x7f - ands r0, r1 - strb r0, [r5, #0x10] - bl sub_080797EC - b _08070BE4 -_080709C2: - ldr r0, _080709D4 @ =gPlayerState - ldrb r1, [r0, #6] - movs r2, #0x80 - eors r1, r2 - strb r1, [r0, #6] - bl sub_080797EC - b _08070BE4 - .align 2, 0 -_080709D4: .4byte gPlayerState -_080709D8: - adds r1, r5, #0 - adds r1, #0x3c - movs r0, #0 - strb r0, [r1] - adds r6, r5, #0 - adds r6, #0x29 - ldrb r1, [r6] - subs r0, #8 - ands r0, r1 - movs r1, #4 - orrs r0, r1 - strb r0, [r6] - adds r0, r5, #0 - bl sub_0807AC54 - cmp r0, #0 - beq _080709FC - b _08070BE4 -_080709FC: - adds r0, r5, #0 - bl sub_08077698 - bl RunQueuedAction - cmp r0, #0 - beq _08070A0C - b _08070BE4 -_08070A0C: - bl sub_080792D8 - ldr r4, _08070A78 @ =gPlayerState - ldrb r1, [r4, #2] - ldrb r0, [r4, #0xa] - orrs r0, r1 - cmp r0, #0 - bne _08070A32 - bl sub_08079550 - cmp r0, #0 - beq _08070A26 - b _08070BE4 -_08070A26: - adds r0, r5, #0 - bl sub_08078F74 - cmp r0, #0 - beq _08070A32 - b _08070BE4 -_08070A32: - adds r0, r5, #0 - bl DoJump - bl RunQueuedAction - cmp r0, #0 - beq _08070A42 - b _08070BE4 -_08070A42: - ldrb r2, [r4, #2] - cmp r2, #0 - beq _08070AAC - adds r1, r4, #0 - adds r1, #0xa8 - movs r0, #0x14 - strb r0, [r1] - movs r0, #0xc0 - ands r0, r2 - cmp r0, #0 - bne _08070A80 - movs r0, #7 - ands r0, r2 - cmp r0, #3 - beq _08070A7C - movs r0, #0x20 - ands r0, r2 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #0 - bne _08070A7C - strh r0, [r5, #0x24] - adds r0, r5, #0 - bl sub_08008926 - b _08070A80 - .align 2, 0 -_08070A78: .4byte gPlayerState -_08070A7C: - movs r0, #0xff - strb r0, [r5, #0x15] -_08070A80: - bl UpdatePlayerMovement - adds r0, r5, #0 - adds r0, #0x5a - ldrb r1, [r0] - movs r0, #2 - ands r0, r1 - cmp r0, #0 - beq _08070A94 - b _08070BE4 -_08070A94: - ldr r0, _08070AA8 @ =gPlayerState - ldrb r0, [r0, #4] - cmp r0, #0 - beq _08070A9E - b _08070BE4 -_08070A9E: - adds r0, r5, #0 - bl UpdateAnimationSingleFrame - b _08070BE4 - .align 2, 0 -_08070AA8: .4byte gPlayerState -_08070AAC: - adds r0, r5, #0 - adds r0, #0x42 - ldrb r1, [r0] - adds r7, r0, #0 - cmp r1, #0 - beq _08070ABA - b _08070BBC -_08070ABA: - adds r0, r4, #0 - adds r0, #0x26 - ldrb r0, [r0] - cmp r0, #0 - beq _08070AD4 - adds r1, r4, #0 - adds r1, #0xa8 - movs r0, #7 - strb r0, [r1] - adds r0, r5, #0 - bl sub_0807ACCC - b _08070B56 -_08070AD4: - ldr r0, [r4, #0x30] - movs r1, #0x80 - lsls r1, r1, #0x12 - ands r0, r1 - cmp r0, #0 - bne _08070AEE - ldrb r0, [r6] - movs r1, #0x39 - rsbs r1, r1, #0 - ands r1, r0 - movs r0, #8 - orrs r1, r0 - strb r1, [r6] -_08070AEE: - ldrb r1, [r4, #0x1e] - movs r0, #0x40 - ands r0, r1 - cmp r0, #0 - beq _08070B00 - adds r0, r5, #0 - bl sub_08008AA0 - b _08070B1E -_08070B00: - ldrb r0, [r4, #0x12] - cmp r0, #0x17 - bne _08070B0E - adds r0, r5, #0 - bl sub_08008926 - b _08070B1E -_08070B0E: - cmp r0, #1 - bne _08070B18 - bl ResetPlayerVelocity - b _08070B1E -_08070B18: - adds r0, r5, #0 - bl sub_08008AA0 -_08070B1E: - ldr r2, _08070BB8 @ =gPlayerState - ldrb r1, [r2, #0x1b] - movs r0, #0x10 - ands r0, r1 - cmp r0, #0 - bne _08070B56 - ldrb r3, [r2, #0xd] - strb r3, [r5, #0x15] - ldr r0, [r2, #0x30] - movs r1, #0x80 - lsls r1, r1, #3 - ands r0, r1 - cmp r0, #0 - beq _08070B56 - movs r0, #0xc0 - lsls r0, r0, #2 - strh r0, [r5, #0x24] - movs r0, #0x80 - ands r0, r3 - cmp r0, #0 - beq _08070B52 - ldrb r1, [r5, #0x14] - movs r0, #0xe - ands r0, r1 - lsls r0, r0, #2 - strb r0, [r5, #0x15] -_08070B52: - bl DeleteClones -_08070B56: - movs r4, #0 - ldr r3, _08070BB8 @ =gPlayerState - ldrb r2, [r3, #7] - ldrb r0, [r5, #0x15] - orrs r0, r2 - movs r1, #0x80 - ands r0, r1 - ldrb r1, [r3, #0xa] - orrs r0, r1 - cmp r0, #0 - bne _08070B8E - movs r0, #0x10 - ands r0, r2 - cmp r0, #0 - bne _08070B8E - movs r4, #1 - ldrb r0, [r7] - cmp r0, #0 - bne _08070B8E - ldrb r1, [r3, #0x1e] - movs r0, #0x40 - ands r0, r1 - cmp r0, #0 - bne _08070B8C - ldrb r0, [r3, #0x12] - cmp r0, #0x17 - beq _08070B8E -_08070B8C: - movs r4, #3 -_08070B8E: - adds r0, r5, #0 - adds r1, r4, #0 - bl sub_08070BEC - adds r0, r5, #0 - bl sub_08008AC6 - ldrb r0, [r7] - cmp r0, #0 - bne _08070BE4 - ldr r1, _08070BB8 @ =gPlayerState - ldrb r0, [r1, #0xb] - cmp r0, #0 - bne _08070BE4 - ldrb r0, [r1, #0x12] - cmp r0, #0x1e - beq _08070BE4 - adds r0, r5, #0 - bl sub_0806F948 - b _08070BE4 - .align 2, 0 -_08070BB8: .4byte gPlayerState -_08070BBC: - ldr r0, [r4, #0x2c] - cmp r0, #0 - bne _08070BC8 - adds r0, r5, #0 - bl UpdateAnimationSingleFrame -_08070BC8: - adds r0, r4, #0 - adds r0, #0x26 - ldrb r0, [r0] - cmp r0, #0 - beq _08070BE4 - ldr r0, _08070BE8 @ =gRoomTransition - ldr r0, [r0] - movs r1, #7 - ands r0, r1 - cmp r0, #0 - bne _08070BE4 - adds r0, r5, #0 - bl CreateWaterTrace -_08070BE4: - pop {r4, r5, r6, r7, pc} - .align 2, 0 -_08070BE8: .4byte gRoomTransition - .syntax divided diff --git a/asm/non_matching/vram/CopyOAM.inc b/asm/non_matching/vram/CopyOAM.inc deleted file mode 100644 index d9213f65..00000000 --- a/asm/non_matching/vram/CopyOAM.inc +++ /dev/null @@ -1,76 +0,0 @@ - .syntax unified - push {r4, lr} - ldr r1, _080AD948 @ =gMain - ldrb r0, [r1, #0xb] - adds r2, r0, #0 - cmp r2, #0 - bne _080AD958 - ldr r1, _080AD94C @ =gOAMControls - movs r3, #0xa4 - lsls r3, r3, #3 - adds r0, r1, r3 - strb r2, [r0] - ldr r3, _080AD950 @ =0x00000664 - adds r0, r1, r3 - strb r2, [r0] - movs r3, #0xf5 - lsls r3, r3, #3 - adds r0, r1, r3 - strb r2, [r0] - ldr r3, _080AD954 @ =0x000008EC - adds r0, r1, r3 - strb r2, [r0] - adds r4, r1, #0 - b _080AD95E - .align 2, 0 -_080AD948: .4byte gMain -_080AD94C: .4byte gOAMControls -_080AD950: .4byte 0x00000664 -_080AD954: .4byte 0x000008EC -_080AD958: - subs r0, #1 - strb r0, [r1, #0xb] - ldr r4, _080AD9A8 @ =gOAMControls -_080AD95E: - ldrb r1, [r4, #3] - movs r0, #0x80 - subs r2, r0, r1 - cmp r2, #0 - ble _080AD980 - lsls r1, r1, #3 - adds r0, r4, #0 - adds r0, #0x20 - adds r1, r1, r0 - movs r3, #0xa8 - lsls r3, r3, #2 - adds r0, r3, #0 -_080AD976: - strh r0, [r1] - adds r1, #8 - subs r2, #1 - cmp r2, #0 - bne _080AD976 -_080AD980: - adds r1, r4, #0 - ldr r0, _080AD9AC @ =0x00000427 - adds r2, r1, r0 - ldrb r0, [r2] - cmp r0, #0 - beq _080AD9A0 - movs r0, #0 - strb r0, [r2] - movs r2, #0x84 - lsls r2, r2, #3 - adds r0, r1, r2 - adds r1, #0x26 - movs r2, #0x20 - movs r3, #8 - bl ObjAffineSet -_080AD9A0: - movs r0, #1 - strb r0, [r4] - pop {r4, pc} - .align 2, 0 -_080AD9A8: .4byte gOAMControls -_080AD9AC: .4byte 0x00000427 - .syntax divided diff --git a/asm/object/bigPushableLever.s b/asm/object/bigPushableLever.s deleted file mode 100644 index 6bf1711e..00000000 --- a/asm/object/bigPushableLever.s +++ /dev/null @@ -1,357 +0,0 @@ - .include "asm/macros.inc" - - .include "constants/constants.inc" - - .syntax unified - - .text - - - thumb_func_start BigPushableLever -BigPushableLever: @ 0x08098EE0 - push {lr} - ldr r2, _08098EF4 @ =gUnk_081236DC - ldrb r1, [r0, #0xc] - lsls r1, r1, #2 - adds r1, r1, r2 - ldr r1, [r1] - bl _call_via_r1 - pop {pc} - .align 2, 0 -_08098EF4: .4byte gUnk_081236DC - - thumb_func_start sub_08098EF8 -sub_08098EF8: @ 0x08098EF8 - push {lr} - adds r3, r0, #0 - adds r3, #0x29 - ldrb r2, [r3] - movs r1, #8 - rsbs r1, r1, #0 - ands r1, r2 - movs r2, #5 - orrs r1, r2 - strb r1, [r3] - bl sub_08098FCC - pop {pc} - .align 2, 0 - - thumb_func_start sub_08098F14 -sub_08098F14: @ 0x08098F14 - push {r4, r5, r6, lr} - adds r5, r0, #0 - bl sub_080990EC - cmp r0, #0 - beq _08098F84 - movs r6, #0 - movs r0, #2 - strb r0, [r5, #0xc] - adds r0, r5, #0 - adds r0, #0x74 - ldrh r0, [r0] - adds r1, r5, #0 - adds r1, #0x70 - ldrh r1, [r1] - adds r4, r5, #0 - adds r4, #0x38 - ldrb r2, [r4] - bl SetTile - adds r0, r5, #0 - adds r0, #0x76 - ldrh r0, [r0] - adds r1, r5, #0 - adds r1, #0x72 - ldrh r1, [r1] - ldrb r2, [r4] - bl SetTile - movs r0, #0x99 - lsls r0, r0, #1 - bl EnqueueSFX - adds r0, r5, #0 - movs r1, #0x1e - bl RequestPriorityDuration - bl sub_08079F8C - cmp r0, #0 - beq _08098F84 - ldr r2, _08098F88 @ =gPlayerState - movs r0, #0x98 - strb r0, [r2, #6] - movs r0, #5 - strb r0, [r2, #0xc] - ldr r0, [r2, #0x30] - movs r1, #1 - orrs r0, r1 - str r0, [r2, #0x30] - ldr r1, _08098F8C @ =gPlayerEntity - strh r6, [r1, #0x2c] - strh r6, [r1, #0x30] - ldrb r0, [r1, #0x14] - lsls r0, r0, #2 - strb r0, [r1, #0x15] -_08098F84: - pop {r4, r5, r6, pc} - .align 2, 0 -_08098F88: .4byte gPlayerState -_08098F8C: .4byte gPlayerEntity - - thumb_func_start sub_08098F90 -sub_08098F90: @ 0x08098F90 - 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 _08098FC8 - ldrb r0, [r4, #0xb] - cmp r0, #0 - bne _08098FB8 - adds r0, r4, #0 - adds r0, #0x86 - ldrh r0, [r0] - bl SetFlag - b _08098FC2 -_08098FB8: - adds r0, r4, #0 - adds r0, #0x86 - ldrh r0, [r0] - bl ClearFlag -_08098FC2: - adds r0, r4, #0 - bl sub_08098FCC -_08098FC8: - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_08098FCC -sub_08098FCC: @ 0x08098FCC - push {lr} - movs r1, #1 - strb r1, [r0, #0xc] - adds r2, r0, #0 - adds r2, #0x84 - movs r1, #0x3c - strh r1, [r2] - bl sub_08098FE0 - pop {pc} - - thumb_func_start sub_08098FE0 -sub_08098FE0: @ 0x08098FE0 - push {r4, r5, r6, r7, lr} - adds r6, r0, #0 - adds r0, #0x86 - ldrh r0, [r0] - bl CheckFlags - cmp r0, #0 - bne _0809906C - strb r0, [r6, #0xb] - movs r0, #0x2e - ldrsh r2, [r6, r0] - ldr r1, _08099060 @ =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] - adds r1, #0x10 - subs r0, r0, r1 - asrs r0, r0, #4 - ands r0, r3 - lsls r0, r0, #6 - orrs r2, r0 - adds r5, r6, #0 - adds r5, #0x70 - strh r2, [r5] - subs r2, #0x40 - adds r7, r6, #0 - adds r7, #0x72 - strh r2, [r7] - ldrh r0, [r5] - adds r4, r6, #0 - adds r4, #0x38 - ldrb r1, [r4] - bl GetTileIndex - adds r1, r6, #0 - adds r1, #0x74 - strh r0, [r1] - ldrh r0, [r7] - ldrb r1, [r4] - bl GetTileIndex - adds r1, r6, #0 - adds r1, #0x76 - strh r0, [r1] - ldr r0, _08099064 @ =0x00004057 - ldrh r1, [r5] - ldrb r2, [r4] - bl SetTile - ldr r0, _08099068 @ =0x00004058 - ldrh r1, [r7] - ldrb r2, [r4] - bl SetTile - adds r0, r6, #0 - movs r1, #1 - bl InitializeAnimation - b _080990DC - .align 2, 0 -_08099060: .4byte gRoomControls -_08099064: .4byte 0x00004057 -_08099068: .4byte 0x00004058 -_0809906C: - movs r0, #1 - strb r0, [r6, #0xb] - movs r0, #0x2e - ldrsh r1, [r6, r0] - ldr r2, _080990E0 @ =gRoomControls - ldrh r0, [r2, #6] - adds r0, #0x10 - subs r1, r1, r0 - asrs r1, r1, #4 - movs r3, #0x3f - ands r1, r3 - movs r4, #0x32 - ldrsh r0, [r6, r4] - ldrh r2, [r2, #8] - subs r0, r0, r2 - asrs r0, r0, #4 - ands r0, r3 - lsls r0, r0, #6 - orrs r1, r0 - adds r5, r6, #0 - adds r5, #0x70 - strh r1, [r5] - subs r1, #1 - adds r7, r6, #0 - adds r7, #0x72 - strh r1, [r7] - ldrh r0, [r5] - adds r4, r6, #0 - adds r4, #0x38 - ldrb r1, [r4] - bl GetTileIndex - adds r1, r6, #0 - adds r1, #0x74 - strh r0, [r1] - ldrh r0, [r7] - ldrb r1, [r4] - bl GetTileIndex - adds r1, r6, #0 - adds r1, #0x76 - strh r0, [r1] - ldr r0, _080990E4 @ =0x00004055 - ldrh r1, [r5] - ldrb r2, [r4] - bl SetTile - ldr r0, _080990E8 @ =0x00004056 - ldrh r1, [r7] - ldrb r2, [r4] - bl SetTile - adds r0, r6, #0 - movs r1, #0 - bl InitializeAnimation -_080990DC: - pop {r4, r5, r6, r7, pc} - .align 2, 0 -_080990E0: .4byte gRoomControls -_080990E4: .4byte 0x00004055 -_080990E8: .4byte 0x00004056 - - thumb_func_start sub_080990EC -sub_080990EC: @ 0x080990EC - push {r4, r5, r6, lr} - adds r4, r0, #0 - adds r6, r4, #0 - adds r6, #0x72 - ldrh r0, [r6] - adds r5, r4, #0 - adds r5, #0x38 - ldrb r1, [r5] - bl GetTileIndex - ldr r1, _0809911C @ =0x00004059 - cmp r0, r1 - bne _08099140 - adds r1, r4, #0 - adds r1, #0x84 - ldrh r0, [r1] - subs r0, #1 - strh r0, [r1] - lsls r0, r0, #0x10 - cmp r0, #0 - bne _08099120 - movs r0, #1 - b _08099156 - .align 2, 0 -_0809911C: .4byte 0x00004059 -_08099120: - adds r0, r4, #0 - bl sub_08099158 - ldr r1, _0809913C @ =gUnk_081236E8 - ldrb r0, [r4, #0xb] - lsls r0, r0, #1 - adds r0, r0, r1 - ldrh r0, [r0] - ldrh r1, [r6] - ldrb r2, [r5] - bl SetTile - b _08099154 - .align 2, 0 -_0809913C: .4byte gUnk_081236E8 -_08099140: - adds r1, r4, #0 - adds r1, #0x84 - movs r2, #0 - movs r0, #0x3c - strh r0, [r1] - adds r0, r4, #0 - adds r0, #0x62 - strb r2, [r0] - adds r0, #1 - strb r2, [r0] -_08099154: - movs r0, #0 -_08099156: - pop {r4, r5, r6, pc} - - thumb_func_start sub_08099158 -sub_08099158: @ 0x08099158 - push {r4, lr} - adds r3, r0, #0 - ldrb r0, [r3, #0xb] - ldr r4, _08099198 @ =gUnk_081236F4 - cmp r0, #0 - bne _08099166 - ldr r4, _0809919C @ =gUnk_081236EC -_08099166: - adds r2, r3, #0 - adds r2, #0x84 - ldrh r0, [r2] - lsrs r0, r0, #2 - movs r1, #6 - ands r0, r1 - adds r4, r4, r0 - ldrb r0, [r4] - adds r1, r3, #0 - adds r1, #0x62 - strb r0, [r1] - ldrb r1, [r4, #1] - adds r0, r3, #0 - adds r0, #0x63 - strb r1, [r0] - ldrh r1, [r2] - movs r0, #3 - ands r0, r1 - cmp r0, #0 - bne _08099194 - ldr r0, _080991A0 @ =0x00000131 - bl EnqueueSFX -_08099194: - pop {r4, pc} - .align 2, 0 -_08099198: .4byte gUnk_081236F4 -_0809919C: .4byte gUnk_081236EC -_080991A0: .4byte 0x00000131 diff --git a/asm/object/hittableLever.s b/asm/object/hittableLever.s deleted file mode 100644 index 0efb82fb..00000000 --- a/asm/object/hittableLever.s +++ /dev/null @@ -1,188 +0,0 @@ - .include "asm/macros.inc" - - .include "constants/constants.inc" - - .syntax unified - - .text - - - thumb_func_start HittableLever -HittableLever: @ 0x0808A6F4 - push {lr} - adds r2, r0, #0 - adds r0, #0x3d - movs r1, #0 - ldrsb r1, [r0, r1] - cmp r1, #0 - bne _0808A706 - adds r0, #0x33 - strh r1, [r0] -_0808A706: - ldr r0, _0808A718 @ =gUnk_08121178 - ldrb r1, [r2, #0xc] - lsls r1, r1, #2 - adds r1, r1, r0 - ldr r1, [r1] - adds r0, r2, #0 - bl _call_via_r1 - pop {pc} - .align 2, 0 -_0808A718: .4byte gUnk_08121178 - - thumb_func_start sub_0808A71C -sub_0808A71C: @ 0x0808A71C - push {r4, r5, lr} - adds r4, r0, #0 - movs r5, #1 - strb r5, [r4, #0xc] - ldrb r1, [r4, #0x10] - movs r0, #0x80 - orrs r0, r1 - strb r0, [r4, #0x10] - adds r1, r4, #0 - adds r1, #0x3c - movs r0, #7 - strb r0, [r1] - adds r1, #3 - movs r0, #0x8f - strb r0, [r1] - subs r1, #4 - movs r0, #0xa - strb r0, [r1] - ldr r0, _0808A75C @ =gUnk_08121180 - str r0, [r4, #0x48] - ldrb r0, [r4, #0xa] - cmp r0, #0 - bne _0808A764 - adds r0, r4, #0 - adds r0, #0x86 - ldrh r0, [r0] - bl CheckFlags - cmp r0, #0 - beq _0808A760 - strb r5, [r4, #0xa] - b _0808A76E - .align 2, 0 -_0808A75C: .4byte gUnk_08121180 -_0808A760: - strb r0, [r4, #0xa] - b _0808A76E -_0808A764: - adds r0, r4, #0 - adds r0, #0x86 - ldrh r0, [r0] - bl SetFlag -_0808A76E: - adds r0, r4, #0 - bl sub_0808A7D8 - pop {r4, r5, pc} - .align 2, 0 - - thumb_func_start sub_0808A778 -sub_0808A778: @ 0x0808A778 - push {r4, r5, lr} - adds r5, r0, #0 - adds r0, #0x41 - ldrb r1, [r0] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - beq _0808A7D0 - adds r1, r5, #0 - adds r1, #0x70 - ldrh r0, [r1] - cmp r0, #0 - bne _0808A7D0 - movs r0, #1 - strh r0, [r1] - ldrb r0, [r5, #0xa] - movs r1, #1 - eors r0, r1 - strb r0, [r5, #0xa] - adds r1, r5, #0 - adds r1, #0x3d - movs r0, #0xe8 - strb r0, [r1] - adds r0, r5, #0 - bl sub_0808A7D8 - adds r4, r5, #0 - adds r4, #0x86 - ldrh r0, [r4] - bl CheckFlags - cmp r0, #0 - beq _0808A7C2 - ldrh r0, [r4] - bl ClearFlag - b _0808A7C8 -_0808A7C2: - ldrh r0, [r4] - bl SetFlag -_0808A7C8: - ldr r1, _0808A7D4 @ =0x00000117 - adds r0, r5, #0 - bl SoundReqClipped -_0808A7D0: - pop {r4, r5, pc} - .align 2, 0 -_0808A7D4: .4byte 0x00000117 - - thumb_func_start sub_0808A7D8 -sub_0808A7D8: @ 0x0808A7D8 - push {r4, r5, r6, lr} - adds r5, r0, #0 - ldrb r0, [r5, #0xa] - cmp r0, #0 - beq _0808A818 - movs r0, #0xde - lsls r0, r0, #2 - movs r2, #0x2e - ldrsh r1, [r5, r2] - ldr r3, _0808A814 @ =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 sub_0807B7D8 - b _0808A844 - .align 2, 0 -_0808A814: .4byte gRoomControls -_0808A818: - ldr r0, _0808A848 @ =0x00000377 - movs r2, #0x2e - ldrsh r1, [r5, r2] - ldr r3, _0808A84C @ =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 sub_0807B7D8 -_0808A844: - pop {r4, r5, r6, pc} - .align 2, 0 -_0808A848: .4byte 0x00000377 -_0808A84C: .4byte gRoomControls diff --git a/asm/object/lilypadLarge.s b/asm/object/lilypadLarge.s deleted file mode 100644 index cdc6ede6..00000000 --- a/asm/object/lilypadLarge.s +++ /dev/null @@ -1,1479 +0,0 @@ - .include "asm/macros.inc" - - .include "constants/constants.inc" - - .syntax unified - - .text - - - thumb_func_start LilypadLarge -LilypadLarge: @ 0x080854EC - push {lr} - ldr r2, _08085500 @ =gUnk_08120608 - ldrb r1, [r0, #0xc] - lsls r1, r1, #2 - adds r1, r1, r2 - ldr r1, [r1] - bl _call_via_r1 - pop {pc} - .align 2, 0 -_08085500: .4byte gUnk_08120608 - - thumb_func_start sub_08085504 -sub_08085504: @ 0x08085504 - push {r4, lr} - adds r4, r0, #0 - ldrb r0, [r4, #0xa] - cmp r0, #0xff - bne _08085520 - movs r0, #0x46 - bl GetInventoryValue - cmp r0, #0 - beq _0808551C - bl DeleteThisEntity -_0808551C: - movs r0, #0 - strb r0, [r4, #0xa] -_08085520: - ldrb r0, [r4, #0xa] - cmp r0, #0 - beq _08085552 - ldr r0, _08085540 @ =gArea - ldrb r0, [r0, #1] - cmp r0, #0x1b - beq _08085544 - ldrb r0, [r4, #0xb] - bl CheckLocalFlag - cmp r0, #0 - bne _08085552 - movs r0, #5 - strb r0, [r4, #0xc] - b _080855E2 - .align 2, 0 -_08085540: .4byte gArea -_08085544: - ldrb r0, [r4, #0xb] - bl CheckLocalFlag - cmp r0, #0 - bne _08085552 - bl DeleteThisEntity -_08085552: - ldrb r0, [r4, #0xe] - cmp r0, #0 - beq _0808556C - adds r0, r4, #0 - bl sub_080040A2 - cmp r0, #0 - bne _08085566 - bl DeleteThisEntity -_08085566: - movs r0, #0 - strb r0, [r4, #0xe] - b _0808557A -_0808556C: - adds r0, r4, #0 - bl EntityHasDuplicateID - cmp r0, #0 - beq _0808557A - bl DeleteThisEntity -_0808557A: - movs r2, #1 - strb r2, [r4, #0xc] - movs r3, #0 - movs r0, #0x80 - lsls r0, r0, #1 - strh r0, [r4, #0x24] - movs r0, #0x29 - adds r0, r0, r4 - mov ip, r0 - ldrb r1, [r0] - movs r0, #8 - rsbs r0, r0, #0 - ands r0, r1 - movs r1, #6 - orrs r0, r1 - mov r1, ip - strb r0, [r1] - ldr r0, _080855E4 @ =gUnk_08120640 - str r0, [r4, #0x48] - ldrb r1, [r4, #0x10] - movs r0, #0x80 - orrs r0, r1 - strb r0, [r4, #0x10] - adds r1, r4, #0 - adds r1, #0x3c - movs r0, #7 - strb r0, [r1] - adds r0, r4, #0 - adds r0, #0x3f - strb r2, [r0] - subs r1, #1 - movs r0, #4 - strb r0, [r1] - movs r0, #0x80 - lsls r0, r0, #0x11 - str r0, [r4, #0x78] - adds r1, #0x43 - movs r0, #0x80 - lsls r0, r0, #5 - strh r0, [r1] - adds r0, r4, #0 - adds r0, #0x85 - strb r3, [r0] - subs r0, #1 - strb r3, [r0] - adds r0, r4, #0 - movs r1, #9 - bl InitializeAnimation - adds r0, r4, #0 - bl sub_080855E8 -_080855E2: - pop {r4, pc} - .align 2, 0 -_080855E4: .4byte gUnk_08120640 - - thumb_func_start sub_080855E8 -sub_080855E8: @ 0x080855E8 - push {r4, r5, r6, r7, lr} - mov r7, r8 - push {r7} - adds r7, r0, #0 - ldrb r1, [r7, #0x10] - movs r0, #0x20 - orrs r0, r1 - strb r0, [r7, #0x10] - ldr r6, _0808564C @ =gPlayerEntity - adds r0, r7, #0 - adds r1, r6, #0 - movs r2, #0x18 - bl sub_0806FC80 - adds r1, r0, #0 - cmp r1, #0 - beq _080856EE - ldr r3, _08085650 @ =gPlayerState - ldr r0, [r3, #0x30] - movs r1, #2 - orrs r0, r1 - str r0, [r3, #0x30] - ldr r4, [r6, #0x34] - cmp r4, #0 - beq _0808561C - b _080857CE -_0808561C: - adds r5, r3, #0 - adds r5, #0x26 - ldrb r0, [r5] - cmp r0, #0 - beq _08085634 - adds r2, r6, #0 - adds r2, #0x3c - ldrb r1, [r2] - movs r0, #0xfb - ands r0, r1 - strb r0, [r2] - strb r4, [r5] -_08085634: - adds r0, r3, #0 - adds r0, #0x84 - str r7, [r0] - adds r0, r7, #0 - adds r0, #0x38 - ldrb r0, [r0] - cmp r0, #1 - bne _08085654 - adds r0, r6, #0 - bl ResetCollisionLayer - b _0808565A - .align 2, 0 -_0808564C: .4byte gPlayerEntity -_08085650: .4byte gPlayerState -_08085654: - adds r0, r6, #0 - bl sub_08004542 -_0808565A: - ldrb r0, [r7, #0xf] - cmp r0, #0 - bne _0808568C - movs r0, #4 - strb r0, [r7, #0xf] -_08085664: - adds r0, r7, #0 - movs r1, #8 - movs r2, #0xa - bl sub_080A2AF4 - ldrb r0, [r7, #0xf] - subs r0, #1 - strb r0, [r7, #0xf] - lsls r0, r0, #0x18 - lsrs r2, r0, #0x18 - cmp r2, #0 - bne _08085664 - movs r0, #1 - strb r0, [r7, #0xf] - ldrb r1, [r7, #0xe] - movs r0, #0x80 - orrs r0, r1 - strb r0, [r7, #0xe] - str r2, [r7, #0x70] - str r2, [r7, #0x6c] -_0808568C: - ldr r2, _080856B8 @ =gPlayerState - ldrb r0, [r2, #0x1c] - cmp r0, #3 - beq _08085696 - b _080857CE -_08085696: - ldr r1, _080856BC @ =gUnk_08120620 - ldrb r0, [r2, #0x1d] - subs r0, #1 - lsls r0, r0, #2 - adds r0, r0, r1 - ldr r4, [r0] - ldr r0, _080856C0 @ =gPlayerEntity - ldrb r0, [r0, #0x14] - movs r1, #6 - ands r1, r0 - cmp r1, #2 - beq _080856DE - cmp r1, #2 - bgt _080856C4 - cmp r1, #0 - beq _080856D6 - b _080857CE - .align 2, 0 -_080856B8: .4byte gPlayerState -_080856BC: .4byte gUnk_08120620 -_080856C0: .4byte gPlayerEntity -_080856C4: - cmp r1, #4 - beq _080856CE - cmp r1, #6 - beq _080856E6 - b _080857CE -_080856CE: - ldr r0, [r7, #0x70] - subs r0, r0, r4 - str r0, [r7, #0x70] - b _080857CE -_080856D6: - ldr r0, [r7, #0x70] - adds r0, r0, r4 - str r0, [r7, #0x70] - b _080857CE -_080856DE: - ldr r0, [r7, #0x6c] - subs r0, r0, r4 - str r0, [r7, #0x6c] - b _080857CE -_080856E6: - ldr r0, [r7, #0x6c] - adds r0, r0, r4 - str r0, [r7, #0x6c] - b _080857CE -_080856EE: - ldrb r0, [r7, #0xf] - cmp r0, #0 - beq _080856FC - strb r1, [r7, #0xf] - movs r0, #0x83 - bl SoundReq -_080856FC: - adds r2, r7, #0 - adds r2, #0x41 - ldrb r1, [r2] - movs r0, #0x7f - ands r0, r1 - mov r8, r2 - cmp r0, #0x13 - bne _080857C8 - movs r0, #0x2e - ldrsh r1, [r6, r0] - ldr r3, _08085758 @ =gUnk_08126EE4 - ldrb r2, [r6, #0x14] - movs r0, #0xe - ands r0, r2 - adds r0, r0, r3 - ldrb r0, [r0] - lsls r0, r0, #0x18 - asrs r0, r0, #0x18 - adds r5, r1, r0 - movs r0, #0x32 - ldrsh r1, [r6, r0] - movs r0, #1 - orrs r0, r2 - adds r0, r0, r3 - ldrb r0, [r0] - lsls r0, r0, #0x18 - asrs r0, r0, #0x18 - adds r3, r1, r0 - movs r1, #0x2e - ldrsh r0, [r7, r1] - movs r2, #0x32 - ldrsh r1, [r7, r2] - adds r2, r5, #0 - bl sub_080045D4 - strb r0, [r7, #0x15] - ldr r0, _0808575C @ =gPlayerState - ldrb r0, [r0, #0x1d] - cmp r0, #2 - beq _0808576A - cmp r0, #2 - bgt _08085760 - cmp r0, #1 - beq _08085770 - b _08085774 - .align 2, 0 -_08085758: .4byte gUnk_08126EE4 -_0808575C: .4byte gPlayerState -_08085760: - cmp r0, #3 - bne _08085774 - movs r4, #0x80 - lsls r4, r4, #3 - b _08085774 -_0808576A: - movs r4, #0xc0 - lsls r4, r4, #2 - b _08085774 -_08085770: - movs r4, #0x80 - lsls r4, r4, #2 -_08085774: - ldr r6, _080858A8 @ =gSineTable - ldrb r0, [r7, #0x15] - lsls r0, r0, #4 - adds r0, r0, r6 - movs r1, #0 - ldrsh r0, [r0, r1] - lsls r4, r4, #0x10 - asrs r4, r4, #0x18 - adds r1, r4, #0 - bl FixedMul - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - movs r5, #0x80 - lsls r5, r5, #1 - adds r1, r5, #0 - bl FixedDiv - lsls r0, r0, #0x10 - asrs r0, r0, #8 - ldr r1, [r7, #0x6c] - adds r1, r1, r0 - str r1, [r7, #0x6c] - ldrb r0, [r7, #0x15] - lsls r0, r0, #4 - adds r0, #0x80 - adds r0, r0, r6 - movs r2, #0 - ldrsh r0, [r0, r2] - adds r1, r4, #0 - bl FixedMul - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - adds r1, r5, #0 - bl FixedDiv - lsls r0, r0, #0x10 - asrs r0, r0, #8 - ldr r1, [r7, #0x70] - subs r1, r1, r0 - str r1, [r7, #0x70] -_080857C8: - movs r0, #0 - mov r1, r8 - strb r0, [r1] -_080857CE: - ldr r0, [r7, #0x2c] - str r0, [r7, #0x54] - ldr r0, [r7, #0x30] - str r0, [r7, #0x50] - ldr r0, [r7, #0x6c] - cmp r0, #0 - bne _080857E4 - ldr r0, [r7, #0x70] - cmp r0, #0 - bne _080857E4 - b _080859F4 -_080857E4: - ldr r0, [r7, #0x70] - ldr r1, _080858AC @ =0xFFFF0000 - cmp r0, r1 - blt _080857F4 - movs r1, #0x80 - lsls r1, r1, #9 - cmp r0, r1 - ble _080857F6 -_080857F4: - str r1, [r7, #0x70] -_080857F6: - ldr r0, [r7, #0x6c] - ldr r1, _080858AC @ =0xFFFF0000 - cmp r0, r1 - blt _08085806 - movs r1, #0x80 - lsls r1, r1, #9 - cmp r0, r1 - ble _08085808 -_08085806: - str r1, [r7, #0x6c] -_08085808: - ldr r0, _080858B0 @ =gRoomTransition - ldr r0, [r0] - movs r1, #0xf - ands r0, r1 - cmp r0, #0 - bne _0808581A - adds r0, r7, #0 - bl sub_080A2AD4 -_0808581A: - ldr r0, [r7, #0x2c] - ldr r1, [r7, #0x6c] - adds r5, r0, r1 - ldr r1, [r7, #0x30] - ldr r2, [r7, #0x70] - adds r3, r1, r2 - adds r2, r5, #0 - bl sub_080045D4 - strb r0, [r7, #0x15] - ldr r0, [r7, #0x6c] - lsls r0, r0, #8 - asrs r0, r0, #0x10 - movs r4, #0x80 - lsls r4, r4, #1 - adds r1, r4, #0 - bl FixedMul - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - ldr r5, _080858A8 @ =gSineTable - ldrb r1, [r7, #0x15] - lsls r1, r1, #4 - adds r1, r1, r5 - movs r2, #0 - ldrsh r1, [r1, r2] - bl FixedDiv - strh r0, [r7, #0x24] - ldr r0, [r7, #0x70] - lsls r0, r0, #8 - asrs r0, r0, #0x10 - adds r1, r4, #0 - bl FixedMul - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - ldrb r1, [r7, #0x15] - lsls r1, r1, #4 - adds r1, #0x80 - adds r1, r1, r5 - movs r2, #0 - ldrsh r1, [r1, r2] - bl FixedDiv - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - rsbs r4, r0, #0 - movs r1, #0x24 - ldrsh r0, [r7, r1] - cmp r4, r0 - ble _08085884 - strh r4, [r7, #0x24] -_08085884: - ldrb r0, [r7, #0xb] - cmp r0, #0 - beq _080858BC - adds r0, r7, #0 - adds r0, #0x7e - movs r2, #0 - ldrsh r1, [r0, r2] - ldr r0, _080858B4 @ =0x00000FFF - cmp r1, r0 - bgt _080858B8 - movs r0, #0x24 - ldrsh r1, [r7, r0] - lsls r1, r1, #0xc - ldr r0, [r7, #0x7c] - adds r0, r0, r1 - str r0, [r7, #0x7c] - b _080858E0 - .align 2, 0 -_080858A8: .4byte gSineTable -_080858AC: .4byte 0xFFFF0000 -_080858B0: .4byte gRoomTransition -_080858B4: .4byte 0x00000FFF -_080858B8: - movs r0, #0 - b _080858DE -_080858BC: - adds r0, r7, #0 - adds r0, #0x7e - movs r2, #0 - ldrsh r1, [r0, r2] - ldr r0, _080858D8 @ =0xFFFFF000 - cmp r1, r0 - ble _080858DC - movs r0, #0x24 - ldrsh r1, [r7, r0] - lsls r1, r1, #0xc - ldr r0, [r7, #0x7c] - subs r0, r0, r1 - str r0, [r7, #0x7c] - b _080858E0 - .align 2, 0 -_080858D8: .4byte 0xFFFFF000 -_080858DC: - movs r0, #1 -_080858DE: - strb r0, [r7, #0xb] -_080858E0: - adds r0, r7, #0 - bl sub_08085EFC - adds r0, r7, #0 - bl sub_080AF134 - ldr r1, [r7, #0x54] - ldr r0, [r7, #0x2c] - cmp r1, r0 - bne _0808590C - adds r0, r7, #0 - adds r0, #0x85 - ldrb r1, [r0] - adds r2, r0, #0 - cmp r1, #2 - bne _08085906 - movs r0, #0 - str r0, [r7, #0x6c] - b _08085916 -_08085906: - adds r0, r1, #1 - strb r0, [r2] - b _08085916 -_0808590C: - adds r1, r7, #0 - adds r1, #0x85 - movs r0, #0 - strb r0, [r1] - adds r2, r1, #0 -_08085916: - ldr r1, [r7, #0x50] - ldr r0, [r7, #0x30] - cmp r1, r0 - bne _0808592E - ldrb r0, [r2] - cmp r0, #2 - bne _0808592A - movs r0, #0 - str r0, [r7, #0x70] - b _08085932 -_0808592A: - adds r0, #1 - b _08085930 -_0808592E: - movs r0, #0 -_08085930: - strb r0, [r2] -_08085932: - ldr r0, _0808595C @ =gPlayerState - ldr r0, [r0, #0x30] - movs r1, #2 - ands r0, r1 - cmp r0, #0 - beq _08085944 - adds r0, r7, #0 - bl sub_08085F1C -_08085944: - ldr r1, [r7, #0x6c] - cmp r1, #0 - beq _08085998 - cmp r1, #0 - bge _0808596E - movs r0, #0x80 - rsbs r0, r0, #0 - cmp r1, r0 - ble _08085960 - movs r0, #0 - b _08085964 - .align 2, 0 -_0808595C: .4byte gPlayerState -_08085960: - adds r0, r1, #0 - adds r0, #0x80 -_08085964: - str r0, [r7, #0x6c] - ldrh r2, [r7, #0x2a] - movs r1, #0xe0 - lsls r1, r1, #4 - b _08085982 -_0808596E: - cmp r1, #0x7f - bhi _08085976 - movs r0, #0 - b _0808597A -_08085976: - adds r0, r1, #0 - subs r0, #0x80 -_0808597A: - str r0, [r7, #0x6c] - ldrh r2, [r7, #0x2a] - movs r1, #0xe0 - lsls r1, r1, #8 -_08085982: - adds r0, r1, #0 - ands r0, r2 - cmp r0, r1 - bne _08085998 - ldr r0, [r7, #0x6c] - cmp r0, #0 - bge _08085992 - adds r0, #3 -_08085992: - asrs r0, r0, #2 - rsbs r0, r0, #0 - str r0, [r7, #0x6c] -_08085998: - ldr r1, [r7, #0x70] - cmp r1, #0 - beq _080859E6 - cmp r1, #0 - bge _080859C0 - movs r0, #0x80 - rsbs r0, r0, #0 - cmp r1, r0 - ble _080859AE - movs r0, #0 - b _080859B2 -_080859AE: - adds r0, r1, #0 - adds r0, #0x80 -_080859B2: - str r0, [r7, #0x70] - ldrh r1, [r7, #0x2a] - movs r0, #0xe - ands r0, r1 - cmp r0, #0xe - bne _080859E6 - b _080859D8 -_080859C0: - cmp r1, #0x7f - bhi _080859C8 - movs r0, #0 - b _080859CC -_080859C8: - adds r0, r1, #0 - subs r0, #0x80 -_080859CC: - str r0, [r7, #0x70] - ldrh r1, [r7, #0x2a] - movs r0, #0xe0 - ands r0, r1 - cmp r0, #0xe0 - bne _080859E6 -_080859D8: - ldr r0, [r7, #0x70] - cmp r0, #0 - bge _080859E0 - adds r0, #3 -_080859E0: - asrs r0, r0, #2 - rsbs r0, r0, #0 - str r0, [r7, #0x70] -_080859E6: - adds r0, r7, #0 - bl sub_08085D28 - adds r0, r7, #0 - bl sub_08085D60 - b _08085A0A -_080859F4: - ldr r0, _08085A18 @ =gRoomTransition - ldr r0, [r0] - movs r1, #0x1f - ands r0, r1 - cmp r0, #0 - bne _08085A0A - adds r0, r7, #0 - movs r1, #8 - movs r2, #0xa - bl sub_080A2AF4 -_08085A0A: - adds r0, r7, #0 - bl sub_08085F48 - pop {r3} - mov r8, r3 - pop {r4, r5, r6, r7, pc} - .align 2, 0 -_08085A18: .4byte gRoomTransition - - thumb_func_start sub_08085A1C -sub_08085A1C: @ 0x08085A1C - push {lr} - ldr r2, _08085A3C @ =gUnk_0812062C - ldrb r1, [r0, #0xd] - lsls r1, r1, #2 - adds r1, r1, r2 - ldr r1, [r1] - bl _call_via_r1 - ldr r2, _08085A40 @ =gPlayerState - ldr r0, [r2, #0x30] - movs r1, #2 - orrs r0, r1 - str r0, [r2, #0x30] - bl sub_08078B48 - pop {pc} - .align 2, 0 -_08085A3C: .4byte gUnk_0812062C -_08085A40: .4byte gPlayerState - - thumb_func_start sub_08085A44 -sub_08085A44: @ 0x08085A44 - push {r4, lr} - adds r4, r0, #0 - movs r0, #0x80 - lsls r0, r0, #2 - strh r0, [r4, #0x24] - adds r0, r4, #0 - movs r1, #0x10 - movs r2, #0x18 - bl sub_080002B4 - cmp r0, #0x11 - beq _08085A62 - movs r0, #0x18 - strb r0, [r4, #0x15] - b _08085A82 -_08085A62: - movs r1, #0x10 - rsbs r1, r1, #0 - adds r0, r4, #0 - movs r2, #0x18 - bl sub_080002B4 - cmp r0, #0x11 - beq _08085A78 - movs r0, #8 - strb r0, [r4, #0x15] - b _08085A82 -_08085A78: - movs r0, #0x10 - strb r0, [r4, #0x15] - movs r0, #1 - strb r0, [r4, #0xd] - b _08085A94 -_08085A82: - adds r0, r4, #0 - bl sub_08085EFC - adds r0, r4, #0 - bl sub_080AF134 - adds r0, r4, #0 - bl sub_08085F1C -_08085A94: - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_08085A98 -sub_08085A98: @ 0x08085A98 - push {r4, lr} - adds r4, r0, #0 - bl sub_08085EFC - adds r0, r4, #0 - bl LinearMoveUpdate - adds r0, r4, #0 - bl sub_08085F1C - ldr r1, [r4, #0x78] - ldr r0, _08085B00 @ =0x007FFFFF - cmp r1, r0 - bls _08085ACC - ldr r2, _08085B04 @ =0xFFFE0000 - adds r0, r1, r2 - str r0, [r4, #0x78] - adds r0, r4, #0 - adds r0, #0x7a - ldrh r2, [r0] - adds r0, #4 - ldrh r3, [r0] - adds r0, r4, #0 - adds r1, r2, #0 - bl sub_0805EC9C -_08085ACC: - adds r0, r4, #0 - movs r1, #0 - movs r2, #0x18 - bl sub_080002B4 - cmp r0, #0x11 - beq _08085B34 - movs r0, #2 - strb r0, [r4, #0xd] - ldr r0, _08085B08 @ =gArea - ldrb r0, [r0, #1] - cmp r0, #0x1b - bne _08085B10 - ldrh r0, [r4, #0x32] - adds r0, #0xd0 - strh r0, [r4, #0x32] - ldr r0, _08085B0C @ =0x0000FF30 - strh r0, [r4, #0x36] - adds r1, r4, #0 - adds r1, #0x82 - movs r0, #0x46 - strh r0, [r1] - movs r0, #0x73 - bl SetLocalFlag - b _08085B22 - .align 2, 0 -_08085B00: .4byte 0x007FFFFF -_08085B04: .4byte 0xFFFE0000 -_08085B08: .4byte gArea -_08085B0C: .4byte 0x0000FF30 -_08085B10: - ldrh r0, [r4, #0x32] - adds r0, #0x40 - strh r0, [r4, #0x32] - ldr r0, _08085B38 @ =0x0000FFC0 - strh r0, [r4, #0x36] - adds r1, r4, #0 - adds r1, #0x82 - movs r0, #0xf - strh r0, [r1] -_08085B22: - adds r0, r4, #0 - movs r1, #0x2b - movs r2, #0 - movs r3, #0 - bl CreateObjectWithParent - ldr r0, _08085B3C @ =0x0000012D - bl SoundReq -_08085B34: - pop {r4, pc} - .align 2, 0 -_08085B38: .4byte 0x0000FFC0 -_08085B3C: .4byte 0x0000012D - - thumb_func_start sub_08085B40 -sub_08085B40: @ 0x08085B40 - push {r4, r5, lr} - adds r5, r0, #0 - ldr r0, [r5, #0x34] - cmp r0, #0 - beq _08085BB4 - movs r1, #0x80 - lsls r1, r1, #6 - adds r0, r5, #0 - bl GravityUpdate - cmp r0, #0 - beq _08085BE8 - ldr r1, [r5, #0x78] - ldr r0, _08085B9C @ =0x011FFFFF - cmp r1, r0 - bhi _08085B7A - movs r2, #0x80 - lsls r2, r2, #0xd - adds r0, r1, r2 - str r0, [r5, #0x78] - adds r0, r5, #0 - adds r0, #0x7a - ldrh r2, [r0] - adds r0, #4 - ldrh r3, [r0] - adds r0, r5, #0 - adds r1, r2, #0 - bl sub_0805EC9C -_08085B7A: - ldr r4, _08085BA0 @ =gPlayerEntity - ldrh r3, [r5, #0x32] - ldrh r0, [r5, #0x36] - adds r0, r3, r0 - adds r1, r5, #0 - adds r1, #0x74 - ldrh r1, [r1] - subs r2, r0, r1 - strh r2, [r4, #0x32] - ldr r0, _08085BA4 @ =gArea - ldrb r0, [r0, #1] - cmp r0, #0x1b - bne _08085BA8 - subs r0, r3, r1 - adds r1, r2, #0 - adds r1, #0xd0 - b _08085BAE - .align 2, 0 -_08085B9C: .4byte 0x011FFFFF -_08085BA0: .4byte gPlayerEntity -_08085BA4: .4byte gArea -_08085BA8: - subs r0, r3, r1 - adds r1, r2, #0 - adds r1, #0x40 -_08085BAE: - subs r0, r0, r1 - strh r0, [r4, #0x36] - b _08085BE8 -_08085BB4: - adds r0, r5, #0 - bl ResetCollisionLayer - adds r0, r5, #0 - bl sub_080002B8 - cmp r0, #0xd - bne _08085BE8 - ldr r4, _08085C50 @ =gPlayerEntity - adds r0, r4, #0 - bl ResetCollisionLayer - adds r0, r5, #0 - bl sub_08085CDC - adds r0, r4, #0 - adds r1, r5, #0 - bl GetFacingDirection - strb r0, [r5, #0x15] - movs r1, #0x80 - lsls r1, r1, #1 - ldrb r2, [r5, #0x15] - adds r0, r4, #0 - bl LinearMoveDirection -_08085BE8: - adds r1, r5, #0 - adds r1, #0x82 - ldrh r0, [r1] - cmp r0, #0 - bne _08085C54 - ldr r4, _08085C50 @ =gPlayerEntity - movs r1, #0x80 - lsls r1, r1, #6 - adds r0, r4, #0 - bl GravityUpdate - cmp r0, #0 - bne _08085C58 - adds r0, r4, #0 - bl ResetCollisionLayer - adds r0, r5, #0 - bl sub_08085F1C - movs r0, #1 - strb r0, [r5, #0xc] - movs r0, #4 - strb r0, [r5, #0xf] -_08085C16: - adds r0, r5, #0 - movs r1, #8 - movs r2, #0xa - bl sub_080A2AF4 - ldrb r0, [r5, #0xf] - subs r0, #1 - strb r0, [r5, #0xf] - lsls r0, r0, #0x18 - lsrs r2, r0, #0x18 - cmp r2, #0 - bne _08085C16 - movs r0, #1 - strb r0, [r5, #0xf] - ldrb r1, [r5, #0xe] - movs r0, #0x80 - orrs r0, r1 - strb r0, [r5, #0xe] - str r2, [r5, #0x70] - str r2, [r5, #0x6c] - adds r0, r5, #0 - bl sub_080002B8 - cmp r0, #0xd - bne _08085C58 - movs r0, #4 - strb r0, [r5, #0xc] - b _08085C58 - .align 2, 0 -_08085C50: .4byte gPlayerEntity -_08085C54: - subs r0, #1 - strh r0, [r1] -_08085C58: - pop {r4, r5, pc} - .align 2, 0 - - thumb_func_start sub_08085C5C -sub_08085C5C: @ 0x08085C5C - push {r4, r5, lr} - adds r4, r0, #0 - ldr r5, _08085CA0 @ =gPlayerEntity - adds r1, r5, #0 - movs r2, #0x18 - bl sub_0806FC80 - cmp r0, #0 - beq _08085CAE - adds r0, r4, #0 - bl LinearMoveUpdate - ldrh r0, [r4, #0x24] - strh r0, [r5, #0x24] - ldrb r0, [r4, #0x15] - strb r0, [r5, #0x15] - adds r0, r5, #0 - bl LinearMoveUpdate - ldr r2, _08085CA4 @ =gPlayerState - ldr r0, [r2, #0x30] - movs r1, #2 - orrs r0, r1 - str r0, [r2, #0x30] - adds r0, r4, #0 - adds r0, #0x38 - ldrb r0, [r0] - cmp r0, #1 - bne _08085CA8 - adds r0, r5, #0 - bl ResetCollisionLayer - b _08085CAE - .align 2, 0 -_08085CA0: .4byte gPlayerEntity -_08085CA4: .4byte gPlayerState -_08085CA8: - adds r0, r5, #0 - bl sub_08004542 -_08085CAE: - ldr r3, _08085CD4 @ =gRoomControls - ldrh r0, [r3] - cmp r0, #0 - bne _08085CD2 - ldrb r1, [r4, #0x10] - movs r0, #0xdf - ands r0, r1 - strb r0, [r4, #0x10] - movs r0, #1 - strb r0, [r4, #0xc] - ldrb r1, [r4, #0x11] - lsrs r2, r1, #4 - subs r0, #0x11 - ands r0, r1 - orrs r0, r2 - strb r0, [r4, #0x11] - ldr r0, _08085CD8 @ =gPlayerEntity - str r0, [r3, #0x30] -_08085CD2: - pop {r4, r5, pc} - .align 2, 0 -_08085CD4: .4byte gRoomControls -_08085CD8: .4byte gPlayerEntity - - thumb_func_start sub_08085CDC -sub_08085CDC: @ 0x08085CDC - push {r4, lr} - adds r4, r0, #0 - ldr r0, [r4, #0x78] - movs r1, #0x80 - lsls r1, r1, #0xd - adds r0, r0, r1 - str r0, [r4, #0x78] - ldr r1, _08085D04 @ =0x03FFFFFF - cmp r0, r1 - bhi _08085D08 - adds r0, r4, #0 - adds r0, #0x7a - ldrh r2, [r0] - adds r0, #4 - ldrh r3, [r0] - adds r0, r4, #0 - adds r1, r2, #0 - bl sub_0805EC9C - b _08085D0C - .align 2, 0 -_08085D04: .4byte 0x03FFFFFF -_08085D08: - bl DeleteThisEntity -_08085D0C: - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_08085D10 -sub_08085D10: @ 0x08085D10 - push {r4, lr} - adds r4, r0, #0 - bl EntityHasDuplicateID - cmp r0, #0 - beq _08085D26 - ldrb r0, [r4, #0xb] - bl SetLocalFlag - bl DeleteThisEntity -_08085D26: - pop {r4, pc} - - thumb_func_start sub_08085D28 -sub_08085D28: @ 0x08085D28 - push {r4, r5, lr} - adds r4, r0, #0 - ldr r1, _08085D5C @ =gPlayerState - adds r0, r1, #0 - adds r0, #0xa8 - ldrb r0, [r0] - cmp r0, #0x13 - beq _08085D5A - ldr r0, [r1, #0x30] - movs r5, #2 - ands r0, r5 - cmp r0, #0 - beq _08085D5A - adds r0, r4, #0 - movs r1, #0 - movs r2, #0x18 - bl sub_080002B4 - cmp r0, #0x11 - bne _08085D5A - movs r0, #0 - strb r5, [r4, #0xc] - strb r0, [r4, #0xd] - bl sub_08078B48 -_08085D5A: - pop {r4, r5, pc} - .align 2, 0 -_08085D5C: .4byte gPlayerState - - thumb_func_start sub_08085D60 -sub_08085D60: @ 0x08085D60 - push {r4, r5, r6, r7, lr} - mov r7, r8 - push {r7} - adds r5, r0, #0 - ldr r2, _08085D94 @ =gPlayerState - ldr r0, [r2, #0x30] - movs r1, #2 - ands r0, r1 - cmp r0, #0 - beq _08085E64 - adds r0, r2, #0 - adds r0, #0xa8 - ldrb r0, [r0] - cmp r0, #0x12 - beq _08085E64 - ldrb r0, [r2, #2] - cmp r0, #0 - bne _08085E64 - ldrb r1, [r5, #0x15] - movs r0, #7 - ands r0, r1 - cmp r0, #0 - bne _08085D98 - ldrb r6, [r5, #0x15] - adds r4, r6, #0 - b _08085DB0 - .align 2, 0 -_08085D94: .4byte gPlayerState -_08085D98: - movs r0, #0x10 - ands r0, r1 - movs r4, #8 - cmp r0, #0 - beq _08085DA4 - movs r4, #0x18 -_08085DA4: - ldrb r0, [r5, #0x15] - subs r0, #8 - movs r6, #0x10 - cmp r0, #0x10 - ble _08085DB0 - movs r6, #0 -_08085DB0: - cmp r4, #0x18 - beq _08085DB8 - cmp r4, #8 - bne _08085E20 -_08085DB8: - lsrs r3, r4, #2 - ldr r1, _08085E10 @ =gUnk_08120638 - adds r0, r3, r1 - movs r7, #0 - ldrsb r7, [r0, r7] - adds r0, r3, #1 - adds r0, r0, r1 - ldrb r0, [r0] - lsls r0, r0, #0x18 - asrs r0, r0, #0x18 - mov r8, r0 - adds r0, r5, #0 - adds r1, r7, #0 - mov r2, r8 - bl sub_080002CC - cmp r0, #0xff - bne _08085E20 - movs r1, #0x2e - ldrsh r0, [r5, r1] - ldr r2, _08085E14 @ =gRoomControls - ldrh r1, [r2, #6] - subs r0, r0, r1 - adds r0, r0, r7 - movs r3, #0x32 - ldrsh r1, [r5, r3] - ldrh r2, [r2, #8] - subs r1, r1, r2 - add r1, r8 - adds r2, r4, #0 - movs r3, #5 - bl sub_080806BC - cmp r0, #0 - bne _08085E1C - ldr r0, _08085E18 @ =gPlayerEntity - lsrs r1, r4, #3 - bl sub_0807BD14 - cmp r0, #0 - beq _08085E20 - strb r4, [r5, #0x15] - b _08085E52 - .align 2, 0 -_08085E10: .4byte gUnk_08120638 -_08085E14: .4byte gRoomControls -_08085E18: .4byte gPlayerEntity -_08085E1C: - strb r4, [r5, #0x15] - b _08085E6C -_08085E20: - cmp r6, #0 - beq _08085E28 - cmp r6, #0x10 - bne _08085E6C -_08085E28: - lsrs r3, r6, #2 - ldr r2, _08085E5C @ =gUnk_08120638 - adds r0, r3, r2 - movs r1, #0 - ldrsb r1, [r0, r1] - adds r0, r3, #1 - adds r0, r0, r2 - movs r2, #0 - ldrsb r2, [r0, r2] - adds r0, r5, #0 - bl sub_080002CC - cmp r0, #0xff - bne _08085E6C - ldr r0, _08085E60 @ =gPlayerEntity - lsrs r1, r6, #3 - bl sub_0807BD14 - cmp r0, #0 - beq _08085E6C - strb r6, [r5, #0x15] -_08085E52: - adds r0, r5, #0 - bl sub_08085E74 - b _08085E6C - .align 2, 0 -_08085E5C: .4byte gUnk_08120638 -_08085E60: .4byte gPlayerEntity -_08085E64: - ldrb r1, [r5, #0x10] - movs r0, #0xdf - ands r0, r1 - strb r0, [r5, #0x10] -_08085E6C: - pop {r3} - mov r8, r3 - pop {r4, r5, r6, r7, pc} - .align 2, 0 - - thumb_func_start sub_08085E74 -sub_08085E74: @ 0x08085E74 - push {lr} - adds r2, r0, #0 - ldrb r1, [r2, #0x10] - movs r0, #0x20 - orrs r0, r1 - strb r0, [r2, #0x10] - ldrb r1, [r2, #0x11] - movs r0, #0x10 - rsbs r0, r0, #0 - ands r0, r1 - movs r1, #6 - orrs r0, r1 - strb r0, [r2, #0x11] - movs r0, #3 - strb r0, [r2, #0xc] - ldrb r0, [r2, #0x15] - cmp r0, #8 - beq _08085EB8 - cmp r0, #8 - bgt _08085EA2 - cmp r0, #0 - beq _08085EAC - b _08085EBE -_08085EA2: - cmp r0, #0x10 - beq _08085EB2 - cmp r0, #0x18 - beq _08085EB8 - b _08085EBE -_08085EAC: - movs r0, #0x90 - lsls r0, r0, #1 - b _08085EBC -_08085EB2: - movs r0, #0x9c - lsls r0, r0, #1 - b _08085EBC -_08085EB8: - movs r0, #0x80 - lsls r0, r0, #1 -_08085EBC: - strh r0, [r2, #0x24] -_08085EBE: - movs r0, #0 - str r0, [r2, #0x70] - str r0, [r2, #0x6c] - strh r0, [r2, #0x2c] - strh r0, [r2, #0x30] - ldr r1, _08085EF0 @ =gPlayerEntity - strh r0, [r1, #0x2c] - strh r0, [r1, #0x30] - ldrb r0, [r2, #0x15] - strb r0, [r1, #0x15] - ldr r1, _08085EF4 @ =gPlayerState - movs r0, #0x80 - lsls r0, r0, #1 - strh r0, [r1, #8] - ldr r0, _08085EF8 @ =gRoomControls - str r2, [r0, #0x30] - ldr r0, [r1, #0x2c] - cmp r0, #0 - beq _08085EE8 - bl DeleteEntity -_08085EE8: - bl ResetPlayer - pop {pc} - .align 2, 0 -_08085EF0: .4byte gPlayerEntity -_08085EF4: .4byte gPlayerState -_08085EF8: .4byte gRoomControls - - thumb_func_start sub_08085EFC -sub_08085EFC: @ 0x08085EFC - ldr r3, _08085F18 @ =gPlayerEntity - ldrh r1, [r0, #0x2e] - ldrh r2, [r3, #0x2e] - subs r1, r1, r2 - adds r2, r0, #0 - adds r2, #0x76 - strh r1, [r2] - ldrh r1, [r0, #0x32] - ldrh r2, [r3, #0x32] - subs r1, r1, r2 - adds r0, #0x74 - strh r1, [r0] - bx lr - .align 2, 0 -_08085F18: .4byte gPlayerEntity - - thumb_func_start sub_08085F1C -sub_08085F1C: @ 0x08085F1C - push {lr} - adds r3, r0, #0 - ldr r2, _08085F44 @ =gPlayerEntity - adds r1, r3, #0 - adds r1, #0x76 - ldrh r0, [r3, #0x2e] - ldrh r1, [r1] - subs r0, r0, r1 - strh r0, [r2, #0x2e] - adds r1, r3, #0 - adds r1, #0x74 - ldrh r0, [r3, #0x32] - ldrh r1, [r1] - subs r0, r0, r1 - strh r0, [r2, #0x32] - ldrb r0, [r3, #0x15] - bl sub_0807A5B8 - pop {pc} - .align 2, 0 -_08085F44: .4byte gPlayerEntity - - thumb_func_start sub_08085F48 -sub_08085F48: @ 0x08085F48 - push {r4, r5, lr} - adds r4, r0, #0 - ldrb r2, [r4, #0xe] - movs r0, #0x80 - ands r0, r2 - lsls r0, r0, #0x18 - lsrs r3, r0, #0x18 - cmp r3, #0 - beq _08085F8C - ldr r5, _08085F80 @ =gPlayerState - ldrb r0, [r5, #0x12] - cmp r0, #0x17 - bne _08085F6A - bl ResetPlayerVelocity - movs r0, #0x19 - strb r0, [r5, #0x12] -_08085F6A: - movs r0, #0x83 - bl SoundReq - ldr r1, [r4, #0x78] - ldr r0, _08085F84 @ =0x0127FFFF - cmp r1, r0 - bhi _08085F88 - movs r2, #0x80 - lsls r2, r2, #0xc - b _08085FF8 - .align 2, 0 -_08085F80: .4byte gPlayerState -_08085F84: .4byte 0x0127FFFF -_08085F88: - movs r0, #0 - b _08086006 -_08085F8C: - ldr r0, _08085FAC @ =gPlayerState - ldr r1, [r0, #0x30] - movs r0, #2 - ands r1, r0 - cmp r1, #0 - beq _08085FCC - lsls r0, r2, #0x18 - cmp r0, #0 - beq _08085FB8 - ldr r1, [r4, #0x78] - ldr r0, _08085FB0 @ =0x011FFFFF - cmp r1, r0 - bhi _08085FB4 - movs r2, #0x80 - lsls r2, r2, #8 - b _08085FF8 - .align 2, 0 -_08085FAC: .4byte gPlayerState -_08085FB0: .4byte 0x011FFFFF -_08085FB4: - strb r3, [r4, #0xe] - b _08086008 -_08085FB8: - ldr r1, [r4, #0x78] - movs r0, #0x88 - lsls r0, r0, #0x11 - cmp r1, r0 - bls _08086004 - ldr r2, _08085FC8 @ =0xFFFF8000 - b _08085FF8 - .align 2, 0 -_08085FC8: .4byte 0xFFFF8000 -_08085FCC: - lsls r0, r2, #0x18 - cmp r0, #0 - beq _08085FEC - ldr r2, [r4, #0x78] - ldr r0, _08085FE4 @ =0x010FFFFF - cmp r2, r0 - bhi _08085FE8 - movs r1, #0x80 - lsls r1, r1, #7 - adds r0, r2, r1 - str r0, [r4, #0x78] - b _08086008 - .align 2, 0 -_08085FE4: .4byte 0x010FFFFF -_08085FE8: - strb r1, [r4, #0xe] - b _08086008 -_08085FEC: - ldr r1, [r4, #0x78] - movs r0, #0x83 - lsls r0, r0, #0x11 - cmp r1, r0 - bls _08086004 - ldr r2, _08086000 @ =0xFFFFC000 -_08085FF8: - adds r0, r1, r2 - str r0, [r4, #0x78] - b _08086008 - .align 2, 0 -_08086000: .4byte 0xFFFFC000 -_08086004: - movs r0, #1 -_08086006: - strb r0, [r4, #0xe] -_08086008: - adds r0, r4, #0 - adds r0, #0x7a - ldrh r2, [r0] - adds r0, #4 - ldrh r3, [r0] - adds r0, r4, #0 - adds r1, r2, #0 - bl sub_0805EC9C - pop {r4, r5, pc} diff --git a/asm/object/pullableLever.s b/asm/object/pullableLever.s deleted file mode 100644 index ac64c6b9..00000000 --- a/asm/object/pullableLever.s +++ /dev/null @@ -1,666 +0,0 @@ - .include "asm/macros.inc" - - .include "constants/constants.inc" - - .syntax unified - - .text - - - thumb_func_start PullableLever -PullableLever: @ 0x080911EC - push {r4, lr} - adds r4, r0, #0 - adds r0, #0x72 - ldrh r0, [r0] - cmp r0, #1 - beq _0809123C - cmp r0, #1 - bgt _08091202 - cmp r0, #0 - beq _08091208 - b _08091260 -_08091202: - cmp r0, #2 - beq _08091254 - b _08091260 -_08091208: - ldr r1, _08091234 @ =gUnk_08122294 - 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_0800445C - ldr r1, _08091238 @ =gUnk_02021F00 - adds r0, r4, #0 - adds r0, #0x74 - ldrb r0, [r0] - lsls r0, r0, #1 - adds r0, r0, r1 - adds r1, r4, #0 - adds r1, #0x70 - ldrh r1, [r1] - strh r1, [r0] - b _08091260 - .align 2, 0 -_08091234: .4byte gUnk_08122294 -_08091238: .4byte gUnk_02021F00 -_0809123C: - ldr r0, _08091250 @ =gUnk_081222A0 - ldrb r1, [r4, #0xc] - lsls r1, r1, #2 - adds r1, r1, r0 - ldr r1, [r1] - adds r0, r4, #0 - bl _call_via_r1 - b _08091260 - .align 2, 0 -_08091250: .4byte gUnk_081222A0 -_08091254: - ldrb r0, [r4, #0xc] - cmp r0, #0 - bne _08091260 - adds r0, r4, #0 - bl sub_08091504 -_08091260: - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_08091264 -sub_08091264: @ 0x08091264 - push {r4, r5, r6, r7, lr} - adds r6, r0, #0 - ldr r0, _080912C4 @ =gEntCount - ldrb r0, [r0] - cmp r0, #0x45 - bhi _0809132C - ldrb r1, [r6, #0xa] - ldrb r2, [r6, #0xb] - movs r0, #0x54 - bl CreateObject - adds r7, r0, #0 - ldrb r1, [r6, #0xa] - ldrb r2, [r6, #0xb] - movs r0, #0x54 - bl CreateObject - adds r1, r0, #0 - str r6, [r7, #0x50] - str r6, [r1, #0x50] - adds r0, r7, #0 - adds r0, #0x72 - movs r5, #1 - movs r4, #1 - strh r4, [r0] - adds r2, r1, #0 - adds r2, #0x72 - movs r0, #2 - strh r0, [r2] - adds r0, r6, #0 - bl CopyPosition - movs r2, #1 - strb r5, [r6, #0xc] - ldrb r1, [r6, #0x18] - movs r0, #4 - rsbs r0, r0, #0 - ands r0, r1 - orrs r0, r2 - strb r0, [r6, #0x18] - movs r0, #0x60 - strh r0, [r6, #0x24] - ldrb r0, [r6, #0xb] - ands r4, r0 - cmp r4, #0 - beq _080912CC - ldr r0, _080912C8 @ =gUnk_080FD278 - b _080912CE - .align 2, 0 -_080912C4: .4byte gEntCount -_080912C8: .4byte gUnk_080FD278 -_080912CC: - ldr r0, _08091330 @ =gUnk_080FD270 -_080912CE: - str r0, [r6, #0x48] - movs r0, #1 - strb r0, [r6, #0x16] - ldr r2, _08091334 @ =gUnk_081222A8 - ldrb r0, [r6, #0xb] - lsls r0, r0, #1 - adds r0, r0, r2 - ldrb r0, [r0] - lsls r0, r0, #0x18 - asrs r0, r0, #0x18 - ldrh r1, [r6, #0x2e] - adds r0, r0, r1 - strh r0, [r6, #0x2e] - adds r1, r6, #0 - adds r1, #0x80 - strh r0, [r1] - ldrb r0, [r6, #0xb] - lsls r0, r0, #1 - adds r0, #1 - adds r0, r0, r2 - ldrb r0, [r0] - lsls r0, r0, #0x18 - asrs r0, r0, #0x18 - ldrh r1, [r6, #0x32] - adds r0, r0, r1 - strh r0, [r6, #0x32] - adds r1, r6, #0 - adds r1, #0x82 - strh r0, [r1] - adds r0, r6, #0 - adds r1, r7, #0 - bl CopyPosition - adds r0, r6, #0 - adds r0, #0x7e - ldrb r0, [r0] - adds r1, r6, #0 - adds r1, #0x76 - strh r0, [r1] - ldrb r1, [r6, #0xe] - adds r0, r6, #0 - adds r0, #0x74 - strb r1, [r0] - ldrb r1, [r6, #0xb] - adds r0, r6, #0 - bl InitializeAnimation -_0809132C: - pop {r4, r5, r6, r7, pc} - .align 2, 0 -_08091330: .4byte gUnk_080FD270 -_08091334: .4byte gUnk_081222A8 - - thumb_func_start sub_08091338 -sub_08091338: @ 0x08091338 - push {r4, lr} - adds r4, r0, #0 - bl sub_08078930 - adds r0, r4, #0 - adds r0, #0x70 - ldrh r0, [r0] - cmp r0, #0 - beq _0809135C - ldrb r0, [r4, #0xb] - lsls r0, r0, #3 - strb r0, [r4, #0x15] - adds r0, r4, #0 - bl LinearMoveUpdate - adds r0, r4, #0 - bl sub_08091660 -_0809135C: - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_08091360 -sub_08091360: @ 0x08091360 - push {r4, lr} - adds r4, r0, #0 - bl sub_0806FBB4 - ldr r1, _0809137C @ =gUnk_081222B0 - 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 -_0809137C: .4byte gUnk_081222B0 - - thumb_func_start sub_08091380 -sub_08091380: @ 0x08091380 - push {r4, r5, r6, r7, lr} - adds r4, r0, #0 - ldr r7, _0809142C @ =gPlayerEntity - adds r0, #0x75 - ldrb r0, [r0] - cmp r0, #0 - bne _080913E0 - ldrb r0, [r4, #0xb] - lsls r2, r0, #1 - ldrb r0, [r7, #0x14] - cmp r2, r0 - bne _080913D4 - ldr r1, _08091430 @ =gUnk_081222B8 - 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 - subs r0, #0xf - cmp r0, #0x10 - bls _080913D4 - strh r6, [r7, #0x2e] - strh r5, [r7, #0x32] -_080913D4: - adds r1, r4, #0 - adds r1, #0x75 - movs r0, #1 - strb r0, [r1] - movs r0, #2 - strb r0, [r4, #0xf] -_080913E0: - ldrb r0, [r7, #0x14] - lsrs r0, r0, #1 - ldrb r3, [r4, #0xb] - cmp r0, r3 - bne _0809142A - ldr r1, _08091434 @ =gPlayerState - adds r0, r1, #0 - adds r0, #0xa8 - ldrb r0, [r0] - cmp r0, #0x1a - bne _0809142A - ldrb r1, [r1, #5] - movs r5, #2 - adds r0, r5, #0 - ands r0, r1 - cmp r0, #0 - beq _0809142A - ldr r0, _0809142C @ =gPlayerEntity - adds r0, #0x5a - ldrb r1, [r0] - adds r0, r5, #0 - ands r0, r1 - cmp r0, #0 - beq _0809142A - adds r0, r4, #0 - bl sub_0809153C - adds r1, r4, #0 - adds r1, #0x75 - ldrb r0, [r1] - cmp r0, #1 - bne _0809142A - strb r5, [r1] - movs r0, #0xcf - lsls r0, r0, #1 - bl EnqueueSFX -_0809142A: - pop {r4, r5, r6, r7, pc} - .align 2, 0 -_0809142C: .4byte gPlayerEntity -_08091430: .4byte gUnk_081222B8 -_08091434: .4byte gPlayerState - - thumb_func_start sub_08091438 -sub_08091438: @ 0x08091438 - movs r2, #0 - movs r1, #1 - strb r1, [r0, #0xc] - adds r0, #0x75 - strb r2, [r0] - bx lr - - thumb_func_start sub_08091444 -sub_08091444: @ 0x08091444 - push {r4, lr} - adds r4, r0, #0 - movs r0, #1 - strb r0, [r4, #0xc] - adds r2, r4, #0 - adds r2, #0x29 - ldrb r1, [r2] - subs r0, #9 - ands r0, r1 - movs r1, #5 - orrs r0, r1 - strb r0, [r2] - ldr r0, [r4, #0x50] - ldrb r1, [r0, #0xb] - adds r1, #8 - adds r0, r4, #0 - bl InitializeAnimation - adds r0, r4, #0 - bl UpdateSpriteForCollisionLayer - pop {r4, pc} - - thumb_func_start sub_08091470 -sub_08091470: @ 0x08091470 - push {r4, lr} - adds r2, r0, #0 - ldr r4, [r2, #0x50] - adds r3, r4, #0 - adds r3, #0x70 - ldrh r0, [r3] - cmp r0, #7 - bhi _0809148C - ldrb r1, [r2, #0x18] - movs r0, #4 - rsbs r0, r0, #0 - ands r0, r1 - strb r0, [r2, #0x18] - b _08091502 -_0809148C: - ldrb r1, [r2, #0x18] - movs r0, #4 - rsbs r0, r0, #0 - ands r0, r1 - movs r1, #1 - orrs r0, r1 - strb r0, [r2, #0x18] - ldrh r0, [r3] - adds r1, r0, #0 - subs r1, #8 - movs r0, #7 - ands r1, r0 - ldrb r3, [r2, #0xb] - cmp r3, #1 - beq _080914C8 - cmp r3, #1 - bgt _080914B4 - cmp r3, #0 - beq _080914BE - b _080914E2 -_080914B4: - cmp r3, #2 - beq _080914D0 - cmp r3, #3 - beq _080914DA - b _080914E2 -_080914BE: - ldrh r0, [r4, #0x32] - subs r0, r0, r1 - subs r0, #0x11 - strh r0, [r2, #0x32] - b _080914E2 -_080914C8: - ldrh r0, [r4, #0x2e] - adds r0, r1, r0 - adds r0, #0x11 - b _080914E0 -_080914D0: - ldrh r0, [r4, #0x32] - adds r0, r1, r0 - adds r0, #0x11 - strh r0, [r2, #0x32] - b _080914E2 -_080914DA: - ldrh r0, [r4, #0x2e] - subs r0, r0, r1 - subs r0, #0x11 -_080914E0: - strh r0, [r2, #0x2e] -_080914E2: - adds r0, r4, #0 - adds r0, #0x70 - ldrh r0, [r0] - subs r0, #8 - lsls r0, r0, #0xc - lsrs r1, r0, #0x10 - ldrb r0, [r2, #0x14] - cmp r1, r0 - beq _08091502 - strb r1, [r2, #0x14] - lsls r1, r1, #2 - adds r1, r1, r3 - adds r1, #8 - adds r0, r2, #0 - bl InitializeAnimation -_08091502: - pop {r4, pc} - - thumb_func_start sub_08091504 -sub_08091504: @ 0x08091504 - push {r4, lr} - adds r4, r0, #0 - movs r2, #1 - movs r0, #1 - strb r0, [r4, #0xc] - ldrb r1, [r4, #0x18] - subs r0, #5 - ands r0, r1 - orrs r0, r2 - strb r0, [r4, #0x18] - 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] - ldrb r1, [r4, #0xb] - adds r1, #4 - adds r0, r4, #0 - bl InitializeAnimation - adds r0, r4, #0 - bl UpdateSpriteForCollisionLayer - pop {r4, pc} - - thumb_func_start sub_0809153C -sub_0809153C: @ 0x0809153C - push {r4, r5, r6, r7, lr} - mov r7, sb - mov r6, r8 - push {r6, r7} - sub sp, #4 - adds r5, r0, #0 - ldr r6, _080915A8 @ =gPlayerEntity - ldr r1, _080915AC @ =gUnk_081222C0 - ldrb r0, [r5, #0xb] - adds r0, r0, r1 - ldrb r0, [r0] - mov r8, r0 - adds r0, r5, #0 - adds r0, #0x76 - adds r1, r5, #0 - adds r1, #0x70 - ldrh r0, [r0] - ldrh r1, [r1] - cmp r0, r1 - bls _08091656 - ldrh r4, [r6, #0x2e] - ldrh r0, [r6, #0x32] - mov sb, r0 - movs r2, #0x24 - ldrsh r1, [r5, r2] - adds r0, r6, #0 - mov r2, r8 - str r3, [sp] - bl sub_080044AE - lsls r4, r4, #0x10 - asrs r4, r4, #0x10 - ldrh r2, [r6, #0x2e] - movs r7, #0x2e - ldrsh r0, [r6, r7] - ldr r3, [sp] - cmp r4, r0 - bne _08091596 - mov r1, sb - lsls r0, r1, #0x10 - asrs r0, r0, #0x10 - movs r7, #0x32 - ldrsh r1, [r6, r7] - cmp r0, r1 - beq _08091656 -_08091596: - ldrb r0, [r5, #0xb] - cmp r0, #1 - beq _080915CA - cmp r0, #1 - bgt _080915B0 - cmp r0, #0 - beq _080915BA - b _080915E0 - .align 2, 0 -_080915A8: .4byte gPlayerEntity -_080915AC: .4byte gUnk_081222C0 -_080915B0: - cmp r0, #2 - beq _080915CE - cmp r0, #3 - beq _080915DA - b _080915E0 -_080915BA: - ldrh r1, [r6, #0x32] - mov r2, sb - lsls r0, r2, #0x10 - asrs r0, r0, #0x10 - subs r1, r1, r0 - lsls r1, r1, #0x10 - lsrs r3, r1, #0x10 - b _080915E0 -_080915CA: - subs r0, r4, r2 - b _080915DC -_080915CE: - ldrh r1, [r6, #0x32] - mov r7, sb - lsls r0, r7, #0x10 - asrs r0, r0, #0x10 - subs r0, r0, r1 - b _080915DC -_080915DA: - subs r0, r2, r4 -_080915DC: - lsls r0, r0, #0x10 - lsrs r3, r0, #0x10 -_080915E0: - lsls r2, r3, #0x18 - ldr r3, _0809163C @ =gSineTable - mov r1, r8 - lsls r0, r1, #4 - adds r0, r0, r3 - movs r7, #0 - ldrsh r0, [r0, r7] - asrs r2, r2, #0x10 - adds r1, r0, #0 - muls r1, r2, r1 - ldr r0, [r5, #0x2c] - adds r0, r0, r1 - str r0, [r5, #0x2c] - mov r1, r8 - lsls r0, r1, #4 - adds r0, #0x80 - adds r0, r0, r3 - movs r7, #0 - ldrsh r0, [r0, r7] - adds r1, r0, #0 - muls r1, r2, r1 - ldr r0, [r5, #0x30] - subs r0, r0, r1 - str r0, [r5, #0x30] - adds r0, r5, #0 - bl sub_08091660 - adds r0, r5, #0 - adds r0, #0x76 - adds r1, r5, #0 - adds r1, #0x70 - ldrh r0, [r0] - ldrh r1, [r1] - cmp r0, r1 - bhi _08091640 - movs r0, #0x86 - lsls r0, r0, #1 - bl EnqueueSFX - adds r0, r5, #0 - adds r0, #0x86 - ldrh r0, [r0] - bl SetFlag - b _08091656 - .align 2, 0 -_0809163C: .4byte gSineTable -_08091640: - ldrb r0, [r5, #0xf] - subs r0, #1 - strb r0, [r5, #0xf] - lsls r0, r0, #0x18 - cmp r0, #0 - bne _08091656 - movs r0, #0x10 - strb r0, [r5, #0xf] - adds r0, #0xff - bl EnqueueSFX -_08091656: - add sp, #4 - pop {r3, r4} - mov r8, r3 - mov sb, r4 - pop {r4, r5, r6, r7, pc} - - thumb_func_start sub_08091660 -sub_08091660: @ 0x08091660 - push {r4, r5, lr} - adds r4, r0, #0 - ldrb r0, [r4, #0xb] - cmp r0, #1 - beq _08091686 - cmp r0, #1 - bgt _08091674 - cmp r0, #0 - beq _0809167E - b _080916AA -_08091674: - cmp r0, #2 - beq _08091690 - cmp r0, #3 - beq _0809169A - b _080916AA -_0809167E: - adds r1, r4, #0 - adds r1, #0x82 - ldrh r0, [r4, #0x32] - b _080916A0 -_08091686: - adds r0, r4, #0 - adds r0, #0x80 - ldrh r0, [r0] - ldrh r1, [r4, #0x2e] - b _080916A2 -_08091690: - adds r0, r4, #0 - adds r0, #0x82 - ldrh r0, [r0] - ldrh r1, [r4, #0x32] - b _080916A2 -_0809169A: - adds r1, r4, #0 - adds r1, #0x80 - ldrh r0, [r4, #0x2e] -_080916A0: - ldrh r1, [r1] -_080916A2: - subs r0, r0, r1 - adds r1, r4, #0 - adds r1, #0x70 - strh r0, [r1] -_080916AA: - adds r5, r4, #0 - adds r5, #0x86 - ldrh r0, [r5] - bl CheckFlags - cmp r0, #0 - beq _080916C8 - adds r0, r4, #0 - adds r0, #0x70 - ldrh r0, [r0] - cmp r0, #0 - bne _080916C8 - ldrh r0, [r5] - bl ClearFlag -_080916C8: - pop {r4, r5, pc} - .align 2, 0 diff --git a/asm/object/pushableLever.s b/asm/object/pushableLever.s deleted file mode 100644 index c427d578..00000000 --- a/asm/object/pushableLever.s +++ /dev/null @@ -1,323 +0,0 @@ - .include "asm/macros.inc" - - .include "constants/constants.inc" - - .syntax unified - - .text - - - thumb_func_start PushableLever -PushableLever: @ 0x08098260 - push {lr} - ldr r2, _08098274 @ =gUnk_08123494 - ldrb r1, [r0, #0xc] - lsls r1, r1, #2 - adds r1, r1, r2 - ldr r1, [r1] - bl _call_via_r1 - pop {pc} - .align 2, 0 -_08098274: .4byte gUnk_08123494 - - thumb_func_start sub_08098278 -sub_08098278: @ 0x08098278 - push {lr} - adds r3, r0, #0 - adds r3, #0x29 - ldrb r2, [r3] - movs r1, #8 - rsbs r1, r1, #0 - ands r1, r2 - movs r2, #5 - orrs r1, r2 - strb r1, [r3] - bl sub_08098340 - pop {pc} - .align 2, 0 - - thumb_func_start sub_08098294 -sub_08098294: @ 0x08098294 - push {r4, r5, lr} - adds r4, r0, #0 - bl sub_08098418 - cmp r0, #0 - beq _080982FA - movs r5, #0 - movs r0, #2 - strb r0, [r4, #0xc] - adds r0, r4, #0 - adds r0, #0x62 - strb r5, [r0] - adds r0, #1 - strb r5, [r0] - adds r0, #0xf - ldrh r0, [r0] - adds r1, r4, #0 - adds r1, #0x70 - ldrh r1, [r1] - adds r2, r4, #0 - adds r2, #0x38 - ldrb r2, [r2] - bl SetTile - movs r0, #0xb5 - lsls r0, r0, #1 - bl EnqueueSFX - adds r0, r4, #0 - movs r1, #0x1e - bl RequestPriorityDuration - bl sub_08079F8C - cmp r0, #0 - beq _080982FA - ldr r2, _080982FC @ =gPlayerState - movs r0, #0x90 - strb r0, [r2, #6] - movs r0, #5 - strb r0, [r2, #0xc] - ldr r0, [r2, #0x30] - movs r1, #1 - orrs r0, r1 - str r0, [r2, #0x30] - ldr r1, _08098300 @ =gPlayerEntity - strh r5, [r1, #0x2c] - strh r5, [r1, #0x30] - ldrb r0, [r1, #0x14] - lsls r0, r0, #2 - strb r0, [r1, #0x15] -_080982FA: - pop {r4, r5, pc} - .align 2, 0 -_080982FC: .4byte gPlayerState -_08098300: .4byte gPlayerEntity - - thumb_func_start sub_08098304 -sub_08098304: @ 0x08098304 - 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 _0809833C - ldrb r0, [r4, #0xb] - cmp r0, #0 - bne _0809832C - adds r0, r4, #0 - adds r0, #0x86 - ldrh r0, [r0] - bl SetFlag - b _08098336 -_0809832C: - adds r0, r4, #0 - adds r0, #0x86 - ldrh r0, [r0] - bl ClearFlag -_08098336: - adds r0, r4, #0 - bl sub_08098340 -_0809833C: - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_08098340 -sub_08098340: @ 0x08098340 - push {lr} - movs r1, #1 - strb r1, [r0, #0xc] - adds r2, r0, #0 - adds r2, #0x74 - movs r1, #0x3c - strh r1, [r2] - bl sub_08098354 - pop {pc} - - thumb_func_start sub_08098354 -sub_08098354: @ 0x08098354 - push {r4, r5, r6, lr} - adds r6, r0, #0 - adds r0, #0x86 - ldrh r0, [r0] - bl CheckFlags - cmp r0, #0 - bne _080983BC - strb r0, [r6, #0xb] - movs r0, #0x2e - ldrsh r2, [r6, r0] - ldr r1, _080983B4 @ =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] - adds r1, #0x10 - subs r0, r0, r1 - asrs r0, r0, #4 - ands r0, r3 - lsls r0, r0, #6 - orrs r2, r0 - adds r4, r6, #0 - adds r4, #0x70 - strh r2, [r4] - ldrh r0, [r4] - adds r5, r6, #0 - adds r5, #0x38 - ldrb r1, [r5] - bl GetTileIndex - adds r1, r6, #0 - adds r1, #0x72 - strh r0, [r1] - ldr r0, _080983B8 @ =0x00004053 - ldrh r1, [r4] - ldrb r2, [r5] - bl SetTile - adds r0, r6, #0 - movs r1, #1 - bl InitializeAnimation - b _0809840C - .align 2, 0 -_080983B4: .4byte gRoomControls -_080983B8: .4byte 0x00004053 -_080983BC: - movs r0, #1 - strb r0, [r6, #0xb] - movs r0, #0x2e - ldrsh r2, [r6, r0] - ldr r1, _08098410 @ =gRoomControls - ldrh r0, [r1, #6] - adds r0, #0x10 - 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 - adds r4, r6, #0 - adds r4, #0x70 - strh r2, [r4] - ldrh r0, [r4] - adds r5, r6, #0 - adds r5, #0x38 - ldrb r1, [r5] - bl GetTileIndex - adds r1, r6, #0 - adds r1, #0x72 - strh r0, [r1] - ldr r0, _08098414 @ =0x00004052 - ldrh r1, [r4] - ldrb r2, [r5] - bl SetTile - adds r0, r6, #0 - movs r1, #0 - bl InitializeAnimation -_0809840C: - pop {r4, r5, r6, pc} - .align 2, 0 -_08098410: .4byte gRoomControls -_08098414: .4byte 0x00004052 - - thumb_func_start sub_08098418 -sub_08098418: @ 0x08098418 - push {r4, r5, r6, lr} - adds r4, r0, #0 - adds r6, r4, #0 - adds r6, #0x70 - ldrh r0, [r6] - adds r5, r4, #0 - adds r5, #0x38 - ldrb r1, [r5] - bl GetTileIndex - ldr r1, _08098448 @ =0x00004054 - cmp r0, r1 - bne _0809846C - adds r1, r4, #0 - adds r1, #0x74 - ldrh r0, [r1] - subs r0, #1 - strh r0, [r1] - lsls r0, r0, #0x10 - cmp r0, #0 - bne _0809844C - movs r0, #1 - b _08098482 - .align 2, 0 -_08098448: .4byte 0x00004054 -_0809844C: - adds r0, r4, #0 - bl sub_08098484 - ldr r1, _08098468 @ =gUnk_081234A0 - ldrb r0, [r4, #0xb] - lsls r0, r0, #1 - adds r0, r0, r1 - ldrh r0, [r0] - ldrh r1, [r6] - ldrb r2, [r5] - bl SetTile - b _08098480 - .align 2, 0 -_08098468: .4byte gUnk_081234A0 -_0809846C: - adds r1, r4, #0 - adds r1, #0x74 - movs r2, #0 - movs r0, #0x3c - strh r0, [r1] - adds r0, r4, #0 - adds r0, #0x62 - strb r2, [r0] - adds r0, #1 - strb r2, [r0] -_08098480: - movs r0, #0 -_08098482: - pop {r4, r5, r6, pc} - - thumb_func_start sub_08098484 -sub_08098484: @ 0x08098484 - push {r4, lr} - adds r3, r0, #0 - ldrb r0, [r3, #0xb] - ldr r4, _080984C4 @ =gUnk_081234AC - cmp r0, #0 - bne _08098492 - ldr r4, _080984C8 @ =gUnk_081234A4 -_08098492: - adds r2, r3, #0 - adds r2, #0x74 - ldrh r0, [r2] - lsrs r0, r0, #2 - movs r1, #6 - ands r0, r1 - adds r4, r4, r0 - ldrb r0, [r4] - adds r1, r3, #0 - adds r1, #0x62 - strb r0, [r1] - ldrb r1, [r4, #1] - adds r0, r3, #0 - adds r0, #0x63 - strb r1, [r0] - ldrh r1, [r2] - movs r0, #3 - ands r0, r1 - cmp r0, #0 - bne _080984C2 - movs r0, #0x82 - lsls r0, r0, #1 - bl EnqueueSFX -_080984C2: - pop {r4, pc} - .align 2, 0 -_080984C4: .4byte gUnk_081234AC -_080984C8: .4byte gUnk_081234A4 diff --git a/data/const/enemy/bombarossa.s b/data/const/enemy/bombarossa.s deleted file mode 100644 index d721bc55..00000000 --- a/data/const/enemy/bombarossa.s +++ /dev/null @@ -1,5 +0,0 @@ - .include "asm/macros.inc" - .include "constants/constants.inc" - - .section .rodata - .align 2 diff --git a/data/const/object/bigPushableLever.s b/data/const/object/bigPushableLever.s deleted file mode 100644 index 51139f8a..00000000 --- a/data/const/object/bigPushableLever.s +++ /dev/null @@ -1,19 +0,0 @@ - .include "asm/macros.inc" - .include "constants/constants.inc" - - .section .rodata - .align 2 - -gUnk_081236DC:: @ 081236DC - .4byte sub_08098EF8 - .4byte sub_08098F14 - .4byte sub_08098F90 - -gUnk_081236E8:: @ 081236E8 - .incbin "bigPushableLever/gUnk_081236E8.bin" - -gUnk_081236EC:: @ 081236EC - .incbin "bigPushableLever/gUnk_081236EC.bin" - -gUnk_081236F4:: @ 081236F4 - .incbin "bigPushableLever/gUnk_081236F4.bin" diff --git a/data/const/object/hittableLever.s b/data/const/object/hittableLever.s deleted file mode 100644 index 2eb08f28..00000000 --- a/data/const/object/hittableLever.s +++ /dev/null @@ -1,12 +0,0 @@ - .include "asm/macros.inc" - .include "constants/constants.inc" - - .section .rodata - .align 2 - -gUnk_08121178:: @ 08121178 - .4byte sub_0808A71C - .4byte sub_0808A778 - -gUnk_08121180:: @ 08121180 - .incbin "hittableLever/gUnk_08121180.bin" diff --git a/data/const/object/pullableLever.s b/data/const/object/pullableLever.s deleted file mode 100644 index da94c059..00000000 --- a/data/const/object/pullableLever.s +++ /dev/null @@ -1,27 +0,0 @@ - .include "asm/macros.inc" - .include "constants/constants.inc" - - .section .rodata - .align 2 - -gUnk_08122294:: @ 08122294 - .4byte sub_08091264 - .4byte sub_08091338 - .4byte sub_08091360 - -gUnk_081222A0:: @ 081222A0 - .4byte sub_08091444 - .4byte sub_08091470 - -gUnk_081222A8:: @ 081222A8 - .incbin "pullableLever/gUnk_081222A8.bin" - -gUnk_081222B0:: @ 081222B0 - .4byte sub_08091380 - .4byte sub_08091438 - -gUnk_081222B8:: @ 081222B8 - .incbin "pullableLever/gUnk_081222B8.bin" - -gUnk_081222C0:: @ 081222C0 - .incbin "pullableLever/gUnk_081222C0.bin" diff --git a/data/const/object/pushableLever.s b/data/const/object/pushableLever.s deleted file mode 100644 index 1b8fca63..00000000 --- a/data/const/object/pushableLever.s +++ /dev/null @@ -1,19 +0,0 @@ - .include "asm/macros.inc" - .include "constants/constants.inc" - - .section .rodata - .align 2 - -gUnk_08123494:: @ 08123494 - .4byte sub_08098278 - .4byte sub_08098294 - .4byte sub_08098304 - -gUnk_081234A0:: @ 081234A0 - .incbin "pushableLever/gUnk_081234A0.bin" - -gUnk_081234A4:: @ 081234A4 - .incbin "pushableLever/gUnk_081234A4.bin" - -gUnk_081234AC:: @ 081234AC - .incbin "pushableLever/gUnk_081234AC.bin" diff --git a/include/object.h b/include/object.h index 0be01661..4b3fb61c 100644 --- a/include/object.h +++ b/include/object.h @@ -357,7 +357,7 @@ void PicoBloom(Entity*); void Board(Entity*); void Object81(Entity*); void BigVortex(Entity*); -void BigPushableLever(Entity*); +void BigPushableLever(); void SmallIceBlock(Entity*); void BigIceBlock(Entity*); void Object86(Entity*); diff --git a/linker.ld b/linker.ld index f0cd008d..715fc763 100644 --- a/linker.ld +++ b/linker.ld @@ -777,7 +777,7 @@ SECTIONS { asm/object/board.o(.text); asm/object/object81.o(.text); src/object/bigVortex.o(.text); - asm/object/bigPushableLever.o(.text); + src/object/bigPushableLever.o(.text); asm/object/smallIceBlock.o(.text); asm/object/bigIceBlock.o(.text); src/object/object86.o(.text); @@ -1521,7 +1521,7 @@ SECTIONS { data/const/object/object81.o(.rodata); data/const/object/bigVortex.o(.rodata); data/animations/object/bigVortex.o(.rodata); - data/const/object/bigPushableLever.o(.rodata); + src/object/bigPushableLever.o(.rodata); data/animations/object/bigPushableLever.o(.rodata); data/const/object/smallIceBlock.o(.rodata); data/animations/object/smallIceBlock.o(.rodata); diff --git a/src/object/bigPushableLever.c b/src/object/bigPushableLever.c new file mode 100644 index 00000000..71f10a90 --- /dev/null +++ b/src/object/bigPushableLever.c @@ -0,0 +1,155 @@ +/** + * @file bigPushableLever.c + * @ingroup Objects + * + * @brief Big Pushable Lever object + */ + +#define NENT_DEPRECATED +#include "global.h" +#include "object.h" +#include "functions.h" + +typedef struct { + /*0x00*/ Entity base; + /*0x68*/ u8 unk_68[8]; + /*0x70*/ u16 tilePositionUpper; + /*0x72*/ u16 tilePositionLower; + /*0x74*/ u16 tileIndexUpper; + /*0x76*/ u16 tileIndexLower; + /*0x78*/ u8 unk_78[12]; + /*0x84*/ u16 timer; + /*0x86*/ u16 pushedFlag; +} BigPushableLeverEntity; + +enum BigPushableLeverAction { + INIT, + IDLE, + PUSHING, +}; + +extern void (*const BigPushableLever_Actions[])(BigPushableLeverEntity*); +extern const u16 gUnk_081236E8[]; +extern const u8 BigPushableLever_InitialOffsets[]; +extern const u8 BigPushableLever_PushedOffsets[]; + +void BigPushableLever_SetIdle(BigPushableLeverEntity*); +bool32 BigPushableLever_ShouldStartPushing(BigPushableLeverEntity*); +void BigPushableLever_SetTiles(BigPushableLeverEntity*); +void BigPushableLever_CalculateSpriteOffsets(BigPushableLeverEntity*); + +#define TILE_INITIAL 0x4058 +#define TILE_PUSHED 0x4056 + +void BigPushableLever(BigPushableLeverEntity* this) { + BigPushableLever_Actions[super->action](this); +} + +void BigPushableLever_Init(BigPushableLeverEntity* this) { + super->spritePriority.b0 = 5; + BigPushableLever_SetIdle(this); +} + +void BigPushableLever_Idle(BigPushableLeverEntity* this) { + if (BigPushableLever_ShouldStartPushing(this)) { + super->action = PUSHING; + SetTile(this->tileIndexUpper, this->tilePositionUpper, super->collisionLayer); + SetTile(this->tileIndexLower, this->tilePositionLower, super->collisionLayer); + EnqueueSFX(SFX_132); + RequestPriorityDuration(super, 0x1e); + if (sub_08079F8C()) { + gPlayerState.pushedObject = 0x98; + gPlayerState.queued_action = 5; + gPlayerState.flags |= 1; + gPlayerEntity.x.HALF.LO = 0; + gPlayerEntity.y.HALF.LO = 0; + gPlayerEntity.direction = gPlayerEntity.animationState << 2; + } + } +} + +void BigPushableLever_Pushing(BigPushableLeverEntity* this) { + GetNextFrame(super); + if ((super->frame & 0x80) != 0) { + if (super->type2 == 0) { + SetFlag(this->pushedFlag); + } else { + ClearFlag(this->pushedFlag); + } + BigPushableLever_SetIdle(this); + } +} + +void BigPushableLever_SetIdle(BigPushableLeverEntity* this) { + super->action = IDLE; + this->timer = 0x3c; + BigPushableLever_SetTiles(this); +} + +void BigPushableLever_SetTiles(BigPushableLeverEntity* this) { + if (!CheckFlags(this->pushedFlag)) { + super->type2 = 0; + this->tilePositionUpper = COORD_TO_TILE_OFFSET(super, 0, 0x10); + this->tilePositionLower = this->tilePositionUpper - 0x40; + this->tileIndexUpper = GetTileIndex(this->tilePositionUpper, super->collisionLayer); + this->tileIndexLower = GetTileIndex(this->tilePositionLower, super->collisionLayer); + SetTile(0x4057, this->tilePositionUpper, super->collisionLayer); + SetTile(0x4058, this->tilePositionLower, super->collisionLayer); + InitializeAnimation(super, 1); + } else { + super->type2 = 1; + this->tilePositionUpper = COORD_TO_TILE_OFFSET(super, 0x10, 0); + this->tilePositionLower = this->tilePositionUpper - 1; + this->tileIndexUpper = GetTileIndex(this->tilePositionUpper, super->collisionLayer); + this->tileIndexLower = GetTileIndex(this->tilePositionLower, super->collisionLayer); + SetTile(0x4055, this->tilePositionUpper, super->collisionLayer); + SetTile(0x4056, this->tilePositionLower, super->collisionLayer); + InitializeAnimation(super, 0); + } +} + +bool32 BigPushableLever_ShouldStartPushing(BigPushableLeverEntity* this) { + if (GetTileIndex(this->tilePositionLower, super->collisionLayer) == 0x4059) { + if (--this->timer == 0) { + return TRUE; + } + BigPushableLever_CalculateSpriteOffsets(this); + SetTile(gUnk_081236E8[super->type2], this->tilePositionLower, super->collisionLayer); + } else { + this->timer = 0x3c; + super->spriteOffsetX = 0; + super->spriteOffsetY = 0; + } + return FALSE; +} + +void BigPushableLever_CalculateSpriteOffsets(BigPushableLeverEntity* this) { + const u8* offsets; + if (super->type2 == 0) { + offsets = BigPushableLever_InitialOffsets; + } else { + offsets = BigPushableLever_PushedOffsets; + } + offsets = &offsets[this->timer >> 2 & 6]; + super->spriteOffsetX = offsets[0]; + super->spriteOffsetY = offsets[1]; + if ((this->timer & 3) == 0) { + EnqueueSFX(SFX_131); + } +} + +void (*const BigPushableLever_Actions[])(BigPushableLeverEntity*) = { + BigPushableLever_Init, + BigPushableLever_Idle, + BigPushableLever_Pushing, +}; +const u16 gUnk_081236E8[] = { + TILE_INITIAL, + TILE_PUSHED, +}; +const u8 BigPushableLever_InitialOffsets[] = { + 0, 0, 0, 0, 255, 0, 0, 0, +}; +const u8 BigPushableLever_PushedOffsets[] = { + 0, 0, 0, 0, 0, 255, 0, 0, +}; diff --git a/src/object/hittableLever.c b/src/object/hittableLever.c index c7c1022c..6dc52e8d 100644 --- a/src/object/hittableLever.c +++ b/src/object/hittableLever.c @@ -19,7 +19,7 @@ typedef struct { } HittableLeverEntity; extern void (*const HittableLever_Actions[])(HittableLeverEntity*); -extern const Hitbox gUnk_08121180; +extern const Hitbox HittableLever_Hitbox; void HittableLever_UpdateTile(HittableLeverEntity*); @@ -36,7 +36,7 @@ void HittableLever_Init(HittableLeverEntity* this) { super->field_0x3c = 7; super->hitType = 0x8f; super->flags2 = 0xa; - super->hitbox = (Hitbox*)&gUnk_08121180; + super->hitbox = (Hitbox*)&HittableLever_Hitbox; if (super->type == 0) { if (CheckFlags(this->hitFlag)) { super->type = 1; @@ -76,4 +76,4 @@ void (*const HittableLever_Actions[])(HittableLeverEntity*) = { HittableLever_Init, HittableLever_Idle, }; -const Hitbox gUnk_08121180 = { 0, 1, { 0, 0, 0, 0 }, 4, 3 }; +const Hitbox HittableLever_Hitbox = { 0, 1, { 0, 0, 0, 0 }, 4, 3 };