diff --git a/asm/non_matching/objectUtils/SyncPlayerToPlatform.inc b/asm/non_matching/objectUtils/SyncPlayerToPlatform.inc deleted file mode 100644 index ac068ae2..00000000 --- a/asm/non_matching/objectUtils/SyncPlayerToPlatform.inc +++ /dev/null @@ -1,109 +0,0 @@ - .syntax unified - push {r4, r5, r6, lr} - adds r4, r0, #0 - adds r6, r1, #0 - ldrb r1, [r4, #0x15] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - bne _080A2CBA - lsrs r0, r1, #3 - cmp r0, #1 - beq _080A2C3C - cmp r0, #1 - bgt _080A2C04 - cmp r0, #0 - beq _080A2C0E - b _080A2CBA -_080A2C04: - cmp r0, #2 - beq _080A2C68 - cmp r0, #3 - beq _080A2C94 - b _080A2CBA -_080A2C0E: - ldrh r5, [r4, #0x32] - adds r0, r4, #0 - bl LinearMoveUpdate - ldrh r1, [r4, #0x32] - lsls r0, r5, #0x10 - asrs r0, r0, #0x10 - subs r0, r0, r1 - lsls r0, r0, #0x10 - asrs r1, r0, #0x10 - cmp r1, #0 - beq _080A2CBA - cmp r6, #0 - beq _080A2CBA - ldr r0, _080A2C38 @ =gPlayerEntity - lsls r1, r1, #8 - movs r2, #0 - bl sub_080044AE - b _080A2CBA - .align 2, 0 -_080A2C38: .4byte gPlayerEntity -_080A2C3C: - ldrh r5, [r4, #0x2e] - adds r0, r4, #0 - bl LinearMoveUpdate - ldrh r1, [r4, #0x2e] - lsls r0, r5, #0x10 - asrs r0, r0, #0x10 - subs r1, r1, r0 - lsls r1, r1, #0x10 - asrs r1, r1, #0x10 - cmp r1, #0 - beq _080A2CBA - cmp r6, #0 - beq _080A2CBA - ldr r0, _080A2C64 @ =gPlayerEntity - lsls r1, r1, #8 - movs r2, #8 - bl sub_080044AE - b _080A2CBA - .align 2, 0 -_080A2C64: .4byte gPlayerEntity -_080A2C68: - ldrh r5, [r4, #0x32] - adds r0, r4, #0 - bl LinearMoveUpdate - ldrh r1, [r4, #0x32] - lsls r0, r5, #0x10 - asrs r0, r0, #0x10 - subs r1, r1, r0 - lsls r1, r1, #0x10 - asrs r1, r1, #0x10 - cmp r1, #0 - beq _080A2CBA - cmp r6, #0 - beq _080A2CBA - ldr r0, _080A2C90 @ =gPlayerEntity - lsls r1, r1, #8 - movs r2, #0x10 - bl sub_080044AE - b _080A2CBA - .align 2, 0 -_080A2C90: .4byte gPlayerEntity -_080A2C94: - ldrh r5, [r4, #0x2e] - adds r0, r4, #0 - bl LinearMoveUpdate - ldrh r1, [r4, #0x2e] - lsls r0, r5, #0x10 - asrs r0, r0, #0x10 - subs r0, r0, r1 - lsls r0, r0, #0x10 - asrs r1, r0, #0x10 - cmp r1, #0 - beq _080A2CBA - cmp r6, #0 - beq _080A2CBA - ldr r0, _080A2CBC @ =gPlayerEntity - lsls r1, r1, #8 - movs r2, #0x18 - bl sub_080044AE -_080A2CBA: - pop {r4, r5, r6, pc} - .align 2, 0 -_080A2CBC: .4byte gPlayerEntity - .syntax divided diff --git a/src/objectUtils.c b/src/objectUtils.c index 1c78c451..a97cdbfb 100644 --- a/src/objectUtils.c +++ b/src/objectUtils.c @@ -266,52 +266,53 @@ void CreateSparkle(Entity* entity) { } } -NONMATCH("asm/non_matching/objectUtils/SyncPlayerToPlatform.inc", - void SyncPlayerToPlatform(Entity* this, bool32 param_2)) { +void SyncPlayerToPlatform(Entity* this, bool32 param_2) { s16 oldValue; s32 diff; u16 newValue; + FORCE_REGISTER(Entity * that, r4) = this; + FORCE_REGISTER(bool32 p2, r6) = param_2; + u16 dir = that->direction; - if ((this->direction & 0x80) == 0) { - switch (this->direction >> 3) { + if ((dir & 0x80) == 0) { + switch (dir >> 3) { case 0: - oldValue = this->y.HALF_U.HI; - LinearMoveUpdate(this); - newValue = this->y.HALF_U.HI; + oldValue = that->y.HALF_U.HI; + LinearMoveUpdate(that); + newValue = that->y.HALF_U.HI; diff = ((oldValue - newValue) << 0x10) >> 0x10; - if ((diff != 0) && (param_2 != 0)) { + if ((diff != 0) && (p2 != 0)) { sub_080044AE(&gPlayerEntity, diff << 8, 0); } break; case 1: - oldValue = this->x.HALF_U.HI; - LinearMoveUpdate(this); - diff = ((this->x.HALF_U.HI - oldValue) * 0x10000) >> 0x10; - if ((diff != 0) && (param_2 != 0)) { + oldValue = that->x.HALF_U.HI; + LinearMoveUpdate(that); + diff = ((that->x.HALF_U.HI - oldValue) * 0x10000) >> 0x10; + if ((diff != 0) && (p2 != 0)) { sub_080044AE(&gPlayerEntity, diff << 8, 8); } break; case 2: - oldValue = this->y.HALF_U.HI; - LinearMoveUpdate(this); - diff = ((this->y.HALF_U.HI - oldValue) * 0x10000) >> 0x10; - if ((diff != 0) && (param_2 != 0)) { + oldValue = that->y.HALF_U.HI; + LinearMoveUpdate(that); + diff = ((that->y.HALF_U.HI - oldValue) * 0x10000) >> 0x10; + if ((diff != 0) && (p2 != 0)) { sub_080044AE(&gPlayerEntity, diff << 8, 0x10); } break; case 3: - oldValue = this->x.HALF_U.HI; - LinearMoveUpdate(this); - newValue = this->x.HALF_U.HI; + oldValue = that->x.HALF_U.HI; + LinearMoveUpdate(that); + newValue = that->x.HALF_U.HI; diff = ((oldValue - newValue) << 0x10) >> 0x10; - if ((diff != 0) && (param_2 != 0)) { + if ((diff != 0) && (p2 != 0)) { sub_080044AE(&gPlayerEntity, diff << 8, 0x18); } break; } } } -END_NONMATCH void UpdateRailMovement(Entity* this, u16** param_2, u16* param_3) { u16* ptr = *param_2;