diff --git a/asm/beanstalkSubtask.s b/asm/beanstalkSubtask.s index 06ac16bb..8086e86e 100644 --- a/asm/beanstalkSubtask.s +++ b/asm/beanstalkSubtask.s @@ -3261,8 +3261,8 @@ _0801AF10: pop {r4, pc} .align 2, 0 - thumb_func_start sub_0801AF18 -sub_0801AF18: @ 0x0801AF18 + thumb_func_start SetMultipleTiles +SetMultipleTiles: @ 0x0801AF18 push {r4, r5, r6, r7, lr} adds r4, r0, #0 adds r6, r1, #0 diff --git a/asm/non_matching/object12/Object12_Action2.inc b/asm/non_matching/object12/Object12_Action2.inc new file mode 100644 index 00000000..77e17507 --- /dev/null +++ b/asm/non_matching/object12/Object12_Action2.inc @@ -0,0 +1,70 @@ + .syntax unified + push {r4, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xe] + subs r0, #1 + strb r0, [r4, #0xe] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _080850A6 + movs r0, #3 + strb r0, [r4, #0xc] + movs r0, #0x1e + strb r0, [r4, #0xe] + adds r1, r4, #0 + adds r1, #0x63 + movs r0, #4 + strb r0, [r1] + ldr r0, _080850A8 @ =gScreen + mov ip, r0 + ldrh r1, [r0] + movs r2, #0x80 + lsls r2, r2, #6 + adds r0, r2, #0 + orrs r0, r1 + mov r1, ip + strh r0, [r1] + adds r1, #0x60 + movs r0, #0x1f + strh r0, [r1] + adds r1, #2 + movs r0, #0xf + strh r0, [r1] + movs r2, #0x2e + ldrsh r0, [r4, r2] + ldr r3, _080850AC @ =gRoomControls + movs r2, #0xa + ldrsh r1, [r3, r2] + subs r0, r0, r1 + adds r1, r0, #0 + subs r1, #0x18 + movs r2, #0xff + ands r1, r2 + lsls r1, r1, #8 + adds r0, #0x18 + ands r0, r2 + orrs r1, r0 + mov r0, ip + adds r0, #0x58 + strh r1, [r0] + movs r1, #0x32 + ldrsh r0, [r4, r1] + movs r4, #0xc + ldrsh r1, [r3, r4] + subs r0, r0, r1 + adds r1, r0, #0 + subs r1, #0x18 + ands r1, r2 + lsls r1, r1, #8 + adds r0, #0x18 + ands r0, r2 + orrs r1, r0 + mov r0, ip + adds r0, #0x5c + strh r1, [r0] +_080850A6: + pop {r4, pc} + .align 2, 0 +_080850A8: .4byte gScreen +_080850AC: .4byte gRoomControls + .syntax divided diff --git a/asm/non_matching/object1E/sub_08087528.inc b/asm/non_matching/object1E/sub_08087528.inc new file mode 100644 index 00000000..7f6d7cdd --- /dev/null +++ b/asm/non_matching/object1E/sub_08087528.inc @@ -0,0 +1,107 @@ + .syntax unified + push {r4, lr} + adds r4, r0, #0 + movs r0, #1 + strb r0, [r4, #0xc] + ldr r0, _08087590 @ =gPlayerEntity + ldrb r0, [r0, #0x14] + lsrs r0, r0, #1 + strb r0, [r4, #0x14] + ldrb r1, [r4, #0x19] + movs r2, #0x3f + adds r0, r2, #0 + ands r0, r1 + movs r1, #0x80 + orrs r0, r1 + strb r0, [r4, #0x19] + adds r3, r4, #0 + adds r3, #0x29 + ldrb r1, [r3] + movs r0, #8 + rsbs r0, r0, #0 + ands r0, r1 + movs r1, #3 + orrs r0, r1 + strb r0, [r3] + ldrb r1, [r4, #0x1b] + lsrs r0, r1, #6 + subs r0, #1 + lsls r0, r0, #6 + ands r2, r1 + orrs r2, r0 + strb r2, [r4, #0x1b] + ldrb r0, [r4, #0xb] + cmp r0, #0 + beq _08087594 + ldrb r1, [r4, #0x1a] + movs r0, #0x10 + rsbs r0, r0, #0 + ands r0, r1 + movs r1, #1 + orrs r0, r1 + strb r0, [r4, #0x1a] + ldrb r0, [r4, #0x14] + cmp r0, #1 + bne _08087588 + ldrb r0, [r4, #0x18] + movs r1, #0x40 + orrs r0, r1 + strb r0, [r4, #0x18] +_08087588: + adds r0, r4, #0 + bl sub_08087640 + b _080875DC + .align 2, 0 +_08087590: .4byte gPlayerEntity +_08087594: + ldr r0, _080875B4 @ =gArea + ldrb r0, [r0, #1] + movs r1, #4 + cmp r0, #0x10 + bne _080875A2 + movs r1, #0xb5 + lsls r1, r1, #1 +_080875A2: + adds r0, r4, #0 + bl ChangeObjPalette + ldrb r0, [r4, #0x14] + cmp r0, #1 + beq _080875B8 + cmp r0, #3 + bne _080875CE + b _080875C0 + .align 2, 0 +_080875B4: .4byte gArea +_080875B8: + ldrb r0, [r4, #0x18] + movs r1, #0x40 + orrs r0, r1 + strb r0, [r4, #0x18] +_080875C0: + ldrb r0, [r4, #0xa] + cmp r0, #0x40 + bne _080875DC + ldrh r0, [r4, #0x32] + adds r0, #4 + strh r0, [r4, #0x32] + b _080875DC +_080875CE: + ldrb r0, [r4, #0xa] + cmp r0, #0x40 + bne _080875DC + ldrb r0, [r4, #0x18] + movs r1, #0x40 + orrs r0, r1 + strb r0, [r4, #0x18] +_080875DC: + adds r0, r4, #0 + movs r1, #3 + bl SetDefaultPriority + ldrb r1, [r4, #0xb] + lsls r1, r1, #2 + ldrb r0, [r4, #0x14] + adds r1, r1, r0 + adds r0, r4, #0 + bl InitializeAnimation + pop {r4, pc} + .syntax divided diff --git a/asm/non_matching/object20/sub_080878CC.inc b/asm/non_matching/object20/sub_080878CC.inc new file mode 100644 index 00000000..fb452339 --- /dev/null +++ b/asm/non_matching/object20/sub_080878CC.inc @@ -0,0 +1,104 @@ + .syntax unified + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + sub sp, #0x10 + adds r7, r0, #0 + movs r1, #0x2e + ldrsh r0, [r7, r1] + str r0, [sp] + movs r0, #0x32 + ldrsh r2, [r7, r0] + str r2, [sp, #4] + adds r0, r7, #0 + adds r0, #0x38 + ldrb r0, [r0] + mov r8, r0 + movs r0, #0x10 + rsbs r0, r0, #0 + mov r1, r8 + lsls r1, r1, #0x18 + str r1, [sp, #8] +_080878F8: + movs r2, #0x10 + rsbs r2, r2, #0 + mov sb, r2 + ldr r1, [sp] + adds r1, r1, r0 + mov sl, r1 + adds r0, #0x10 + str r0, [sp, #0xc] + mov r6, sl +_0808790A: + ldr r2, _0808795C @ =gRoomControls + ldrh r0, [r2, #6] + subs r0, r6, r0 + lsrs r4, r0, #4 + movs r0, #0x3f + ands r4, r0 + ldr r5, [sp, #4] + add r5, sb + ldrh r0, [r2, #8] + subs r0, r5, r0 + lsrs r0, r0, #4 + movs r1, #0x3f + ands r0, r1 + lsls r0, r0, #6 + orrs r4, r0 + adds r0, r4, #0 + ldr r2, [sp, #8] + lsrs r1, r2, #0x18 + bl sub_080B1AE0 + cmp r0, #0x2e + bne _08087970 + adds r0, r4, #0 + mov r1, r8 + bl GetTileType + adds r1, r0, #0 + movs r0, #0xda + lsls r0, r0, #2 + cmp r1, r0 + bhi _08087960 + subs r0, #1 + cmp r1, r0 + blo _08087960 + adds r0, r7, #0 + movs r1, #3 + adds r2, r6, #0 + adds r3, r5, #0 + bl sub_08008796 + b _0808797C + .align 2, 0 +_0808795C: .4byte gRoomControls +_08087960: + ldr r0, _0808796C @ =0x00004022 + adds r1, r4, #0 + mov r2, r8 + bl SetTile + b _0808797C + .align 2, 0 +_0808796C: .4byte 0x00004022 +_08087970: + adds r0, r7, #0 + movs r1, #3 + mov r2, sl + adds r3, r5, #0 + bl sub_08008796 +_0808797C: + movs r0, #0x10 + add sb, r0 + mov r1, sb + cmp r1, #0x10 + ble _0808790A + ldr r0, [sp, #0xc] + cmp r0, #0x10 + ble _080878F8 + add sp, #0x10 + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7, pc} + .syntax divided diff --git a/asm/non_matching/objectBD/sub_080A22C4.inc b/asm/non_matching/objectBD/sub_080A22C4.inc new file mode 100644 index 00000000..20ae077f --- /dev/null +++ b/asm/non_matching/objectBD/sub_080A22C4.inc @@ -0,0 +1,66 @@ + .syntax unified + push {r4, r5, lr} + adds r4, r0, #0 + ldrb r5, [r4, #0xc] + cmp r5, #0 + beq _080A22FC + cmp r5, #1 + beq _080A231C + ldrb r0, [r4, #0xe] + subs r0, #1 + strb r0, [r4, #0xe] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _080A233E + movs r0, #8 + strb r0, [r4, #0xe] + ldrb r0, [r4, #0xf] + adds r0, #1 + movs r1, #3 + ands r0, r1 + strb r0, [r4, #0xf] + ldrb r1, [r4, #0xd] + adds r0, r1, r0 + strb r0, [r4, #0x1e] + lsls r1, r1, #0x18 + lsls r0, r0, #0x18 + cmp r1, r0 + bne _080A233E + b _080A233A +_080A22FC: + adds r0, r4, #0 + bl sub_080A2340 + movs r0, #8 + strb r0, [r4, #0xe] + strb r5, [r4, #0xf] + ldrb r0, [r4, #0x1e] + strb r0, [r4, #0xd] + bl Random + movs r1, #3 + ands r0, r1 + lsls r0, r0, #4 + adds r0, #0x1e + strh r0, [r4, #0x24] + b _080A233E +_080A231C: + ldrh r0, [r4, #0x24] + subs r0, #1 + strh r0, [r4, #0x24] + lsls r0, r0, #0x10 + cmp r0, #0 + bne _080A233E + bl Random + movs r1, #7 + ands r0, r1 + lsls r0, r0, #4 + adds r0, #0x1e + strh r0, [r4, #0x24] + movs r0, #2 + b _080A233C +_080A233A: + movs r0, #1 +_080A233C: + strb r0, [r4, #0xc] +_080A233E: + pop {r4, r5, pc} + .syntax divided diff --git a/asm/object/object11.s b/asm/object/object11.s deleted file mode 100644 index 596eb9dd..00000000 --- a/asm/object/object11.s +++ /dev/null @@ -1,347 +0,0 @@ - .include "asm/macros.inc" - - .include "constants/constants.inc" - - .syntax unified - - .text - - - thumb_func_start Object11 -Object11: @ 0x08084D34 - push {r4, lr} - adds r4, r0, #0 - bl EntityIsDeleted - cmp r0, #0 - bne _08084D50 - ldr r0, _08084D54 @ =gUnk_0812057C - ldrb r1, [r4, #0xc] - lsls r1, r1, #2 - adds r1, r1, r0 - ldr r1, [r1] - adds r0, r4, #0 - bl _call_via_r1 -_08084D50: - pop {r4, pc} - .align 2, 0 -_08084D54: .4byte gUnk_0812057C - - thumb_func_start sub_08084D58 -sub_08084D58: @ 0x08084D58 - push {r4, r5, r6, r7, lr} - mov r7, r8 - push {r7} - adds r7, r0, #0 - ldrb r0, [r7, #0xa] - cmp r0, #3 - bne _08084D6C - adds r0, r7, #0 - bl sub_08084F8C -_08084D6C: - adds r0, r7, #0 - bl sub_08004168 - ldrb r0, [r7, #0xa] - cmp r0, #4 - bne _08084D7E - adds r0, r7, #0 - bl sub_08084F8C -_08084D7E: - movs r0, #2 - strb r0, [r7, #0xc] - ldrb r0, [r7, #0x10] - movs r2, #0x80 - orrs r0, r2 - strb r0, [r7, #0x10] - ldrb r1, [r7, #0x19] - movs r5, #0x3f - adds r0, r5, #0 - ands r0, r1 - orrs r0, r2 - strb r0, [r7, #0x19] - ldr r0, _08084E48 @ =gUnk_08120588 - mov r8, r0 - ldrb r0, [r7, #0xa] - lsls r0, r0, #2 - add r0, r8 - ldrb r0, [r0, #1] - strb r0, [r7, #0x1d] - ldrb r0, [r7, #0xa] - lsls r0, r0, #2 - add r0, r8 - ldrb r0, [r0, #2] - strb r0, [r7, #0x1c] - movs r2, #0 - movs r0, #0x80 - strh r0, [r7, #0x24] - ldr r0, _08084E4C @ =gPlayerEntity - adds r0, #0x38 - ldrb r0, [r0] - adds r6, r7, #0 - adds r6, #0x38 - strb r0, [r6] - adds r1, r7, #0 - adds r1, #0x45 - movs r0, #1 - strb r0, [r1] - subs r1, #9 - movs r0, #7 - strb r0, [r1] - adds r1, #3 - movs r0, #0x6e - strb r0, [r1] - subs r1, #4 - movs r0, #4 - strb r0, [r1] - ldr r0, _08084E50 @ =gUnk_081205B4 - str r0, [r7, #0x48] - adds r0, r7, #0 - adds r0, #0x72 - strb r2, [r0] - movs r1, #0x2e - ldrsh r0, [r7, r1] - ldr r4, _08084E54 @ =gRoomControls - ldrh r1, [r4, #6] - subs r0, r0, r1 - asrs r0, r0, #4 - ands r0, r5 - movs r2, #0x32 - ldrsh r1, [r7, r2] - ldrh r2, [r4, #8] - subs r1, r1, r2 - asrs r1, r1, #4 - ands r1, r5 - lsls r1, r1, #6 - orrs r0, r1 - ldrb r1, [r6] - bl GetTileIndex - adds r1, r7, #0 - adds r1, #0x70 - strh r0, [r1] - ldr r0, _08084E58 @ =0x00004022 - movs r3, #0x2e - ldrsh r1, [r7, r3] - ldrh r2, [r4, #6] - subs r1, r1, r2 - asrs r1, r1, #4 - ands r1, r5 - movs r3, #0x32 - ldrsh r2, [r7, r3] - ldrh r3, [r4, #8] - subs r2, r2, r3 - asrs r2, r2, #4 - ands r2, r5 - lsls r2, r2, #6 - orrs r1, r2 - ldrb r2, [r6] - bl SetTile - ldrb r0, [r7, #0xa] - lsls r0, r0, #2 - add r0, r8 - ldrb r1, [r0] - adds r0, r7, #0 - bl InitializeAnimation - pop {r3} - mov r8, r3 - pop {r4, r5, r6, r7, pc} - .align 2, 0 -_08084E48: .4byte gUnk_08120588 -_08084E4C: .4byte gPlayerEntity -_08084E50: .4byte gUnk_081205B4 -_08084E54: .4byte gRoomControls -_08084E58: .4byte 0x00004022 - - thumb_func_start sub_08084E5C -sub_08084E5C: @ 0x08084E5C - push {r4, r5, lr} - adds r4, r0, #0 - ldr r0, _08084EAC @ =gPlayerState - ldrb r1, [r0, #0x1c] - movs r0, #0xf - ands r0, r1 - cmp r0, #1 - bne _08084E7A - adds r0, r4, #0 - adds r0, #0x41 - ldrb r1, [r0] - movs r0, #0x7f - ands r0, r1 - cmp r0, #0x13 - beq _08084EA8 -_08084E7A: - movs r1, #0x2e - ldrsh r0, [r4, r1] - ldr r2, _08084EB0 @ =gRoomControls - ldrh r1, [r2, #6] - subs r0, r0, r1 - asrs r0, r0, #4 - movs r3, #0x3f - ands r0, r3 - movs r5, #0x32 - ldrsh r1, [r4, r5] - ldrh r2, [r2, #8] - subs r1, r1, r2 - asrs r1, r1, #4 - ands r1, r3 - lsls r1, r1, #6 - orrs r0, r1 - adds r1, r4, #0 - adds r1, #0x38 - ldrb r1, [r1] - bl sub_0807BA8C - bl DeleteThisEntity -_08084EA8: - pop {r4, r5, pc} - .align 2, 0 -_08084EAC: .4byte gPlayerState -_08084EB0: .4byte gRoomControls - - thumb_func_start sub_08084EB4 -sub_08084EB4: @ 0x08084EB4 - push {lr} - ldr r2, _08084EC8 @ =gUnk_0812059C - ldrb r1, [r0, #0xd] - lsls r1, r1, #2 - adds r1, r1, r2 - ldr r1, [r1] - bl _call_via_r1 - pop {pc} - .align 2, 0 -_08084EC8: .4byte gUnk_0812059C - - thumb_func_start sub_08084ECC -sub_08084ECC: @ 0x08084ECC - push {lr} - movs r1, #1 - strb r1, [r0, #0xd] - bl sub_08084ED8 - pop {pc} - - thumb_func_start sub_08084ED8 -sub_08084ED8: @ 0x08084ED8 - push {r4, lr} - adds r4, r0, #0 - bl sub_08084E5C - adds r0, r4, #0 - bl sub_0806F4E8 - ldrb r0, [r4, #0x1d] - cmp r0, #0 - beq _08084EFA - subs r0, #1 - strb r0, [r4, #0x1d] - lsls r0, r0, #0x18 - cmp r0, #0 - bne _08084EFA - movs r0, #2 - strb r0, [r4, #0xd] -_08084EFA: - pop {r4, pc} - - thumb_func_start sub_08084EFC -sub_08084EFC: @ 0x08084EFC - push {r4, r5, r6, lr} - adds r5, r0, #0 - adds r2, r5, #0 - adds r2, #0x72 - ldrb r1, [r2] - cmp r1, #0 - bne _08084F42 - movs r0, #1 - strb r0, [r2] - adds r0, r5, #0 - adds r0, #0x62 - strb r1, [r0] - adds r0, #0xe - ldrh r0, [r0] - movs r2, #0x2e - ldrsh r1, [r5, r2] - ldr r3, _08084F7C @ =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_0807B9B8 -_08084F42: - ldr r0, _08084F80 @ =gPlayerState - ldrb r1, [r0, #0x1c] - movs r0, #0xf - ands r0, r1 - cmp r0, #1 - bne _08084F5C - adds r0, r5, #0 - adds r0, #0x41 - ldrb r1, [r0] - movs r0, #0x7f - ands r0, r1 - cmp r0, #0x13 - beq _08084F62 -_08084F5C: - adds r0, r5, #0 - bl sub_08084F8C -_08084F62: - adds r0, r5, #0 - bl sub_0806F3E4 - cmp r0, #0 - beq _08084F7A - ldrb r1, [r5, #0x1c] - movs r0, #0xf - ands r0, r1 - cmp r0, #1 - bne _08084F7A - bl DeleteThisEntity -_08084F7A: - pop {r4, r5, r6, pc} - .align 2, 0 -_08084F7C: .4byte gRoomControls -_08084F80: .4byte gPlayerState - - thumb_func_start sub_08084F84 -sub_08084F84: @ 0x08084F84 - bx lr - .align 2, 0 - - thumb_func_start sub_08084F88 -sub_08084F88: @ 0x08084F88 - bx lr - .align 2, 0 - - thumb_func_start sub_08084F8C -sub_08084F8C: @ 0x08084F8C - push {lr} - ldrb r1, [r0, #0xb] - cmp r1, #0xf - beq _08084FA4 - cmp r1, #0xf - bgt _08084F9E - cmp r1, #0 - beq _08084FB8 - b _08084FAE -_08084F9E: - cmp r1, #0xff - bne _08084FAE - b _08084FB8 -_08084FA4: - ldrb r1, [r0, #0xe] - movs r2, #0x80 - bl CreateFx - b _08084FB8 -_08084FAE: - ldrb r1, [r0, #0xb] - ldrb r2, [r0, #0xe] - movs r3, #0 - bl CreateObjectWithParent -_08084FB8: - bl DeleteThisEntity - pop {pc} - .align 2, 0 diff --git a/asm/object/object12.s b/asm/object/object12.s deleted file mode 100644 index dfdb643b..00000000 --- a/asm/object/object12.s +++ /dev/null @@ -1,249 +0,0 @@ - .include "asm/macros.inc" - - .include "constants/constants.inc" - - .syntax unified - - .text - - - thumb_func_start Object12 -Object12: @ 0x08084FC0 - push {lr} - ldr r2, _08084FD4 @ =gUnk_081205BC - ldrb r1, [r0, #0xc] - lsls r1, r1, #2 - adds r1, r1, r2 - ldr r1, [r1] - bl _call_via_r1 - pop {pc} - .align 2, 0 -_08084FD4: .4byte gUnk_081205BC - - thumb_func_start sub_08084FD8 -sub_08084FD8: @ 0x08084FD8 - push {r4, lr} - adds r4, r0, #0 - ldrb r0, [r4, #0xa] - cmp r0, #0 - bne _0808500C - adds r0, r4, #0 - adds r0, #0x86 - ldrh r0, [r0] - bl CheckFlags - cmp r0, #0 - beq _08084FF4 - bl DeleteThisEntity -_08084FF4: - movs r0, #1 - strb r0, [r4, #0xc] - adds r2, r4, #0 - adds r2, #0x29 - ldrb r0, [r2] - movs r1, #7 - orrs r0, r1 - strb r0, [r2] - adds r0, r4, #0 - bl sub_080850FC - b _0808501C -_0808500C: - movs r0, #2 - strb r0, [r4, #0xc] - movs r0, #0xf0 - strb r0, [r4, #0xe] - movs r0, #0x80 - strh r0, [r4, #0x24] - movs r0, #0x18 - strb r0, [r4, #0x15] -_0808501C: - movs r0, #0 - strb r0, [r4, #0x1e] - pop {r4, pc} - .align 2, 0 - - thumb_func_start nullsub_115 -nullsub_115: @ 0x08085024 - bx lr - .align 2, 0 - - thumb_func_start sub_08085028 -sub_08085028: @ 0x08085028 - push {r4, lr} - adds r4, r0, #0 - ldrb r0, [r4, #0xe] - subs r0, #1 - strb r0, [r4, #0xe] - lsls r0, r0, #0x18 - cmp r0, #0 - bne _080850A6 - movs r0, #3 - strb r0, [r4, #0xc] - movs r0, #0x1e - strb r0, [r4, #0xe] - adds r1, r4, #0 - adds r1, #0x63 - movs r0, #4 - strb r0, [r1] - ldr r0, _080850A8 @ =gScreen - mov ip, r0 - ldrh r1, [r0] - movs r2, #0x80 - lsls r2, r2, #6 - adds r0, r2, #0 - orrs r0, r1 - mov r1, ip - strh r0, [r1] - adds r1, #0x60 - movs r0, #0x1f - strh r0, [r1] - adds r1, #2 - movs r0, #0xf - strh r0, [r1] - movs r2, #0x2e - ldrsh r0, [r4, r2] - ldr r3, _080850AC @ =gRoomControls - movs r2, #0xa - ldrsh r1, [r3, r2] - subs r0, r0, r1 - adds r1, r0, #0 - subs r1, #0x18 - movs r2, #0xff - ands r1, r2 - lsls r1, r1, #8 - adds r0, #0x18 - ands r0, r2 - orrs r1, r0 - mov r0, ip - adds r0, #0x58 - strh r1, [r0] - movs r1, #0x32 - ldrsh r0, [r4, r1] - movs r4, #0xc - ldrsh r1, [r3, r4] - subs r0, r0, r1 - adds r1, r0, #0 - subs r1, #0x18 - ands r1, r2 - lsls r1, r1, #8 - adds r0, #0x18 - ands r0, r2 - orrs r1, r0 - mov r0, ip - adds r0, #0x5c - strh r1, [r0] -_080850A6: - pop {r4, pc} - .align 2, 0 -_080850A8: .4byte gScreen -_080850AC: .4byte gRoomControls - - thumb_func_start sub_080850B0 -sub_080850B0: @ 0x080850B0 - push {lr} - adds r1, r0, #0 - ldrb r0, [r1, #0xe] - subs r0, #1 - strb r0, [r1, #0xe] - lsls r0, r0, #0x18 - cmp r0, #0 - bne _080850C8 - movs r0, #4 - strb r0, [r1, #0xc] - movs r0, #0x60 - strb r0, [r1, #0xe] -_080850C8: - pop {pc} - .align 2, 0 - - thumb_func_start sub_080850CC -sub_080850CC: @ 0x080850CC - push {r4, lr} - adds r4, r0, #0 - bl LinearMoveUpdate - ldrb r0, [r4, #0xe] - subs r0, #1 - strb r0, [r4, #0xe] - lsls r0, r0, #0x18 - cmp r0, #0 - bne _080850F0 - ldr r2, _080850F4 @ =gScreen - ldrh r1, [r2] - ldr r0, _080850F8 @ =0x0000DFFF - ands r0, r1 - strh r0, [r2] - adds r0, r4, #0 - bl DeleteEntity -_080850F0: - pop {r4, pc} - .align 2, 0 -_080850F4: .4byte gScreen -_080850F8: .4byte 0x0000DFFF - - thumb_func_start sub_080850FC -sub_080850FC: @ 0x080850FC - push {r4, r5, r6, lr} - movs r1, #0x2e - ldrsh r4, [r0, r1] - ldr r2, _0808518C @ =gRoomControls - ldrh r1, [r2, #6] - subs r4, r4, r1 - asrs r4, r4, #4 - movs r3, #0x3f - ands r4, r3 - movs r5, #0x32 - ldrsh r1, [r0, r5] - ldrh r2, [r2, #8] - subs r1, r1, r2 - asrs r1, r1, #4 - ands r1, r3 - lsls r1, r1, #6 - orrs r4, r1 - adds r0, #0x38 - ldrb r6, [r0] - ldr r5, _08085190 @ =0x0000403D - adds r1, r4, #0 - subs r1, #0x41 - adds r0, r5, #0 - adds r2, r6, #0 - bl SetTile - adds r1, r4, #0 - subs r1, #0x40 - adds r0, r5, #0 - adds r2, r6, #0 - bl SetTile - adds r1, r4, #0 - subs r1, #0x3f - adds r0, r5, #0 - adds r2, r6, #0 - bl SetTile - subs r1, r4, #1 - adds r0, r5, #0 - adds r2, r6, #0 - bl SetTile - adds r0, r5, #0 - adds r1, r4, #0 - adds r2, r6, #0 - bl SetTile - adds r1, r4, #1 - adds r0, r5, #0 - adds r2, r6, #0 - bl SetTile - adds r1, r4, #0 - adds r1, #0x3f - adds r0, r5, #0 - adds r2, r6, #0 - bl SetTile - adds r1, r4, #0 - adds r1, #0x40 - adds r0, r5, #0 - adds r2, r6, #0 - bl SetTile - adds r4, #0x41 - adds r0, r5, #0 - adds r1, r4, #0 - adds r2, r6, #0 - bl SetTile - pop {r4, r5, r6, pc} - .align 2, 0 -_0808518C: .4byte gRoomControls -_08085190: .4byte 0x0000403D diff --git a/asm/object/object1E.s b/asm/object/object1E.s deleted file mode 100644 index 5d040780..00000000 --- a/asm/object/object1E.s +++ /dev/null @@ -1,224 +0,0 @@ - .include "asm/macros.inc" - - .include "constants/constants.inc" - - .syntax unified - - .text - - - thumb_func_start Object1E -Object1E: @ 0x08087504 - push {r4, lr} - adds r4, r0, #0 - bl EntityIsDeleted - cmp r0, #0 - bne _08087520 - ldr r0, _08087524 @ =gUnk_081208B8 - ldrb r1, [r4, #0xc] - lsls r1, r1, #2 - adds r1, r1, r0 - ldr r1, [r1] - adds r0, r4, #0 - bl _call_via_r1 -_08087520: - pop {r4, pc} - .align 2, 0 -_08087524: .4byte gUnk_081208B8 - - thumb_func_start sub_08087528 -sub_08087528: @ 0x08087528 - push {r4, lr} - adds r4, r0, #0 - movs r0, #1 - strb r0, [r4, #0xc] - ldr r0, _08087590 @ =gPlayerEntity - ldrb r0, [r0, #0x14] - lsrs r0, r0, #1 - strb r0, [r4, #0x14] - ldrb r1, [r4, #0x19] - movs r2, #0x3f - adds r0, r2, #0 - ands r0, r1 - movs r1, #0x80 - orrs r0, r1 - strb r0, [r4, #0x19] - adds r3, r4, #0 - adds r3, #0x29 - ldrb r1, [r3] - movs r0, #8 - rsbs r0, r0, #0 - ands r0, r1 - movs r1, #3 - orrs r0, r1 - strb r0, [r3] - ldrb r1, [r4, #0x1b] - lsrs r0, r1, #6 - subs r0, #1 - lsls r0, r0, #6 - ands r2, r1 - orrs r2, r0 - strb r2, [r4, #0x1b] - ldrb r0, [r4, #0xb] - cmp r0, #0 - beq _08087594 - ldrb r1, [r4, #0x1a] - movs r0, #0x10 - rsbs r0, r0, #0 - ands r0, r1 - movs r1, #1 - orrs r0, r1 - strb r0, [r4, #0x1a] - ldrb r0, [r4, #0x14] - cmp r0, #1 - bne _08087588 - ldrb r0, [r4, #0x18] - movs r1, #0x40 - orrs r0, r1 - strb r0, [r4, #0x18] -_08087588: - adds r0, r4, #0 - bl sub_08087640 - b _080875DC - .align 2, 0 -_08087590: .4byte gPlayerEntity -_08087594: - ldr r0, _080875B4 @ =gArea - ldrb r0, [r0, #1] - movs r1, #4 - cmp r0, #0x10 - bne _080875A2 - movs r1, #0xb5 - lsls r1, r1, #1 -_080875A2: - adds r0, r4, #0 - bl ChangeObjPalette - ldrb r0, [r4, #0x14] - cmp r0, #1 - beq _080875B8 - cmp r0, #3 - bne _080875CE - b _080875C0 - .align 2, 0 -_080875B4: .4byte gArea -_080875B8: - ldrb r0, [r4, #0x18] - movs r1, #0x40 - orrs r0, r1 - strb r0, [r4, #0x18] -_080875C0: - ldrb r0, [r4, #0xa] - cmp r0, #0x40 - bne _080875DC - ldrh r0, [r4, #0x32] - adds r0, #4 - strh r0, [r4, #0x32] - b _080875DC -_080875CE: - ldrb r0, [r4, #0xa] - cmp r0, #0x40 - bne _080875DC - ldrb r0, [r4, #0x18] - movs r1, #0x40 - orrs r0, r1 - strb r0, [r4, #0x18] -_080875DC: - adds r0, r4, #0 - movs r1, #3 - bl SetDefaultPriority - ldrb r1, [r4, #0xb] - lsls r1, r1, #2 - ldrb r0, [r4, #0x14] - adds r1, r1, r0 - adds r0, r4, #0 - bl InitializeAnimation - pop {r4, pc} - - thumb_func_start sub_080875F4 -sub_080875F4: @ 0x080875F4 - push {r4, r5, lr} - adds r4, r0, #0 - bl GetNextFrame - adds r5, r4, #0 - adds r5, #0x5a - ldrb r1, [r5] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - beq _0808760E - bl DeleteThisEntity -_0808760E: - ldrb r0, [r4, #0xb] - cmp r0, #0 - beq _08087638 - ldr r0, _0808763C @ =gPlayerEntity - adds r0, #0x29 - ldrb r1, [r0] - lsls r1, r1, #0x1d - lsrs r1, r1, #0x1d - ldrb r0, [r5] - subs r0, #1 - subs r1, r1, r0 - adds r3, r4, #0 - adds r3, #0x29 - movs r0, #7 - ands r1, r0 - ldrb r2, [r3] - movs r0, #8 - rsbs r0, r0, #0 - ands r0, r2 - orrs r0, r1 - strb r0, [r3] -_08087638: - pop {r4, r5, pc} - .align 2, 0 -_0808763C: .4byte gPlayerEntity - - thumb_func_start sub_08087640 -sub_08087640: @ 0x08087640 - push {r4, r5, r6, lr} - adds r4, r0, #0 - movs r0, #0x2e - ldrsh r5, [r4, r0] - movs r1, #0x32 - ldrsh r6, [r4, r1] - ldrb r1, [r4, #0x14] - lsls r1, r1, #1 - ldr r0, _08087684 @ =gUnk_081208C0 - adds r1, r1, r0 - movs r0, #0 - ldrsb r0, [r1, r0] - ldrh r2, [r4, #0x2e] - adds r0, r0, r2 - strh r0, [r4, #0x2e] - movs r0, #1 - ldrsb r0, [r1, r0] - ldrh r1, [r4, #0x32] - adds r0, r0, r1 - strh r0, [r4, #0x32] - ldr r0, _08087688 @ =gRoomControls - ldrh r1, [r0, #4] - ldr r0, _0808768C @ =0x00000403 -.ifdef EU - movs r2, #0x17 -.else - movs r2, #0x16 -.endif - cmp r1, r0 - bne _08087676 -.ifdef EU - movs r2, #0x18 -.else - movs r2, #0x17 -.endif -_08087676: - adds r0, r4, #0 - adds r1, r2, #0 - bl CreateRandomItemDrop - strh r5, [r4, #0x2e] - strh r6, [r4, #0x32] - pop {r4, r5, r6, pc} - .align 2, 0 -_08087684: .4byte gUnk_081208C0 -_08087688: .4byte gRoomControls -_0808768C: .4byte 0x00000403 diff --git a/asm/object/object20.s b/asm/object/object20.s deleted file mode 100644 index 58011c8e..00000000 --- a/asm/object/object20.s +++ /dev/null @@ -1,212 +0,0 @@ - .include "asm/macros.inc" - - .include "constants/constants.inc" - - .syntax unified - - .text - - - thumb_func_start Object20 -Object20: @ 0x0808780C - push {lr} - ldr r2, _08087820 @ =gUnk_08120A28 - ldrb r1, [r0, #0xc] - lsls r1, r1, #2 - adds r1, r1, r2 - ldr r1, [r1] - bl _call_via_r1 - pop {pc} - .align 2, 0 -_08087820: .4byte gUnk_08120A28 - - thumb_func_start sub_08087824 -sub_08087824: @ 0x08087824 - push {r4, lr} - adds r4, r0, #0 - adds r0, #0x38 - ldrb r0, [r0] - cmp r0, #0 - bne _08087836 - adds r0, r4, #0 - bl ResolveCollisionLayer -_08087836: - movs r0, #1 - strb r0, [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, #0x13 - strb r0, [r1] - adds r1, #9 - movs r0, #0xff - strb r0, [r1] - subs r1, #6 - movs r0, #0xa9 - strb r0, [r1] - adds r1, #1 - movs r0, #0x16 - strb r0, [r1] - ldr r0, _08087884 @ =gUnk_08120A54 - ldr r0, [r0] - str r0, [r4, #0x48] - subs r1, #5 - movs r0, #0x8b - strb r0, [r1] - adds r0, r4, #0 - bl sub_080878CC - adds r0, r4, #0 - movs r1, #1 - bl InitializeAnimation - adds r0, r4, #0 - bl sub_0801766C - movs r0, #0xfd - bl EnqueueSFX - pop {r4, pc} - .align 2, 0 -_08087884: .4byte gUnk_08120A54 - - thumb_func_start sub_08087888 -sub_08087888: @ 0x08087888 - push {r4, lr} - adds r4, r0, #0 - bl GetNextFrame - adds r2, r4, #0 - adds r2, #0x5a - ldrb r1, [r2] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - beq _080878A4 - bl DeleteThisEntity - b _080878C8 -_080878A4: - lsls r0, r1, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #4 - bhi _080878C0 - ldr r0, _080878BC @ =gUnk_08120A54 - ldrb r1, [r2] - lsls r1, r1, #2 - adds r1, r1, r0 - ldr r0, [r1] - str r0, [r4, #0x48] - b _080878C8 - .align 2, 0 -_080878BC: .4byte gUnk_08120A54 -_080878C0: - ldrb r1, [r4, #0x10] - movs r0, #0x7f - ands r0, r1 - strb r0, [r4, #0x10] -_080878C8: - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_080878CC -sub_080878CC: @ 0x080878CC - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - sub sp, #0x10 - adds r7, r0, #0 - movs r1, #0x2e - ldrsh r0, [r7, r1] - str r0, [sp] - movs r0, #0x32 - ldrsh r2, [r7, r0] - str r2, [sp, #4] - adds r0, r7, #0 - adds r0, #0x38 - ldrb r0, [r0] - mov r8, r0 - movs r0, #0x10 - rsbs r0, r0, #0 - mov r1, r8 - lsls r1, r1, #0x18 - str r1, [sp, #8] -_080878F8: - movs r2, #0x10 - rsbs r2, r2, #0 - mov sb, r2 - ldr r1, [sp] - adds r1, r1, r0 - mov sl, r1 - adds r0, #0x10 - str r0, [sp, #0xc] - mov r6, sl -_0808790A: - ldr r2, _0808795C @ =gRoomControls - ldrh r0, [r2, #6] - subs r0, r6, r0 - lsrs r4, r0, #4 - movs r0, #0x3f - ands r4, r0 - ldr r5, [sp, #4] - add r5, sb - ldrh r0, [r2, #8] - subs r0, r5, r0 - lsrs r0, r0, #4 - movs r1, #0x3f - ands r0, r1 - lsls r0, r0, #6 - orrs r4, r0 - adds r0, r4, #0 - ldr r2, [sp, #8] - lsrs r1, r2, #0x18 - bl sub_080B1AE0 - cmp r0, #0x2e - bne _08087970 - adds r0, r4, #0 - mov r1, r8 - bl GetTileType - adds r1, r0, #0 - movs r0, #0xda - lsls r0, r0, #2 - cmp r1, r0 - bhi _08087960 - subs r0, #1 - cmp r1, r0 - blo _08087960 - adds r0, r7, #0 - movs r1, #3 - adds r2, r6, #0 - adds r3, r5, #0 - bl sub_08008796 - b _0808797C - .align 2, 0 -_0808795C: .4byte gRoomControls -_08087960: - ldr r0, _0808796C @ =0x00004022 - adds r1, r4, #0 - mov r2, r8 - bl SetTile - b _0808797C - .align 2, 0 -_0808796C: .4byte 0x00004022 -_08087970: - adds r0, r7, #0 - movs r1, #3 - mov r2, sl - adds r3, r5, #0 - bl sub_08008796 -_0808797C: - movs r0, #0x10 - add sb, r0 - mov r1, sb - cmp r1, #0x10 - ble _0808790A - ldr r0, [sp, #0xc] - cmp r0, #0x10 - ble _080878F8 - add sp, #0x10 - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7, pc} diff --git a/asm/object/object21.s b/asm/object/object21.s deleted file mode 100644 index 195b7f0c..00000000 --- a/asm/object/object21.s +++ /dev/null @@ -1,288 +0,0 @@ - .include "asm/macros.inc" - - .include "constants/constants.inc" - - .syntax unified - - .text - - - thumb_func_start Object21 -Object21: @ 0x08087998 - push {r4, lr} - adds r4, r0, #0 - ldr r0, _080879C0 @ =gUnk_08120A68 - ldrb r1, [r4, #0xc] - lsls r1, r1, #2 - adds r1, r1, r0 - ldr r1, [r1] - adds r0, r4, #0 - bl _call_via_r1 - adds r0, r4, #0 - bl GetNextFrame - ldrb r0, [r4, #0xe] - cmp r0, #0 - beq _080879C4 - subs r0, #1 - strb r0, [r4, #0xe] - b _080879EA - .align 2, 0 -_080879C0: .4byte gUnk_08120A68 -_080879C4: - adds r0, r4, #0 - adds r0, #0x58 - ldrb r0, [r0] - cmp r0, #0xa - bne _080879D8 - adds r0, r4, #0 - movs r1, #0xd - bl InitializeAnimation - b _080879EA -_080879D8: - adds r0, r4, #0 - adds r0, #0x5a - ldrb r1, [r0] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - beq _080879EA - bl DeleteThisEntity -_080879EA: - movs r1, #0x24 - ldrsh r0, [r4, r1] - cmp r0, #0 - beq _08087A0C - adds r0, r4, #0 - bl LinearMoveUpdate - ldrh r1, [r4, #0x24] - movs r2, #0x24 - ldrsh r0, [r4, r2] - cmp r0, #0x10 - ble _08087A08 - adds r0, r1, #0 - subs r0, #0x10 - b _08087A0A -_08087A08: - movs r0, #0 -_08087A0A: - strh r0, [r4, #0x24] -_08087A0C: - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_08087A10 -sub_08087A10: @ 0x08087A10 - push {r4, lr} - adds r4, r0, #0 - movs r0, #1 - strb r0, [r4, #0xc] - ldrb r0, [r4, #0xb] - cmp r0, #0 - beq _08087A26 - adds r0, r4, #0 - movs r1, #3 - bl ChangeObjPalette -_08087A26: - ldrb r0, [r4, #0xa] - cmp r0, #2 - bls _08087A3C - ldr r0, _08087A4C @ =gUnk_08120A78 - ldrb r1, [r4, #0xa] - subs r1, #3 - adds r1, r1, r0 - ldrb r1, [r1] - adds r0, r4, #0 - bl ChangeObjPalette -_08087A3C: - ldrb r0, [r4, #0xa] - cmp r0, #4 - bhi _08087AF0 - lsls r0, r0, #2 - ldr r1, _08087A50 @ =_08087A54 - adds r0, r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_08087A4C: .4byte gUnk_08120A78 -_08087A50: .4byte _08087A54 -_08087A54: @ jump table - .4byte _08087A76 @ case 0 - .4byte _08087AF0 @ case 1 - .4byte _08087AA0 @ case 2 - .4byte _08087A76 @ case 3 - .4byte _08087A68 @ case 4 -_08087A68: - adds r1, r4, #0 - adds r1, #0x38 - movs r0, #2 - strb r0, [r1] - adds r0, r4, #0 - bl UpdateSpriteForCollisionLayer -_08087A76: - ldrb r1, [r4, #0x10] - movs r0, #0x80 - movs r2, #0 - orrs r0, r1 - strb r0, [r4, #0x10] - adds r1, r4, #0 - adds r1, #0x45 - movs r0, #1 - strb r0, [r1] - subs r1, #9 - movs r0, #7 - strb r0, [r1] - adds r1, #3 - movs r0, #0xaa - strb r0, [r1] - subs r1, #4 - movs r0, #0xe - strb r0, [r1] - ldr r0, _08087AE4 @ =gUnk_08120A8C - str r0, [r4, #0x48] - strb r2, [r4, #0x1c] -_08087AA0: - bl Random - ldr r2, _08087AE8 @ =gUnk_08120A7A - movs r3, #3 - adds r1, r0, #0 - ands r1, r3 - adds r1, r1, r2 - ldrb r1, [r1] - strb r1, [r4, #0xe] - lsrs r2, r0, #8 - ands r2, r3 - movs r1, #0x10 - ands r1, r0 - cmp r1, #0 - beq _08087AC0 - rsbs r2, r2, #0 -_08087AC0: - ldrh r0, [r4, #0x2e] - adds r0, r0, r2 - strh r0, [r4, #0x2e] - ldrh r0, [r4, #0x32] - adds r0, r0, r2 - strh r0, [r4, #0x32] - ldr r0, _08087AEC @ =gPlayerEntity - adds r0, #0x38 - ldrb r1, [r0] - adds r0, r4, #0 - adds r0, #0x38 - strb r1, [r0] - adds r0, r4, #0 - movs r1, #0xa - bl InitializeAnimation - b _08087AF8 - .align 2, 0 -_08087AE4: .4byte gUnk_08120A8C -_08087AE8: .4byte gUnk_08120A7A -_08087AEC: .4byte gPlayerEntity -_08087AF0: - adds r0, r4, #0 - movs r1, #0x10 - bl InitializeAnimation -_08087AF8: - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_08087AFC -sub_08087AFC: @ 0x08087AFC - push {r4, lr} - adds r4, r0, #0 - adds r0, #0x41 - ldrb r1, [r0] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - beq _08087B56 - movs r0, #0x7f - ands r0, r1 - cmp r0, #0x16 - beq _08087B3C - cmp r0, #0x16 - bgt _08087B1E - cmp r0, #0x13 - beq _08087B4E - b _08087B56 -_08087B1E: - cmp r0, #0x1c - bgt _08087B56 - cmp r0, #0x1b - blt _08087B56 - ldr r1, [r4, #0x4c] - adds r0, r1, #0 - adds r0, #0x84 - ldr r0, [r0] - adds r1, #0x80 - ldr r1, [r1] - ldr r2, [r4, #0x2c] - ldr r3, [r4, #0x30] - bl CalculateDirectionTo - b _08087B44 -_08087B3C: - ldr r0, [r4, #0x4c] - adds r1, r4, #0 - bl GetFacingDirection -_08087B44: - strb r0, [r4, #0x15] - movs r0, #0x80 - lsls r0, r0, #1 - strh r0, [r4, #0x24] - b _08087B56 -_08087B4E: - movs r1, #0 - movs r0, #3 - strb r0, [r4, #0xc] - strb r1, [r4, #0xd] -_08087B56: - pop {r4, pc} - - thumb_func_start sub_08087B58 -sub_08087B58: @ 0x08087B58 - push {lr} - adds r2, r0, #0 - adds r0, #0x41 - ldrb r1, [r0] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - beq _08087B80 - ldr r0, _08087B7C @ =gUnk_08120A80 - ldrb r1, [r2, #0xd] - lsls r1, r1, #2 - adds r1, r1, r0 - ldr r1, [r1] - adds r0, r2, #0 - bl _call_via_r1 - b _08087B84 - .align 2, 0 -_08087B7C: .4byte gUnk_08120A80 -_08087B80: - movs r0, #1 - strb r0, [r2, #0xc] -_08087B84: - pop {pc} - .align 2, 0 - - thumb_func_start sub_08087B88 -sub_08087B88: @ 0x08087B88 - adds r2, r0, #0 - adds r2, #0x46 - movs r1, #0x80 - lsls r1, r1, #1 - strh r1, [r2] - movs r1, #1 - strb r1, [r0, #0xd] - strb r1, [r0, #0x1d] - bx lr - .align 2, 0 - - thumb_func_start sub_08087B9C -sub_08087B9C: @ 0x08087B9C - push {lr} - bl sub_0806F3E4 - cmp r0, #0 - beq _08087BAA - bl DeleteThisEntity -_08087BAA: - pop {pc} diff --git a/asm/object/object30.s b/asm/object/object30.s deleted file mode 100644 index 6e3caadb..00000000 --- a/asm/object/object30.s +++ /dev/null @@ -1,207 +0,0 @@ - .include "asm/macros.inc" - - .include "constants/constants.inc" - - .syntax unified - - .text - - - thumb_func_start Object30 -Object30: @ 0x0808A850 - push {r4, lr} - adds r4, r0, #0 - ldr r1, _0808A86C @ =gUnk_08121188 - 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_08080CB4 - pop {r4, pc} - .align 2, 0 -_0808A86C: .4byte gUnk_08121188 - - thumb_func_start sub_0808A870 -sub_0808A870: @ 0x0808A870 - push {r4, r5, lr} - adds r5, r0, #0 - ldrb r0, [r5, #0xa] - cmp r0, #1 - beq _0808A8BE - cmp r0, #1 - bgt _0808A884 - cmp r0, #0 - beq _0808A896 - b _0808A8C4 -_0808A884: - cmp r0, #3 - bgt _0808A8C4 - adds r0, r5, #0 - bl sub_0808A968 - adds r0, r5, #0 - bl sub_0808A8E0 - b _0808A8C4 -_0808A896: - adds r0, r5, #0 - adds r0, #0x38 - ldrb r0, [r0] - bl GetLayerByIndex - adds r4, r0, #0 - adds r0, r5, #0 - bl sub_0806F798 - lsls r0, r0, #1 - adds r0, #4 - adds r4, r4, r0 - str r4, [r5, #0x6c] - ldrh r1, [r4] - adds r0, r5, #0 - adds r0, #0x68 - strh r1, [r0] - movs r0, #1 - strb r0, [r5, #0xc] - b _0808A8C4 -_0808A8BE: - adds r0, r5, #0 - bl sub_0808A968 -_0808A8C4: - pop {r4, r5, pc} - .align 2, 0 - - thumb_func_start sub_0808A8C8 -sub_0808A8C8: @ 0x0808A8C8 - push {lr} - adds r2, r0, #0 - adds r0, #0x68 - ldr r1, [r2, #0x6c] - ldrh r0, [r0] - ldrh r1, [r1] - cmp r0, r1 - beq _0808A8DE - adds r0, r2, #0 - bl sub_0808A968 -_0808A8DE: - pop {pc} - - thumb_func_start sub_0808A8E0 -sub_0808A8E0: @ 0x0808A8E0 - push {r4, lr} - adds r4, r0, #0 - ldrb r2, [r4, #0xa] - cmp r2, #0 - beq _0808A8F0 - cmp r2, #1 - beq _0808A930 - b _0808A954 -_0808A8F0: - ldr r0, [r4, #0x70] - cmp r0, #0 - beq _0808A930 - ldr r3, [r4, #0x20] - cmp r3, #0 - bge _0808A926 - movs r0, #0x36 - ldrsh r1, [r4, r0] - movs r0, #8 - rsbs r0, r0, #0 - cmp r1, r0 - ble _0808A90C - str r2, [r4, #0x70] - b _0808A926 -_0808A90C: - ldr r0, _0808A918 @ =0xFFFFC000 - cmp r3, r0 - bge _0808A920 - ldr r0, _0808A91C @ =0xFFFFFC00 - b _0808A924 - .align 2, 0 -_0808A918: .4byte 0xFFFFC000 -_0808A91C: .4byte 0xFFFFFC00 -_0808A920: - movs r0, #0x80 - lsls r0, r0, #3 -_0808A924: - str r0, [r4, #0x70] -_0808A926: - ldr r1, [r4, #0x70] - adds r0, r4, #0 - bl GravityUpdate - b _0808A962 -_0808A930: - ldr r2, _0808A964 @ =gUnk_08121194 - ldrb r0, [r4, #0xf] - adds r1, r0, #1 - strb r1, [r4, #0xf] - lsls r0, r0, #0x18 - lsrs r0, r0, #0x1b - movs r1, #7 - ands r0, r1 - adds r0, r0, r2 - ldrb r0, [r0] - lsls r0, r0, #0x18 - asrs r0, r0, #0x18 - strh r0, [r4, #0x36] - adds r0, r4, #0 - bl IsCollidingPlayer - cmp r0, #0 - beq _0808A962 -_0808A954: - ldrb r1, [r4, #0xb] - movs r0, #0x5c - movs r2, #0 - bl CreateItemEntity - bl DeleteThisEntity -_0808A962: - pop {r4, pc} - .align 2, 0 -_0808A964: .4byte gUnk_08121194 - - thumb_func_start sub_0808A968 -sub_0808A968: @ 0x0808A968 - push {r4, lr} - adds r4, r0, #0 - movs r0, #2 - strb r0, [r4, #0xc] - movs r0, #0x1e - strb r0, [r4, #0xe] - ldrb r1, [r4, #0x18] - subs r0, #0x22 - ands r0, r1 - movs r1, #1 - orrs r0, r1 - strb r0, [r4, #0x18] - movs r0, #0xa0 - lsls r0, r0, #0xa - str r0, [r4, #0x20] - adds r2, r4, #0 - adds r2, #0x29 - ldrb r1, [r2] - movs r0, #0x39 - rsbs r0, r0, #0 - ands r0, r1 - movs r1, #0x18 - orrs r0, r1 - strb r0, [r2] - ldrb r1, [r4, #0x18] - movs r0, #0x31 - rsbs r0, r0, #0 - ands r0, r1 - strb r0, [r4, #0x18] - adds r2, #0x13 - ldrb r1, [r2] - movs r0, #0x10 - orrs r0, r1 - strb r0, [r2] - ldr r0, _0808A9C0 @ =gUnk_08121C58 - str r0, [r4, #0x48] - adds r0, r4, #0 - movs r1, #2 - bl SetDefaultPriority - movs r0, #0xa0 - lsls r0, r0, #6 - str r0, [r4, #0x70] - pop {r4, pc} - .align 2, 0 -_0808A9C0: .4byte gUnk_08121C58 diff --git a/asm/object/object3A.s b/asm/object/object3A.s deleted file mode 100644 index a884af27..00000000 --- a/asm/object/object3A.s +++ /dev/null @@ -1,345 +0,0 @@ - .include "asm/macros.inc" - - .include "constants/constants.inc" - - .syntax unified - - .text - - - thumb_func_start Object3A -Object3A: @ 0x0808C69C - push {lr} - adds r2, r0, #0 - ldrb r0, [r2, #0xa] - cmp r0, #0 - bne _0808C6BC - ldr r0, _0808C6B8 @ =gUnk_08121638 - ldrb r1, [r2, #0xc] - lsls r1, r1, #2 - adds r1, r1, r0 - ldr r1, [r1] - adds r0, r2, #0 - bl _call_via_r1 - b _0808C6CC - .align 2, 0 -_0808C6B8: .4byte gUnk_08121638 -_0808C6BC: - ldr r0, _0808C6D0 @ =gUnk_08121640 - ldrb r1, [r2, #0xc] - lsls r1, r1, #2 - adds r1, r1, r0 - ldr r1, [r1] - adds r0, r2, #0 - bl _call_via_r1 -_0808C6CC: - pop {pc} - .align 2, 0 -_0808C6D0: .4byte gUnk_08121640 - - thumb_func_start sub_0808C6D4 -sub_0808C6D4: @ 0x0808C6D4 - push {r4, r5, lr} - adds r5, r0, #0 - ldrb r1, [r5, #0xb] - lsls r0, r1, #2 - adds r0, r0, r1 - lsls r0, r0, #2 - ldr r1, _0808C744 @ =gUnk_081215E8 - adds r4, r0, r1 - ldrh r0, [r4, #4] - adds r1, r5, #0 - adds r1, #0x86 - strh r0, [r1] - ldrh r0, [r4, #6] - subs r1, #1 - strb r0, [r1] - ldrh r1, [r4, #8] - adds r0, r5, #0 - adds r0, #0x84 - strb r1, [r0] - ldrh r0, [r4, #0xa] - adds r1, r5, #0 - adds r1, #0x83 - strb r0, [r1] - ldrh r0, [r4, #0xc] - subs r1, #1 - strb r0, [r1] - ldrh r0, [r4, #0xe] - subs r1, #1 - strb r0, [r1] - ldr r0, _0808C748 @ =gScreen - adds r0, #0x60 - ldrh r1, [r0] - movs r0, #0xff - lsls r0, r0, #8 - ands r0, r1 - ldrh r1, [r4, #0x10] - orrs r0, r1 - ldrh r1, [r4, #0x12] - bl sub_0801E1B8 - movs r0, #1 - strb r0, [r5, #0xc] - adds r0, r5, #0 - bl sub_0808C74C - ldrh r2, [r4] - movs r0, #0x3a - movs r1, #1 - bl CreateObject - cmp r0, #0 - beq _0808C742 - ldrh r1, [r4, #2] - adds r0, #0x6a - strh r1, [r0] -_0808C742: - pop {r4, r5, pc} - .align 2, 0 -_0808C744: .4byte gUnk_081215E8 -_0808C748: .4byte gScreen - - thumb_func_start sub_0808C74C -sub_0808C74C: @ 0x0808C74C - push {r4, r5, r6, lr} - adds r4, r0, #0 - ldr r3, [r4, #0x50] - cmp r3, #0 - beq _0808C76C - ldr r2, _0808C768 @ =gRoomControls - ldrh r0, [r3, #0x2e] - ldrh r1, [r2, #0xa] - subs r0, r0, r1 - strh r0, [r4, #0x2e] - ldrh r0, [r3, #0x32] - ldrh r1, [r2, #0xc] - subs r0, r0, r1 - b _0808C772 - .align 2, 0 -_0808C768: .4byte gRoomControls -_0808C76C: - movs r0, #0x78 - strh r0, [r4, #0x2e] - movs r0, #0x50 -_0808C772: - strh r0, [r4, #0x32] - adds r5, r4, #0 - adds r5, #0x86 - movs r1, #0 - ldrsh r0, [r5, r1] - cmp r0, #0 - bge _0808C79C - movs r2, #0x2e - ldrsh r0, [r4, r2] - movs r3, #0x32 - ldrsh r1, [r4, r3] - movs r2, #0 - movs r3, #0 - bl sub_0801E49C - ldr r1, _0808C83C @ =gUnk_02036BB8 - movs r0, #1 - str r0, [r1] - adds r0, r4, #0 - bl sub_0808C840 -_0808C79C: - movs r6, #0 - ldrsh r0, [r5, r6] - movs r2, #0xfa - lsls r2, r2, #1 - cmp r0, r2 - ble _0808C7C2 - movs r1, #0x2e - ldrsh r0, [r4, r1] - movs r3, #0x32 - ldrsh r1, [r4, r3] - movs r3, #0 - bl sub_0801E49C - ldr r1, _0808C83C @ =gUnk_02036BB8 - movs r0, #1 - str r0, [r1] - adds r0, r4, #0 - bl sub_0808C840 -_0808C7C2: - adds r1, r4, #0 - adds r1, #0x85 - movs r0, #0 - ldrsb r0, [r1, r0] - ldrh r6, [r5] - adds r0, r0, r6 - strh r0, [r5] - adds r0, r4, #0 - adds r0, #0x84 - ldrb r0, [r0] - ldrb r2, [r1] - adds r0, r0, r2 - strb r0, [r1] - lsls r0, r0, #0x18 - asrs r0, r0, #0x18 - cmp r0, #0x10 - ble _0808C7E8 - movs r0, #0x10 - strb r0, [r1] -_0808C7E8: - movs r0, #0 - ldrsb r0, [r1, r0] - movs r2, #0x10 - rsbs r2, r2, #0 - cmp r0, r2 - bge _0808C7F6 - strb r2, [r1] -_0808C7F6: - adds r3, r4, #0 - adds r3, #0x83 - adds r1, r4, #0 - adds r1, #0x82 - ldrb r0, [r1] - ldrb r6, [r3] - adds r0, r0, r6 - strb r0, [r3] - adds r0, r4, #0 - adds r0, #0x81 - ldrb r0, [r0] - ldrb r6, [r1] - adds r0, r0, r6 - strb r0, [r1] - lsls r0, r0, #0x18 - asrs r0, r0, #0x18 - cmp r0, #0x10 - ble _0808C81E - movs r0, #0x10 - strb r0, [r1] -_0808C81E: - movs r0, #0 - ldrsb r0, [r1, r0] - cmp r0, r2 - bge _0808C828 - strb r2, [r1] -_0808C828: - movs r1, #0x2e - ldrsh r0, [r4, r1] - movs r2, #0x32 - ldrsh r1, [r4, r2] - movs r4, #0 - ldrsh r2, [r5, r4] - ldrb r3, [r3] - bl sub_0801E49C - pop {r4, r5, r6, pc} - .align 2, 0 -_0808C83C: .4byte gUnk_02036BB8 - - thumb_func_start sub_0808C840 -sub_0808C840: @ 0x0808C840 - push {lr} - ldr r0, _0808C854 @ =gScreen - adds r0, #0x66 - movs r1, #0 - strh r1, [r0] - bl sub_0801E104 - bl DeleteThisEntity - pop {pc} - .align 2, 0 -_0808C854: .4byte gScreen - - thumb_func_start sub_0808C858 -sub_0808C858: @ 0x0808C858 - push {lr} - adds r2, r0, #0 - ldrb r1, [r2, #0xb] - movs r0, #2 - ands r0, r1 - cmp r0, #0 - beq _0808C878 - ldr r1, _0808C870 @ =gScreen - adds r3, r1, #0 - adds r3, #0x66 - ldr r0, _0808C874 @ =0x00003FBF - b _0808C880 - .align 2, 0 -_0808C870: .4byte gScreen -_0808C874: .4byte 0x00003FBF -_0808C878: - ldr r1, _0808C898 @ =gScreen - adds r3, r1, #0 - adds r3, #0x66 - ldr r0, _0808C89C @ =0x00003FFF -_0808C880: - strh r0, [r3] - adds r3, r1, #0 - ldrb r1, [r2, #0xb] - movs r0, #1 - ands r0, r1 - cmp r0, #0 - beq _0808C8A0 - adds r1, r3, #0 - adds r1, #0x6a - movs r0, #0 - b _0808C8A6 - .align 2, 0 -_0808C898: .4byte gScreen -_0808C89C: .4byte 0x00003FFF -_0808C8A0: - adds r1, r3, #0 - adds r1, #0x6a - movs r0, #0x10 -_0808C8A6: - strh r0, [r1] - movs r0, #1 - strb r0, [r2, #0xc] - adds r1, r2, #0 - adds r1, #0x68 - adds r0, #0xff - strh r0, [r1] - pop {pc} - .align 2, 0 - - thumb_func_start sub_0808C8B8 -sub_0808C8B8: @ 0x0808C8B8 - push {lr} - adds r3, r0, #0 - adds r2, r3, #0 - adds r2, #0x68 - adds r1, r3, #0 - adds r1, #0x6a - ldrh r0, [r2] - ldrh r1, [r1] - subs r0, r0, r1 - strh r0, [r2] - lsls r0, r0, #0x10 - cmp r0, #0 - bge _0808C8D6 - movs r0, #0 - strh r0, [r2] -_0808C8D6: - ldrb r1, [r3, #0xb] - movs r0, #1 - ands r0, r1 - cmp r0, #0 - beq _0808C8F8 - ldr r0, _0808C8F4 @ =gScreen - ldrh r1, [r2] - lsls r1, r1, #0x10 - asrs r1, r1, #0x14 - movs r2, #0x10 - subs r2, r2, r1 - adds r0, #0x6a - strh r2, [r0] - b _0808C904 - .align 2, 0 -_0808C8F4: .4byte gScreen -_0808C8F8: - ldr r1, _0808C918 @ =gScreen - ldrh r0, [r2] - lsls r0, r0, #0x10 - asrs r0, r0, #0x14 - adds r1, #0x6a - strh r0, [r1] -_0808C904: - adds r0, r3, #0 - adds r0, #0x68 - movs r1, #0 - ldrsh r0, [r0, r1] - cmp r0, #0 - bne _0808C914 - bl DeleteThisEntity -_0808C914: - pop {pc} - .align 2, 0 -_0808C918: .4byte gScreen diff --git a/asm/object/object3D.s b/asm/object/object3D.s deleted file mode 100644 index 612f9772..00000000 --- a/asm/object/object3D.s +++ /dev/null @@ -1,245 +0,0 @@ - .include "asm/macros.inc" - - .include "constants/constants.inc" - - .syntax unified - - .text - - - thumb_func_start Object3D -Object3D: @ 0x0808CEF0 - push {lr} - ldr r2, _0808CF04 @ =gUnk_081216BC - ldrb r1, [r0, #0xc] - lsls r1, r1, #2 - adds r1, r1, r2 - ldr r1, [r1] - bl _call_via_r1 - pop {pc} - .align 2, 0 -_0808CF04: .4byte gUnk_081216BC - - thumb_func_start sub_0808CF08 -sub_0808CF08: @ 0x0808CF08 - push {r4, r5, lr} - adds r4, r0, #0 - movs r0, #1 - strb r0, [r4, #0xc] - ldr r2, _0808CF50 @ =gArea - ldr r3, _0808CF54 @ =gRoomControls - ldrh r0, [r2, #0x12] - ldrh r1, [r3, #0xa] - subs r0, r0, r1 - strh r0, [r4, #0x2e] - ldrh r0, [r2, #0x14] - ldrh r1, [r3, #0xc] - subs r0, r0, r1 - strh r0, [r4, #0x32] - adds r5, r4, #0 - adds r5, #0x68 - movs r0, #0x80 - strh r0, [r5] - ldrb r1, [r4, #0x11] - subs r0, #0x90 - ands r0, r1 - movs r1, #6 - orrs r0, r1 - strb r0, [r4, #0x11] - ldr r0, _0808CF58 @ =0x00001F17 - movs r1, #0 - bl sub_0801E1B8 - movs r1, #0x2e - ldrsh r0, [r4, r1] - movs r2, #0x32 - ldrsh r1, [r4, r2] - ldrh r2, [r5] - bl sub_0801E1EC - pop {r4, r5, pc} - .align 2, 0 -_0808CF50: .4byte gArea -_0808CF54: .4byte gRoomControls -_0808CF58: .4byte 0x00001F17 - - thumb_func_start sub_0808CF5C -sub_0808CF5C: @ 0x0808CF5C - push {r4, r5, r6, lr} - adds r5, r0, #0 - adds r2, r5, #0 - adds r2, #0x68 - ldrh r0, [r2] - subs r0, #2 - strh r0, [r2] - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - cmp r0, #0x14 - bls _0808CF82 - movs r1, #0x2e - ldrsh r0, [r5, r1] - movs r3, #0x32 - ldrsh r1, [r5, r3] - ldrh r2, [r2] - bl sub_0801E1EC - b _0808D01E -_0808CF82: - ldr r0, _0808D020 @ =gScreen - adds r0, #0x62 - movs r1, #0x10 - strh r1, [r0] - bl sub_0808D030 - movs r0, #0 - bl ResetPaletteTable - bl ResetPalettes - ldr r0, _0808D024 @ =gGFXSlots - movs r6, #1 - strb r6, [r0] - ldrb r0, [r5, #0xa] - lsls r4, r0, #1 - adds r4, r4, r0 - lsls r4, r4, #1 - ldr r0, _0808D028 @ =gUnk_081216C8 - adds r4, r4, r0 - ldrh r1, [r4] - adds r0, r5, #0 - bl LoadFixedGFX - ldrh r1, [r4, #2] - adds r0, r5, #0 - bl LoadObjPalette - ldrh r0, [r4, #4] - strh r0, [r5, #0x12] - ldrb r0, [r5, #0xa] - cmp r0, #2 - bne _0808CFC6 - strb r0, [r5, #0x1e] -_0808CFC6: - movs r2, #2 - movs r0, #2 - strb r0, [r5, #0xc] - ldrb r1, [r5, #0x18] - subs r0, #6 - ands r0, r1 - orrs r0, r2 - strb r0, [r5, #0x18] - ldrb r2, [r5, #0x1b] - movs r1, #0x3f - adds r0, r1, #0 - ands r0, r2 - strb r0, [r5, #0x1b] - ldrb r0, [r5, #0x19] - ands r1, r0 - strb r1, [r5, #0x19] - adds r2, r5, #0 - adds r2, #0x29 - ldrb r1, [r2] - movs r0, #8 - rsbs r0, r0, #0 - ands r0, r1 - strb r0, [r2] - movs r0, #0x1e - strb r0, [r5, #0xe] - movs r0, #0xff - strb r0, [r5, #0xf] - ldrb r0, [r5, #0x19] - movs r1, #3 - orrs r0, r1 - strb r0, [r5, #0x19] - movs r2, #0x80 - lsls r2, r2, #1 - adds r0, r5, #0 - adds r1, r2, #0 - movs r3, #0 - bl sub_0805EC9C - ldr r0, _0808D02C @ =gArea - strh r6, [r0, #0x10] - movs r0, #5 - movs r1, #8 - bl SetFade -_0808D01E: - pop {r4, r5, r6, pc} - .align 2, 0 -_0808D020: .4byte gScreen -_0808D024: .4byte gGFXSlots -_0808D028: .4byte gUnk_081216C8 -_0808D02C: .4byte gArea - - thumb_func_start sub_0808D030 -sub_0808D030: @ 0x0808D030 - push {r4, r5, lr} - ldr r4, _0808D058 @ =gUnk_03000020 - movs r5, #0x80 - adds r0, r4, #0 - subs r0, #0x20 - ldr r1, _0808D05C @ =0x00000B74 - bl MemClear - movs r1, #0xa8 - lsls r1, r1, #2 - adds r0, r1, #0 -_0808D046: - strh r0, [r4] - adds r4, #8 - subs r5, #1 - cmp r5, #0 - bne _0808D046 - ldr r1, _0808D060 @ =gOAMControls - movs r0, #1 - strb r0, [r1] - pop {r4, r5, pc} - .align 2, 0 -_0808D058: .4byte gUnk_03000020 -_0808D05C: .4byte 0x00000B74 -_0808D060: .4byte gOAMControls - - thumb_func_start sub_0808D064 -sub_0808D064: @ 0x0808D064 - push {r4, lr} - adds r4, r0, #0 - ldrb r0, [r4, #0xe] - adds r1, r0, #0 - adds r1, #0xff - strb r1, [r4, #0xe] - lsls r0, r0, #0x18 - lsrs r2, r0, #0x18 - cmp r2, #0 - beq _0808D0B4 - adds r0, r4, #0 - adds r0, #0x68 - ldrh r3, [r0] - adds r1, r3, #0 - adds r2, r0, #0 - cmp r1, #0 - beq _0808D08C - subs r0, r3, #2 - strh r0, [r2] - b _0808D08E -_0808D08C: - strh r1, [r2] -_0808D08E: - movs r1, #0x2e - ldrsh r0, [r4, r1] - movs r3, #0x32 - ldrsh r1, [r4, r3] - ldrh r2, [r2] - bl sub_0801E1EC - ldrb r0, [r4, #0xf] - cmp r0, #0x80 - bls _0808D0A6 - subs r0, #8 - strb r0, [r4, #0xf] -_0808D0A6: - ldrb r2, [r4, #0xf] - adds r0, r4, #0 - adds r1, r2, #0 - movs r3, #0 - bl sub_0805EC9C - b _0808D0C2 -_0808D0B4: - ldr r1, _0808D0C4 @ =gArea - ldrb r0, [r1, #0xe] - adds r0, #1 - strb r0, [r1, #0xe] - strh r2, [r1, #0x10] - bl DeleteThisEntity -_0808D0C2: - pop {r4, pc} - .align 2, 0 -_0808D0C4: .4byte gArea diff --git a/asm/object/object42.s b/asm/object/object42.s deleted file mode 100644 index eef40f49..00000000 --- a/asm/object/object42.s +++ /dev/null @@ -1,184 +0,0 @@ - .include "asm/macros.inc" - - .include "constants/constants.inc" - - .syntax unified - - .text - - - thumb_func_start Object42 -Object42: @ 0x0808DD7C - push {lr} - adds r2, r0, #0 - ldrb r0, [r2, #0xa] - cmp r0, #0 - beq _0808DD9C - ldr r0, _0808DD98 @ =gUnk_081217B0 - ldrb r1, [r2, #0xc] - lsls r1, r1, #2 - adds r1, r1, r0 - ldr r1, [r1] - adds r0, r2, #0 - bl _call_via_r1 - b _0808DDAC - .align 2, 0 -_0808DD98: .4byte gUnk_081217B0 -_0808DD9C: - ldr r0, _0808DDB0 @ =gUnk_081217A8 - ldrb r1, [r2, #0xc] - lsls r1, r1, #2 - adds r1, r1, r0 - ldr r1, [r1] - adds r0, r2, #0 - bl _call_via_r1 -_0808DDAC: - pop {pc} - .align 2, 0 -_0808DDB0: .4byte gUnk_081217A8 - - thumb_func_start sub_0808DDB4 -sub_0808DDB4: @ 0x0808DDB4 - push {r4, lr} - adds r4, r0, #0 - movs r0, #1 - strb r0, [r4, #0xc] - ldrb r0, [r4, #0xa] - cmp r0, #0 - beq _0808DDDC - movs r0, #0x78 - strb r0, [r4, #0xe] - adds r1, r4, #0 - adds r1, #0x6c - movs r0, #0xf0 - strh r0, [r1] - adds r0, r4, #0 - movs r1, #0 - bl InitializeAnimation - adds r0, r4, #0 - bl sub_0808DDE8 -_0808DDDC: - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_0808DDE0 -sub_0808DDE0: @ 0x0808DDE0 - push {lr} - bl DeleteThisEntity - pop {pc} - - thumb_func_start sub_0808DDE8 -sub_0808DDE8: @ 0x0808DDE8 - push {r4, r5, lr} - adds r5, r0, #0 - adds r4, r5, #0 - adds r4, #0x6c - ldrh r0, [r4] - subs r0, #1 - strh r0, [r4] - bl sub_0807953C - cmp r0, #0 - beq _0808DE04 - ldrb r0, [r5, #0xf] - adds r0, #1 - strb r0, [r5, #0xf] -_0808DE04: - ldrb r0, [r5, #0xf] - cmp r0, #0x1e - bhi _0808DE1C - ldr r0, _0808DE8C @ =gPlayerState - ldr r0, [r0, #0x30] - ldr r1, _0808DE90 @ =0x00001810 - ands r0, r1 - cmp r0, #0 - bne _0808DE1C - ldrh r0, [r4] - cmp r0, #0 - bne _0808DE2A -_0808DE1C: - ldr r0, _0808DE8C @ =gPlayerState - ldr r1, [r0, #0x30] - ldr r2, _0808DE94 @ =0xFFFFFBFF - ands r1, r2 - str r1, [r0, #0x30] - bl DeleteThisEntity -_0808DE2A: - ldr r3, _0808DE98 @ =gPlayerEntity - ldr r1, _0808DE9C @ =gUnk_081217B8 - ldrb r0, [r3, #0x14] - lsrs r0, r0, #1 - adds r0, r0, r1 - ldrb r0, [r0] - lsls r0, r0, #0x18 - asrs r0, r0, #0x18 - ldrh r1, [r3, #0x2e] - adds r0, r0, r1 - strh r0, [r5, #0x2e] - ldrh r0, [r3, #0x32] - subs r0, #6 - strh r0, [r5, #0x32] - ldr r0, [r3, #0x34] - str r0, [r5, #0x34] - adds r0, r3, #0 - adds r0, #0x38 - ldrb r1, [r0] - adds r0, r5, #0 - adds r0, #0x38 - strb r1, [r0] - ldrb r2, [r3, #0x19] - lsrs r2, r2, #6 - lsls r2, r2, #6 - ldrb r4, [r5, #0x19] - movs r1, #0x3f - adds r0, r1, #0 - ands r0, r4 - orrs r0, r2 - strb r0, [r5, #0x19] - ldrb r0, [r3, #0x1b] - lsrs r0, r0, #6 - lsls r0, r0, #6 - ldrb r2, [r5, #0x1b] - ands r1, r2 - orrs r1, r0 - strb r1, [r5, #0x1b] - ldr r0, _0808DE8C @ =gPlayerState - ldr r0, [r0, #0x30] - movs r1, #0x80 - lsls r1, r1, #3 - ands r0, r1 - cmp r0, #0 - beq _0808DEA0 - adds r0, r5, #0 - bl GetNextFrame - b _0808DEA4 - .align 2, 0 -_0808DE8C: .4byte gPlayerState -_0808DE90: .4byte 0x00001810 -_0808DE94: .4byte 0xFFFFFBFF -_0808DE98: .4byte gPlayerEntity -_0808DE9C: .4byte gUnk_081217B8 -_0808DEA0: - bl DeleteThisEntity -_0808DEA4: - ldr r1, _0808DEC0 @ =gPlayerEntity - ldrb r0, [r1, #0x14] - lsrs r0, r0, #1 - cmp r0, #2 - bne _0808DEC4 - adds r0, r1, #0 - movs r1, #3 - adds r2, r5, #0 - bl sub_0806FEBC - ldrh r0, [r5, #0x32] - subs r0, #5 - strh r0, [r5, #0x32] - b _0808DECE - .align 2, 0 -_0808DEC0: .4byte gPlayerEntity -_0808DEC4: - adds r0, r1, #0 - movs r1, #0 - adds r2, r5, #0 - bl sub_0806FEBC -_0808DECE: - pop {r4, r5, pc} diff --git a/asm/object/object4B.s b/asm/object/object4B.s deleted file mode 100644 index e9c65140..00000000 --- a/asm/object/object4B.s +++ /dev/null @@ -1,267 +0,0 @@ - .include "asm/macros.inc" - - .include "constants/constants.inc" - - .syntax unified - - .text - - - thumb_func_start Object4B -Object4B: @ 0x0808F77C - push {lr} - ldr r2, _0808F790 @ =gUnk_08121EB8 - ldrb r1, [r0, #0xc] - lsls r1, r1, #2 - adds r1, r1, r2 - ldr r1, [r1] - bl _call_via_r1 - pop {pc} - .align 2, 0 -_0808F790: .4byte gUnk_08121EB8 - - thumb_func_start sub_0808F794 -sub_0808F794: @ 0x0808F794 - push {lr} - movs r1, #1 - strb r1, [r0, #0xc] - movs r1, #0x3c - strb r1, [r0, #0xe] - movs r1, #0 - bl InitializeAnimation - pop {pc} - .align 2, 0 - - thumb_func_start sub_0808F7A8 -sub_0808F7A8: @ 0x0808F7A8 - push {lr} - adds r2, r0, #0 - ldrb r0, [r2, #0xe] - subs r0, #1 - strb r0, [r2, #0xe] - lsls r0, r0, #0x18 - cmp r0, #0 - bne _0808F7D0 - movs r0, #0x78 - strb r0, [r2, #0xe] - ldrb r0, [r2, #0xc] - adds r0, #1 - strb r0, [r2, #0xc] - ldrb r1, [r2, #0x18] - movs r0, #4 - rsbs r0, r0, #0 - ands r0, r1 - movs r1, #1 - orrs r0, r1 - strb r0, [r2, #0x18] -_0808F7D0: - pop {pc} - .align 2, 0 - - thumb_func_start sub_0808F7D4 -sub_0808F7D4: @ 0x0808F7D4 - 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 _0808F80A - ldrb r0, [r4, #0xc] - adds r0, #1 - strb r0, [r4, #0xc] - adds r2, r4, #0 - adds r2, #0x29 - ldrb r1, [r2] - movs r0, #0x39 - rsbs r0, r0, #0 - ands r0, r1 - movs r1, #0x18 - orrs r0, r1 - strb r0, [r2] - adds r0, r4, #0 - movs r1, #2 - bl InitializeAnimation -_0808F80A: - pop {r4, pc} - - thumb_func_start sub_0808F80C -sub_0808F80C: @ 0x0808F80C - push {r4, lr} - adds r4, r0, #0 - bl GetNextFrame - ldrb r0, [r4, #0xe] - subs r0, #1 - strb r0, [r4, #0xe] - lsls r0, r0, #0x18 - lsrs r1, r0, #0x18 - cmp r1, #0 - bne _0808F850 - ldrb r0, [r4, #0xc] - adds r0, #1 - strb r0, [r4, #0xc] - strb r1, [r4, #0x15] - movs r2, #0 - movs r0, #0x80 - lsls r0, r0, #1 - strh r0, [r4, #0x24] - movs r0, #0x80 - lsls r0, r0, #0xa - str r0, [r4, #0x20] - ldrb r1, [r4, #0x1b] - movs r0, #0x3f - ands r0, r1 - strb r0, [r4, #0x1b] - strb r2, [r4, #0xe] - adds r0, r4, #0 - movs r1, #3 - bl InitializeAnimation - ldr r0, _0808F854 @ =0x0000012B - bl SoundReq -_0808F850: - pop {r4, pc} - .align 2, 0 -_0808F854: .4byte 0x0000012B - - thumb_func_start sub_0808F858 -sub_0808F858: @ 0x0808F858 - push {r4, lr} - adds r4, r0, #0 - adds r0, #0x5a - ldrb r1, [r0] - movs r0, #0x10 - ands r0, r1 - cmp r0, #0 - beq _0808F884 - adds r0, r4, #0 - bl LinearMoveUpdate - movs r1, #0x80 - lsls r1, r1, #6 - adds r0, r4, #0 - bl GravityUpdate - cmp r0, #0 - bne _0808F88A - adds r0, r4, #0 - bl GetNextFrame - b _0808F88A -_0808F884: - adds r0, r4, #0 - bl GetNextFrame -_0808F88A: - movs r1, #0x32 - ldrsh r0, [r4, r1] - ldr r1, _0808F8C4 @ =gRoomControls - ldrh r2, [r1, #8] - subs r0, r0, r2 - movs r1, #0x8c - lsls r1, r1, #2 - cmp r0, r1 - bgt _0808F8C8 - adds r0, r2, r1 - strh r0, [r4, #0x32] - adds r0, r4, #0 - adds r0, #0x5a - ldrb r1, [r0] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - beq _0808F8EA - ldrb r0, [r4, #0xc] - adds r0, #1 - strb r0, [r4, #0xc] - movs r0, #0x78 - strb r0, [r4, #0xe] - adds r0, r4, #0 - movs r1, #2 - bl InitializeAnimation - b _0808F8EA - .align 2, 0 -_0808F8C4: .4byte gRoomControls -_0808F8C8: - adds r0, r4, #0 - adds r0, #0x5a - ldrb r1, [r0] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - beq _0808F8EA - movs r0, #0x80 - lsls r0, r0, #0xa - str r0, [r4, #0x20] - adds r0, r4, #0 - movs r1, #3 - bl InitializeAnimation - ldr r0, _0808F8EC @ =0x0000012B - bl SoundReq -_0808F8EA: - pop {r4, pc} - .align 2, 0 -_0808F8EC: .4byte 0x0000012B - - thumb_func_start sub_0808F8F0 -sub_0808F8F0: @ 0x0808F8F0 - push {r4, lr} - adds r4, r0, #0 - bl GetNextFrame - ldrb r0, [r4, #0xe] - subs r0, #1 - strb r0, [r4, #0xe] - lsls r0, r0, #0x18 - cmp r0, #0 - bne _0808F912 - ldrb r0, [r4, #0xc] - adds r0, #1 - strb r0, [r4, #0xc] - adds r0, r4, #0 - movs r1, #5 - bl InitializeAnimation -_0808F912: - pop {r4, pc} - - thumb_func_start sub_0808F914 -sub_0808F914: @ 0x0808F914 - 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 _0808F93C - ldrb r0, [r4, #0xc] - adds r0, #1 - strb r0, [r4, #0xc] - movs r0, #0x3c - strb r0, [r4, #0xe] - adds r0, r4, #0 - movs r1, #1 - bl InitializeAnimation -_0808F93C: - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_0808F940 -sub_0808F940: @ 0x0808F940 - push {r4, lr} - adds r4, r0, #0 - bl GetNextFrame - ldrb r0, [r4, #0xe] - subs r0, #1 - strb r0, [r4, #0xe] - lsls r0, r0, #0x18 - cmp r0, #0 - bne _0808F960 - ldr r1, _0808F964 @ =gMenu - ldrb r0, [r1, #6] - adds r0, #1 - strb r0, [r1, #6] - bl DeleteThisEntity -_0808F960: - pop {r4, pc} - .align 2, 0 -_0808F964: .4byte gMenu diff --git a/asm/object/object5B.s b/asm/object/object5B.s deleted file mode 100644 index a80ba72b..00000000 --- a/asm/object/object5B.s +++ /dev/null @@ -1,157 +0,0 @@ - .include "asm/macros.inc" - - .include "constants/constants.inc" - - .syntax unified - - .text - - - thumb_func_start Object5B -Object5B: @ 0x0809288C - push {lr} - adds r2, r0, #0 - ldrb r1, [r2, #0x10] - movs r0, #2 - ands r0, r1 - cmp r0, #0 - beq _080928B0 - ldr r0, _080928AC @ =gUnk_0812279C - ldrb r1, [r2, #0xc] - lsls r1, r1, #2 - adds r1, r1, r0 - ldr r1, [r1] - adds r0, r2, #0 - bl _call_via_r1 - b _080928C0 - .align 2, 0 -_080928AC: .4byte gUnk_0812279C -_080928B0: - ldr r0, _080928C4 @ =gUnk_08122794 - ldrb r1, [r2, #0xc] - lsls r1, r1, #2 - adds r1, r1, r0 - ldr r1, [r1] - adds r0, r2, #0 - bl _call_via_r1 -_080928C0: - pop {pc} - .align 2, 0 -_080928C4: .4byte gUnk_08122794 - - thumb_func_start sub_080928C8 -sub_080928C8: @ 0x080928C8 - push {lr} - adds r3, r0, #0 - movs r2, #1 - movs r0, #1 - strb r0, [r3, #0xc] - ldrb r1, [r3, #0x18] - subs r0, #5 - ands r0, r1 - orrs r0, r2 - strb r0, [r3, #0x18] - ldrb r0, [r3, #0xa] - strb r0, [r3, #0x1e] - ldrb r0, [r3, #0x19] - movs r1, #0xc0 - orrs r0, r1 - 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] - movs r0, #0x3f - ands r0, r1 - movs r1, #0x80 - orrs r0, r1 - strb r0, [r3, #0x1b] - ldrb r0, [r3, #0xa] - cmp r0, #2 - beq _08092912 - cmp r0, #4 - beq _08092920 - b _08092928 -_08092912: - adds r0, r3, #0 - movs r1, #0x5b - movs r2, #4 - movs r3, #0 - bl CreateObjectWithParent - b _08092928 -_08092920: - ldrb r0, [r2] - movs r1, #7 - orrs r0, r1 - strb r0, [r2] -_08092928: - pop {pc} - .align 2, 0 - - thumb_func_start nullsub_119 -nullsub_119: @ 0x0809292C - bx lr - .align 2, 0 - - thumb_func_start sub_08092930 -sub_08092930: @ 0x08092930 - push {r4, lr} - adds r4, r0, #0 - bl sub_080928C8 - adds r4, #0x82 - movs r0, #0 - strh r0, [r4] - pop {r4, pc} - - thumb_func_start sub_08092940 -sub_08092940: @ 0x08092940 - push {r4, r5, lr} - adds r4, r0, #0 - adds r5, r4, #0 - adds r5, #0x84 - ldr r1, [r5] - bl ExecuteScript - ldr r1, [r5] - adds r0, r4, #0 - bl sub_08092958 - pop {r4, r5, pc} - - thumb_func_start sub_08092958 -sub_08092958: @ 0x08092958 - push {r4, lr} - adds r3, r0, #0 - adds r2, r1, #0 - ldr r0, [r2, #8] - cmp r0, #0 - beq _0809298A - movs r4, #0 -_08092966: - ldr r1, [r2, #8] - mvns r0, r1 - adds r0, #1 - ands r0, r1 - eors r1, r0 - str r1, [r2, #8] - cmp r0, #1 - beq _0809297C - cmp r0, #2 - beq _08092980 - b _08092984 -_0809297C: - strb r4, [r3, #0x1e] - b _08092984 -_08092980: - ldr r0, [r2, #4] - strb r0, [r3, #0x1e] -_08092984: - ldr r0, [r2, #8] - cmp r0, #0 - bne _08092966 -_0809298A: - pop {r4, pc} diff --git a/asm/object/object64.s b/asm/object/object64.s deleted file mode 100644 index ca27ad31..00000000 --- a/asm/object/object64.s +++ /dev/null @@ -1,214 +0,0 @@ - .include "asm/macros.inc" - - .include "constants/constants.inc" - - .syntax unified - - .text - - - thumb_func_start Object64 -Object64: @ 0x08093E24 - push {lr} - ldr r2, _08093E38 @ =gUnk_0812295C - ldrb r1, [r0, #0xc] - lsls r1, r1, #2 - adds r1, r1, r2 - ldr r1, [r1] - bl _call_via_r1 - pop {pc} - .align 2, 0 -_08093E38: .4byte gUnk_0812295C - - thumb_func_start sub_08093E3C -sub_08093E3C: @ 0x08093E3C - push {r4, lr} - adds r4, r0, #0 - movs r2, #1 - movs r0, #1 - strb r0, [r4, #0xc] - ldrb r1, [r4, #0x10] - movs r0, #0x7f - ands r0, r1 - strb r0, [r4, #0x10] - ldrb r1, [r4, #0x18] - movs r0, #4 - rsbs r0, r0, #0 - ands r0, r1 - orrs r0, r2 - strb r0, [r4, #0x18] - adds r0, r4, #0 - adds r0, #0x38 - ldrb r0, [r0] - cmp r0, #0 - bne _08093E6A - adds r0, r4, #0 - bl ResolveCollisionLayer -_08093E6A: - ldrb r1, [r4, #0xa] - adds r0, r4, #0 - bl InitializeAnimation - ldrb r0, [r4, #0xa] - lsls r0, r0, #2 - ldr r1, _08093EA8 @ =gUnk_08122950 - adds r2, r0, r1 - ldrh r0, [r2] - cmp r0, #0 - beq _08093E90 - ldrb r1, [r4, #0xb] - movs r0, #0x40 - ands r0, r1 - cmp r0, #0 - bne _08093E90 - ldrh r0, [r2] - bl EnqueueSFX -_08093E90: - ldrb r1, [r4, #0xb] - movs r0, #0x20 - ands r0, r1 - cmp r0, #0 - beq _08093EA6 - ldrb r0, [r4, #0x19] - movs r1, #0x3f - ands r1, r0 - movs r0, #0x40 - orrs r1, r0 - strb r1, [r4, #0x19] -_08093EA6: - pop {r4, pc} - .align 2, 0 -_08093EA8: .4byte gUnk_08122950 - - thumb_func_start sub_08093EAC -sub_08093EAC: @ 0x08093EAC - push {lr} - ldr r3, _08093EC8 @ =gUnk_08122964 - ldr r2, _08093ECC @ =gUnk_08122950 - ldrb r1, [r0, #0xa] - lsls r1, r1, #2 - adds r1, r1, r2 - ldrb r1, [r1, #2] - lsrs r1, r1, #4 - lsls r1, r1, #2 - adds r1, r1, r3 - ldr r1, [r1] - bl _call_via_r1 - pop {pc} - .align 2, 0 -_08093EC8: .4byte gUnk_08122964 -_08093ECC: .4byte gUnk_08122950 - - thumb_func_start sub_08093ED0 -sub_08093ED0: @ 0x08093ED0 - 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 _08093EEC - adds r0, r4, #0 - bl DeleteEntity -_08093EEC: - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_08093EF0 -sub_08093EF0: @ 0x08093EF0 - push {r4, r5, r6, lr} - adds r5, r0, #0 - ldrb r4, [r5, #0xa] - cmp r4, #1 - beq _08093F40 - cmp r4, #1 - bgt _08093F04 - cmp r4, #0 - beq _08093F0A - b _08093FB0 -_08093F04: - cmp r4, #2 - beq _08093F98 - b _08093FB0 -_08093F0A: - ldrb r0, [r5, #0xd] - cmp r0, #0 - bne _08093FB0 - 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 _08093FB0 - movs r0, #0x64 - movs r1, #1 - movs r2, #0 - bl CreateObject - adds r1, r0, #0 - cmp r1, #0 - beq _08093F8E - ldr r0, [r5, #0x50] - str r0, [r1, #0x50] - adds r0, r5, #0 - bl CopyPosition - b _08093F8E -_08093F40: - adds r0, r5, #0 - bl GetNextFrame - adds r1, r5, #0 - adds r1, #0x5a - ldrb r0, [r1] - ands r4, r0 - adds r6, r1, #0 - cmp r4, #0 - beq _08093F72 - movs r0, #0 - strb r0, [r6] - movs r0, #0x64 - movs r1, #2 - movs r2, #0 - bl CreateObject - adds r1, r0, #0 - cmp r1, #0 - beq _08093F72 - ldr r0, [r5, #0x50] - str r0, [r1, #0x50] - adds r0, r5, #0 - bl CopyPosition -_08093F72: - ldrb r1, [r6] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - beq _08093FB0 - ldr r1, [r5, #0x50] - ldr r0, _08093F94 @ =gPlayerEntity - cmp r1, r0 - bne _08093F8E - movs r0, #0x7a - bl SoundReq - bl sub_08079D84 -_08093F8E: - bl DeleteThisEntity - b _08093FB0 - .align 2, 0 -_08093F94: .4byte gPlayerEntity -_08093F98: - 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 _08093FB0 - bl DeleteThisEntity -_08093FB0: - pop {r4, r5, r6, pc} - .align 2, 0 diff --git a/asm/object/object70.s b/asm/object/object70.s deleted file mode 100644 index d391dc75..00000000 --- a/asm/object/object70.s +++ /dev/null @@ -1,198 +0,0 @@ - .include "asm/macros.inc" - - .include "constants/constants.inc" - - .syntax unified - - .text - - - thumb_func_start Object70 -Object70: @ 0x08097420 - push {lr} - ldr r2, _08097434 @ =gUnk_081232A4 - ldrb r1, [r0, #0xc] - lsls r1, r1, #2 - adds r1, r1, r2 - ldr r1, [r1] - bl _call_via_r1 - pop {pc} - .align 2, 0 -_08097434: .4byte gUnk_081232A4 - - thumb_func_start sub_08097438 -sub_08097438: @ 0x08097438 - 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] - ldrb r0, [r4, #0xa] - adds r1, r0, #0 - adds r1, #0xb - strb r1, [r4, #0x1e] - lsls r0, r0, #0x18 - cmp r0, #0 - beq _080974A2 - adds r0, r4, #0 - bl sub_08004168 - ldr r1, _08097494 @ =gPlayerEntity - ldrb r0, [r1, #0x1b] - movs r2, #0xc0 - orrs r0, r2 - strb r0, [r1, #0x1b] - adds r1, #0x29 - ldrb r1, [r1] - movs r2, #7 - movs r0, #7 - ands r0, r1 - cmp r0, #7 - beq _08097498 - lsls r1, r1, #0x1d - lsrs r1, r1, #0x1d - adds r1, #1 - adds r3, r4, #0 - adds r3, #0x29 - ands r1, r2 - ldrb r2, [r3] - movs r0, #8 - rsbs r0, r0, #0 - ands r0, r2 - orrs r0, r1 - strb r0, [r3] - b _080974A2 - .align 2, 0 -_08097494: .4byte gPlayerEntity -_08097498: - adds r1, r4, #0 - adds r1, #0x29 - ldrb r0, [r1] - orrs r0, r2 - strb r0, [r1] -_080974A2: - pop {r4, pc} - - thumb_func_start sub_080974A4 -sub_080974A4: @ 0x080974A4 - push {r4, lr} - adds r4, r0, #0 - ldrb r0, [r4, #0xa] - cmp r0, #0 - bne _08097554 - ldr r3, _08097540 @ =gPlayerEntity - ldr r0, [r3, #0x34] - cmp r0, #0 - bne _080974E8 - ldr r2, _08097544 @ =gPlayerState - ldrb r1, [r2, #0x1e] - movs r0, #0x40 - ands r0, r1 - cmp r0, #0 - bne _080974D6 - ldrb r0, [r2, #0x12] - cmp r0, #0x11 - bne _080974D6 - ldrb r0, [r3, #0xc] - cmp r0, #1 - beq _080974FA - cmp r0, #0x18 - beq _080974FA - cmp r0, #4 - beq _080974FA -_080974D6: - ldr r1, _08097540 @ =gPlayerEntity - ldr r0, [r1, #0x34] - cmp r0, #0 - bne _080974E8 - adds r0, r1, #0 - movs r1, #0x52 - movs r2, #0 - bl CreateFx -_080974E8: - ldr r2, _08097540 @ =gPlayerEntity - ldrb r1, [r2, #0x1b] - movs r0, #0x3f - ands r0, r1 - movs r1, #0x80 - orrs r0, r1 - strb r0, [r2, #0x1b] - bl DeleteThisEntity -_080974FA: - ldr r2, _08097540 @ =gPlayerEntity - ldr r0, [r2, #0x2c] - str r0, [r4, #0x2c] - ldr r0, [r2, #0x30] - str r0, [r4, #0x30] - ldr r0, _08097544 @ =gPlayerState - ldrb r0, [r0, #2] - cmp r0, #0 - bne _08097584 - ldrb r0, [r2, #0x1b] - movs r1, #0xc0 - orrs r0, r1 - strb r0, [r2, #0x1b] - adds r0, r2, #0 - adds r0, #0x29 - ldrb r1, [r0] - movs r2, #7 - movs r0, #7 - ands r0, r1 - cmp r0, #7 - beq _08097548 - lsls r1, r1, #0x1d - lsrs r1, r1, #0x1d - adds r1, #1 - adds r3, r4, #0 - adds r3, #0x29 - ands r1, r2 - ldrb r2, [r3] - movs r0, #8 - rsbs r0, r0, #0 - ands r0, r2 - orrs r0, r1 - strb r0, [r3] - b _08097584 - .align 2, 0 -_08097540: .4byte gPlayerEntity -_08097544: .4byte gPlayerState -_08097548: - adds r1, r4, #0 - adds r1, #0x29 - ldrb r0, [r1] - orrs r0, r2 - strb r0, [r1] - b _08097584 -_08097554: - ldr r2, _08097570 @ =gPlayerEntity - ldrb r0, [r2, #0xc] - cmp r0, #0x1e - beq _08097584 - adds r0, r4, #0 - adds r0, #0x38 - ldrb r0, [r0] - cmp r0, #1 - bne _08097574 - ldrb r0, [r2, #0x1b] - movs r1, #0x3f - ands r1, r0 - movs r0, #0x80 - b _0809757C - .align 2, 0 -_08097570: .4byte gPlayerEntity -_08097574: - ldrb r0, [r2, #0x1b] - movs r1, #0x3f - ands r1, r0 - movs r0, #0x40 -_0809757C: - orrs r1, r0 - strb r1, [r2, #0x1b] - bl DeleteThisEntity -_08097584: - pop {r4, pc} - .align 2, 0 diff --git a/asm/object/object74.s b/asm/object/object74.s deleted file mode 100644 index 8f81ac3b..00000000 --- a/asm/object/object74.s +++ /dev/null @@ -1,277 +0,0 @@ - .include "asm/macros.inc" - - .include "constants/constants.inc" - - .syntax unified - - .text - - - thumb_func_start Object74 -Object74: @ 0x08097B6C - push {lr} - ldr r2, _08097B80 @ =gUnk_08123330 - ldrb r1, [r0, #0xc] - lsls r1, r1, #2 - adds r1, r1, r2 - ldr r1, [r1] - bl _call_via_r1 - pop {pc} - .align 2, 0 -_08097B80: .4byte gUnk_08123330 - - thumb_func_start sub_08097B84 -sub_08097B84: @ 0x08097B84 - push {r4, lr} - adds r4, r0, #0 - movs r0, #1 - strb r0, [r4, #0xc] - adds r2, r4, #0 - adds r2, #0x29 - ldrb r0, [r2] - movs r1, #7 - orrs r0, r1 - strb r0, [r2] - ldr r0, _08097BCC @ =gUnk_08123328 - str r0, [r4, #0x48] - adds r2, #0x5d - ldrh r1, [r2] - ldr r0, _08097BD0 @ =0x0000FFFF - cmp r1, r0 - beq _08097BB0 - adds r0, r1, #0 - bl CheckFlags - cmp r0, #0 - beq _08097BD4 -_08097BB0: - ldrb r1, [r4, #0x18] - movs r0, #4 - rsbs r0, r0, #0 - ands r0, r1 - movs r1, #1 - orrs r0, r1 - strb r0, [r4, #0x18] - movs r0, #4 - strb r0, [r4, #0xc] - adds r0, r4, #0 - bl sub_08097CFC - b _08097BD8 - .align 2, 0 -_08097BCC: .4byte gUnk_08123328 -_08097BD0: .4byte 0x0000FFFF -_08097BD4: - bl sub_0805BC4C -_08097BD8: - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_08097BDC -sub_08097BDC: @ 0x08097BDC - push {r4, lr} - adds r4, r0, #0 - adds r0, #0x86 - ldrh r0, [r0] - bl CheckFlags - cmp r0, #0 - beq _08097C10 - movs r0, #1 - bl SetPlayerControl - ldr r0, _08097C14 @ =gUnk_02034490 - movs r1, #1 - strb r1, [r0] - adds r0, r4, #0 - movs r1, #0x1e - bl RequestPriorityDuration - adds r0, r4, #0 - bl sub_08097CB0 - cmp r0, #0 - bne _08097C10 - adds r0, r4, #0 - bl sub_08097CB4 -_08097C10: - pop {r4, pc} - .align 2, 0 -_08097C14: .4byte gUnk_02034490 - - thumb_func_start sub_08097C18 -sub_08097C18: @ 0x08097C18 - bx lr - .align 2, 0 - - thumb_func_start sub_08097C1C -sub_08097C1C: @ 0x08097C1C - bx lr - .align 2, 0 - - thumb_func_start sub_08097C20 -sub_08097C20: @ 0x08097C20 - push {r4, r5, r6, lr} - adds r4, r0, #0 - movs r0, #0x1e - bl SetPriorityTimer - adds r0, r4, #0 - bl sub_0800445C - movs r1, #0x2e - ldrsh r0, [r4, r1] - movs r2, #0x32 - ldrsh r1, [r4, r2] - adds r2, r4, #0 - adds r2, #0x38 - ldrb r2, [r2] - bl CreateMagicSparkles - ldrb r0, [r4, #0xe] - subs r0, #1 - strb r0, [r4, #0xe] - movs r1, #0xff - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 - cmp r5, #0 - bne _08097CA6 - movs r0, #8 - strb r0, [r4, #0xe] - ldrb r0, [r4, #0xf] - adds r0, #1 - strb r0, [r4, #0xf] - ands r1, r0 - ldr r6, _08097CA8 @ =gScreen - movs r0, #0x10 - subs r0, r0, r1 - lsls r0, r0, #8 - orrs r0, r1 - adds r1, r6, #0 - adds r1, #0x68 - strh r0, [r1] - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - cmp r0, #0x10 - bne _08097CA6 - movs r0, #0 - bl SetPlayerControl - ldr r1, _08097CAC @ =gUnk_02034490 - movs r0, #0 - strb r0, [r1] - adds r0, r6, #0 - adds r0, #0x66 - strh r5, [r0] - adds r0, r4, #0 - bl sub_08097CFC - movs r0, #4 - strb r0, [r4, #0xc] - ldrb r1, [r4, #0x19] - subs r0, #0x11 - ands r0, r1 - strb r0, [r4, #0x19] - movs r0, #0x72 - bl SoundReq - movs r0, #0x63 - bl SetGlobalFlag -_08097CA6: - pop {r4, r5, r6, pc} - .align 2, 0 -_08097CA8: .4byte gScreen -_08097CAC: .4byte gUnk_02034490 - - thumb_func_start sub_08097CB0 -sub_08097CB0: @ 0x08097CB0 - movs r0, #0 - bx lr - - thumb_func_start sub_08097CB4 -sub_08097CB4: @ 0x08097CB4 - push {lr} - movs r3, #0 - movs r1, #3 - strb r1, [r0, #0xc] - ldrb r2, [r0, #0x18] - subs r1, #7 - ands r1, r2 - movs r2, #1 - orrs r1, r2 - strb r1, [r0, #0x18] - ldrb r2, [r0, #0x19] - movs r1, #0xd - rsbs r1, r1, #0 - ands r1, r2 - movs r2, #4 - orrs r1, r2 - strb r1, [r0, #0x19] - movs r1, #0x1e - strb r1, [r0, #0xe] - strb r3, [r0, #0xf] - ldr r1, _08097CF8 @ =gScreen - adds r2, r1, #0 - adds r2, #0x66 - movs r0, #0xf4 - lsls r0, r0, #4 - strh r0, [r2] - adds r1, #0x68 - adds r0, #0xc0 - strh r0, [r1] - movs r0, #0xa5 - lsls r0, r0, #1 - bl SoundReq - pop {pc} - .align 2, 0 -_08097CF8: .4byte gScreen - - thumb_func_start sub_08097CFC -sub_08097CFC: @ 0x08097CFC - push {r4, r5, r6, lr} - adds r5, r0, #0 - ldrh r1, [r5, #0x2e] - movs r0, #0xf - ands r0, r1 - cmp r0, #0 - bne _08097D40 - ldr r0, _08097D38 @ =gUnk_0812336A - movs r2, #0x2e - ldrsh r1, [r5, r2] - ldr r3, _08097D3C @ =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_0801AF18 - b _08097D6C - .align 2, 0 -_08097D38: .4byte gUnk_0812336A -_08097D3C: .4byte gRoomControls -_08097D40: - ldr r0, _08097D70 @ =gUnk_08123344 - movs r2, #0x2e - ldrsh r1, [r5, r2] - ldr r3, _08097D74 @ =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_0801AF18 -_08097D6C: - pop {r4, r5, r6, pc} - .align 2, 0 -_08097D70: .4byte gUnk_08123344 -_08097D74: .4byte gRoomControls diff --git a/asm/object/objectB.s b/asm/object/objectB.s deleted file mode 100644 index df46ef44..00000000 --- a/asm/object/objectB.s +++ /dev/null @@ -1,304 +0,0 @@ - .include "asm/macros.inc" - - .include "constants/constants.inc" - - .syntax unified - - .text - - - thumb_func_start ObjectB -ObjectB: @ 0x08083B88 - push {r4, lr} - adds r4, r0, #0 - ldr r1, _08083BDC @ =gUnk_0811F7D8 - ldrb r0, [r4, #0xc] - lsls r0, r0, #2 - adds r0, r0, r1 - ldr r1, [r0] - adds r0, r4, #0 - bl _call_via_r1 - ldr r0, [r4, #0x50] - adds r0, #0x5a - ldrb r1, [r0] - lsrs r1, r1, #6 - movs r0, #1 - ands r1, r0 - ldrb r2, [r4, #0x18] - subs r0, #5 - ands r0, r2 - orrs r0, r1 - strb r0, [r4, #0x18] - adds r0, r4, #0 - bl sub_08080CB4 - adds r2, r4, #0 - adds r2, #0x29 - ldrb r1, [r2] - movs r0, #0x39 - rsbs r0, r0, #0 - ands r0, r1 - strb r0, [r2] - ldrb r1, [r4, #0x1b] - movs r2, #0x3f - adds r0, r2, #0 - ands r0, r1 - movs r1, #0x40 - orrs r0, r1 - strb r0, [r4, #0x1b] - ldrb r0, [r4, #0x19] - ands r2, r0 - strb r2, [r4, #0x19] - pop {r4, pc} - .align 2, 0 -_08083BDC: .4byte gUnk_0811F7D8 - - thumb_func_start sub_08083BE0 -sub_08083BE0: @ 0x08083BE0 - push {r4, lr} - adds r4, r0, #0 - movs r1, #6 - bl SetDefaultPriority - movs r0, #1 - strb r0, [r4, #0xc] - pop {r4, pc} - - thumb_func_start sub_08083BF0 -sub_08083BF0: @ 0x08083BF0 - push {r4, lr} - adds r4, r0, #0 - ldr r0, [r4, #0x50] - adds r0, #0x5a - ldrb r0, [r0] - cmp r0, #0x41 - bne _08083C98 - movs r0, #2 - strb r0, [r4, #0xc] - ldrb r0, [r4, #0xe] - cmp r0, #5 - bhi _08083C98 - lsls r0, r0, #2 - ldr r1, _08083C14 @ =_08083C18 - adds r0, r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_08083C14: .4byte _08083C18 -_08083C18: @ jump table - .4byte _08083C30 @ case 0 - .4byte _08083C30 @ case 1 - .4byte _08083C4A @ case 2 - .4byte _08083C98 @ case 3 - .4byte _08083C98 @ case 4 - .4byte _08083C74 @ case 5 -_08083C30: - ldrb r0, [r4, #0xa] - ldrb r1, [r4, #0xb] - bl GiveItem - adds r1, r4, #0 - adds r1, #0x68 - strh r0, [r1] - ldrb r0, [r4, #0xa] - cmp r0, #0x43 - bgt _08083C62 - cmp r0, #0x40 - bge _08083C98 - b _08083C62 -_08083C4A: - ldrb r0, [r4, #0xa] - ldrb r1, [r4, #0xb] - bl GiveItem - ldr r1, _08083C6C @ =gUnk_080FD964 - ldrb r0, [r4, #0xa] - lsls r0, r0, #3 - adds r0, r0, r1 - ldrh r1, [r0, #6] - adds r0, r4, #0 - adds r0, #0x68 - strh r1, [r0] -_08083C62: - ldr r0, _08083C70 @ =0x00000109 - bl SoundReq - b _08083C98 - .align 2, 0 -_08083C6C: .4byte gUnk_080FD964 -_08083C70: .4byte 0x00000109 -_08083C74: - ldrb r0, [r4, #0xa] - bl GetInventoryValue - ldrb r1, [r4, #0xa] - lsls r1, r1, #3 - ldr r2, _08083C8C @ =gItemMetaData - adds r1, r1, r2 - cmp r0, #0 - bne _08083C90 - ldrh r1, [r1, #4] - b _08083C92 - .align 2, 0 -_08083C8C: .4byte gItemMetaData -_08083C90: - ldrh r1, [r1, #6] -_08083C92: - adds r0, r4, #0 - adds r0, #0x68 - strh r1, [r0] -_08083C98: - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_08083C9C -sub_08083C9C: @ 0x08083C9C - push {r4, lr} - adds r4, r0, #0 - ldr r0, [r4, #0x50] - adds r0, #0x5a - ldrb r0, [r0] - cmp r0, #0x42 - bne _08083D22 - movs r0, #3 - strb r0, [r4, #0xc] - ldrb r0, [r4, #0xe] - cmp r0, #5 - bhi _08083D22 - lsls r0, r0, #2 - ldr r1, _08083CC0 @ =_08083CC4 - adds r0, r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_08083CC0: .4byte _08083CC4 -_08083CC4: @ jump table - .4byte _08083CDC @ case 0 - .4byte _08083D22 @ case 1 - .4byte _08083CDC @ case 2 - .4byte _08083D22 @ case 3 - .4byte _08083D22 @ case 4 - .4byte _08083CDC @ case 5 -_08083CDC: - adds r0, r4, #0 - adds r0, #0x68 - ldrh r1, [r0] - cmp r1, #0 - beq _08083D22 - ldrb r0, [r4, #0xa] - cmp r0, #0x3f - beq _08083D00 - cmp r0, #0x63 - bne _08083D16 - ldr r0, _08083CFC @ =gSave - adds r0, #0xa9 - ldrb r0, [r0] - adds r1, r1, r0 - b _08083D16 - .align 2, 0 -_08083CFC: .4byte gSave -_08083D00: - ldrb r0, [r4, #0xb] - cmp r0, #1 - bls _08083D16 - ldr r0, _08083D10 @ =0x00000577 - cmp r1, r0 - bne _08083D14 - subs r1, #1 - b _08083D16 - .align 2, 0 -_08083D10: .4byte 0x00000577 -_08083D14: - adds r1, #1 -_08083D16: - adds r0, r1, #0 - bl MessageFromTarget - ldr r1, _08083D24 @ =gMessage - ldrb r0, [r4, #0xb] - str r0, [r1, #0x10] -_08083D22: - pop {r4, pc} - .align 2, 0 -_08083D24: .4byte gMessage - - thumb_func_start sub_08083D28 -sub_08083D28: @ 0x08083D28 - push {r4, lr} - adds r4, r0, #0 - ldr r0, [r4, #0x50] - ldrb r0, [r0, #0xc] - cmp r0, #8 - beq _08083DD4 - ldrb r0, [r4, #0xe] - cmp r0, #5 - bhi _08083DD0 - lsls r0, r0, #2 - ldr r1, _08083D44 @ =_08083D48 - adds r0, r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_08083D44: .4byte _08083D48 -_08083D48: @ jump table - .4byte _08083D60 @ case 0 - .4byte _08083D60 @ case 1 - .4byte _08083D60 @ case 2 - .4byte _08083DAC @ case 3 - .4byte _08083DD0 @ case 4 - .4byte _08083DD0 @ case 5 -_08083D60: - ldrb r0, [r4, #0xa] - cmp r0, #0x62 - beq _08083D88 - cmp r0, #0x63 - bne _08083DD0 - movs r0, #0xa0 - bl ModHealth - ldr r0, _08083DA8 @ =gSave - adds r1, r0, #0 - adds r1, #0xa9 - ldrb r0, [r1] - adds r0, #1 - strb r0, [r1] - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #3 - bls _08083DD0 - movs r0, #0 - strb r0, [r1] -_08083D88: - ldr r0, _08083DA8 @ =gSave - adds r1, r0, #0 - adds r1, #0xab - ldrb r0, [r1] - adds r0, #8 - strb r0, [r1] - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #0xa0 - bls _08083DA0 - movs r0, #0xa0 - strb r0, [r1] -_08083DA0: - movs r0, #0xa0 - bl ModHealth - b _08083DD0 - .align 2, 0 -_08083DA8: .4byte gSave -_08083DAC: - ldrb r0, [r4, #0xa] - bl GetBottleContaining - adds r1, r0, #0 - cmp r1, #0 - beq _08083DC8 - ldr r0, _08083DC4 @ =gSave - adds r0, r0, r1 - adds r0, #0xb5 - movs r1, #0x20 - strb r1, [r0] - b _08083DD0 - .align 2, 0 -_08083DC4: .4byte gSave -_08083DC8: - ldrb r0, [r4, #0xa] - movs r1, #2 - bl SetInventoryValue -_08083DD0: - bl DeleteThisEntity -_08083DD4: - pop {r4, pc} - .align 2, 0 diff --git a/asm/object/objectB3.s b/asm/object/objectB3.s deleted file mode 100644 index 41d6458f..00000000 --- a/asm/object/objectB3.s +++ /dev/null @@ -1,197 +0,0 @@ - .include "asm/macros.inc" - - .include "constants/constants.inc" - - .syntax unified - - .text - - - thumb_func_start ObjectB3 -ObjectB3: @ 0x080A0A34 - push {r4, lr} - adds r4, r0, #0 - ldrb r0, [r4, #0xa] - cmp r0, #0 - beq _080A0A44 - cmp r0, #1 - beq _080A0A5C - b _080A0A5E -_080A0A44: - ldrb r1, [r4, #0x10] - movs r0, #2 - ands r0, r1 - ldr r1, _080A0A54 @ =gUnk_08124A18 - cmp r0, #0 - beq _080A0A5E - ldr r1, _080A0A58 @ =gUnk_08124A10 - b _080A0A5E - .align 2, 0 -_080A0A54: .4byte gUnk_08124A18 -_080A0A58: .4byte gUnk_08124A10 -_080A0A5C: - ldr r1, _080A0AB8 @ =gUnk_08124A20 -_080A0A5E: - ldrb r0, [r4, #0xc] - lsls r0, r0, #2 - adds r0, r0, r1 - ldr r1, [r0] - adds r0, r4, #0 - bl _call_via_r1 - ldrb r0, [r4, #0xc] - cmp r0, #0 - bne _080A0AB0 - movs r0, #1 - strb r0, [r4, #0xc] - ldrb r2, [r4, #0x19] - movs r1, #0x3f - adds r0, r1, #0 - ands r0, r2 - movs r3, #0x40 - orrs r0, r3 - strb r0, [r4, #0x19] - movs r0, #0x29 - adds r0, r0, r4 - mov ip, r0 - ldrb r2, [r0] - movs r0, #8 - rsbs r0, r0, #0 - ands r0, r2 - mov r2, ip - strb r0, [r2] - ldrb r0, [r4, #0x1b] - ands r1, r0 - orrs r1, r3 - strb r1, [r4, #0x1b] - ldr r1, _080A0ABC @ =gUnk_080C9CBC - ldr r0, _080A0AC0 @ =gFuseInfo - ldrb r0, [r0, #3] - lsls r0, r0, #3 - adds r0, r0, r1 - ldrb r1, [r0] - adds r0, r4, #0 - bl ChangeObjPalette -_080A0AB0: - adds r0, r4, #0 - bl GetNextFrame - pop {r4, pc} - .align 2, 0 -_080A0AB8: .4byte gUnk_08124A20 -_080A0ABC: .4byte gUnk_080C9CBC -_080A0AC0: .4byte gFuseInfo - - thumb_func_start sub_080A0AC4 -sub_080A0AC4: @ 0x080A0AC4 - push {lr} - ldrb r1, [r0, #0xa] - bl InitializeAnimation - pop {pc} - .align 2, 0 - - thumb_func_start sub_080A0AD0 -sub_080A0AD0: @ 0x080A0AD0 - push {lr} - movs r1, #0x80 - bl GravityUpdate - pop {pc} - .align 2, 0 - - thumb_func_start sub_080A0ADC -sub_080A0ADC: @ 0x080A0ADC - push {r4, lr} - adds r4, r0, #0 - bl sub_0807DD64 - adds r0, r4, #0 - movs r1, #0 - bl ExecuteScriptForEntity - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_080A0AF0 -sub_080A0AF0: @ 0x080A0AF0 - push {r4, lr} - adds r4, r0, #0 - movs r1, #0 - bl ExecuteScriptForEntity - adds r0, r4, #0 - bl GetNextFrame - adds r0, r4, #0 - adds r0, #0x58 - ldrb r0, [r0] - cmp r0, #5 - bne _080A0B1C - adds r0, r4, #0 - adds r0, #0x5a - ldrb r1, [r0] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - beq _080A0B1C - bl DeleteThisEntity -_080A0B1C: - adds r0, r4, #0 - movs r1, #0x80 - bl GravityUpdate - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_080A0B28 -sub_080A0B28: @ 0x080A0B28 - push {r4, lr} - adds r4, r0, #0 - movs r0, #0x2e - ldrsh r2, [r4, r0] - movs r0, #0x32 - ldrsh r3, [r4, r0] - adds r0, r4, #0 - bl sub_0807DEDC - ldrh r0, [r4, #0x32] - subs r0, #0xb0 - strh r0, [r4, #0x32] - ldrb r1, [r4, #0x18] - movs r0, #4 - rsbs r0, r0, #0 - ands r0, r1 - strb r0, [r4, #0x18] - pop {r4, pc} - - thumb_func_start sub_080A0B4C -sub_080A0B4C: @ 0x080A0B4C - push {lr} - movs r1, #0x78 - strh r1, [r0, #0x2e] - movs r1, #0x50 - strh r1, [r0, #0x32] - movs r1, #0 - bl InitializeAnimation - pop {pc} - .align 2, 0 - - thumb_func_start sub_080A0B60 -sub_080A0B60: @ 0x080A0B60 - push {lr} - adds r2, r0, #0 - adds r0, #0x5a - ldrb r1, [r0] - movs r0, #0x40 - ands r0, r1 - cmp r0, #0 - beq _080A0B7C - movs r0, #2 - strb r0, [r2, #0xc] - movs r0, #0x9b - lsls r0, r0, #1 - bl SoundReq -_080A0B7C: - pop {pc} - .align 2, 0 - - thumb_func_start sub_080A0B80 -sub_080A0B80: @ 0x080A0B80 - ldr r1, [r0, #0x30] - ldr r2, _080A0B8C @ =0xFFFD8000 - adds r1, r1, r2 - str r1, [r0, #0x30] - bx lr - .align 2, 0 -_080A0B8C: .4byte 0xFFFD8000 diff --git a/asm/object/objectBD.s b/asm/object/objectBD.s deleted file mode 100644 index bd5c073d..00000000 --- a/asm/object/objectBD.s +++ /dev/null @@ -1,182 +0,0 @@ - .include "asm/macros.inc" - - .include "constants/constants.inc" - - .syntax unified - - .text - - - thumb_func_start ObjectBD -ObjectBD: @ 0x080A225C - push {lr} - ldr r2, _080A2270 @ =gUnk_0812503C - ldrb r1, [r0, #0xa] - lsls r1, r1, #2 - adds r1, r1, r2 - ldr r1, [r1] - bl _call_via_r1 - pop {pc} - .align 2, 0 -_080A2270: .4byte gUnk_0812503C - - thumb_func_start sub_080A2274 -sub_080A2274: @ 0x080A2274 - push {lr} - adds r1, r0, #0 - ldrb r0, [r1, #0xc] - cmp r0, #0 - bne _080A22AE - adds r0, r1, #0 - bl sub_080A2340 - movs r0, #0xbd - movs r1, #1 - movs r2, #0 - bl CreateObject - movs r0, #0x80 - lsls r0, r0, #0x12 - ldrb r0, [r0, #7] - movs r1, #3 - cmp r0, #1 - bne _080A229C - movs r1, #2 -_080A229C: - movs r0, #0xbd - movs r2, #0 - bl CreateObject - movs r0, #0xbd - movs r1, #4 - movs r2, #0 - bl CreateObject -_080A22AE: - pop {pc} - - thumb_func_start sub_080A22B0 -sub_080A22B0: @ 0x080A22B0 - push {lr} - adds r1, r0, #0 - ldrb r0, [r1, #0xc] - cmp r0, #0 - bne _080A22C0 - adds r0, r1, #0 - bl sub_080A2340 -_080A22C0: - pop {pc} - .align 2, 0 - - thumb_func_start sub_080A22C4 -sub_080A22C4: @ 0x080A22C4 - push {r4, r5, lr} - adds r4, r0, #0 - ldrb r5, [r4, #0xc] - cmp r5, #0 - beq _080A22FC - cmp r5, #1 - beq _080A231C - ldrb r0, [r4, #0xe] - subs r0, #1 - strb r0, [r4, #0xe] - lsls r0, r0, #0x18 - cmp r0, #0 - bne _080A233E - movs r0, #8 - strb r0, [r4, #0xe] - ldrb r0, [r4, #0xf] - adds r0, #1 - movs r1, #3 - ands r0, r1 - strb r0, [r4, #0xf] - ldrb r1, [r4, #0xd] - adds r0, r1, r0 - strb r0, [r4, #0x1e] - lsls r1, r1, #0x18 - lsls r0, r0, #0x18 - cmp r1, r0 - bne _080A233E - b _080A233A -_080A22FC: - adds r0, r4, #0 - bl sub_080A2340 - movs r0, #8 - strb r0, [r4, #0xe] - strb r5, [r4, #0xf] - ldrb r0, [r4, #0x1e] - strb r0, [r4, #0xd] - bl Random - movs r1, #3 - ands r0, r1 - lsls r0, r0, #4 - adds r0, #0x1e - strh r0, [r4, #0x24] - b _080A233E -_080A231C: - ldrh r0, [r4, #0x24] - subs r0, #1 - strh r0, [r4, #0x24] - lsls r0, r0, #0x10 - cmp r0, #0 - bne _080A233E - bl Random - movs r1, #7 - ands r0, r1 - lsls r0, r0, #4 - adds r0, #0x1e - strh r0, [r4, #0x24] - movs r0, #2 - b _080A233C -_080A233A: - movs r0, #1 -_080A233C: - strb r0, [r4, #0xc] -_080A233E: - pop {r4, r5, pc} - - thumb_func_start sub_080A2340 -sub_080A2340: @ 0x080A2340 - ldrb r1, [r0, #0xa] - lsls r1, r1, #3 - ldr r2, _080A239C @ =gUnk_08125014 - adds r1, r1, r2 - ldrh r2, [r1] - strh r2, [r0, #0x2e] - ldrh r2, [r1, #2] - strh r2, [r0, #0x32] - ldrh r2, [r1, #4] - strb r2, [r0, #0x1e] - ldrb r1, [r1, #6] - movs r2, #0x29 - adds r2, r2, r0 - mov ip, r2 - movs r2, #7 - ands r2, r1 - mov r1, ip - ldrb r3, [r1] - movs r1, #8 - rsbs r1, r1, #0 - ands r1, r3 - orrs r1, r2 - mov r2, ip - strb r1, [r2] - ldrb r3, [r0, #0x19] - movs r2, #0x3f - adds r1, r2, #0 - ands r1, r3 - movs r3, #0x40 - orrs r1, r3 - strb r1, [r0, #0x19] - ldrb r1, [r0, #0x1b] - ands r2, r1 - orrs r2, r3 - strb r2, [r0, #0x1b] - ldrb r2, [r0, #0x18] - movs r1, #4 - rsbs r1, r1, #0 - ands r1, r2 - movs r2, #2 - orrs r1, r2 - strb r1, [r0, #0x18] - movs r1, #1 - strb r1, [r0, #0xc] - bx lr - .align 2, 0 -_080A239C: .4byte gUnk_08125014 diff --git a/asm/object/objectD.s b/asm/object/objectD.s deleted file mode 100644 index f257bd93..00000000 --- a/asm/object/objectD.s +++ /dev/null @@ -1,156 +0,0 @@ - .include "asm/macros.inc" - - .include "constants/constants.inc" - - .syntax unified - - .text - - - thumb_func_start ObjectD -ObjectD: @ 0x08084334 - push {lr} - ldr r2, _08084348 @ =gUnk_0811F908 - ldrb r1, [r0, #0xc] - lsls r1, r1, #2 - adds r1, r1, r2 - ldr r1, [r1] - bl _call_via_r1 - pop {pc} - .align 2, 0 -_08084348: .4byte gUnk_0811F908 - - thumb_func_start sub_0808434C -sub_0808434C: @ 0x0808434C - push {r4, r5, r6, lr} - adds r5, r0, #0 - movs r2, #1 - movs r3, #1 - strb r3, [r5, #0xc] - ldrb r1, [r5, #0x10] - movs r0, #0x80 - orrs r0, r1 - strb r0, [r5, #0x10] - ldrb r1, [r5, #0x18] - movs r0, #4 - rsbs r0, r0, #0 - ands r0, r1 - orrs r0, r2 - strb r0, [r5, #0x18] - adds r1, r5, #0 - adds r1, #0x3c - movs r0, #7 - strb r0, [r1] - adds r0, r5, #0 - adds r0, #0x3f - strb r3, [r0] - adds r1, #4 - movs r0, #0x47 - strb r0, [r1] - subs r1, #5 - movs r0, #2 - strb r0, [r1] - ldr r0, _080843E0 @ =gHitbox_4 - str r0, [r5, #0x48] - ldr r0, _080843E4 @ =0x00004050 - movs r2, #0x2e - ldrsh r1, [r5, r2] - ldr r3, _080843E8 @ =gRoomControls - ldrh r2, [r3, #6] - subs r1, r1, r2 - asrs r1, r1, #4 - movs r4, #0x3f - ands r1, r4 - movs r6, #0x32 - ldrsh r2, [r5, r6] - ldrh r3, [r3, #8] - subs r2, r2, r3 - asrs r2, r2, #4 - ands r2, r4 - lsls r2, r2, #6 - orrs r1, r2 - adds r2, r5, #0 - adds r2, #0x38 - ldrb r2, [r2] - bl SetTile - ldrb r0, [r5, #0xa] - cmp r0, #1 - beq _080843C8 - adds r0, r5, #0 - adds r0, #0x86 - ldrh r0, [r0] - bl CheckFlags - cmp r0, #0 - beq _080843EC -_080843C8: - movs r0, #3 - strb r0, [r5, #0xc] - adds r0, r5, #0 - adds r0, #0x86 - ldrh r0, [r0] - bl SetFlag - adds r0, r5, #0 - movs r1, #1 - bl InitializeAnimation - b _080843F4 - .align 2, 0 -_080843E0: .4byte gHitbox_4 -_080843E4: .4byte 0x00004050 -_080843E8: .4byte gRoomControls -_080843EC: - ldrb r1, [r5, #0xa] - adds r0, r5, #0 - bl InitializeAnimation -_080843F4: - pop {r4, r5, r6, pc} - .align 2, 0 - - thumb_func_start sub_080843F8 -sub_080843F8: @ 0x080843F8 - push {lr} - adds r2, r0, #0 - adds r0, #0x41 - ldrb r0, [r0] - cmp r0, #0x9c - bne _08084420 - movs r0, #2 - strb r0, [r2, #0xc] - ldrb r1, [r2, #0x10] - movs r0, #0x7f - ands r0, r1 - strb r0, [r2, #0x10] - adds r0, r2, #0 - movs r1, #0xd - movs r2, #0 - bl CreateFx - ldr r0, _08084424 @ =0x0000010D - bl EnqueueSFX -_08084420: - pop {pc} - .align 2, 0 -_08084424: .4byte 0x0000010D - - thumb_func_start sub_08084428 -sub_08084428: @ 0x08084428 - push {r4, 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 _08084454 - movs r0, #3 - strb r0, [r4, #0xc] - adds r0, r4, #0 - adds r0, #0x86 - ldrh r0, [r0] - bl SetFlag - movs r0, #0x86 - lsls r0, r0, #1 - bl EnqueueSFX -_08084454: - pop {r4, pc} - .align 2, 0 diff --git a/asm/object/paper.s b/asm/object/paper.s deleted file mode 100644 index cd693e79..00000000 --- a/asm/object/paper.s +++ /dev/null @@ -1,210 +0,0 @@ - .include "asm/macros.inc" - - .include "constants/constants.inc" - - .syntax unified - - .text - - - thumb_func_start Paper -Paper: @ 0x0809271C - push {lr} - ldr r2, _08092730 @ =gUnk_08122780 - ldrb r1, [r0, #0xc] - lsls r1, r1, #2 - adds r1, r1, r2 - ldr r1, [r1] - bl _call_via_r1 - pop {pc} - .align 2, 0 -_08092730: .4byte gUnk_08122780 - - thumb_func_start sub_08092734 -sub_08092734: @ 0x08092734 - push {lr} - ldr r2, _08092748 @ =gUnk_08122788 - ldrb r1, [r0, #0xa] - lsls r1, r1, #2 - adds r1, r1, r2 - ldr r1, [r1] - bl _call_via_r1 - pop {pc} - .align 2, 0 -_08092748: .4byte gUnk_08122788 - - thumb_func_start sub_0809274C -sub_0809274C: @ 0x0809274C - push {r4, r5, r6, lr} - adds r4, r0, #0 - movs r0, #1 - strb r0, [r4, #0xc] - ldrb r1, [r4, #0x19] - movs r5, #0x3f - adds r0, r5, #0 - ands r0, r1 - movs r1, #0x40 - orrs r0, r1 - strb r0, [r4, #0x19] - ldrh r0, [r4, #0x36] - subs r0, #8 - strh r0, [r4, #0x36] - ldrb r0, [r4, #0xb] - cmp r0, #1 - beq _0809277C - cmp r0, #2 - bne _080927A2 - ldrb r1, [r4, #0x18] - movs r0, #4 - rsbs r0, r0, #0 - ands r0, r1 - strb r0, [r4, #0x18] -_0809277C: - ldr r0, _080927A4 @ =0x00004051 - movs r2, #0x2e - ldrsh r1, [r4, r2] - ldr r3, _080927A8 @ =gRoomControls - ldrh r2, [r3, #6] - subs r1, r1, r2 - asrs r1, r1, #4 - ands r1, r5 - movs r6, #0x32 - ldrsh r2, [r4, r6] - ldrh r3, [r3, #8] - subs r2, r2, r3 - asrs r2, r2, #4 - ands r2, r5 - lsls r2, r2, #6 - orrs r1, r2 - movs r2, #1 - bl SetTile -_080927A2: - pop {r4, r5, r6, pc} - .align 2, 0 -_080927A4: .4byte 0x00004051 -_080927A8: .4byte gRoomControls - - thumb_func_start sub_080927AC -sub_080927AC: @ 0x080927AC - push {lr} - adds r1, r0, #0 - movs r0, #1 - strb r0, [r1, #0xc] - ldrb r0, [r1, #0xb] - strb r0, [r1, #0x1e] - ldrb r0, [r1, #0xb] - cmp r0, #0 - beq _080927C4 - cmp r0, #2 - beq _080927CA - b _080927D0 -_080927C4: - adds r1, #0x63 - movs r0, #2 - b _080927CE -_080927CA: - adds r1, #0x63 - movs r0, #0xfe -_080927CE: - strb r0, [r1] -_080927D0: - pop {pc} - .align 2, 0 - - thumb_func_start sub_080927D4 -sub_080927D4: @ 0x080927D4 - push {r4, r5, r6, lr} - mov r6, r8 - push {r6} - adds r4, r0, #0 - movs r0, #1 - strb r0, [r4, #0xc] - ldrh r0, [r4, #0x32] - adds r0, #1 - strh r0, [r4, #0x32] - adds r1, r4, #0 - adds r1, #0x63 - movs r0, #0xff - strb r0, [r1] - ldr r0, _08092848 @ =0x00004051 - mov r8, r0 - movs r2, #0x2e - ldrsh r1, [r4, r2] - ldr r6, _0809284C @ =gRoomControls - ldrh r0, [r6, #6] - subs r1, r1, r0 - asrs r1, r1, #4 - movs r5, #0x3f - ands r1, r5 - movs r2, #0x32 - ldrsh r0, [r4, r2] - ldrh r2, [r6, #8] - subs r0, r0, r2 - asrs r0, r0, #4 - ands r0, r5 - lsls r0, r0, #6 - orrs r1, r0 - subs r1, #1 - mov r0, r8 - movs r2, #1 - bl SetTile - movs r0, #0x2e - ldrsh r1, [r4, r0] - ldrh r0, [r6, #6] - subs r1, r1, r0 - asrs r1, r1, #4 - ands r1, r5 - movs r2, #0x32 - ldrsh r0, [r4, r2] - ldrh r2, [r6, #8] - subs r0, r0, r2 - asrs r0, r0, #4 - ands r0, r5 - lsls r0, r0, #6 - orrs r1, r0 - mov r0, r8 - movs r2, #1 - bl SetTile - pop {r3} - mov r8, r3 - pop {r4, r5, r6, pc} - .align 2, 0 -_08092848: .4byte 0x00004051 -_0809284C: .4byte gRoomControls - - thumb_func_start sub_08092850 -sub_08092850: @ 0x08092850 - push {r4, lr} - adds r2, r0, #0 - ldrb r0, [r2, #0xa] - cmp r0, #0 - bne _08092888 - ldr r3, _08092878 @ =gPlayerEntity - movs r0, #0x32 - ldrsh r1, [r3, r0] - movs r4, #0x32 - ldrsh r0, [r2, r4] - cmp r1, r0 - blt _0809286E - adds r0, #0x18 - cmp r1, r0 - ble _0809287C -_0809286E: - ldrb r0, [r2, #0x19] - movs r1, #0x3f - ands r1, r0 - movs r0, #0x40 - b _08092884 - .align 2, 0 -_08092878: .4byte gPlayerEntity -_0809287C: - ldrb r0, [r2, #0x19] - movs r1, #0x3f - ands r1, r0 - movs r0, #0x80 -_08092884: - orrs r1, r0 - strb r1, [r2, #0x19] -_08092888: - pop {r4, pc} - .align 2, 0 diff --git a/assets/assets.json b/assets/assets.json index 7f922a35..48bcb6a2 100644 --- a/assets/assets.json +++ b/assets/assets.json @@ -42675,16 +42675,6 @@ "start": 1181044, "size": 8 }, - { - "path": "object11/gUnk_08120588.bin", - "start": 1181064, - "size": 20 - }, - { - "path": "object11/gUnk_081205B4.bin", - "start": 1181108, - "size": 8 - }, { "path": "animations/gSpriteAnimations_Railtrack_0.bin", "start": 1181156, @@ -42885,11 +42875,6 @@ "size": 44, "type": "animation" }, - { - "path": "object1E/gUnk_081208C0.bin", - "start": 1181888, - "size": 8 - }, { "path": "object1F/gUnk_08120A18.bin", "start": 1182232, @@ -42900,36 +42885,6 @@ "start": 1182240, "size": 8 }, - { - "path": "object20/gUnk_08120A30.bin", - "start": 1182256, - "size": 12 - }, - { - "path": "object20/gUnk_08120A3C.bin", - "start": 1182268, - "size": 12 - }, - { - "path": "object20/gUnk_08120A48.bin", - "start": 1182280, - "size": 12 - }, - { - "path": "object21/gUnk_08120A78.bin", - "start": 1182328, - "size": 2 - }, - { - "path": "object21/gUnk_08120A7A.bin", - "start": 1182330, - "size": 6 - }, - { - "path": "object21/gUnk_08120A8C.bin", - "start": 1182348, - "size": 8 - }, { "path": "animations/gSpriteAnimations_FigurineDevice_0.bin", "start": 1182440, @@ -43163,11 +43118,6 @@ "size": 4, "type": "animation" }, - { - "path": "object30/gUnk_08121194.bin", - "start": 1184148, - "size": 8 - }, { "path": "animations/gSpriteAnimations_PullableMushroom_0.bin", "start": 1184260, @@ -43382,37 +43332,6 @@ "size": 4, "type": "animation" }, - { - "path": "object3A/gUnk_081215E8.bin", - "start": 1185256, - "size": 80 - }, - { - "path": "object3A/gUnk_08121648.bin", - "start": 1185352, - "size": 32 - }, - { - "path": "object3D/gUnk_081216C8_EU.bin", - "variants": [ - "EU" - ], - "starts": { - "EU": 1183248 - }, - "size": 20 - }, - { - "path": "object3D/gUnk_081216C8_1_USA-JP-DEMO_USA-DEMO_JP.bin", - "variants": [ - "USA", - "JP", - "DEMO_USA", - "DEMO_JP" - ], - "start": 1185480, - "size": 20 - }, { "path": "giantLeaf/gUnk_08121750.bin", "start": 1185616, @@ -43423,11 +43342,6 @@ "start": 1185642, "size": 26 }, - { - "path": "object42/gUnk_081217B8.bin", - "start": 1185720, - "size": 4 - }, { "path": "animations/gSpriteAnimations_Object43_0.bin", "start": 1185760, @@ -44106,11 +44020,6 @@ "size": 28, "type": "animation" }, - { - "path": "object64/gUnk_08122950.bin", - "start": 1190224, - "size": 12 - }, { "path": "object67/gUnk_081229D0.bin", "start": 1190352, @@ -44621,21 +44530,6 @@ "start": 1192728, "size": 16 }, - { - "path": "object74/gUnk_08123328.bin", - "start": 1192744, - "size": 8 - }, - { - "path": "object74/gUnk_08123344.bin", - "start": 1192772, - "size": 38 - }, - { - "path": "object74/gUnk_0812336A.bin", - "start": 1192810, - "size": 26 - }, { "path": "animations/gSpriteAnimations_Bell_0.bin", "start": 1192844, @@ -45285,11 +45179,6 @@ "start": 1200144, "size": 4 }, - { - "path": "objectBD/gUnk_08125014.bin", - "start": 1200148, - "size": 40 - }, { "path": "animations/gSpriteAnimations_Pinwheel_0.bin", "start": 1200232, diff --git a/data/animations/object/object20.s b/data/animations/object/object20.s deleted file mode 100644 index 79778919..00000000 --- a/data/animations/object/object20.s +++ /dev/null @@ -1,21 +0,0 @@ - .include "asm/macros.inc" - .include "constants/constants.inc" - - .section .rodata - .align 2 - -gUnk_08120A30:: @ 08120A30 - .incbin "object20/gUnk_08120A30.bin" - -gUnk_08120A3C:: @ 08120A3C - .incbin "object20/gUnk_08120A3C.bin" - -gUnk_08120A48:: @ 08120A48 - .incbin "object20/gUnk_08120A48.bin" - -gUnk_08120A54:: @ 08120A54 - .4byte gUnk_08120A30 - .4byte gUnk_08120A30 - .4byte gUnk_08120A48 - .4byte gUnk_08120A3C - .4byte gUnk_08120A3C diff --git a/data/const/object/object11.s b/data/const/object/object11.s deleted file mode 100644 index e641e2c8..00000000 --- a/data/const/object/object11.s +++ /dev/null @@ -1,24 +0,0 @@ - .include "asm/macros.inc" - .include "constants/constants.inc" - - .section .rodata - .align 2 - -gUnk_0812057C:: @ 0812057C - .4byte sub_08084D58 - .4byte sub_08084E5C - .4byte sub_08084EB4 - -gUnk_08120588:: @ 08120588 - .incbin "object11/gUnk_08120588.bin" - -gUnk_0812059C:: @ 0812059C - .4byte sub_08084ECC - .4byte sub_08084ED8 - .4byte sub_08084EFC - .4byte sub_08084F84 - .4byte sub_08084F88 - .4byte sub_08084F8C - -gUnk_081205B4:: @ 081205B4 - .incbin "object11/gUnk_081205B4.bin" diff --git a/data/const/object/object12.s b/data/const/object/object12.s deleted file mode 100644 index fe6d961a..00000000 --- a/data/const/object/object12.s +++ /dev/null @@ -1,12 +0,0 @@ - .include "asm/macros.inc" - .include "constants/constants.inc" - - .section .rodata - .align 2 - -gUnk_081205BC:: @ 081205BC - .4byte sub_08084FD8 - .4byte nullsub_115 - .4byte sub_08085028 - .4byte sub_080850B0 - .4byte sub_080850CC diff --git a/data/const/object/object1E.s b/data/const/object/object1E.s deleted file mode 100644 index f3858134..00000000 --- a/data/const/object/object1E.s +++ /dev/null @@ -1,12 +0,0 @@ - .include "asm/macros.inc" - .include "constants/constants.inc" - - .section .rodata - .align 2 - -gUnk_081208B8:: @ 081208B8 - .4byte sub_08087528 - .4byte sub_080875F4 - -gUnk_081208C0:: @ 081208C0 - .incbin "object1E/gUnk_081208C0.bin" diff --git a/data/const/object/object20.s b/data/const/object/object20.s deleted file mode 100644 index 7946cb3b..00000000 --- a/data/const/object/object20.s +++ /dev/null @@ -1,9 +0,0 @@ - .include "asm/macros.inc" - .include "constants/constants.inc" - - .section .rodata - .align 2 - -gUnk_08120A28:: @ 08120A28 - .4byte sub_08087824 - .4byte sub_08087888 diff --git a/data/const/object/object21.s b/data/const/object/object21.s deleted file mode 100644 index 1cad260f..00000000 --- a/data/const/object/object21.s +++ /dev/null @@ -1,25 +0,0 @@ - .include "asm/macros.inc" - .include "constants/constants.inc" - - .section .rodata - .align 2 - -gUnk_08120A68:: @ 08120A68 - .4byte sub_08087A10 - .4byte sub_08087AFC - .4byte 00000000 - .4byte sub_08087B58 - -gUnk_08120A78:: @ 08120A78 - .incbin "object21/gUnk_08120A78.bin" - -gUnk_08120A7A:: @ 08120A7A - .incbin "object21/gUnk_08120A7A.bin" - -gUnk_08120A80:: @ 08120A80 - .4byte sub_08087B88 - .4byte sub_08087B9C - .4byte sub_08087B9C - -gUnk_08120A8C:: @ 08120A8C - .incbin "object21/gUnk_08120A8C.bin" diff --git a/data/const/object/object30.s b/data/const/object/object30.s deleted file mode 100644 index ef30fe28..00000000 --- a/data/const/object/object30.s +++ /dev/null @@ -1,13 +0,0 @@ - .include "asm/macros.inc" - .include "constants/constants.inc" - - .section .rodata - .align 2 - -gUnk_08121188:: @ 08121188 - .4byte sub_0808A870 - .4byte sub_0808A8C8 - .4byte sub_0808A8E0 - -gUnk_08121194:: @ 08121194 - .incbin "object30/gUnk_08121194.bin" diff --git a/data/const/object/object3A.s b/data/const/object/object3A.s deleted file mode 100644 index f8a65564..00000000 --- a/data/const/object/object3A.s +++ /dev/null @@ -1,19 +0,0 @@ - .include "asm/macros.inc" - .include "constants/constants.inc" - - .section .rodata - .align 2 - -gUnk_081215E8:: @ 081215E8 - .incbin "object3A/gUnk_081215E8.bin" - -gUnk_08121638:: @ 08121638 - .4byte sub_0808C6D4 - .4byte sub_0808C74C - -gUnk_08121640:: @ 08121640 - .4byte sub_0808C858 - .4byte sub_0808C8B8 - -gUnk_08121648:: @ 08121648 - .incbin "object3A/gUnk_08121648.bin" diff --git a/data/const/object/object3D.s b/data/const/object/object3D.s deleted file mode 100644 index b1a6d6e2..00000000 --- a/data/const/object/object3D.s +++ /dev/null @@ -1,18 +0,0 @@ - .include "asm/macros.inc" - .include "constants/constants.inc" - - .section .rodata - .align 2 - -gUnk_081216BC:: @ 081216BC - .4byte sub_0808CF08 - .4byte sub_0808CF5C - .4byte sub_0808D064 - -gUnk_081216C8:: @ 081216C8 -.ifdef EU - @ TODO only small differences - .incbin "object3D/gUnk_081216C8_EU.bin" -.else - .incbin "object3D/gUnk_081216C8_1_USA-JP-DEMO_USA-DEMO_JP.bin" -.endif diff --git a/data/const/object/object42.s b/data/const/object/object42.s deleted file mode 100644 index 8f1d215e..00000000 --- a/data/const/object/object42.s +++ /dev/null @@ -1,16 +0,0 @@ - .include "asm/macros.inc" - .include "constants/constants.inc" - - .section .rodata - .align 2 - -gUnk_081217A8:: @ 081217A8 - .4byte sub_0808DDB4 - .4byte sub_0808DDE0 - -gUnk_081217B0:: @ 081217B0 - .4byte sub_0808DDB4 - .4byte sub_0808DDE8 - -gUnk_081217B8:: @ 081217B8 - .incbin "object42/gUnk_081217B8.bin" diff --git a/data/const/object/object4B.s b/data/const/object/object4B.s deleted file mode 100644 index a0055399..00000000 --- a/data/const/object/object4B.s +++ /dev/null @@ -1,15 +0,0 @@ - .include "asm/macros.inc" - .include "constants/constants.inc" - - .section .rodata - .align 2 - -gUnk_08121EB8:: @ 08121EB8 - .4byte sub_0808F794 - .4byte sub_0808F7A8 - .4byte sub_0808F7D4 - .4byte sub_0808F80C - .4byte sub_0808F858 - .4byte sub_0808F8F0 - .4byte sub_0808F914 - .4byte sub_0808F940 diff --git a/data/const/object/object5B.s b/data/const/object/object5B.s deleted file mode 100644 index 86b19c4a..00000000 --- a/data/const/object/object5B.s +++ /dev/null @@ -1,13 +0,0 @@ - .include "asm/macros.inc" - .include "constants/constants.inc" - - .section .rodata - .align 2 - -gUnk_08122794:: @ 08122794 - .4byte sub_080928C8 - .4byte nullsub_119 - -gUnk_0812279C:: @ 0812279C - .4byte sub_08092930 - .4byte sub_08092940 diff --git a/data/const/object/object64.s b/data/const/object/object64.s deleted file mode 100644 index 7d9b1c55..00000000 --- a/data/const/object/object64.s +++ /dev/null @@ -1,16 +0,0 @@ - .include "asm/macros.inc" - .include "constants/constants.inc" - - .section .rodata - .align 2 - -gUnk_08122950:: @ 08122950 - .incbin "object64/gUnk_08122950.bin" - -gUnk_0812295C:: @ 0812295C - .4byte sub_08093E3C - .4byte sub_08093EAC - -gUnk_08122964:: @ 08122964 - .4byte sub_08093ED0 - .4byte sub_08093EF0 diff --git a/data/const/object/object70.s b/data/const/object/object70.s deleted file mode 100644 index 684856bd..00000000 --- a/data/const/object/object70.s +++ /dev/null @@ -1,9 +0,0 @@ - .include "asm/macros.inc" - .include "constants/constants.inc" - - .section .rodata - .align 2 - -gUnk_081232A4:: @ 081232A4 - .4byte sub_08097438 - .4byte sub_080974A4 diff --git a/data/const/object/object74.s b/data/const/object/object74.s deleted file mode 100644 index db514b9c..00000000 --- a/data/const/object/object74.s +++ /dev/null @@ -1,21 +0,0 @@ - .include "asm/macros.inc" - .include "constants/constants.inc" - - .section .rodata - .align 2 - -gUnk_08123328:: @ 08123328 - .incbin "object74/gUnk_08123328.bin" - -gUnk_08123330:: @ 08123330 - .4byte sub_08097B84 - .4byte sub_08097BDC - .4byte sub_08097C18 - .4byte sub_08097C20 - .4byte sub_08097C1C - -gUnk_08123344:: @ 08123344 - .incbin "object74/gUnk_08123344.bin" - -gUnk_0812336A:: @ 0812336A - .incbin "object74/gUnk_0812336A.bin" diff --git a/data/const/object/objectB.s b/data/const/object/objectB.s deleted file mode 100644 index 09182011..00000000 --- a/data/const/object/objectB.s +++ /dev/null @@ -1,11 +0,0 @@ - .include "asm/macros.inc" - .include "constants/constants.inc" - - .section .rodata - .align 2 - -gUnk_0811F7D8:: @ 0811F7D8 - .4byte sub_08083BE0 - .4byte sub_08083BF0 - .4byte sub_08083C9C - .4byte sub_08083D28 diff --git a/data/const/object/objectB3.s b/data/const/object/objectB3.s deleted file mode 100644 index 5a4925f1..00000000 --- a/data/const/object/objectB3.s +++ /dev/null @@ -1,19 +0,0 @@ - .include "asm/macros.inc" - .include "constants/constants.inc" - - .section .rodata - .align 2 - -gUnk_08124A10:: @ 08124A10 - .4byte sub_080A0ADC - .4byte sub_080A0AF0 - -gUnk_08124A18:: @ 08124A18 - .4byte sub_080A0AC4 - .4byte sub_080A0AD0 - -gUnk_08124A20:: @ 08124A20 - .4byte sub_080A0B4C - .4byte sub_080A0B60 - .4byte sub_080A0B80 - diff --git a/data/const/object/objectBD.s b/data/const/object/objectBD.s deleted file mode 100644 index 18665ac9..00000000 --- a/data/const/object/objectBD.s +++ /dev/null @@ -1,15 +0,0 @@ - .include "asm/macros.inc" - .include "constants/constants.inc" - - .section .rodata - .align 2 - -gUnk_08125014:: @ 08125014 - .incbin "objectBD/gUnk_08125014.bin" - -gUnk_0812503C:: @ 0812503C - .4byte sub_080A2274 - .4byte sub_080A22B0 - .4byte sub_080A22B0 - .4byte sub_080A22B0 - .4byte sub_080A22C4 diff --git a/data/const/object/objectD.s b/data/const/object/objectD.s deleted file mode 100644 index c8fe5c96..00000000 --- a/data/const/object/objectD.s +++ /dev/null @@ -1,11 +0,0 @@ - .include "asm/macros.inc" - .include "constants/constants.inc" - - .section .rodata - .align 2 - -gUnk_0811F908:: @ 0811F908 - .4byte sub_0808434C - .4byte sub_080843F8 - .4byte sub_08084428 - .4byte GetNextFrame diff --git a/data/const/object/paper.s b/data/const/object/paper.s deleted file mode 100644 index 212f6de6..00000000 --- a/data/const/object/paper.s +++ /dev/null @@ -1,14 +0,0 @@ - .include "asm/macros.inc" - .include "constants/constants.inc" - - .section .rodata - .align 2 - -gUnk_08122780:: @ 08122780 - .4byte sub_08092734 - .4byte sub_08092850 - -gUnk_08122788:: @ 08122788 - .4byte sub_0809274C - .4byte sub_080927AC - .4byte sub_080927D4 diff --git a/include/coord.h b/include/coord.h index 4bcf7262..31453184 100644 --- a/include/coord.h +++ b/include/coord.h @@ -16,7 +16,7 @@ void SortEntityAbove(Entity*, Entity*); void SortEntityBelow(Entity*, Entity*); u32 sub_0806F5A4(u32 idx); -u32 sub_0806F3E4(Entity*); +bool32 sub_0806F3E4(Entity*); void LinearMoveUpdate(Entity*); bool32 sub_0806FD54(Entity*); u32 sub_0806FCAC(Entity*, Entity*); diff --git a/include/functions.h b/include/functions.h index f9abcf26..f6bc2bc4 100644 --- a/include/functions.h +++ b/include/functions.h @@ -38,7 +38,7 @@ extern void GenericKnockback2(Entity*); extern LayerStruct* GetLayerByIndex(u32); extern u32 GetRandomByWeight(const u8*); extern u32 GetTileIndex(u32, u32); -extern void GiveItem(u32, u32); +extern u32 GiveItem(u32, u32); extern void HandlePlayerLife(Entity*); extern bool32 HasSwordEquipped(); extern bool32 IsColliding(Entity*, Entity*); @@ -64,6 +64,14 @@ extern bool32 ProcessMovementInternal(Entity*, s32, s32, u32); extern void SetDirtTile(u32); /** @see Item */ extern void SetInventoryValue(u32, u32); +/** + * @brief Sets multiple tiles at once + * + * @param tileData [u16 tileIndex, s16 positionOffset], ends with 0xffff + * @param basePosition the position the offsets in tileData are based on + * @param layer the tile layer + */ +extern void SetMultipleTiles(u16* tileData, u32 basePosition, u32 layer); extern void SoundReqClipped(Entity*, u32); extern void TryLoadPrologueHyruleTown(void); extern void UnloadGFXSlots(Entity*); diff --git a/include/object.h b/include/object.h index 740bbeb4..f6f7f5c5 100644 --- a/include/object.h +++ b/include/object.h @@ -226,198 +226,198 @@ typedef enum { OBJECT_C1, } Object; -void ItemOnGround(Entity*); -void DeathFx(Entity*); +void ItemOnGround(); +void DeathFx(); void ItemForSale(); -void Button(Entity*); -void MinishEmoticon(Entity*); -void Pot(Entity*); +void Button(); +void MinishEmoticon(); +void Pot(); void EzloCap(); void BlockPushed(); -void LockedDoor(Entity*); -void Object9(Entity*); -void ObjectA(Entity*); -void ObjectB(Entity*); +void LockedDoor(); +void Object9(); +void ObjectA(); +void ObjectB(); void ChestSpawner(); -void ObjectD(Entity*); -void ObjectE(Entity*); -void SpecialFx(Entity*); -void Object10(Entity*); -void Object11(Entity*); -void Object12(Entity*); -void Railtrack(Entity*); +void ObjectD(); +void ObjectE(); +void SpecialFx(); +void Object10(); +void Object11(); +void Object12(); +void Railtrack(); void LilypadLarge(); -void Object15(Entity*); -void FloatingPlatform(Entity*); -void Object17(Entity*); -void EvilSpirit(Entity*); -void HouseDoorExterior(Entity*); -void Rupee(Entity*); -void GreatFairy(Entity*); -void Object1C(Entity*); -void Object1D(Entity*); -void Object1E(Entity*); -void Object1F(Entity*); -void Object20(Entity*); -void Object21(Entity*); +void Object15(); +void FloatingPlatform(); +void Object17(); +void EvilSpirit(); +void HouseDoorExterior(); +void Rupee(); +void GreatFairy(); +void Object1C(); +void Object1D(); +void Object1E(); +void Object1F(); +void Object20(); +void Object21(); void FigurineDevice(); -void EyeSwitch(Entity*); +void EyeSwitch(); void PressurePlate(); -void BigBarrel(Entity*); -void BarrelInside(Entity*); +void BigBarrel(); +void BarrelInside(); void PushableStatue(); -void Object28(Entity*); -void AmbientClouds(Entity*); -void Object2A(Entity*); -void Object2B(Entity*); +void Object28(); +void AmbientClouds(); +void Object2A(); +void Object2B(); void Beanstalk(); -void Smoke(Entity*); +void Smoke(); void PushableRock(); void HittableLever(); -void Object30(Entity*); -void FrozenFlower(Entity*); +void Object30(); +void FrozenFlower(); void PullableMushroom(); -void Bollard(Entity*); -void WarpPoint(Entity*); +void Bollard(); +void WarpPoint(); void Object35(); -void Object36(Entity*); -void Object37(Entity*); -void JarPortal(Entity*); +void Object36(); +void Object37(); +void JarPortal(); void BossDoor(); -void Object3A(Entity*); -void MacroMushromStalks(Entity*); -void MacroPlayer(Entity*); -void Object3D(Entity*); +void Object3A(); +void MacroMushromStalks(); +void MacroPlayer(); +void Object3D(); void Object3E(); -void GiantLeaf(Entity*); +void GiantLeaf(); void Fairy(); -void LadderUp(Entity*); -void Object42(Entity*); +void LadderUp(); +void Object42(); void Object43(); -void Object44(Entity*); -void Object45(Entity*); -void GiantBookLadder(Entity*); -void HeartContainer(Entity*); -void FileScreenObjects(Entity*); -void Object49(Entity*); -void BackgroundCloud(Entity*); -void Object4B(Entity*); +void Object44(); +void Object45(); +void GiantBookLadder(); +void HeartContainer(); +void FileScreenObjects(); +void Object49(); +void BackgroundCloud(); +void Object4B(); void PushableFurniture(); -void Furniture(Entity*); -void MinishSizedEntrance(Entity*); -void Archway(Entity*); -void GiantRock(Entity*); -void GiantRock2(Entity*); -void Object52(Entity*); -void Object53(Entity*); +void Furniture(); +void MinishSizedEntrance(); +void Archway(); +void GiantRock(); +void GiantRock2(); +void Object52(); +void Object53(); void PullableLever(); -void Minecart(Entity*); -void ThoughtBubble(Entity*); -void HiddenLadderDown(Entity*); -void GentariCurtain(Entity*); +void Minecart(); +void ThoughtBubble(); +void HiddenLadderDown(); +void GentariCurtain(); void LavaPlatform(); -void Paper(Entity*); -void Object5B(Entity*); -void Mask(Entity*); -void HouseDoorInterior(Entity*); -void Whirlwind(Entity*); -void ObjectBlockingStairs(Entity*); -void SwordsmanNewsletter(Entity*); +void Paper(); +void Object5B(); +void Mask(); +void HouseDoorInterior(); +void Whirlwind(); +void ObjectBlockingStairs(); +void SwordsmanNewsletter(); void Object61(); void GiantTwig(); -void Object63(Entity*); -void Object64(Entity*); -void LadderHoleInBookshelf(Entity*); -void Object66(Entity*); -void Object67(Entity*); +void Object63(); +void Object64(); +void LadderHoleInBookshelf(); +void Object66(); +void Object67(); void Object68(); -void Object69(Entity*); -void Object6A(Entity*); +void Object69(); +void Object6A(); void CrenelBeanSprout(); void MinecartDoor(); void ObjectOnPillar(); -void MineralWaterSource(Entity*); -void MinishSizedArchway(Entity*); -void Object70(Entity*); +void MineralWaterSource(); +void MinishSizedArchway(); +void Object70(); void PushableGrave(); -void StoneTablet(Entity*); -void LilypadSmall(Entity*); -void Object74(Entity*); -void Object75(Entity*); -void Object76(Entity*); -void Bell(Entity*); -void MacroDecoration(Entity*); -void Object79(Entity*); -void Steam(Entity*); +void StoneTablet(); +void LilypadSmall(); +void Object74(); +void Object75(); +void Object76(); +void Bell(); +void MacroDecoration(); +void Object79(); +void Steam(); void PushableLever(); -void MacroShoes(Entity*); +void MacroShoes(); void ObjectOnSpinyBeetle(); -void Object7E(Entity*); -void PicoBloom(Entity*); -void Board(Entity*); -void Object81(Entity*); -void BigVortex(Entity*); +void Object7E(); +void PicoBloom(); +void Board(); +void Object81(); +void BigVortex(); void BigPushableLever(); void SmallIceBlock(); void BigIceBlock(); -void Object86(Entity*); -void OctorokBossObject(Entity*); -void MacroBook(Entity*); -void MazaalBossObject(Entity*); -void CabinFurniture(Entity*); +void Object86(); +void OctorokBossObject(); +void MacroBook(); +void MazaalBossObject(); +void CabinFurniture(); void DoubleBookshelf(); -void Book(Entity*); -void Fireplace(Entity*); +void Book(); +void Fireplace(); void Object8E(); void FrozenWaterElement(); -void Object90(Entity*); +void Object90(); void FrozenOctorok(); -void BakerOven(Entity*); -void Lamp(Entity*); -void WindTribeFlag(Entity*); -void Bird(Entity*); -void Object96(Entity*); +void BakerOven(); +void Lamp(); +void WindTribeFlag(); +void Bird(); +void Object96(); void KeyStealingTakkuri(); -void Object98(Entity*); -void Object99(Entity*); -void MacroAcorn(Entity*); -void Object9B(Entity*); -void TreeHidingPortal(Entity*); -void LightableSwitch(Entity*); -void TreeThorns(Entity*); -void Fan(Entity*); -void AngryStatue(Entity*); -void PalaceArchway(Entity*); -void ObjectA2(Entity*); -void Cloud(Entity*); -void MinishLight(Entity*); -void FireballChain(Entity*); -void ObjectA6(Entity*); -void ObjectA7(Entity*); +void Object98(); +void Object99(); +void MacroAcorn(); +void Object9B(); +void TreeHidingPortal(); +void LightableSwitch(); +void TreeThorns(); +void Fan(); +void AngryStatue(); +void PalaceArchway(); +void ObjectA2(); +void Cloud(); +void MinishLight(); +void FireballChain(); +void ObjectA6(); +void ObjectA7(); void ObjectA8(); -void ObjectA9(Entity*); -void WaterfallOpening(Entity*); -void ObjectAB(Entity*); +void ObjectA9(); +void WaterfallOpening(); +void ObjectAB(); void FourElements(); -void ObjectAD(Entity*); -void FloatingBlock(Entity*); -void ObjectAF(Entity*); -void MetalDoor(Entity*); -void JailBars(Entity*); -void ObjectB2(Entity*); -void ObjectB3(Entity*); -void ObjectB4(Entity*); -void ObjectB5(Entity*); -void ObjectB6(Entity*); -void Well(Entity*); +void ObjectAD(); +void FloatingBlock(); +void ObjectAF(); +void MetalDoor(); +void JailBars(); +void ObjectB2(); +void ObjectB3(); +void ObjectB4(); +void ObjectB5(); +void ObjectB6(); +void Well(); void WindTribeTeleporter(); -void ObjectB9(Entity*); -void GyorgBossObject(Entity*); -void Windcrest(Entity*); -void LitArea(Entity*); -void ObjectBD(Entity*); -void Pinwheel(Entity*); -void ObjectBF(Entity*); +void ObjectB9(); +void GyorgBossObject(); +void Windcrest(); +void LitArea(); +void ObjectBD(); +void Pinwheel(); +void ObjectBF(); void EnemyItem(); void ObjectC1(); diff --git a/linker.ld b/linker.ld index 11fac862..e39f434f 100644 --- a/linker.ld +++ b/linker.ld @@ -631,14 +631,14 @@ SECTIONS { src/object/lockedDoor.o(.text); asm/object/object9.o(.text); src/object/objectA.o(.text); - asm/object/objectB.o(.text); + src/object/objectB.o(.text); src/object/chestSpawner.o(.text); - asm/object/objectD.o(.text); - asm/object/objectE.o(.text); + src/object/objectD.o(.text); + src/object/objectE.o(.text); src/object/specialFx.o(.text); asm/object/object10.o(.text); - asm/object/object11.o(.text); - asm/object/object12.o(.text); + src/object/object11.o(.text); + src/object/object12.o(.text); src/object/railtrack.o(.text); src/object/lilypadLarge.o(.text); asm/object/object15.o(.text); @@ -650,10 +650,10 @@ SECTIONS { src/object/greatFairy.o(.text); src/object/object1C.o(.text); src/object/object1D.o(.text); - asm/object/object1E.o(.text); + src/object/object1E.o(.text); asm/object/object1F.o(.text); - asm/object/object20.o(.text); - asm/object/object21.o(.text); + src/object/object20.o(.text); + src/object/object21.o(.text); src/object/figurineDevice.o(.text); src/object/eyeSwitch.o(.text); src/object/pressurePlate.o(.text); @@ -668,7 +668,7 @@ SECTIONS { src/object/smoke.o(.text); src/object/pushableRock.o(.text); src/object/hittableLever.o(.text); - asm/object/object30.o(.text); + src/object/object30.o(.text); src/object/frozenFlower.o(.text); src/object/pullableMushroom.o(.text); src/object/bollard.o(.text); @@ -678,18 +678,18 @@ SECTIONS { asm/object/object37.o(.text); src/object/jarPortal.o(.text); src/object/bossDoor.o(.text); - asm/object/object3A.o(.text); + src/object/object3A.o(.text); src/object/macroMushroomStalks.o(.text); asm/object/object75.o(.text); /* 75 and 76 are mislocated in object table */ asm/object/object76.o(.text); asm/object/code_0808C964.o(.text); src/object/macroPlayer.o(.text); - asm/object/object3D.o(.text); + src/object/object3D.o(.text); src/object/object3E.o(.text); src/object/giantLeaf.o(.text); src/object/fairy.o(.text); src/object/ladderUp.o(.text); - asm/object/object42.o(.text); + src/object/object42.o(.text); src/object/object43.o(.text); asm/object/object44.o(.text); asm/object/object45.o(.text); @@ -698,7 +698,7 @@ SECTIONS { src/object/fileScreenObjects.o(.text); src/object/object49.o(.text); src/object/backgroundCloud.o(.text); - asm/object/object4B.o(.text); + src/object/object4B.o(.text); src/object/pushableFurniture.o(.text); src/object/furniture.o(.text); src/object/minishSizedEntrance.o(.text); @@ -714,8 +714,8 @@ SECTIONS { src/object/hiddenLadderDown.o(.text); src/object/gentariCurtains.o(.text); src/object/lavaPlatform.o(.text); - asm/object/paper.o(.text); - asm/object/object5B.o(.text); + src/object/paper.o(.text); + src/object/object5B.o(.text); src/object/mask.o(.text); src/object/houseDoorInterior.o(.text); src/object/whirlwind.o(.text); @@ -724,7 +724,7 @@ SECTIONS { src/object/object61.o(.text); src/object/giantTwig.o(.text); asm/object/object63.o(.text); - asm/object/object64.o(.text); + src/object/object64.o(.text); src/object/ladderHoleInBookshelf.o(.text); asm/object/object66.o(.text); asm/object/object67.o(.text); @@ -736,11 +736,11 @@ SECTIONS { src/object/objectOnPillar.o(.text); src/object/mineralWaterSource.o(.text); src/object/minishSizedArchway.o(.text); - asm/object/object70.o(.text); + src/object/object70.o(.text); src/object/pushableGrave.o(.text); src/object/stoneTablet.o(.text); src/object/lilypadSmall.o(.text); - asm/object/object74.o(.text); + src/object/object74.o(.text); src/object/bell.o(.text); src/object/macroDecorations.o(.text); asm/object/object79.o(.text); @@ -803,7 +803,7 @@ SECTIONS { src/object/metalDoor.o(.text); src/object/jailBars.o(.text); src/object/objectB2.o(.text); - asm/object/objectB3.o(.text); + src/object/objectB3.o(.text); asm/object/objectB4.o(.text); src/object/objectB5.o(.text); asm/object/objectB6.o(.text); @@ -813,7 +813,7 @@ SECTIONS { src/object/gyorgBossObject.o(.text); src/object/windcrest.o(.text); src/object/litArea.o(.text); - asm/object/objectBD.o(.text); + src/object/objectBD.o(.text); src/object/pinwheel.o(.text); src/object/objectBF.o(.text); src/object/enemyItem.o(.text); @@ -1347,16 +1347,16 @@ SECTIONS { src/object/lockedDoor.o(.rodata); data/const/object/object9.o(.rodata); data/animations/object/object9.o(.rodata); - data/const/object/objectB.o(.rodata); + src/object/objectB.o(.rodata); src/object/chestSpawner.o(.rodata); data/animations/object/chestSpawner.o(.rodata); - data/const/object/objectD.o(.rodata); + src/object/objectD.o(.rodata); data/animations/object/objectD.o(.rodata); src/object/specialFx.o(.rodata); data/animations/object/specialFx.o(.rodata); data/const/object/object10.o(.rodata); - data/const/object/object11.o(.rodata); - data/const/object/object12.o(.rodata); + src/object/object11.o(.rodata); + src/object/object12.o(.rodata); data/const/object/railtrack.o(.rodata); data/animations/object/railtrack.o(.rodata); data/const/object/lilypadLarge.o(.rodata); @@ -1370,12 +1370,11 @@ SECTIONS { src/object/greatFairy.o(.rodata); data/animations/npc/greatFairy.o(.rodata); data/const/object/object1D.o(.rodata); - data/const/object/object1E.o(.rodata); + src/object/object1E.o(.rodata); data/animations/object/object1E.o(.rodata); data/const/object/object1F.o(.rodata); - data/const/object/object20.o(.rodata); - data/animations/object/object20.o(.rodata); - data/const/object/object21.o(.rodata); + src/object/object20.o(.rodata); + src/object/object21.o(.rodata); src/object/figurineDevice.o(.rodata); data/animations/object/figurineDevice.o(.rodata); src/object/eyeSwitch.o(.rodata); @@ -1396,7 +1395,7 @@ SECTIONS { src/object/pushableRock.o(.rodata); data/animations/object/pushableRock.o(.rodata); src/object/hittableLever.o(.rodata); - data/const/object/object30.o(.rodata); + src/object/object30.o(.rodata); data/const/object/object31.o(.rodata); src/object/pullableMushroom.o(.rodata); data/animations/object/pullableMushroom.o(.rodata); @@ -1412,16 +1411,16 @@ SECTIONS { data/animations/object/jarPortal.o(.rodata); src/object/bossDoor.o(.rodata); data/animations/object/bossDoor.o(.rodata); - data/const/object/object3A.o(.rodata); + src/object/object3A.o(.rodata); src/object/macroMushroomStalks.o(.rodata); data/const/object/object75.o(.rodata); data/const/object/object76.o(.rodata); src/object/macroPlayer.o(.rodata); - data/const/object/object3D.o(.rodata); + src/object/object3D.o(.rodata); src/object/object3E.o(.rodata); data/const/object/giantLeaf.o(.rodata); src/object/fairy.o(.rodata); - data/const/object/object42.o(.rodata); + src/object/object42.o(.rodata); src/object/object43.o(.rodata); data/animations/object/object43.o(.rodata); data/const/object/object44.o(.rodata); @@ -1435,7 +1434,7 @@ SECTIONS { data/animations/object/fileScreenObjects.o(.rodata); data/const/object/object49.o(.rodata); data/const/object/backgroundCloud.o(.rodata); - data/const/object/object4B.o(.rodata); + src/object/object4B.o(.rodata); src/object/pushableFurniture.o(.rodata); data/const/object/furniture.o(.rodata); data/animations/object/furniture.o(.rodata); @@ -1455,8 +1454,8 @@ SECTIONS { data/animations/object/gentariCurtains.o(.rodata); src/object/lavaPlatform.o(.rodata); data/animations/object/lavaPlatform.o(.rodata); - data/const/object/paper.o(.rodata); - data/const/object/object5B.o(.rodata); + src/object/paper.o(.rodata); + src/object/object5B.o(.rodata); data/const/object/mask.o(.rodata); src/object/houseDoorInterior.o(.rodata); src/object/whirlwind.o(.rodata); @@ -1466,7 +1465,7 @@ SECTIONS { src/object/object61.o(.rodata); src/object/giantTwig.o(.rodata); data/const/object/object63.o(.rodata); - data/const/object/object64.o(.rodata); + src/object/object64.o(.rodata); data/animations/object/object64.o(.rodata); src/object/ladderHoleInBookshelf.o(.rodata); data/const/object/object67.o(.rodata); @@ -1479,11 +1478,11 @@ SECTIONS { src/object/minecartDoor.o(.rodata); src/object/objectOnPillar.o(.rodata); data/const/object/mineralWaterSource.o(.rodata); - data/const/object/object70.o(.rodata); + src/object/object70.o(.rodata); src/object/pushableGrave.o(.rodata); src/object/stoneTablet.o(.rodata); data/const/object/lilypadSmall.o(.rodata); - data/const/object/object74.o(.rodata); + src/object/object74.o(.rodata); data/const/object/bell.o(.rodata); data/animations/object/bell.o(.rodata); src/object/macroDecorations.o(.rodata); @@ -1559,7 +1558,7 @@ SECTIONS { data/const/object/jailBars.o(.rodata); data/animations/object/jailBars.o(.rodata); data/animations/object/objectB2.o(.rodata); - data/const/object/objectB3.o(.rodata); + src/object/objectB3.o(.rodata); data/animations/object/objectB3.o(.rodata); data/const/object/objectB4.o(.rodata); data/animations/object/objectB4.o(.rodata); @@ -1568,7 +1567,7 @@ SECTIONS { data/const/object/objectB9.o(.rodata); src/object/gyorgBossObject.o(.rodata); data/const/object/windcrest.o(.rodata); - data/const/object/objectBD.o(.rodata); + src/object/objectBD.o(.rodata); data/const/object/pinwheel.o(.rodata); data/animations/object/pinwheel.o(.rodata); src/object/objectC1.o(.rodata); diff --git a/src/coord.c b/src/coord.c index 760888cb..61cfb199 100644 --- a/src/coord.c +++ b/src/coord.c @@ -55,7 +55,7 @@ u32 sub_0806F39C(Entity* ent) { return 0; } -u32 sub_0806F3E4(Entity* ent) { +bool32 sub_0806F3E4(Entity* ent) { Entity tmp_ent; s8* p; @@ -95,9 +95,9 @@ u32 sub_0806F3E4(Entity* ent) { gPlayerState.item->type = 1; SoundReq(SFX_EF); } - return 1; + return TRUE; } - return 0; + return FALSE; } void sub_0806F4E8(Entity* ent) { diff --git a/src/game.c b/src/game.c index 7700c919..c4ff4253 100644 --- a/src/game.c +++ b/src/game.c @@ -2168,7 +2168,7 @@ s32 GetItemPrice(u32 item) { return ptr[0]; } -ASM_FUNC("asm/non_matching/game/GiveItem.inc", void GiveItem(u32 a, u32 b)) +ASM_FUNC("asm/non_matching/game/GiveItem.inc", u32 GiveItem(u32 a, u32 b)) // TODO Adapt ItemMetaData struct void sub_08054288(s32 param_1) { diff --git a/src/object/chestSpawner.c b/src/object/chestSpawner.c index 20016663..a7890edb 100644 --- a/src/object/chestSpawner.c +++ b/src/object/chestSpawner.c @@ -310,7 +310,7 @@ void sub_080842D8(ChestSpawnerEntity* this) { if ((super->y.HALF.HI & 8) != 0) { index += 2; } - sub_0801AF18((u8*)gUnk_0811F898[index], COORD_TO_TILE(super), super->collisionLayer); + SetMultipleTiles((u16*)gUnk_0811F898[index], COORD_TO_TILE(super), super->collisionLayer); } const Hitbox gUnk_0811F8A8 = { 0, -3, { 0, 0, 0, 0 }, 6, 6 }; diff --git a/src/object/jailBars.c b/src/object/jailBars.c index 7a36f0e2..9983eb1c 100644 --- a/src/object/jailBars.c +++ b/src/object/jailBars.c @@ -8,8 +8,8 @@ extern void sub_080A0960(Entity*, u32); extern void (*const gUnk_08124950[])(Entity*); -extern u8 gUnk_08124960; -extern u8 gUnk_0812497A; +extern u16 gUnk_08124960[]; +extern u16 gUnk_0812497A[]; void JailBars(Entity* this) { gUnk_08124950[this->action](this); @@ -49,11 +49,11 @@ void nullsub_127(Entity* this) { } void sub_080A0960(Entity* this, u32 arg1) { - u8* puVar1; + u16* puVar1; - puVar1 = &gUnk_08124960; + puVar1 = gUnk_08124960; if (arg1 == 1) { - puVar1 = &gUnk_0812497A; + puVar1 = gUnk_0812497A; } - sub_0801AF18(puVar1, COORD_TO_TILE(this), 1); + SetMultipleTiles(puVar1, COORD_TO_TILE(this), 1); } diff --git a/src/object/object11.c b/src/object/object11.c new file mode 100644 index 00000000..ed7de0ed --- /dev/null +++ b/src/object/object11.c @@ -0,0 +1,142 @@ +/** + * @file object11.c + * @ingroup Objects + * + * @brief Object11 object + */ + +#define NENT_DEPRECATED +#include "global.h" +#include "object.h" +#include "functions.h" +#include "hitbox.h" + +typedef struct { + /*0x00*/ Entity base; + /*0x68*/ u8 unk_68[8]; + /*0x70*/ u16 unk_70; + /*0x72*/ u8 unk_72; +} Object11Entity; + +typedef struct { + u8 unk_0; + u8 unk_1; + u8 unk_2; +} struct_08120588; + +void Object11_Init(Object11Entity*); +void Object11_Action1(Object11Entity*); +void Object11_Action2(Object11Entity*); +void Object11_Action2SubAction0(Object11Entity*); +void Object11_Action2SubAction1(Object11Entity*); +void Object11_Action2SubAction2(Object11Entity*); +void Object11_Action2SubAction3(Object11Entity*); +void Object11_Action2SubAction4(Object11Entity*); +void Object11_Action2SubAction5(Object11Entity*); + +void Object11(Object11Entity* this) { + static void (*const Object11_Actions[])(Object11Entity*) = { + Object11_Init, + Object11_Action1, + Object11_Action2, + }; + if (!EntityIsDeleted(super)) { + Object11_Actions[super->action](this); + } +} + +extern const Hitbox gUnk_081205B4; +void Object11_Init(Object11Entity* this) { + static const struct_08120588 gUnk_08120588[] = { + { 0, 32, 1 }, { 0, 64, 2 }, { 0, 32, 2 }, { 13, 1, 0 }, { 22, 1, 0 }, + }; + if (super->type == 3) { + Object11_Action2SubAction5(this); + } + sub_08004168(super); + if (super->type == 4) { + Object11_Action2SubAction5(this); + } + super->action = 2; + super->flags |= ENT_COLLIDE; + super->spriteRendering.b3 = 2; + super->field_0x1d = gUnk_08120588[super->type].unk_1; + super->field_0x1c = gUnk_08120588[super->type].unk_2; + super->speed = 0x80; + super->collisionLayer = gPlayerEntity.collisionLayer; + super->health = 1; + super->field_0x3c = 7; + super->hitType = 0x6e; + super->flags2 = 4; + super->hitbox = (Hitbox*)&gUnk_081205B4; + this->unk_72 = 0; + this->unk_70 = GetTileIndex(COORD_TO_TILE(super), super->collisionLayer); + SetTile(0x4022, COORD_TO_TILE(super), super->collisionLayer); + InitializeAnimation(super, gUnk_08120588[super->type].unk_0); +} + +void Object11_Action1(Object11Entity* this) { + if (((gPlayerState.field_0x1c & 0xf) != 1) || ((super->bitfield & 0x7f) != 0x13)) { + sub_0807BA8C(COORD_TO_TILE(super), super->collisionLayer); + DeleteThisEntity(); + } +} + +void Object11_Action2(Object11Entity* this) { + static void (*const Object11_Action2SubActions[])(Object11Entity*) = { + Object11_Action2SubAction0, Object11_Action2SubAction1, Object11_Action2SubAction2, + Object11_Action2SubAction3, Object11_Action2SubAction4, Object11_Action2SubAction5, + }; + Object11_Action2SubActions[super->subAction](this); +} + +const Hitbox gUnk_081205B4 = { 0, 0, { 6, 3, 3, 6 }, 6, 6 }; + +void Object11_Action2SubAction0(Object11Entity* this) { + super->subAction = 1; + Object11_Action2SubAction1(this); +} + +void Object11_Action2SubAction1(Object11Entity* this) { + Object11_Action1(this); + sub_0806F4E8(super); + if ((super->field_0x1d != 0) && (--super->field_0x1d == 0)) { + super->subAction = 2; + } +} + +void Object11_Action2SubAction2(Object11Entity* this) { + if (this->unk_72 == 0) { + this->unk_72 = 1; + super->spriteOffsetX = 0; + sub_0807B9B8(this->unk_70, COORD_TO_TILE(super), super->collisionLayer); + } + if (((gPlayerState.field_0x1c & 0xf) != 1) || ((super->bitfield & 0x7f) != 0x13)) { + Object11_Action2SubAction5(this); + } + if (sub_0806F3E4(super) && ((super->field_0x1c & 0xf) == 1)) { + DeleteThisEntity(); + } +} + +void Object11_Action2SubAction3(Object11Entity* this) { +} + +void Object11_Action2SubAction4(Object11Entity* this) { +} + +void Object11_Action2SubAction5(Object11Entity* this) { + switch (super->type2) { + case 0xff: + break; + case 0xf: + CreateFx(super, super->actionDelay, 0x80); + break; + case 0: + break; + default: + CreateObjectWithParent(super, super->type2, super->actionDelay, 0); + break; + } + DeleteThisEntity(); +} diff --git a/src/object/object12.c b/src/object/object12.c new file mode 100644 index 00000000..bc5aa3d6 --- /dev/null +++ b/src/object/object12.c @@ -0,0 +1,98 @@ +/** + * @file object12.c + * @ingroup Objects + * + * @brief Object12 object + */ + +#define NENT_DEPRECATED +#include "global.h" +#include "object.h" +#include "functions.h" +#include "screen.h" + +typedef struct { + /*0x00*/ Entity base; + /*0x68*/ u8 unk_68[30]; + /*0x86*/ u16 unk_86; +} Object12Entity; + +void Object12_Init(Object12Entity*); +void Object12_Action1(Object12Entity*); +void Object12_Action2(Object12Entity*); +void Object12_Action3(Object12Entity*); +void Object12_Action4(Object12Entity*); +void sub_080850FC(Object12Entity*); + +void Object12(Object12Entity* this) { + static void (*const Object12_Actions[])(Object12Entity*) = { + Object12_Init, Object12_Action1, Object12_Action2, Object12_Action3, Object12_Action4, + }; + Object12_Actions[super->action](this); +} + +void Object12_Init(Object12Entity* this) { + if (super->type == 0) { + if (CheckFlags(this->unk_86)) { + DeleteThisEntity(); + } + super->action = 1; + super->spritePriority.b0 = 7; + sub_080850FC(this); + } else { + super->action = 2; + super->actionDelay = 0xf0; + super->speed = 0x80; + super->direction = 0x18; + } + super->frameIndex = 0; +} + +void Object12_Action1(Object12Entity* this) { +} + +NONMATCH("asm/non_matching/object12/Object12_Action2.inc", void Object12_Action2(Object12Entity* this)) { + u32 tmp; + if (--super->actionDelay == 0) { + super->action = 3; + super->actionDelay = 0x1e; + super->spriteOffsetY = 4; + gScreen.lcd.displayControl |= 0x2000; + gScreen.controls.windowInsideControl = 0x1f; + gScreen.controls.windowOutsideControl = 0xf; + tmp = super->x.HALF.HI - gRoomControls.scroll_x; + gScreen.controls.window0HorizontalDimensions = (((tmp - 0x18) & 0xff) << 8) | ((tmp + 0x18) & 0xff); + tmp = super->y.HALF.HI - gRoomControls.scroll_y; + gScreen.controls.window0VerticalDimensions = (((tmp - 0x18) & 0xff) << 8) | ((tmp + 0x18) & 0xff); + } +} +END_NONMATCH + +void Object12_Action3(Object12Entity* this) { + if (--super->actionDelay == 0) { + super->action = 4; + super->actionDelay = 0x60; + } +} + +void Object12_Action4(Object12Entity* this) { + LinearMoveUpdate(super); + if (--super->actionDelay == 0) { + gScreen.lcd.displayControl &= 0xdfff; + DeleteEntity(super); + } +} + +void sub_080850FC(Object12Entity* this) { + u32 position = COORD_TO_TILE(super); + u32 layer = super->collisionLayer; + SetTile(0x403d, position - 0x41, layer); + SetTile(0x403d, position - 0x40, layer); + SetTile(0x403d, position - 0x3f, layer); + SetTile(0x403d, position - 1, layer); + SetTile(0x403d, position, layer); + SetTile(0x403d, position + 1, layer); + SetTile(0x403d, position + 0x3f, layer); + SetTile(0x403d, position + 0x40, layer); + SetTile(0x403d, position + 0x41, layer); +} diff --git a/src/object/object1E.c b/src/object/object1E.c new file mode 100644 index 00000000..48991a92 --- /dev/null +++ b/src/object/object1E.c @@ -0,0 +1,109 @@ +/** + * @file object1E.c + * @ingroup Objects + * + * @brief Object1E object + */ + +#define NENT_DEPRECATED +#include "global.h" +#include "object.h" +#include "functions.h" +#include "area.h" + +void sub_08087528(Entity*); +void sub_080875F4(Entity*); +void sub_08087640(Entity*); + +void Object1E(Entity* this) { + static void (*const gUnk_081208B8[])(Entity*) = { + sub_08087528, + sub_080875F4, + }; + if (!EntityIsDeleted(this)) { + gUnk_081208B8[this->action](this); + } +} + +NONMATCH("asm/non_matching/object1E/sub_08087528.inc", void sub_08087528(Entity* this)) { + u32 palette; + + this->action = 1; + this->animationState = gPlayerEntity.animationState >> 1; + this->spriteRendering.b3 = 2; + this->spritePriority.b0 = 3; + this->spriteOrientation.flipY--; + if (this->type2 != 0) { + this->palette.b.b0 = 1; + if (this->animationState == 1) { + this->spriteSettings.flipX = 1; + } + sub_08087640(this); + } else { + if (gArea.locationIndex == 0x10) { + palette = 0x16a; + } else { + palette = 4; + } + ChangeObjPalette(this, palette); + switch (this->animationState) { + case 1: + this->spriteSettings.flipX = 1; + if (this->type == 0x40) { + this->y.HALF.HI += 4; + } + break; + case 3: + if (this->type == 0x40) { + this->y.HALF.HI += 4; + } + break; + default: + if (this->type == 0x40) { + this->spriteSettings.flipX = 1; + } + break; + } + } + SetDefaultPriority(this, 3); + InitializeAnimation(this, this->type2 * 4 + this->animationState); +} +END_NONMATCH + +void sub_080875F4(Entity* this) { + GetNextFrame(this); + if ((this->frame & 0x80) != 0) { + DeleteThisEntity(); + } + if (this->type2 != 0) { + this->spritePriority.b0 = gPlayerEntity.spritePriority.b0 + 1 - this->frame; + } +} + +void sub_08087640(Entity* this) { + static const s8 gUnk_081208C0[] = { 0, -12, 16, 0, 0, 15, -16, 0 }; + s32 oldX; + s32 oldY; + u32 tmp; + const s8* ptr; + + oldX = this->x.HALF.HI; + oldY = this->y.HALF.HI; + ptr = &gUnk_081208C0[this->animationState * 2]; + this->x.HALF.HI += ptr[0]; + this->y.HALF.HI += ptr[1]; + if (gRoomControls.area == 3 && gRoomControls.room == 4) { +#ifdef EU + tmp = 0x18; + } else { + tmp = 0x17; +#else + tmp = 0x17; + } else { + tmp = 0x16; +#endif + } + CreateRandomItemDrop(this, tmp); + this->x.HALF.HI = oldX; + this->y.HALF.HI = oldY; +} diff --git a/src/object/object20.c b/src/object/object20.c new file mode 100644 index 00000000..1cfb4c2c --- /dev/null +++ b/src/object/object20.c @@ -0,0 +1,91 @@ +/** + * @file object20.c + * @ingroup Objects + * + * @brief Object20 object + */ + +#define NENT_DEPRECATED +#include "global.h" +#include "object.h" +#include "functions.h" + +void sub_08087824(Entity*); +void sub_08087888(Entity*); +void sub_080878CC(Entity*); + +void (*const gUnk_08120A28[])(Entity*) = { + sub_08087824, + sub_08087888, +}; +const Hitbox3D gUnk_08120A30 = { 0, 0, { 0, 0, 0, 0 }, 6, 6, 10, { 0, 0, 0 } }; +const Hitbox3D gUnk_08120A3C = { 0, 0, { 0, 0, 0, 0 }, 12, 12, 16, { 0, 0, 0 } }; +const Hitbox3D gUnk_08120A48 = { 0, 0, { 0, 0, 0, 0 }, 16, 16, 20, { 0, 0, 0 } }; +const Hitbox3D* const gUnk_08120A54[] = { &gUnk_08120A30, &gUnk_08120A30, &gUnk_08120A48, &gUnk_08120A3C, + &gUnk_08120A3C }; + +void Object20(Entity* this) { + gUnk_08120A28[this->action](this); +} + +void sub_08087824(Entity* this) { + if (this->collisionLayer == 0) { + ResolveCollisionLayer(this); + } + this->action = 1; + this->flags |= 0x80; + this->field_0x3c = 0x13; + this->health = 0xff; + this->hitType = 0xa9; + this->hurtType = 0x16; + this->hitbox = (Hitbox*)gUnk_08120A54[0]; + this->flags2 = 0x8b; + sub_080878CC(this); + InitializeAnimation(this, 1); + sub_0801766C(this); + EnqueueSFX(SFX_ITEM_BOMB_EXPLODE); +} + +void sub_08087888(Entity* this) { + GetNextFrame(this); + if ((this->frame & 0x80) != 0) { + DeleteThisEntity(); + } else { + if (this->frame < 5) { + this->hitbox = (Hitbox*)gUnk_08120A54[this->frame]; + } else { + this->flags &= 0x7f; + } + } +} + +NONMATCH("asm/non_matching/object20/sub_080878CC.inc", void sub_080878CC(Entity* this)) { + s32 x; + s32 y; + s32 itX; + s32 itY; + u32 layer; + u32 tileType; + u32 pos; + + x = this->x.HALF.HI; + y = this->y.HALF.HI; + layer = this->collisionLayer; + for (itX = -0x10; itX < 0x11; itX += 0x10) { + for (itY = -0x10; itY < 0x11; itY += 0x10) { + pos = TILE((u32)x + itX, (u32)y + itY); + if (sub_080B1AE0(pos, layer) == 0x2e) { + tileType = GetTileType(pos, layer); + if (tileType == 0x368 || tileType == 0x367 + /*(tileType < 0x369) && (0x366 < tileType)*/) { + sub_08008796(this, 3, x + itX, y + itY); + } else { + SetTile(0x4022, pos, layer); + } + } else { + sub_08008796(this, 3, x + itX, y + itY); + } + } + } +} +END_NONMATCH diff --git a/src/object/object21.c b/src/object/object21.c new file mode 100644 index 00000000..6641b14c --- /dev/null +++ b/src/object/object21.c @@ -0,0 +1,153 @@ +/** + * @file object21.c + * @ingroup Objects + * + * @brief Object21 object + */ + +#define NENT_DEPRECATED +#include "global.h" +#include "object.h" +#include "functions.h" + +typedef struct { + /*0x00*/ Entity base; + /*0x68*/ u8 unk_68[0x18]; + /*0x80*/ u32 unk_80; + /*0x84*/ u32 unk_84; +} Object21Entity; + +void sub_08087A10(Object21Entity*); +void sub_08087AFC(Object21Entity*); +void sub_08087B58(Object21Entity*); +void sub_08087B88(Object21Entity*); +void sub_08087B9C(Object21Entity*); +void sub_08087B9C(Object21Entity*); + +void Object21(Object21Entity* this) { + static void (*const gUnk_08120A68[])(Object21Entity*) = { + sub_08087A10, + sub_08087AFC, + NULL, + sub_08087B58, + }; + gUnk_08120A68[super->action](this); + GetNextFrame(super); + if (super->actionDelay != 0) { + super->actionDelay--; + } else { + if (super->animIndex == 0xa) { + InitializeAnimation(super, 0xd); + } else if ((super->frame & 0x80) != 0) { + DeleteThisEntity(); + } + } + if (super->speed != 0) { + LinearMoveUpdate(super); + if (super->speed > 0x10) { + super->speed -= 0x10; + } else { + super->speed = 0; + } + } +} + +extern const Hitbox gUnk_08120A8C; + +void sub_08087A10(Object21Entity* this) { + static const u8 gUnk_08120A78[] = { + 3, + 63, + }; + static const u8 gUnk_08120A7A[] = { + 15, 24, 30, 35, 0, 0, + }; + u32 rand; + u32 tmp; + super->action = 1; + if (super->type2 != 0) { + ChangeObjPalette(super, 3); + } + if (super->type > 2) { + ChangeObjPalette(super, gUnk_08120A78[super->type - 3]); + } + switch (super->type) { + case 4: + super->collisionLayer = 2; + UpdateSpriteForCollisionLayer(super); + case 0: + case 3: + super->flags |= ENT_COLLIDE; + super->health = 1; + super->field_0x3c = 7; + super->hitType = 0xaa; + super->flags2 = 0x0e; + super->hitbox = (Hitbox*)&gUnk_08120A8C; + super->field_0x1c = 0; + case 2: + rand = Random(); + super->actionDelay = gUnk_08120A7A[rand & 3]; + tmp = (rand >> 8) & 3; + if ((rand & 0x10) != 0) { + tmp = -tmp; + } + super->x.HALF.HI += tmp; + super->y.HALF.HI += tmp; + super->collisionLayer = gPlayerEntity.collisionLayer; + InitializeAnimation(super, 10); + return; + case 1: + break; + } + InitializeAnimation(super, 0x10); +} + +void sub_08087AFC(Object21Entity* this) { + Object21Entity* entity; + if ((super->bitfield & 0x80) == 0) { + return; + } + switch (super->bitfield & 0x7f) { + case 0x16: + super->direction = GetFacingDirection(super->field_0x4c, super); + super->speed = 0x100; + break; + case 0x13: + super->action = 3; + super->subAction = 0; + break; + case 0x1b: + case 0x1c: + entity = (Object21Entity*)super->field_0x4c; + super->direction = CalculateDirectionTo(entity->unk_84, entity->unk_80, super->x.WORD, super->y.WORD); + super->speed = 0x100; + break; + } +} + +void sub_08087B58(Object21Entity* this) { + static void (*const gUnk_08120A80[])(Object21Entity*) = { + sub_08087B88, + sub_08087B9C, + sub_08087B9C, + }; + if ((super->bitfield & 0x80) != 0) { + gUnk_08120A80[super->subAction](this); + } else { + super->action = 1; + } +} + +const Hitbox gUnk_08120A8C = { 0, 0, { 6, 3, 3, 6 }, 3, 3 }; + +void sub_08087B88(Object21Entity* this) { + super->knockbackSpeed = 0x100; + super->subAction = 1; + super->field_0x1d = 1; +} + +void sub_08087B9C(Object21Entity* this) { + if (sub_0806F3E4(super)) { + DeleteThisEntity(); + } +} diff --git a/src/object/object30.c b/src/object/object30.c new file mode 100644 index 00000000..dca304b4 --- /dev/null +++ b/src/object/object30.c @@ -0,0 +1,114 @@ +/** + * @file object30.c + * @ingroup Objects + * + * @brief Object30 object + */ + +#define NENT_DEPRECATED +#include "global.h" +#include "object.h" +#include "functions.h" +#include "item.h" + +typedef struct { + /*0x00*/ Entity base; + /*0x68*/ u16 unk_68; + /*0x6a*/ u16 unk_6a; + /*0x6c*/ u16* unk_6c; + /*0x70*/ u32 unk_70; +} Object30Entity; + +extern u32 sub_0806F798(Entity*); +extern const Hitbox gUnk_08121C58; + +void Object30_Init(Object30Entity*); +void Object30_Action1(Object30Entity*); +void Object30_Action2(Object30Entity*); +void sub_0808A968(Object30Entity*); + +void Object30(Object30Entity* this) { + static void (*const Object30_Actions[])(Object30Entity*) = { + Object30_Init, + Object30_Action1, + Object30_Action2, + }; + Object30_Actions[super->action](this); + sub_08080CB4(super); +} + +void Object30_Init(Object30Entity* this) { + LayerStruct* data; + const u16* ptr; + switch (super->type) { + case 0: + data = GetLayerByIndex(super->collisionLayer); + ptr = &data->mapData[sub_0806F798(super)]; + this->unk_6c = (u16*)ptr; + this->unk_68 = ptr[0]; + super->action = 1; + break; + case 1: + sub_0808A968(this); + break; + case 2: + case 3: + sub_0808A968(this); + Object30_Action2(this); + break; + } +} + +void Object30_Action1(Object30Entity* this) { + if (this->unk_68 != this->unk_6c[0]) { + sub_0808A968(this); + } +} + +void Object30_Action2(Object30Entity* this) { + static const u8 gUnk_08121194[] = { + 249, 248, 247, 246, 245, 246, 247, 248, + }; + u8 tmp; + switch (super->type) { + case 0: + if (this->unk_70 != 0) { + if (super->zVelocity < 0) { + if (super->z.HALF.HI > -8) { + this->unk_70 = 0; + } else { + if (super->zVelocity < -0x4000) { + this->unk_70 = -0x400; + } else { + this->unk_70 = 0x400; + } + } + } + GravityUpdate(super, this->unk_70); + return; + } + // fallthrough + case 1: + tmp = gUnk_08121194[(super->field_0xf++ >> 3) & 7]; + super->z.HALF.HI = tmp << 0x18 >> 0x18; + if (!IsCollidingPlayer(super)) { + return; + } + break; + } + CreateItemEntity(ITEM_KINSTONE, (u32)super->type2, 0); + DeleteThisEntity(); +} + +void sub_0808A968(Object30Entity* this) { + super->action = 2; + super->actionDelay = 0x1e; + super->spriteSettings.draw = 1; + super->zVelocity = 0x28000; + super->spritePriority.b1 = 3; + super->spriteSettings.shadow = 0; + super->field_0x3c |= 0x10; + super->hitbox = (Hitbox*)&gUnk_08121C58; + SetDefaultPriority(super, 2); + this->unk_70 = 0x2800; +} diff --git a/src/object/object3A.c b/src/object/object3A.c new file mode 100644 index 00000000..568712f6 --- /dev/null +++ b/src/object/object3A.c @@ -0,0 +1,164 @@ +/** + * @file object3A.c + * @ingroup Objects + * + * @brief Object3A object + */ + +#define NENT_DEPRECATED +#include "global.h" +#include "object.h" +#include "functions.h" +#include "screen.h" + +typedef struct { + /*0x00*/ Entity base; + /*0x68*/ u16 unk_68; + /*0x6a*/ u16 unk_6a; + /*0x6c*/ u8 unk_6c[0x15]; + /*0x81*/ u8 unk_81; + /*0x82*/ s8 unk_82; + /*0x83*/ u8 unk_83; + /*0x84*/ u8 unk_84; + /*0x85*/ s8 unk_85; + /*0x86*/ s16 unk_86; +} Object3AEntity; + +typedef struct { + u16 unk_0; + u16 unk_1; + u16 unk_2; + s16 unk_3; + u16 unk_4; + u16 unk_5; + s16 unk_6; + u16 unk_7; + u16 unk_8; + u16 unk_9; +} struct_081215E8; + +extern void sub_0801E49C(u32, u32, u32, u32); +extern bool32 gUnk_02036BB8; + +void sub_0808C6D4(Object3AEntity*); +void sub_0808C74C(Object3AEntity*); +void sub_0808C858(Object3AEntity*); +void sub_0808C8B8(Object3AEntity*); +void sub_0808C840(Object3AEntity*); + +const struct_081215E8 gUnk_081215E8[] = { + { 5, 4, 280, -6, 0, 0, -8, 0, 31, 63 }, + { 6, 2, 0, 4, 0, 0, 8, 0, 63, 31 }, + { 7, 4, 0, 4, 0, 0, -6, 0, 63, 31 }, + { 6, 2, 0, 16, 0, 0, 16, 0, 63, 31 }, +}; + +void Object3A(Object3AEntity* this) { + static void (*const gUnk_08121638[])(Object3AEntity*) = { + sub_0808C6D4, + sub_0808C74C, + }; + static void (*const gUnk_08121640[])(Object3AEntity*) = { + sub_0808C858, + sub_0808C8B8, + }; + + if (super->type == 0) { + gUnk_08121638[super->action](this); + } else { + gUnk_08121640[super->action](this); + } +} + +void sub_0808C6D4(Object3AEntity* this) { + Object3AEntity* obj; + const struct_081215E8* ptr = &gUnk_081215E8[super->type2]; + this->unk_86 = ptr->unk_2; + this->unk_85 = ptr->unk_3; + this->unk_84 = ptr->unk_4; + this->unk_83 = ptr->unk_5; + this->unk_82 = ptr->unk_6; + this->unk_81 = ptr->unk_7; + sub_0801E1B8((gScreen.controls.windowInsideControl & 0xff00) | ptr->unk_8, ptr->unk_9); + super->action = 1; + sub_0808C74C(this); + obj = (Object3AEntity*)CreateObject(OBJECT_3A, 1, ptr->unk_0); + if (obj != NULL) { + obj->unk_6a = ptr->unk_1; + } +} + +void sub_0808C74C(Object3AEntity* this) { + if (super->parent != NULL) { + super->x.HALF.HI = super->parent->x.HALF.HI - gRoomControls.scroll_x; + super->y.HALF.HI = super->parent->y.HALF.HI - gRoomControls.scroll_y; + } else { + super->x.HALF.HI = 0x78; + super->y.HALF.HI = 0x50; + } + if (this->unk_86 < 0) { + sub_0801E49C(super->x.HALF.HI, super->y.HALF.HI, 0, 0); + gUnk_02036BB8 = TRUE; + sub_0808C840(this); + } + if (this->unk_86 > 500) { + sub_0801E49C(super->x.HALF.HI, super->y.HALF.HI, 500, 0); + gUnk_02036BB8 = 1; + sub_0808C840(this); + } + this->unk_86 += this->unk_85; + this->unk_85 += this->unk_84; + if (this->unk_85 > 0x10) { + this->unk_85 = 0x10; + } + if (this->unk_85 < -0x10) { + this->unk_85 = 0xf0; + } + this->unk_83 += this->unk_82; + this->unk_82 += this->unk_81; + if (this->unk_82 > 0x10) { + this->unk_82 = 0x10; + } + if (this->unk_82 < -0x10) { + this->unk_82 = -0x10; + } + sub_0801E49C(super->x.HALF.HI, super->y.HALF.HI, this->unk_86, this->unk_83); +} + +void sub_0808C840(Object3AEntity* this) { + gScreen.controls.layerFXControl = 0; + sub_0801E104(); + DeleteThisEntity(); +} + +void sub_0808C858(Object3AEntity* this) { + if ((super->type2 & 2) != 0) { + gScreen.controls.layerFXControl = 0x3fbf; + } else { + gScreen.controls.layerFXControl = 0x3fff; + } + if ((super->type2 & 1) != 0) { + gScreen.controls.layerBrightness = 0; + } else { + gScreen.controls.layerBrightness = 0x10; + } + super->action = 1; + this->unk_68 = 0x100; +} + +void sub_0808C8B8(Object3AEntity* this) { + s32 tmp = this->unk_68 -= this->unk_6a; + if (tmp * 0x10000 < 0) { + this->unk_68 = 0; + } + if ((super->type2 & 1) != 0) { + gScreen.controls.layerBrightness = 0x10 - ((s16)this->unk_68 >> 4); + } else { + gScreen.controls.layerBrightness = (s16)this->unk_68 >> 4; + } + if ((s16)this->unk_68 == 0) { + DeleteThisEntity(); + } +} + +const u16 gUnk_08121648[] = { 264, 252, 256, 256, 248, 260, 240, 264, 248, 260, 256, 256, 264, 252, 272, 248 }; diff --git a/src/object/object3D.c b/src/object/object3D.c new file mode 100644 index 00000000..0416ac2c --- /dev/null +++ b/src/object/object3D.c @@ -0,0 +1,117 @@ +/** + * @file object3D.c + * @ingroup Objects + * + * @brief Object3D object + */ + +#define NENT_DEPRECATED +#include "global.h" +#include "object.h" +#include "functions.h" +#include "area.h" +#include "screen.h" +#include "main.h" +#include "structures.h" + +typedef struct { + /*0x00*/ Entity base; + /*0x68*/ u16 unk_68; +} Object3DEntity; + +void Object3D_Init(Object3DEntity*); +void Object3D_Action1(Object3DEntity*); +void Object3D_Action2(Object3DEntity*); +void sub_0808D030(void); + +void Object3D(Object3DEntity* this) { + static void (*const Object3D_Actions[])(Object3DEntity*) = { + Object3D_Init, + Object3D_Action1, + Object3D_Action2, + }; + Object3D_Actions[super->action](this); +} + +void Object3D_Init(Object3DEntity* this) { + super->action = 1; + super->x.HALF.HI = gArea.curPortalX - gRoomControls.scroll_x; + super->y.HALF.HI = gArea.curPortalY - gRoomControls.scroll_y; + this->unk_68 = 0x80; + super->updatePriority = 6; + sub_0801E1B8(0x1f17, 0); + sub_0801E1EC(super->x.HALF.HI, super->y.HALF.HI, this->unk_68); +} + +void Object3D_Action1(Object3DEntity* this) { +#ifdef EU + static const u16 gUnk_081216C8[] = { 206, 19, 333, 208, 16, 333, 207, 1, 333, 0 }; +#else + static const u16 gUnk_081216C8[] = { 206, 19, 334, 208, 16, 334, 207, 1, 334, 0 }; +#endif + const u16* ptr; + this->unk_68 -= 2; + if (this->unk_68 >= 0x15) { + sub_0801E1EC(super->x.HALF.HI, super->y.HALF.HI, this->unk_68); + } else { + gScreen.controls.windowOutsideControl = 0x10; + sub_0808D030(); + ResetPaletteTable(0); + ResetPalettes(); + gGFXSlots.unk0 = 1; + ptr = &gUnk_081216C8[super->type * 3]; + LoadFixedGFX(super, ptr[0]); + LoadObjPalette(super, ptr[1]); + super->spriteIndex = ptr[2]; + if (super->type == 2) { + super->frameIndex = 2; + } + super->action = 2; + super->spriteSettings.draw = 2; + super->spriteOrientation.flipY = 0; + super->spriteRendering.b3 = 0; + super->spritePriority.b0 = 0; + super->actionDelay = 0x1e; + super->field_0xf = 0xff; + super->spriteRendering.b0 = 3; + sub_0805EC9C(super, 0x100, 0x100, 0); + gArea.field_0x10 = 1; + SetFade(5, 8); + } +} + +void sub_0808D030(void) { + struct OamData* ptr; + s32 index; + + ptr = gOAMControls.oam; + index = 0x80; + MemClear(&gOAMControls, 0xb74); + while (index != 0) { + // TODO split up into bitfield writes? + *(u16*)ptr = 0x2a0; + ptr++; + index--; + } + gOAMControls.field_0x0 = 1; +} + +void Object3D_Action2(Object3DEntity* this) { + u32 tmp = super->actionDelay--; + if (tmp != 0) { + if (this->unk_68 != 0) { + this->unk_68 -= 2; + } else { + this->unk_68 = 0; + } + sub_0801E1EC(super->x.HALF.HI, super->y.HALF.HI, this->unk_68); + if (0x80 < super->field_0xf) { + super->field_0xf -= 8; + } + sub_0805EC9C(super, super->field_0xf, super->field_0xf, 0); + } else { + gArea.filler3[0]++; + gArea.field_0x10 = 0; + DeleteThisEntity(); + } +} diff --git a/src/object/object42.c b/src/object/object42.c new file mode 100644 index 00000000..28a5df5c --- /dev/null +++ b/src/object/object42.c @@ -0,0 +1,82 @@ +/** + * @file object42.c + * @ingroup Objects + * + * @brief Object42 object + */ + +#define NENT_DEPRECATED +#include "global.h" +#include "object.h" +#include "functions.h" + +typedef struct { + /*0x00*/ Entity base; + /*0x68*/ u8 unk_68[4]; + /*0x6c*/ u16 unk_6c; +} Object42Entity; + +void sub_0808DDB4(Object42Entity*); +void sub_0808DDE0(Object42Entity*); +void sub_0808DDE8(Object42Entity*); + +void Object42(Object42Entity* this) { + static void (*const gUnk_081217A8[])(Object42Entity*) = { + sub_0808DDB4, + sub_0808DDE0, + }; + static void (*const gUnk_081217B0[])(Object42Entity*) = { + sub_0808DDB4, + sub_0808DDE8, + }; + if (super->type != 0) { + gUnk_081217B0[super->action](this); + } else { + gUnk_081217A8[super->action](this); + } +} + +void sub_0808DDB4(Object42Entity* this) { + super->action = 1; + if (super->type != 0) { + super->actionDelay = 0x78; + this->unk_6c = 0xf0; + InitializeAnimation(super, 0); + sub_0808DDE8(this); + } +} + +void sub_0808DDE0(Object42Entity* this) { + DeleteThisEntity(); +} + +void sub_0808DDE8(Object42Entity* this) { + static const s8 gUnk_081217B8[] = { 0, -6, 0, 6 }; + Entity* player; + this->unk_6c--; + if (sub_0807953C()) { + super->field_0xf++; + } + if (((0x1e < super->field_0xf) || ((gPlayerState.flags & 0x1810) != 0)) || (this->unk_6c == 0)) { + gPlayerState.flags &= 0xfffffbff; + DeleteThisEntity(); + } + player = &gPlayerEntity; + super->x.HALF.HI = (s8)gUnk_081217B8[gPlayerEntity.animationState >> 1] + player->x.HALF.HI; + super->y.HALF.HI = gPlayerEntity.y.HALF.HI + -6; + super->z = gPlayerEntity.z; + super->collisionLayer = gPlayerEntity.collisionLayer; + super->spriteRendering.b3 = gPlayerEntity.spriteRendering.b3; + super->spriteOrientation.flipY = gPlayerEntity.spriteOrientation.flipY; + if ((gPlayerState.flags & 0x400) != 0) { + GetNextFrame(super); + } else { + DeleteThisEntity(); + } + if (gPlayerEntity.animationState >> 1 == 2) { + sub_0806FEBC(&gPlayerEntity, 3, super); + super->y.HALF.HI -= 5; + } else { + sub_0806FEBC(&gPlayerEntity, 0, super); + } +} diff --git a/src/object/object4B.c b/src/object/object4B.c new file mode 100644 index 00000000..7e76e856 --- /dev/null +++ b/src/object/object4B.c @@ -0,0 +1,118 @@ +/** + * @file object4B.c + * @ingroup Objects + * + * @brief Object4B object + */ + +#define NENT_DEPRECATED +#include "global.h" +#include "object.h" +#include "functions.h" +#include "menu.h" + +typedef struct { + /*0x00*/ Entity base; +} Object4BEntity; + +void Object4B_Init(Object4BEntity*); +void Object4B_Action1(Object4BEntity*); +void Object4B_Action2(Object4BEntity*); +void Object4B_Action3(Object4BEntity*); +void Object4B_Action4(Object4BEntity*); +void Object4B_Action5(Object4BEntity*); +void Object4B_Action6(Object4BEntity*); +void Object4B_Action7(Object4BEntity*); + +void Object4B(Object4BEntity* this) { + static void (*const Object4B_Actions[])(Object4BEntity*) = { + Object4B_Init, Object4B_Action1, Object4B_Action2, Object4B_Action3, + Object4B_Action4, Object4B_Action5, Object4B_Action6, Object4B_Action7, + }; + Object4B_Actions[super->action](this); +} + +void Object4B_Init(Object4BEntity* this) { + super->action = 1; + super->actionDelay = 0x3c; + InitializeAnimation(super, 0); +} + +void Object4B_Action1(Object4BEntity* this) { + if (--super->actionDelay == 0) { + super->actionDelay = 0x78; + super->action++; + super->spriteSettings.draw = 1; + } +} + +void Object4B_Action2(Object4BEntity* this) { + GetNextFrame(super); + if ((super->frame & 0x80) != 0) { + super->action++; + super->spritePriority.b1 = 3; + InitializeAnimation(super, 2); + } +} + +void Object4B_Action3(Object4BEntity* this) { + GetNextFrame(super); + if (--super->actionDelay == 0) { + super->action++; + super->direction = 0; + super->speed = 0x100; + super->zVelocity = 0x20000; + super->spriteOrientation.flipY = 0; + super->actionDelay = 0; + InitializeAnimation(super, 3); + SoundReq(SFX_12B); + } +} + +void Object4B_Action4(Object4BEntity* this) { + if ((super->frame & 0x10) != 0) { + LinearMoveUpdate(super); + if (GravityUpdate(super, 0x2000) == 0) { + GetNextFrame(super); + } + } else { + GetNextFrame(super); + } + if ((super->y.HALF.HI - gRoomControls.origin_y) < 0x231) { + super->y.HALF.HI = gRoomControls.origin_y + 0x230; + if ((super->frame & 0x80) != 0) { + super->action++; + super->actionDelay = 0x78; + InitializeAnimation(super, 2); + } + } else if ((super->frame & 0x80) != 0) { + super->zVelocity = 0x20000; + InitializeAnimation(super, 3); + SoundReq(SFX_12B); + } +} + +void Object4B_Action5(Object4BEntity* this) { + GetNextFrame(super); + if (--super->actionDelay == 0) { + super->action++; + InitializeAnimation(super, 5); + } +} + +void Object4B_Action6(Object4BEntity* this) { + GetNextFrame(super); + if ((super->frame & 0x80) != 0) { + super->action++; + super->actionDelay = 0x3c; + InitializeAnimation(super, 1); + } +} + +void Object4B_Action7(Object4BEntity* this) { + GetNextFrame(super); + if (--super->actionDelay == 0) { + gMenu.overlayType++; + DeleteThisEntity(); + } +} diff --git a/src/object/object5B.c b/src/object/object5B.c new file mode 100644 index 00000000..01c324d7 --- /dev/null +++ b/src/object/object5B.c @@ -0,0 +1,86 @@ +/** + * @file object5B.c + * @ingroup Objects + * + * @brief Object5B object + */ + +#define NENT_DEPRECATED +#include "global.h" +#include "object.h" +#include "functions.h" + +typedef struct { + /*0x00*/ Entity base; + /*0x68*/ u8 unk_68[0x1a]; + /*0x82*/ u16 unk_82; + /*0x84*/ ScriptExecutionContext* unk_84; +} Object5BEntity; + +void sub_080928C8(Object5BEntity*); +void nullsub_119(Object5BEntity*); +void sub_08092930(Object5BEntity*); +void sub_08092940(Object5BEntity*); +void sub_08092958(Object5BEntity*, ScriptExecutionContext*); + +void Object5B(Object5BEntity* this) { + static void (*const gUnk_08122794[])(Object5BEntity*) = { + sub_080928C8, + nullsub_119, + }; + static void (*const gUnk_0812279C[])(Object5BEntity*) = { + sub_08092930, + sub_08092940, + }; + if ((super->flags & 2) != 0) { + gUnk_0812279C[super->action](this); + } else { + gUnk_08122794[super->action](this); + } +} + +void sub_080928C8(Object5BEntity* this) { + super->action = 1; + super->spriteSettings.draw = 1; + super->frameIndex = super->type; + super->spriteRendering.b3 = 3; + super->spritePriority.b0 = 6; + super->spriteOrientation.flipY = 2; + switch (super->type) { + case 2: + CreateObjectWithParent(super, OBJECT_5B, 4, 0); + break; + case 4: + super->spritePriority.b0 = 7; + break; + } +} + +void nullsub_119(Object5BEntity* this) { +} + +void sub_08092930(Object5BEntity* this) { + sub_080928C8(this); + this->unk_82 = 0; +} + +void sub_08092940(Object5BEntity* this) { + ExecuteScript(super, this->unk_84); + sub_08092958(this, this->unk_84); +} + +void sub_08092958(Object5BEntity* this, ScriptExecutionContext* context) { + u32 tmp; + while (context->postScriptActions != 0) { + tmp = (~context->postScriptActions + 1) & context->postScriptActions; + context->postScriptActions = context->postScriptActions ^ tmp; + switch (tmp) { + case 1: + super->frameIndex = 0; + break; + case 2: + super->frameIndex = context->intVariable; + break; + } + } +} diff --git a/src/object/object64.c b/src/object/object64.c new file mode 100644 index 00000000..a536c556 --- /dev/null +++ b/src/object/object64.c @@ -0,0 +1,120 @@ +/** + * @file object64.c + * @ingroup Objects + * + * @brief Object64 object + */ + +#define NENT_DEPRECATED +#include "global.h" +#include "object.h" +#include "functions.h" + +typedef struct { + /*0x00*/ Entity base; +} Object64Entity; + +void sub_08093E3C(Object64Entity*); +void sub_08093EAC(Object64Entity*); +void sub_08093ED0(Object64Entity*); +void sub_08093EF0(Object64Entity*); + +typedef struct { + u16 unk_0; + u8 unk_2; + u8 unk_3; +} struct_08122950; + +const struct_08122950 gUnk_08122950[] = { + { 244, 31, 0 }, + { 0, 31, 0 }, + { 0, 31, 0 }, +}; + +void Object64(Object64Entity* this) { + static void (*const gUnk_0812295C[])(Object64Entity*) = { + sub_08093E3C, + sub_08093EAC, + }; + gUnk_0812295C[super->action](this); +} + +void sub_08093E3C(Object64Entity* this) { + const u16* ptr; + super->action = 1; + super->flags &= 0x7f; + super->spriteSettings.draw = 1; + if (super->collisionLayer == 0) { + ResolveCollisionLayer(super); + } + InitializeAnimation(super, super->type); + ptr = &gUnk_08122950[super->type].unk_0; + if ((ptr[0] != 0) && ((super->type2 & 0x40) == 0)) { + EnqueueSFX(ptr[0]); + } + if ((super->type2 & 0x20) != 0) { + super->spriteRendering.b3 = 1; + } +} + +void sub_08093EAC(Object64Entity* this) { + static void (*const gUnk_08122964[])(Object64Entity*) = { + sub_08093ED0, + sub_08093EF0, + }; + gUnk_08122964[gUnk_08122950[super->type].unk_2 >> 4](this); +} + +void sub_08093ED0(Object64Entity* this) { + GetNextFrame(super); + if ((super->frame & 0x80) != 0) { + DeleteEntity(super); + } +} + +void sub_08093EF0(Object64Entity* this) { + Entity* object; + switch (super->type) { + case 0: + if (super->subAction != 0) { + return; + } + GetNextFrame(super); + if ((super->frame & 0x80) == 0) { + return; + } + object = CreateObject(OBJECT_64, 1, 0); + if (object != NULL) { + object->parent = super->parent; + CopyPosition(super, object); + } + DeleteThisEntity(); + break; + case 1: + GetNextFrame(super); + if ((super->frame & 1) != 0) { + super->frame = 0; + object = CreateObject(OBJECT_64, 2, 0); + if (object != NULL) { + object->parent = super->parent; + CopyPosition(super, object); + } + } + if ((super->frame & 0x80) == 0) { + return; + } + if (super->parent == &gPlayerEntity) { + SoundReq(SFX_PLY_VO6); + sub_08079D84(); + } + DeleteThisEntity(); + break; + case 2: + GetNextFrame(super); + if ((super->frame & 0x80) == 0) { + return; + } + DeleteThisEntity(); + break; + } +} diff --git a/src/object/object70.c b/src/object/object70.c new file mode 100644 index 00000000..fa0a4bb4 --- /dev/null +++ b/src/object/object70.c @@ -0,0 +1,77 @@ +/** + * @file object70.c + * @ingroup Objects + * + * @brief Object70 object + */ + +#define NENT_DEPRECATED +#include "global.h" +#include "object.h" +#include "functions.h" + +void Object70_Init(Entity*); +void Object70_Action1(Entity*); + +void Object70(Entity* this) { + static void (*const Object70_Actions[])(Entity*) = { + Object70_Init, + Object70_Action1, + }; + Object70_Actions[this->action](this); +} + +void Object70_Init(Entity* this) { + this->action = 1; + this->spriteSettings.draw = 1; + this->frameIndex = this->type + 0xb; + if (this->type != 0) { + sub_08004168(this); + gPlayerEntity.spriteOrientation.flipY = 3; + if ((gPlayerEntity.spritePriority.b0) != 7) { + this->spritePriority.b0 = gPlayerEntity.spritePriority.b0 + 1; + } else { + this->spritePriority.b0 = 7; + } + } +} + +void Object70_Action1(Entity* this) { + u8 bVar1; + + if (this->type == 0) { + if (gPlayerEntity.z.WORD == 0) { + if ((((gPlayerState.dash_state & 0x40) == 0) && (gPlayerState.floor_type == 0x11)) && + ((gPlayerEntity.action == 1 || ((gPlayerEntity.action == 0x18 || (gPlayerEntity.action == 4)))))) { + goto _080974FA; + } else { + if (gPlayerEntity.z.WORD == 0) { + CreateFx(&gPlayerEntity, FX_GREEN_SPLASH, 0); + } + } + } + gPlayerEntity.spriteOrientation.flipY = 2; + DeleteThisEntity(); + _080974FA: + this->x = gPlayerEntity.x; + this->y = gPlayerEntity.y; + if (gPlayerState.jump_status == 0) { + gPlayerEntity.spriteOrientation.flipY = 3; + if (gPlayerEntity.spritePriority.b0 != 7) { + this->spritePriority.b0 = gPlayerEntity.spritePriority.b0 + 1; + } else { + this->spritePriority.b0 = 7; + } + } + + } else { + if (gPlayerEntity.action != 0x1e) { + if (this->collisionLayer == 1) { + gPlayerEntity.spriteOrientation.flipY = 2; + } else { + gPlayerEntity.spriteOrientation.flipY = 1; + } + DeleteThisEntity(); + } + } +} diff --git a/src/object/object74.c b/src/object/object74.c new file mode 100644 index 00000000..e3c4111c --- /dev/null +++ b/src/object/object74.c @@ -0,0 +1,116 @@ +/** + * @file object74.c + * @ingroup Objects + * + * @brief Object74 object + */ + +#define NENT_DEPRECATED +#include "global.h" +#include "object.h" +#include "functions.h" +#include "screen.h" + +typedef struct { + /*0x00*/ Entity base; + /*0x68*/ u8 unk_68[0x1e]; + /*0x86*/ u16 unk_86; +} Object74Entity; + +void sub_08097B84(Object74Entity*); +void sub_08097BDC(Object74Entity*); +void sub_08097C18(Object74Entity*); +void sub_08097C20(Object74Entity*); +void sub_08097C1C(Object74Entity*); +void sub_08097CFC(Object74Entity*); +bool32 sub_08097CB0(Object74Entity*); +void sub_08097CB4(Object74Entity*); + +const Hitbox gUnk_08123328 = { 0, 0, { 4, 0, 0, 4 }, 18, 18 }; + +void Object74(Object74Entity* this) { + static void (*const gUnk_08123330[])(Object74Entity*) = { + sub_08097B84, sub_08097BDC, sub_08097C18, sub_08097C20, sub_08097C1C, + }; + gUnk_08123330[super->action](this); +} + +void sub_08097B84(Object74Entity* this) { + super->action = 1; + super->spritePriority.b0 = 7; + super->hitbox = (Hitbox*)&gUnk_08123328; + if ((this->unk_86 == 0xffff) || (CheckFlags(this->unk_86))) { + super->spriteSettings.draw = 1; + super->action = 4; + sub_08097CFC(this); + } else { + sub_0805BC4C(); + } +} + +void sub_08097BDC(Object74Entity* this) { + if (CheckFlags(this->unk_86)) { + SetPlayerControl(CONTROL_1); + gUnk_02034490.unk0 = 1; + RequestPriorityDuration(super, 0x1e); + if (sub_08097CB0(this) == FALSE) { + sub_08097CB4(this); + } + } +} + +void sub_08097C18(Object74Entity* this) { +} + +void sub_08097C1C(Object74Entity* this) { +} + +void sub_08097C20(Object74Entity* this) { + u32 tmp; + SetPriorityTimer(0x1e); + sub_0800445C(super); + CreateMagicSparkles(super->x.HALF.HI, super->y.HALF.HI, super->collisionLayer); + if (--super->actionDelay == 0) { + super->actionDelay = 8; + tmp = ++super->field_0xf; + gScreen.controls.alphaBlend = (((0x10 - tmp) * 0x100)) | tmp; + if (gScreen.controls.alphaBlend == 0x10) { + SetPlayerControl(CONTROL_ENABLED); + gUnk_02034490.unk0 = 0; + gScreen.controls.layerFXControl = 0; + sub_08097CFC(this); + super->action = 4; + super->spriteRendering.alphaBlend = 0; + SoundReq(SFX_SECRET); + SetGlobalFlag(TINY_ENTRANCE); + } + } +} + +bool32 sub_08097CB0(Object74Entity* this) { + return FALSE; +} + +void sub_08097CB4(Object74Entity* this) { + super->action = 3; + super->spriteSettings.draw = 1; + super->spriteRendering.alphaBlend = 1; + super->actionDelay = 0x1e; + super->field_0xf = 0; + gScreen.controls.layerFXControl = 0xf40; + gScreen.controls.alphaBlend = 0x1000; + SoundReq(SFX_14A); +} + +void sub_08097CFC(Object74Entity* this) { + static const u16 gUnk_08123344[] = { 16448, 65471, 16449, 65472, 16450, 65473, 16451, 65535, 16452, 0, + 16453, 1, 16454, 63, 16455, 64, 16456, 65, 65535 }; + static const u16 gUnk_0812336A[] = { + 16449, 65471, 16449, 65472, 16452, 65535, 16452, 0, 16455, 63, 16455, 64, 65535 + }; + if ((super->x.HALF.HI & 0xf) == 0) { + SetMultipleTiles((u16*)gUnk_0812336A, COORD_TO_TILE(super), super->collisionLayer); + } else { + SetMultipleTiles((u16*)gUnk_08123344, COORD_TO_TILE(super), super->collisionLayer); + } +} diff --git a/src/object/objectB.c b/src/object/objectB.c new file mode 100644 index 00000000..f0cfc4e5 --- /dev/null +++ b/src/object/objectB.c @@ -0,0 +1,172 @@ +/** + * @file objectB.c + * @ingroup Objects + * + * @brief ObjectB object + */ + +#define NENT_DEPRECATED +#include "global.h" +#include "object.h" +#include "functions.h" +#include "itemMetaData.h" +#include "message.h" +#include "save.h" +#include "game.h" +#include "item.h" + +typedef struct { + /*0x00*/ Entity base; + /*0x68*/ u16 unk_68; +} ObjectBEntity; + +typedef struct { + u8 unk_0[6]; + u16 unk_6; +} struct_080FD964; +extern const struct_080FD964 gUnk_080FD964[]; +extern const u16 gUnk_080FD5B4[]; + +void ObjectB_Init(ObjectBEntity*); +void ObjectB_Action1(ObjectBEntity*); +void ObjectB_Action2(ObjectBEntity*); +void ObjectB_Action3(ObjectBEntity*); + +void ObjectB(ObjectBEntity* this) { + static void (*const ObjectB_Actions[])(ObjectBEntity*) = { ObjectB_Init, ObjectB_Action1, ObjectB_Action2, + ObjectB_Action3 }; + u32 tmp; + ObjectB_Actions[super->action](this); + tmp = (super->parent->frame >> 6); + super->spriteSettings.draw = tmp & 1; + sub_08080CB4(super); + super->spritePriority.b1 = 0; + super->spriteOrientation.flipY = 1; + super->spriteRendering.b3 = 0; +} + +void ObjectB_Init(ObjectBEntity* this) { + SetDefaultPriority(super, 6); + super->action = 1; +} + +void ObjectB_Action1(ObjectBEntity* this) { + u32 tmp; + const ItemMetaData* ptr; + + if ((super->parent)->frame != 0x41) { + return; + } + super->action = 2; + switch (super->actionDelay) { + case 0: + case 1: + this->unk_68 = GiveItem(super->type, super->type2); + switch (super->type) { + case 0x40: + case 0x41: + case 0x42: + case 0x43: + break; + default: + SoundReq(SFX_109); + break; + } + break; + case 2: + GiveItem(super->type, super->type2); + this->unk_68 = gUnk_080FD964[super->type].unk_6; + SoundReq(SFX_109); + break; + case 5: + tmp = GetInventoryValue((u32)super->type); + ptr = &gItemMetaData[super->type]; + if (tmp == 0) { + this->unk_68 = *(u16*)&ptr->unk4; + } else { + this->unk_68 = *(u16*)&ptr->unk6; + } + return; + case 3: + case 4: + default: + return; + } +} + +void ObjectB_Action2(ObjectBEntity* this) { + u32 messageIndex; + if ((super->parent)->frame == 0x42) { + super->action = 3; + switch (super->actionDelay) { + case 1: + case 3: + case 4: + default: + break; + case 0: + case 2: + case 5: + messageIndex = this->unk_68; + if (messageIndex != 0) { + switch (super->type) { + case 0x63: + messageIndex += gSave.stats.heartPieces; + break; + case 0x3f: + if (super->type2 > 1) { + if (messageIndex == 0x577) { + messageIndex--; + } else { + messageIndex++; + } + } + break; + } + MessageFromTarget(messageIndex); + gMessage.field_0x10 = super->type2; + } + } + } +} + +void ObjectB_Action3(ObjectBEntity* this) { + u32 tmp; + if ((super->parent)->action == 8) { + return; + } + switch (super->actionDelay) { + case 0: + case 1: + case 2: + if (super->type != 0x62) { + if (super->type != 0x63) { + break; + } + ModHealth(0xa0); + gSave.stats.heartPieces++; + if (gSave.stats.heartPieces < 4) { + break; + } + gSave.stats.heartPieces = 0; + } + gSave.stats.maxHealth += 8; + if (gSave.stats.maxHealth > 0xa0) { + gSave.stats.maxHealth = 0xa0; + } + ModHealth(0xa0); + break; + case 3: + tmp = GetBottleContaining(super->type); + if (tmp != 0) { + gSave.stats.itemButtons[tmp + 1] = 0x20; + } else { + SetInventoryValue(super->type, ITEM_GREEN_SWORD); + } + break; + case 4: + case 5: + break; + } + DeleteThisEntity(); +} diff --git a/src/object/objectB3.c b/src/object/objectB3.c new file mode 100644 index 00000000..770d4e27 --- /dev/null +++ b/src/object/objectB3.c @@ -0,0 +1,106 @@ +/** + * @file objectB3.c + * @ingroup Objects + * + * @brief ObjectB3 object + */ + +#define NENT_DEPRECATED +#include "global.h" +#include "object.h" +#include "functions.h" +#include "kinstone.h" + +void sub_080A0ADC(Entity*); +void sub_080A0AF0(Entity*); +void sub_080A0AC4(Entity*); +void sub_080A0AD0(Entity*); +void sub_080A0B4C(Entity*); +void sub_080A0B60(Entity*); +void sub_080A0B80(Entity*); + +void ObjectB3(Entity* this) { + static void (*const gUnk_08124A10[])(Entity*) = { + sub_080A0ADC, + sub_080A0AF0, + }; + static void (*const gUnk_08124A18[])(Entity*) = { + sub_080A0AC4, + sub_080A0AD0, + }; + static void (*const gUnk_08124A20[])(Entity*) = { + sub_080A0B4C, + sub_080A0B60, + sub_080A0B80, + }; + void (*const* ptr)(Entity*); + + switch (this->type) { + case 0: + if ((this->flags & 2) != 0) { + ptr = gUnk_08124A10; + } else { + ptr = gUnk_08124A18; + } + break; + case 1: + ptr = gUnk_08124A20; + break; + } + ptr[this->action](this); + if (this->action == 0) { + this->action = 1; + this->spriteRendering.b3 = 1; + this->spritePriority.b0 = 0; + this->spriteOrientation.flipY = 1; + ChangeObjPalette(this, gUnk_080C9CBC[gFuseInfo._3].unk0); + } + GetNextFrame(this); +} + +void sub_080A0AC4(Entity* this) { + InitializeAnimation(this, this->type); +} + +void sub_080A0AD0(Entity* this) { + GravityUpdate(this, 0x80); +} + +void sub_080A0ADC(Entity* this) { + sub_0807DD64(this); + ExecuteScriptForEntity(this, NULL); +} + +void sub_080A0AF0(Entity* this) { + ExecuteScriptForEntity(this, NULL); + GetNextFrame(this); + if (this->animIndex == 5) { + if ((this->frame & 0x80) != 0) { + DeleteThisEntity(); + } + } + GravityUpdate(this, 0x80); +} + +void sub_080A0B28(Entity* this, ScriptExecutionContext* context) { + sub_0807DEDC(this, context, this->x.HALF.HI, this->y.HALF.HI); + this->y.HALF.HI -= 0xb0; + this->spriteSettings.draw = 0; +} + +void sub_080A0B4C(Entity* this) { + this->x.HALF.HI = 0x78; + this->y.HALF.HI = 0x50; + InitializeAnimation(this, 0); +} + +void sub_080A0B60(Entity* this) { + if ((this->frame & 0x40) != 0) { + this->action = 2; + SoundReq(SFX_136); + } +} + +void sub_080A0B80(Entity* this) { + this->y.WORD -= 0x28000; +} diff --git a/src/object/objectBD.c b/src/object/objectBD.c new file mode 100644 index 00000000..6e12c57c --- /dev/null +++ b/src/object/objectBD.c @@ -0,0 +1,112 @@ +/** + * @file objectBD.c + * @ingroup Objects + * + * @brief ObjectBD object + */ + +#define NENT_DEPRECATED +#include "global.h" +#include "object.h" +#include "functions.h" + +void sub_080A2274(Entity*); +void sub_080A22B0(Entity*); +void sub_080A22C4(Entity*); +void sub_080A2340(Entity*); + +typedef struct { + u16 unk_0; + u16 unk_2; + u16 unk_4; + u8 unk_6; + u8 pad; +} struct_08125014; + +const struct_08125014 gUnk_08125014[] = { + { 120, 48, 16, 4, 0 }, { 136, 81, 22, 3, 0 }, { 190, 20, 25, 2, 0 }, { 192, 81, 26, 2, 0 }, { 32, 104, 27, 3, 0 }, +}; + +void ObjectBD(Entity* this) { + static void (*const gUnk_0812503C[])(Entity*) = { + sub_080A2274, sub_080A22B0, sub_080A22B0, sub_080A22B0, sub_080A22C4, + }; + gUnk_0812503C[this->type](this); +} + +void sub_080A2274(Entity* this) { + u32 addr; + u32 type; + + if (this->action == 0) { + sub_080A2340(this); + CreateObject(OBJECT_BD, 1, 0); + addr = 0x02000000; // TODO write to 0x2000007 + if (*(u8*)(addr + 7) == 1) { + type = 2; + } else { + type = 3; + } + CreateObject(OBJECT_BD, type, 0); + CreateObject(OBJECT_BD, 4, 0); + } +} + +void sub_080A22B0(Entity* this) { + if (this->action == 0) { + sub_080A2340(this); + } +} + +NONMATCH("asm/non_matching/objectBD/sub_080A22C4.inc", void sub_080A22C4(Entity* this)) { + u8 bVar1; + u8 uVar2; + s16 sVar3; + u32 uVar4; + u32 tmp1, tmp2, tmp3, tmp4; + + switch (this->action) { + case 0: + sub_080A2340(this); + this->actionDelay = 8; + this->field_0xf = 0; + this->subAction = this->frameIndex; + this->speed = (Random() & 3) * 0x10 + 0x1e; + break; + case 1: + if (--this->speed != 0) { + return; + } + this->speed = (Random() & 7) * 0x10 + 0x1e; + this->action = 2; + break; + default: + if (--this->actionDelay != 0) { + return; + } + this->actionDelay = 8; + this->field_0xf = tmp2 = (this->field_0xf + 1) & 3; + tmp3 = this->subAction; + tmp1 = tmp3 + tmp2; + this->frameIndex = tmp1; + if (tmp3 * 0x1000000 != tmp1 * 0x1000000) { + return; + } + this->action = 1; + break; + } +} +END_NONMATCH + +void sub_080A2340(Entity* this) { + const struct_08125014* ptr; + ptr = &gUnk_08125014[this->type]; + this->x.HALF.HI = ptr->unk_0; + this->y.HALF.HI = ptr->unk_2; + this->frameIndex = ptr->unk_4; + this->spritePriority.b0 = ptr->unk_6; + this->spriteRendering.b3 = 1; + this->spriteOrientation.flipY = 1; + this->spriteSettings.draw = 2; + this->action = 1; +} diff --git a/src/object/objectD.c b/src/object/objectD.c new file mode 100644 index 00000000..89b72fa2 --- /dev/null +++ b/src/object/objectD.c @@ -0,0 +1,70 @@ +/** + * @file objectD.c + * @ingroup Objects + * + * @brief ObjectD object + */ + +#define NENT_DEPRECATED +#include "global.h" +#include "object.h" +#include "functions.h" +#include "hitbox.h" + +typedef struct { + /*0x00*/ Entity base; + /*0x68*/ u8 unk_68[0x1e]; + /*0x86*/ u16 unk_86; +} ObjectDEntity; + +void sub_0808434C(ObjectDEntity*); +void sub_080843F8(ObjectDEntity*); +void sub_08084428(ObjectDEntity*); + +void (*const gUnk_0811F908[])(ObjectDEntity*) = { + sub_0808434C, + sub_080843F8, + sub_08084428, + (void (*)(ObjectDEntity*))GetNextFrame, +}; + +void ObjectD(ObjectDEntity* this) { + gUnk_0811F908[super->action](this); +} + +void sub_0808434C(ObjectDEntity* this) { + super->action = 1; + super->flags |= 0x80; + super->spriteSettings.draw = 1; + super->field_0x3c = 7; + super->hitType = 1; + super->hurtType = 0x47; + super->flags2 = 2; + super->hitbox = (Hitbox*)&gHitbox_4; + SetTile(0x4050, COORD_TO_TILE(super), super->collisionLayer); + if (super->type == 1 || CheckFlags(this->unk_86)) { + super->action = 3; + SetFlag(this->unk_86); + InitializeAnimation(super, 1); + } else { + InitializeAnimation(super, super->type); + } +} + +void sub_080843F8(ObjectDEntity* this) { + if (super->bitfield == 0x9c) { + super->action = 2; + super->flags &= 0x7f; + CreateFx(super, FX_ICE, 0); + EnqueueSFX(SFX_10D); + } +} + +void sub_08084428(ObjectDEntity* this) { + GetNextFrame(super); + if ((super->frame & 1) != 0) { + super->action = 3; + SetFlag(this->unk_86); + EnqueueSFX(SFX_BUTTON_PRESS); + } +} diff --git a/src/object/objectE.c b/src/object/objectE.c new file mode 100644 index 00000000..e7cee6bc --- /dev/null +++ b/src/object/objectE.c @@ -0,0 +1,26 @@ +/** + * @file objectE.c + * @ingroup Objects + * + * @brief ObjectE object + */ + +#define NENT_DEPRECATED +#include "global.h" +#include "object.h" +#include "functions.h" + +void ObjectE(Entity* this) { + if (this->action == 0) { + this->action = 1; + this->actionDelay = 0x14; + sub_08004168(this); + } else { + if (this->actionDelay-- == 0) { + sub_0807B7D8(0x35, COORD_TO_TILE(this), this->collisionLayer); + CreateFx(this, FX_FALL_DOWN, 0x40); + SoundReq(SFX_126); + DeleteThisEntity(); + } + } +} diff --git a/src/object/paper.c b/src/object/paper.c new file mode 100644 index 00000000..bd81e2b9 --- /dev/null +++ b/src/object/paper.c @@ -0,0 +1,78 @@ +/** + * @file paper.c + * @ingroup Objects + * + * @brief Paper object + */ + +#define NENT_DEPRECATED +#include "global.h" +#include "object.h" +#include "functions.h" + +void Paper_Init(Entity*); +void Paper_Action1(Entity*); +void Paper_Type0(Entity*); +void Paper_Type1(Entity*); +void Paper_Type2(Entity*); + +void Paper(Entity* this) { + static void (*const Paper_Actions[])(Entity*) = { + Paper_Init, + Paper_Action1, + }; + Paper_Actions[this->action](this); +} + +void Paper_Init(Entity* this) { + static void (*const Paper_Types[])(Entity*) = { + Paper_Type0, + Paper_Type1, + Paper_Type2, + }; + Paper_Types[this->type](this); +} + +void Paper_Type0(Entity* this) { + this->action = 1; + this->spriteRendering.b3 = 1; + this->z.HALF.HI -= 8; + if (this->type2 != 1) { + if (this->type2 != 2) { + return; + } + this->spriteSettings.draw = 0; + } + SetTile(0x4051, COORD_TO_TILE(this), 1); +} + +void Paper_Type1(Entity* this) { + this->action = 1; + this->frameIndex = this->type2; + switch (this->type2) { + case 0: + this->spriteOffsetY = 2; + break; + case 2: + this->spriteOffsetY = -2; + break; + } +} + +void Paper_Type2(Entity* this) { + this->action = 1; + this->y.HALF.HI++; + this->spriteOffsetY = -1; + SetTile(0x4051, COORD_TO_TILE(this) - 1, 1); + SetTile(0x4051, COORD_TO_TILE(this), 1); +} + +void Paper_Action1(Entity* this) { + if (this->type == 0) { + if ((gPlayerEntity.y.HALF.HI < this->y.HALF.HI) || (gPlayerEntity.y.HALF.HI) > this->y.HALF.HI + 0x18) { + this->spriteRendering.b3 = 1; + } else { + this->spriteRendering.b3 = 2; + } + } +} diff --git a/src/object/pushableGrave.c b/src/object/pushableGrave.c index 989f817e..a3421aa2 100644 --- a/src/object/pushableGrave.c +++ b/src/object/pushableGrave.c @@ -78,7 +78,7 @@ void PushableGrave_Init(PushableGraveEntity* this) { super->hitbox = (Hitbox*)&gUnk_080FD570; SetTile(tileIndex, tilePosition, super->collisionLayer); if (super->type2 == 2) { - sub_0801AF18((u8*)gUnk_081232C0, tilePosition, super->collisionLayer); + SetMultipleTiles((u16*)gUnk_081232C0, tilePosition, super->collisionLayer); } } } diff --git a/src/object/stoneTablet.c b/src/object/stoneTablet.c index 9216e9b8..ce0df01e 100644 --- a/src/object/stoneTablet.c +++ b/src/object/stoneTablet.c @@ -15,22 +15,17 @@ void StoneTablet(Entity* this) { } void sub_080979CC(Entity* this) { - static const u8 gUnk_081232EC[] = { - 0x22, 0x40, 0xFE, 0xFF, 0x22, 0x40, 0xFF, 0xFF, 0x22, 0x40, 0x0, 0x0, 0x22, 0x40, 0x1, 0x0, 0xFF, 0xFF, - }; - - static const u8 gUnk_081232FE[] = { - 0x65, 0x40, 0xBF, 0xFF, 0x22, 0x40, 0xC0, 0xFF, 0x66, 0x40, 0xC1, 0xFF, 0x29, - 0x40, 0xFF, 0xFF, 0x26, 0x40, 0x0, 0x0, 0x2A, 0x40, 0x1, 0x0, 0xFF, 0xFF, - }; + static const u16 gUnk_081232EC[] = { 0x4022, 0xfffe, 0x4022, 0xffff, 0x4022, 0x0, 0x4022, 0x1, 0xffff }; + static const u16 gUnk_081232FE[] = { 0x4065, 0xffbf, 0x4022, 0xffc0, 0x4066, 0xffc1, 0x4029, + 0xffff, 0x4026, 0x0, 0x402a, 0x1, 0xffff }; this->action = 1; this->spriteSettings.draw = 1; if (this->type == 3) { this->frameIndex = 0; - sub_0801AF18(gUnk_081232FE, COORD_TO_TILE(this), this->collisionLayer); + SetMultipleTiles((u16*)gUnk_081232FE, COORD_TO_TILE(this), this->collisionLayer); } else { this->frameIndex = this->type; - sub_0801AF18(gUnk_081232EC, COORD_TO_TILE(this), this->collisionLayer); + SetMultipleTiles((u16*)gUnk_081232EC, COORD_TO_TILE(this), this->collisionLayer); } }