mirror of https://github.com/zeldaret/tmc.git
Match SyncPlayerToPlatform
This commit is contained in:
parent
4ec85404c0
commit
2ddfdc3e4f
|
|
@ -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
|
|
||||||
|
|
@ -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;
|
s16 oldValue;
|
||||||
s32 diff;
|
s32 diff;
|
||||||
u16 newValue;
|
u16 newValue;
|
||||||
|
FORCE_REGISTER(Entity * that, r4) = this;
|
||||||
|
FORCE_REGISTER(bool32 p2, r6) = param_2;
|
||||||
|
u16 dir = that->direction;
|
||||||
|
|
||||||
if ((this->direction & 0x80) == 0) {
|
if ((dir & 0x80) == 0) {
|
||||||
switch (this->direction >> 3) {
|
switch (dir >> 3) {
|
||||||
case 0:
|
case 0:
|
||||||
oldValue = this->y.HALF_U.HI;
|
oldValue = that->y.HALF_U.HI;
|
||||||
LinearMoveUpdate(this);
|
LinearMoveUpdate(that);
|
||||||
newValue = this->y.HALF_U.HI;
|
newValue = that->y.HALF_U.HI;
|
||||||
diff = ((oldValue - newValue) << 0x10) >> 0x10;
|
diff = ((oldValue - newValue) << 0x10) >> 0x10;
|
||||||
if ((diff != 0) && (param_2 != 0)) {
|
if ((diff != 0) && (p2 != 0)) {
|
||||||
sub_080044AE(&gPlayerEntity, diff << 8, 0);
|
sub_080044AE(&gPlayerEntity, diff << 8, 0);
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case 1:
|
case 1:
|
||||||
oldValue = this->x.HALF_U.HI;
|
oldValue = that->x.HALF_U.HI;
|
||||||
LinearMoveUpdate(this);
|
LinearMoveUpdate(that);
|
||||||
diff = ((this->x.HALF_U.HI - oldValue) * 0x10000) >> 0x10;
|
diff = ((that->x.HALF_U.HI - oldValue) * 0x10000) >> 0x10;
|
||||||
if ((diff != 0) && (param_2 != 0)) {
|
if ((diff != 0) && (p2 != 0)) {
|
||||||
sub_080044AE(&gPlayerEntity, diff << 8, 8);
|
sub_080044AE(&gPlayerEntity, diff << 8, 8);
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case 2:
|
case 2:
|
||||||
oldValue = this->y.HALF_U.HI;
|
oldValue = that->y.HALF_U.HI;
|
||||||
LinearMoveUpdate(this);
|
LinearMoveUpdate(that);
|
||||||
diff = ((this->y.HALF_U.HI - oldValue) * 0x10000) >> 0x10;
|
diff = ((that->y.HALF_U.HI - oldValue) * 0x10000) >> 0x10;
|
||||||
if ((diff != 0) && (param_2 != 0)) {
|
if ((diff != 0) && (p2 != 0)) {
|
||||||
sub_080044AE(&gPlayerEntity, diff << 8, 0x10);
|
sub_080044AE(&gPlayerEntity, diff << 8, 0x10);
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case 3:
|
case 3:
|
||||||
oldValue = this->x.HALF_U.HI;
|
oldValue = that->x.HALF_U.HI;
|
||||||
LinearMoveUpdate(this);
|
LinearMoveUpdate(that);
|
||||||
newValue = this->x.HALF_U.HI;
|
newValue = that->x.HALF_U.HI;
|
||||||
diff = ((oldValue - newValue) << 0x10) >> 0x10;
|
diff = ((oldValue - newValue) << 0x10) >> 0x10;
|
||||||
if ((diff != 0) && (param_2 != 0)) {
|
if ((diff != 0) && (p2 != 0)) {
|
||||||
sub_080044AE(&gPlayerEntity, diff << 8, 0x18);
|
sub_080044AE(&gPlayerEntity, diff << 8, 0x18);
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
END_NONMATCH
|
|
||||||
|
|
||||||
void UpdateRailMovement(Entity* this, u16** param_2, u16* param_3) {
|
void UpdateRailMovement(Entity* this, u16** param_2, u16* param_3) {
|
||||||
u16* ptr = *param_2;
|
u16* ptr = *param_2;
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue