diff options
| author | octorock <79596758+octorock@users.noreply.github.com> | 2022-02-26 14:40:57 +0100 |
|---|---|---|
| committer | octorock <79596758+octorock@users.noreply.github.com> | 2022-02-26 14:40:57 +0100 |
| commit | dcb6360b4e6e42acaa5643557fef956782e2f646 (patch) | |
| tree | 03f3eef5c6d3620d2c991027b3aab7de989367bd /asm/object | |
| parent | abe6053a4f3dcaa511035baba764609464eadc46 (diff) | |
Decompile Beanstalk
Diffstat (limited to 'asm/object')
| -rw-r--r-- | asm/object/beanstalk.s | 1183 |
1 files changed, 0 insertions, 1183 deletions
diff --git a/asm/object/beanstalk.s b/asm/object/beanstalk.s deleted file mode 100644 index 6f25ea98..00000000 --- a/asm/object/beanstalk.s +++ /dev/null @@ -1,1183 +0,0 @@ - .include "asm/macros.inc" - - .include "constants/constants.inc" - - .syntax unified - - .text - - - thumb_func_start Beanstalk -Beanstalk: @ 0x08089D04 - push {lr} - ldr r2, _08089D18 @ =gUnk_08120DF4 - ldrb r1, [r0, #0xc] - lsls r1, r1, #2 - adds r1, r1, r2 - ldr r1, [r1] - bl _call_via_r1 - pop {pc} - .align 2, 0 -_08089D18: .4byte gUnk_08120DF4 - - thumb_func_start sub_08089D1C -sub_08089D1C: @ 0x08089D1C -.ifdef EU - push {r4, r5, r6, lr} - adds r5, r0, #0 - ldrb r1, [r5, #0x19] - movs r4, #0x3f - adds r0, r4, #0 - ands r0, r1 - movs r6, #0x80 - orrs r0, r6 - strb r0, [r5, #0x19] - ldrb r1, [r5, #0x1b] - adds r0, r4, #0 - ands r0, r1 - movs r1, #0x40 - orrs r0, r1 - strb r0, [r5, #0x1b] - adds r0, r5, #0 - movs r1, #4 - bl SetDefaultPriority - ldrb r0, [r5, #0xa] - cmp r0, #7 - bne _08089688 - ldrb r0, [r5, #0xb] - cmp r0, #0 - bne _0808966C - ldrb r0, [r5, #0xe] - cmp r0, #0 - beq _0808966C - bl CheckLocalFlag - cmp r0, #0 - bne _08089662 - b _080897FE -_08089662: - ldrb r1, [r5, #0x1b] - adds r0, r4, #0 - ands r0, r1 - orrs r0, r6 - strb r0, [r5, #0x1b] -_0808966C: - ldr r4, _08089684 @ =gUnk_08120E3C - ldrb r0, [r5, #0xb] - lsls r0, r0, #2 - adds r0, r0, r4 - ldrb r1, [r0] - adds r0, r5, #0 - bl InitializeAnimation - ldrb r0, [r5, #0xb] - lsls r0, r0, #2 - adds r0, r0, r4 - b _080896C6 - .align 2, 0 -_08089684: .4byte gUnk_08120E3C -_08089688: - cmp r0, #0 - beq _080896A4 - ldr r0, _080896A0 @ =gUnk_08120E14 - ldrb r1, [r5, #0xa] - lsls r1, r1, #2 - adds r1, r1, r0 - ldrb r1, [r1] - adds r0, r5, #0 - bl InitializeAnimation - b _080896BE - .align 2, 0 -_080896A0: .4byte gUnk_08120E14 -_080896A4: - adds r0, r5, #0 - movs r1, #1 - movs r2, #2 - bl LoadSwapGFX - ldr r0, _08089700 @ =gUnk_08120E14 - ldrb r1, [r5, #0xa] - lsls r1, r1, #2 - adds r1, r1, r0 - ldrb r1, [r1] - adds r0, r5, #0 - bl InitAnimationForceUpdate -_080896BE: - ldr r1, _08089700 @ =gUnk_08120E14 - ldrb r0, [r5, #0xa] - lsls r0, r0, #2 - adds r0, r0, r1 -_080896C6: - ldrb r0, [r0, #1] - adds r3, r5, #0 - adds r3, #0x29 - movs r1, #7 - ands r1, r0 - ldrb r2, [r3] - movs r0, #8 - rsbs r0, r0, #0 - ands r0, r2 - orrs r0, r1 - strb r0, [r3] - movs r2, #1 - movs r0, #1 - strb r0, [r5, #0xc] - ldrb r1, [r5, #0x18] - subs r0, #5 - ands r0, r1 - orrs r0, r2 - strb r0, [r5, #0x18] - ldrb r0, [r5, #0xa] - cmp r0, #1 - bge _080896F4 - b _080897F8 -_080896F4: - cmp r0, #6 - ble _08089704 - cmp r0, #7 - beq _08089714 - b _080897F8 - .align 2, 0 -_08089700: .4byte gUnk_08120E14 -_08089704: - adds r0, r5, #0 - adds r0, #0x60 - movs r2, #0 - movs r1, #0xe0 - lsls r1, r1, #1 - strh r1, [r0] - strb r2, [r5, #0xe] - b _080897F8 -_08089714: - ldrb r1, [r5, #0xb] - cmp r1, #3 - bgt _08089724 - cmp r1, #2 - bge _080897E4 - cmp r1, #0 - beq _0808972A - b _080897F8 -_08089724: - cmp r1, #4 - beq _080897F0 - b _080897F8 -_0808972A: - movs r0, #0x10 - str r0, [r5, #0x6c] - strb r1, [r5, #0xe] -_08089730: - movs r0, #0x2c - movs r1, #7 - movs r2, #1 - bl CreateObject - adds r1, r0, #0 - str r1, [r5, #0x54] - cmp r1, #0 - beq _080897C0 - ldrh r0, [r5, #0x2e] - strh r0, [r1, #0x2e] - ldr r2, [r5, #0x54] - ldr r1, [r5, #0x6c] - ldrh r0, [r5, #0x32] - subs r0, r0, r1 - strh r0, [r2, #0x32] - movs r0, #3 - strb r0, [r5, #0xf] -_08089754: - ldrb r0, [r5, #0xe] - lsls r0, r0, #2 - ldr r1, _080897DC @ =gUnk_08120DFC - adds r4, r0, r1 - ldrb r2, [r4] - subs r2, #2 - movs r0, #0x2c - movs r1, #7 - bl CreateObject - adds r1, r0, #0 - str r1, [r5, #0x54] - cmp r1, #0 - beq _080897A2 - movs r0, #1 - ldrsb r0, [r4, r0] - ldrh r2, [r5, #0x2e] - adds r0, r0, r2 - strh r0, [r1, #0x2e] - ldr r2, [r5, #0x54] - ldr r1, [r5, #0x6c] - ldrh r0, [r5, #0x32] - subs r0, r0, r1 - movs r1, #2 - ldrsb r1, [r4, r1] - subs r0, r0, r1 - strh r0, [r2, #0x32] - ldr r3, [r5, #0x54] - ldrb r2, [r4, #3] - movs r0, #1 - ands r2, r0 - lsls r2, r2, #6 - ldrb r0, [r3, #0x18] - movs r4, #0x41 - rsbs r4, r4, #0 - adds r1, r4, #0 - ands r0, r1 - orrs r0, r2 - strb r0, [r3, #0x18] -_080897A2: - ldrb r0, [r5, #0xe] - adds r2, r0, #1 - strb r2, [r5, #0xe] - ldrb r0, [r5, #0xf] - subs r0, #1 - strb r0, [r5, #0xf] - lsls r0, r0, #0x18 - lsrs r1, r0, #0x18 - cmp r1, #0 - bne _08089754 - lsls r0, r2, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #5 - bls _080897C0 - strb r1, [r5, #0xe] -_080897C0: - ldr r0, [r5, #0x6c] - adds r0, #0x38 - str r0, [r5, #0x6c] - ldrh r1, [r5, #0x32] - subs r1, r1, r0 - lsls r1, r1, #0x10 - asrs r1, r1, #0x10 - ldr r0, _080897E0 @ =gRoomControls - ldrh r0, [r0, #8] - cmp r1, r0 - bge _08089730 - movs r0, #1 - strb r0, [r5, #0xe] - b _080897F8 - .align 2, 0 -_080897DC: .4byte gUnk_08120DFC -_080897E0: .4byte gRoomControls -_080897E4: - ldrb r0, [r5, #0x19] - movs r1, #0x3f - ands r1, r0 - movs r0, #0x40 - orrs r1, r0 - strb r1, [r5, #0x19] -_080897F0: - adds r1, r5, #0 - adds r1, #0x38 - movs r0, #3 - strb r0, [r1] -_080897F8: - adds r0, r5, #0 - bl sub_08089F08 -_080897FE: - pop {r4, r5, r6, pc} -.else - push {r4, r5, r6, lr} - adds r5, r0, #0 - ldrb r1, [r5, #0x19] - movs r4, #0x3f - adds r0, r4, #0 - ands r0, r1 - movs r6, #0x80 - orrs r0, r6 - strb r0, [r5, #0x19] - ldrb r1, [r5, #0x1b] - adds r0, r4, #0 - ands r0, r1 - movs r1, #0x40 - orrs r0, r1 - strb r0, [r5, #0x1b] - adds r0, r5, #0 - movs r1, #4 - bl SetDefaultPriority - ldrb r0, [r5, #0xa] - cmp r0, #7 - bne _08089D90 - ldrb r1, [r5, #0x10] - movs r0, #1 - ands r0, r1 - cmp r0, #0 - bne _08089D54 - b _08089F06 -_08089D54: - ldrb r0, [r5, #0xb] - cmp r0, #0 - bne _08089D74 - ldrb r0, [r5, #0xe] - cmp r0, #0 - beq _08089D74 - bl CheckLocalFlag - cmp r0, #0 - bne _08089D6A - b _08089F06 -_08089D6A: - ldrb r1, [r5, #0x1b] - adds r0, r4, #0 - ands r0, r1 - orrs r0, r6 - strb r0, [r5, #0x1b] -_08089D74: - ldr r4, _08089D8C @ =gUnk_08120E3C - ldrb r0, [r5, #0xb] - lsls r0, r0, #2 - adds r0, r0, r4 - ldrb r1, [r0] - adds r0, r5, #0 - bl InitializeAnimation - ldrb r0, [r5, #0xb] - lsls r0, r0, #2 - adds r0, r0, r4 - b _08089DCE - .align 2, 0 -_08089D8C: .4byte gUnk_08120E3C -_08089D90: - cmp r0, #0 - beq _08089DAC - ldr r0, _08089DA8 @ =gUnk_08120E14 - ldrb r1, [r5, #0xa] - lsls r1, r1, #2 - adds r1, r1, r0 - ldrb r1, [r1] - adds r0, r5, #0 - bl InitializeAnimation - b _08089DC6 - .align 2, 0 -_08089DA8: .4byte gUnk_08120E14 -_08089DAC: - adds r0, r5, #0 - movs r1, #1 - movs r2, #2 - bl LoadSwapGFX - ldr r0, _08089E08 @ =gUnk_08120E14 - ldrb r1, [r5, #0xa] - lsls r1, r1, #2 - adds r1, r1, r0 - ldrb r1, [r1] - adds r0, r5, #0 - bl InitAnimationForceUpdate -_08089DC6: - ldr r1, _08089E08 @ =gUnk_08120E14 - ldrb r0, [r5, #0xa] - lsls r0, r0, #2 - adds r0, r0, r1 -_08089DCE: - ldrb r0, [r0, #1] - adds r3, r5, #0 - adds r3, #0x29 - movs r1, #7 - ands r1, r0 - ldrb r2, [r3] - movs r0, #8 - rsbs r0, r0, #0 - ands r0, r2 - orrs r0, r1 - strb r0, [r3] - movs r2, #1 - movs r0, #1 - strb r0, [r5, #0xc] - ldrb r1, [r5, #0x18] - subs r0, #5 - ands r0, r1 - orrs r0, r2 - strb r0, [r5, #0x18] - ldrb r0, [r5, #0xa] - cmp r0, #1 - bge _08089DFC - b _08089F00 -_08089DFC: - cmp r0, #6 - ble _08089E0C - cmp r0, #7 - beq _08089E1C - b _08089F00 - .align 2, 0 -_08089E08: .4byte gUnk_08120E14 -_08089E0C: - adds r0, r5, #0 - adds r0, #0x60 - movs r2, #0 - movs r1, #0xe0 - lsls r1, r1, #1 - strh r1, [r0] - strb r2, [r5, #0xe] - b _08089F00 -_08089E1C: - ldrb r1, [r5, #0xb] - cmp r1, #3 - bgt _08089E2C - cmp r1, #2 - bge _08089EEC - cmp r1, #0 - beq _08089E32 - b _08089F00 -_08089E2C: - cmp r1, #4 - beq _08089EF8 - b _08089F00 -_08089E32: - movs r0, #0x10 - str r0, [r5, #0x6c] - strb r1, [r5, #0xe] -_08089E38: - movs r0, #0x2c - movs r1, #7 - movs r2, #1 - bl CreateObject - adds r1, r0, #0 - str r1, [r5, #0x54] - cmp r1, #0 - beq _08089EC8 - ldrh r0, [r5, #0x2e] - strh r0, [r1, #0x2e] - ldr r2, [r5, #0x54] - ldr r1, [r5, #0x6c] - ldrh r0, [r5, #0x32] - subs r0, r0, r1 - strh r0, [r2, #0x32] - movs r0, #3 - strb r0, [r5, #0xf] -_08089E5C: - ldrb r0, [r5, #0xe] - lsls r0, r0, #2 - ldr r1, _08089EE4 @ =gUnk_08120DFC - adds r4, r0, r1 - ldrb r2, [r4] - subs r2, #2 - movs r0, #0x2c - movs r1, #7 - bl CreateObject - adds r1, r0, #0 - str r1, [r5, #0x54] - cmp r1, #0 - beq _08089EAA - movs r0, #1 - ldrsb r0, [r4, r0] - ldrh r2, [r5, #0x2e] - adds r0, r0, r2 - strh r0, [r1, #0x2e] - ldr r2, [r5, #0x54] - ldr r1, [r5, #0x6c] - ldrh r0, [r5, #0x32] - subs r0, r0, r1 - movs r1, #2 - ldrsb r1, [r4, r1] - subs r0, r0, r1 - strh r0, [r2, #0x32] - ldr r3, [r5, #0x54] - ldrb r2, [r4, #3] - movs r0, #1 - ands r2, r0 - lsls r2, r2, #6 - ldrb r0, [r3, #0x18] - movs r4, #0x41 - rsbs r4, r4, #0 - adds r1, r4, #0 - ands r0, r1 - orrs r0, r2 - strb r0, [r3, #0x18] -_08089EAA: - ldrb r0, [r5, #0xe] - adds r2, r0, #1 - strb r2, [r5, #0xe] - ldrb r0, [r5, #0xf] - subs r0, #1 - strb r0, [r5, #0xf] - lsls r0, r0, #0x18 - lsrs r1, r0, #0x18 - cmp r1, #0 - bne _08089E5C - lsls r0, r2, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #5 - bls _08089EC8 - strb r1, [r5, #0xe] -_08089EC8: - ldr r0, [r5, #0x6c] - adds r0, #0x38 - str r0, [r5, #0x6c] - ldrh r1, [r5, #0x32] - subs r1, r1, r0 - lsls r1, r1, #0x10 - asrs r1, r1, #0x10 - ldr r0, _08089EE8 @ =gRoomControls - ldrh r0, [r0, #8] - cmp r1, r0 - bge _08089E38 - movs r0, #1 - strb r0, [r5, #0xe] - b _08089F00 - .align 2, 0 -_08089EE4: .4byte gUnk_08120DFC -_08089EE8: .4byte gRoomControls -_08089EEC: - ldrb r0, [r5, #0x19] - movs r1, #0x3f - ands r1, r0 - movs r0, #0x40 - orrs r1, r0 - strb r1, [r5, #0x19] -_08089EF8: - adds r1, r5, #0 - adds r1, #0x38 - movs r0, #3 - strb r0, [r1] -_08089F00: - adds r0, r5, #0 - bl sub_08089F08 -_08089F06: - pop {r4, r5, r6, pc} -.endif - - thumb_func_start sub_08089F08 -sub_08089F08: @ 0x08089F08 - push {lr} - ldr r2, _08089F1C @ =gUnk_08120E50 - ldrb r1, [r0, #0xa] - lsls r1, r1, #2 - adds r1, r1, r2 - ldr r1, [r1] - bl _call_via_r1 - pop {pc} - .align 2, 0 -_08089F1C: .4byte gUnk_08120E50 - - thumb_func_start sub_08089F20 -sub_08089F20: @ 0x08089F20 - push {lr} - ldr r2, _08089F34 @ =gUnk_08120E78 - ldrb r1, [r0, #0xd] - lsls r1, r1, #2 - adds r1, r1, r2 - ldr r1, [r1] - bl _call_via_r1 - pop {pc} - .align 2, 0 -_08089F34: .4byte gUnk_08120E78 - - thumb_func_start sub_08089F38 -sub_08089F38: @ 0x08089F38 - push {r4, lr} - adds r4, r0, #0 - bl UpdateAnimationSingleFrame - adds r0, r4, #0 - adds r0, #0x5a - ldrb r1, [r0] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - beq _08089F6C - ldrb r0, [r4, #0xe] - cmp r0, #1 - bhi _08089F5A - adds r0, #1 - strb r0, [r4, #0xe] - b _08089F6C -_08089F5A: - adds r0, r4, #0 - movs r1, #1 - bl InitAnimationForceUpdate - movs r0, #0x10 - strb r0, [r4, #0xe] - ldrb r0, [r4, #0xd] - adds r0, #1 - strb r0, [r4, #0xd] -_08089F6C: - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_08089F70 -sub_08089F70: @ 0x08089F70 - push {r4, lr} - adds r4, r0, #0 - ldrb r0, [r4, #0xe] - subs r0, #1 - strb r0, [r4, #0xe] - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #0xff - bne _08089F8E - movs r0, #0x10 - strb r0, [r4, #0xe] - movs r0, #0xcc - lsls r0, r0, #1 - bl SoundReq -_08089F8E: - 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 _08089FEC - movs r0, #0x2c - movs r1, #1 - movs r2, #0 - bl CreateObject - adds r1, r0, #0 - str r1, [r4, #0x54] - cmp r1, #0 - beq _08089FBE - ldrh r0, [r4, #0x2e] - strh r0, [r1, #0x2e] - ldr r1, [r4, #0x54] - ldrh r0, [r4, #0x32] - strh r0, [r1, #0x32] -_08089FBE: - movs r0, #0x2c - movs r1, #2 - movs r2, #0 - bl CreateObject - adds r1, r0, #0 - str r1, [r4, #0x54] - cmp r1, #0 - beq _08089FDC - ldrh r0, [r4, #0x2e] - strh r0, [r1, #0x2e] - ldr r1, [r4, #0x54] - ldrh r0, [r4, #0x32] - subs r0, #0x10 - strh r0, [r1, #0x32] -_08089FDC: - ldrb r0, [r4, #0x18] - movs r1, #4 - rsbs r1, r1, #0 - ands r1, r0 - strb r1, [r4, #0x18] - ldrb r0, [r4, #0xd] - adds r0, #1 - strb r0, [r4, #0xd] -_08089FEC: - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_08089FF0 -sub_08089FF0: @ 0x08089FF0 - push {lr} - adds r1, r0, #0 - ldrb r0, [r1, #0xe] - subs r0, #1 - strb r0, [r1, #0xe] - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #0xff - bne _0808A00E - movs r0, #0x10 - strb r0, [r1, #0xe] - movs r0, #0xcc - lsls r0, r0, #1 - bl SoundReq -_0808A00E: - pop {pc} - - thumb_func_start sub_0808A010 -sub_0808A010: @ 0x0808A010 - push {r4, r5, lr} - adds r4, r0, #0 - bl GetNextFrame - adds r0, r4, #0 - adds r0, #0x5a - ldrb r1, [r0] - movs r0, #1 - ands r0, r1 - cmp r0, #0 - beq _0808A07E - ldrb r0, [r4, #0xe] - lsls r0, r0, #2 - ldr r1, _0808A0BC @ =gUnk_08120DFC - adds r5, r0, r1 - ldrb r1, [r5] - movs r0, #0x2c - movs r2, #0 - bl CreateObject - adds r1, r0, #0 - str r1, [r4, #0x54] - cmp r1, #0 - beq _0808A06C - movs r0, #1 - ldrsb r0, [r5, r0] - ldrh r2, [r4, #0x2e] - adds r0, r0, r2 - strh r0, [r1, #0x2e] - ldr r2, [r4, #0x54] - movs r1, #2 - ldrsb r1, [r5, r1] - ldrh r0, [r4, #0x32] - subs r0, r0, r1 - strh r0, [r2, #0x32] - ldr r3, [r4, #0x54] - ldrb r1, [r5, #3] - movs r0, #1 - ands r1, r0 - lsls r1, r1, #6 - ldrb r2, [r3, #0x18] - movs r0, #0x41 - rsbs r0, r0, #0 - ands r0, r2 - orrs r0, r1 - strb r0, [r3, #0x18] -_0808A06C: - ldrb r0, [r4, #0xe] - adds r0, #1 - strb r0, [r4, #0xe] - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #5 - bls _0808A07E - movs r0, #0 - strb r0, [r4, #0xe] -_0808A07E: - adds r0, r4, #0 - adds r0, #0x5a - ldrb r1, [r0] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - beq _0808A0BA - movs r0, #0x2c - movs r1, #3 - movs r2, #0 - bl CreateObject - adds r1, r0, #0 - str r1, [r4, #0x54] - cmp r1, #0 - beq _0808A0A8 - ldrh r0, [r4, #0x2e] - strh r0, [r1, #0x2e] - ldr r1, [r4, #0x54] - ldrh r0, [r4, #0x32] - strh r0, [r1, #0x32] -_0808A0A8: - ldrh r0, [r4, #0x32] - subs r0, #0x38 - strh r0, [r4, #0x32] - lsls r0, r0, #0x10 - cmp r0, #0 - bge _0808A0BA - adds r0, r4, #0 - bl DeleteEntity -_0808A0BA: - pop {r4, r5, pc} - .align 2, 0 -_0808A0BC: .4byte gUnk_08120DFC - - thumb_func_start sub_0808A0C0 -sub_0808A0C0: @ 0x0808A0C0 - push {lr} - adds r2, r0, #0 - adds r0, #0x5a - ldrb r1, [r0] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - bne _0808A0D6 - adds r0, r2, #0 - bl GetNextFrame -_0808A0D6: - pop {pc} - - thumb_func_start nullsub_517 -nullsub_517: @ 0x0808A0D8 - bx lr - .align 2, 0 - - thumb_func_start sub_0808A0DC -sub_0808A0DC: @ 0x0808A0DC - push {r4, r5, r6, r7, lr} - mov r7, r8 - push {r7} - adds r5, r0, #0 - ldrb r0, [r5, #0xb] - cmp r0, #1 - bne _0808A0EC - b _0808A202 -_0808A0EC: - cmp r0, #1 - bgt _0808A0F6 - cmp r0, #0 - beq _0808A120 - b _0808A202 -_0808A0F6: - cmp r0, #4 - ble _0808A0FC - b _0808A202 -_0808A0FC: - ldr r0, _0808A118 @ =gPlayerState - ldrb r0, [r0, #0x12] - cmp r0, #0x1e - bne _0808A1DA - ldr r1, _0808A11C @ =gPlayerEntity - adds r0, r5, #0 - movs r2, #0 - movs r3, #8 - bl EntityInRectRadius - cmp r0, #0 - beq _0808A1DC - b _0808A1B0 - .align 2, 0 -_0808A118: .4byte gPlayerState -_0808A11C: .4byte gPlayerEntity -_0808A120: - ldrb r0, [r5, #0xe] - cmp r0, #0 - beq _0808A202 - ldr r4, _0808A1A8 @ =gRoomControls - ldrh r0, [r4, #8] - str r0, [r5, #0x6c] - movs r2, #0x2e - ldrsh r1, [r5, r2] - ldrh r2, [r4, #6] - subs r1, r1, r2 - asrs r1, r1, #4 - movs r3, #0x3f - ands r1, r3 - ldrh r2, [r4, #8] - subs r0, r0, r2 - lsrs r0, r0, #4 - ands r0, r3 - lsls r0, r0, #6 - orrs r1, r0 - adds r0, r5, #0 - adds r0, #0x70 - strh r1, [r0] - adds r6, r4, #0 - mov r8, r3 - adds r4, r0, #0 - ldr r7, _0808A1AC @ =0x00004017 -_0808A154: - movs r0, #0x2e - ldrsh r1, [r5, r0] - ldrh r0, [r6, #6] - subs r1, r1, r0 - asrs r1, r1, #4 - mov r2, r8 - ands r1, r2 - ldrh r2, [r6, #8] - ldr r0, [r5, #0x6c] - subs r0, r0, r2 - lsrs r0, r0, #4 - mov r2, r8 - ands r0, r2 - lsls r0, r0, #6 - orrs r1, r0 - strh r1, [r4] - ldrh r1, [r4] - adds r0, r7, #0 - movs r2, #2 - bl SetTile - ldrh r1, [r4] - adds r0, r7, #0 - movs r2, #1 - bl SetTile - ldr r0, [r5, #0x6c] - adds r2, r0, #0 - adds r2, #0x10 - str r2, [r5, #0x6c] - ldrh r0, [r6, #8] - ldrh r1, [r6, #0x20] - adds r0, r0, r1 - cmp r2, r0 - bhs _0808A1A2 - movs r1, #0x32 - ldrsh r0, [r5, r1] - cmp r2, r0 - bls _0808A154 -_0808A1A2: - movs r0, #0 - strb r0, [r5, #0xe] - b _0808A202 - .align 2, 0 -_0808A1A8: .4byte gRoomControls -_0808A1AC: .4byte 0x00004017 -_0808A1B0: - adds r3, r5, #0 - adds r3, #0x58 - ldrb r2, [r3] - ldrb r1, [r5, #0xb] - subs r1, #1 - lsls r0, r1, #1 - adds r0, r0, r1 - adds r0, #1 - cmp r2, r0 - bne _0808A1DE - ldrb r0, [r5, #0xe] - cmp r0, #0 - bne _0808A1DE - movs r0, #1 - strb r0, [r5, #0xe] - ldrb r1, [r3] - adds r1, #1 - adds r0, r5, #0 - bl InitializeAnimation - b _0808A1DE -_0808A1DA: - movs r0, #0 -_0808A1DC: - strb r0, [r5, #0xe] -_0808A1DE: - adds r0, r5, #0 - bl GetNextFrame - adds r0, r5, #0 - adds r0, #0x5a - ldrb r1, [r0] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - beq _0808A202 - ldrb r0, [r5, #0xb] - subs r0, #1 - lsls r1, r0, #1 - adds r1, r1, r0 - adds r1, #1 - adds r0, r5, #0 - bl InitializeAnimation -_0808A202: - pop {r3} - mov r8, r3 - pop {r4, r5, r6, r7, pc} - - thumb_func_start sub_0808A208 -sub_0808A208: @ 0x0808A208 - push {lr} - ldr r2, _0808A21C @ =gUnk_08120E84 - ldrb r1, [r0, #0xd] - lsls r1, r1, #2 - adds r1, r1, r2 - ldr r1, [r1] - bl _call_via_r1 - pop {pc} - .align 2, 0 -_0808A21C: .4byte gUnk_08120E84 - - thumb_func_start sub_0808A220 -sub_0808A220: @ 0x0808A220 - push {r4, r5, r6, r7, lr} - adds r4, r0, #0 - ldrb r1, [r4, #0x1b] - movs r6, #0x3f - adds r0, r6, #0 - ands r0, r1 - movs r5, #0x80 - orrs r0, r5 - strb r0, [r4, #0x1b] - movs r0, #0x2e - ldrsh r1, [r4, r0] - ldr r2, _0808A2E4 @ =gRoomControls - ldrh r0, [r2, #6] - subs r1, r1, r0 - asrs r1, r1, #4 - movs r3, #0x3f - ands r1, r3 - movs r7, #0x32 - ldrsh r0, [r4, r7] - ldrh r2, [r2, #8] - subs r0, r0, r2 - asrs r0, r0, #4 - ands r0, r3 - lsls r0, r0, #6 - orrs r1, r0 - adds r2, r4, #0 - adds r2, #0x70 - strh r1, [r2] - ldr r0, _0808A2E8 @ =0x00004017 - ldrh r1, [r2] - movs r2, #1 - bl SetTile - movs r7, #1 - strb r7, [r4, #0xd] - adds r0, r4, #0 - movs r1, #0x15 - movs r2, #0 - movs r3, #0 - bl CreateObjectWithParent - adds r3, r0, #0 - cmp r3, #0 - beq _0808A2D4 - ldrh r0, [r4, #0x32] - adds r0, #0x38 - strh r0, [r3, #0x32] - ldrh r0, [r4, #0x12] - strh r0, [r3, #0x12] - adds r0, r4, #0 - adds r0, #0x60 - ldrh r1, [r0] - adds r0, r3, #0 - adds r0, #0x60 - strh r1, [r0] - ldrb r1, [r4, #0x1a] - lsls r1, r1, #0x1c - lsrs r1, r1, #0x1c - ldrb r2, [r3, #0x1a] - movs r0, #0x10 - rsbs r0, r0, #0 - ands r0, r2 - orrs r0, r1 - strb r0, [r3, #0x1a] - adds r1, r3, #0 - adds r1, #0x58 - movs r0, #2 - strb r0, [r1] - movs r0, #0x80 - strb r0, [r3, #0xe] - strb r7, [r3, #0xa] - ldrb r1, [r3, #0x19] - adds r0, r6, #0 - ands r0, r1 - orrs r0, r5 - strb r0, [r3, #0x19] - adds r2, r3, #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, [r3, #0x1b] - adds r0, r6, #0 - ands r0, r1 - orrs r0, r5 - strb r0, [r3, #0x1b] -_0808A2D4: - adds r0, r4, #0 - movs r1, #0x2c - movs r2, #9 - movs r3, #0 - bl CreateObjectWithParent - pop {r4, r5, r6, r7, pc} - .align 2, 0 -_0808A2E4: .4byte gRoomControls -_0808A2E8: .4byte 0x00004017 - - thumb_func_start nullsub_518 -nullsub_518: @ 0x0808A2EC - bx lr - .align 2, 0 - - thumb_func_start sub_0808A2F0 -sub_0808A2F0: @ 0x0808A2F0 - push {r4, r5, r6, r7, lr} - adds r5, r0, #0 - ldrb r0, [r5, #0xd] - cmp r0, #0 - bne _0808A316 - movs r0, #1 - strb r0, [r5, #0xd] - ldrh r0, [r5, #0x32] - adds r0, #0x28 - strh r0, [r5, #0x32] - movs r2, #0x18 - rsbs r2, r2, #0 - adds r0, r5, #0 - movs r1, #0 - bl sub_0800029C - adds r1, r5, #0 - adds r1, #0x72 - strh r0, [r1] -_0808A316: - ldr r3, _0808A38C @ =gPlayerEntity - ldrb r1, [r3, #0x1b] - lsrs r1, r1, #6 - lsls r1, r1, #6 - ldrb r2, [r5, #0x1b] - movs r7, #0x3f - adds r0, r7, #0 - ands r0, r2 - orrs r0, r1 - strb r0, [r5, #0x1b] - ldrb r1, [r3, #0x19] - lsrs r1, r1, #6 - lsls r1, r1, #6 - ldrb r2, [r5, #0x19] - adds r0, r7, #0 - ands r0, r2 - orrs r0, r1 - strb r0, [r5, #0x19] - ldr r0, _0808A390 @ =gPlayerState - ldrb r0, [r0, #0x12] - cmp r0, #0x1e - bne _0808A39C - adds r2, r5, #0 - adds r2, #0x29 - ldrb r1, [r2] - movs r0, #8 - rsbs r0, r0, #0 - ands r0, r1 - strb r0, [r2] - movs r2, #0x18 - rsbs r2, r2, #0 - adds r0, r5, #0 - movs r1, #0 - bl sub_0800029C - ldr r3, _0808A394 @ =0x00004014 - cmp r0, r3 - beq _0808A3EC - movs r0, #0x2e - ldrsh r1, [r5, r0] - ldr r2, _0808A398 @ =gRoomControls - ldrh r0, [r2, #6] - subs r1, r1, r0 - asrs r1, r1, #4 - ands r1, r7 - movs r4, #0x32 - ldrsh r0, [r5, r4] - ldrh r2, [r2, #8] - adds r2, #0x18 - subs r0, r0, r2 - asrs r0, r0, #4 - ands r0, r7 - lsls r0, r0, #6 - orrs r1, r0 - adds r0, r3, #0 - movs r2, #1 - bl SetTile - b _0808A3EC - .align 2, 0 -_0808A38C: .4byte gPlayerEntity -_0808A390: .4byte gPlayerState -_0808A394: .4byte 0x00004014 -_0808A398: .4byte gRoomControls -_0808A39C: - adds r2, r5, #0 - adds r2, #0x29 - ldrb r1, [r2] - movs r0, #8 - rsbs r0, r0, #0 - ands r0, r1 - movs r1, #5 - orrs r0, r1 - strb r0, [r2] - adds r6, r5, #0 - adds r6, #0x72 - ldrh r4, [r6] - movs r2, #0x18 - rsbs r2, r2, #0 - adds r0, r5, #0 - movs r1, #0 - bl sub_0800029C - cmp r4, r0 - beq _0808A3EC - ldrh r0, [r6] - movs r2, #0x2e - ldrsh r1, [r5, r2] - ldr r3, _0808A3F0 @ =gRoomControls - ldrh r2, [r3, #6] - subs r1, r1, r2 - asrs r1, r1, #4 - ands r1, r7 - movs r4, #0x32 - ldrsh r2, [r5, r4] - ldrh r3, [r3, #8] - adds r3, #0x18 - subs r2, r2, r3 - asrs r2, r2, #4 - ands r2, r7 - lsls r2, r2, #6 - orrs r1, r2 - movs r2, #1 - bl SetTile -_0808A3EC: - pop {r4, r5, r6, r7, pc} - .align 2, 0 -_0808A3F0: .4byte gRoomControls |
