diff --git a/src/Marble.hx b/src/Marble.hx index 9a1a065f..15521f66 100644 --- a/src/Marble.hx +++ b/src/Marble.hx @@ -492,7 +492,7 @@ class Marble extends GameObject { A = gWorkGravityDir.multiply(this._gravity); if (this.mode == Finish) A = this.velocity.multiply(-16); - if (currentTime - this.helicopterEnableTime < 5) { + if (currentTime - this.helicopterEnableTime < 5 && this.mode != Finish) { A = A.multiply(0.25); } for (obj in level.forceObjects) { diff --git a/src/triggers/TeleportTrigger.hx b/src/triggers/TeleportTrigger.hx index 8fa74631..2ca14a0a 100644 --- a/src/triggers/TeleportTrigger.hx +++ b/src/triggers/TeleportTrigger.hx @@ -86,8 +86,12 @@ class TeleportTrigger extends Trigger { } else { position = destination.vertices[0].add(new Vector(0, 0, 3)).add(pos); // destination.vertices[0].clone().add(new Vector(0, 0, 3)); } + position.w = 1; this.level.marble.prevPos.load(position); this.level.marble.setPosition(position.x, position.y, position.z); + var ct = this.level.marble.collider.transform.clone(); + ct.setPosition(position); + this.level.marble.collider.setTransform(ct); if (this.level.isRecording) { this.level.replay.recordMarbleStateFlags(false, false, true, false); }