From 43181b687c49c9662708f46375887fa2b251bd7d Mon Sep 17 00:00:00 2001 From: RandomityGuy <31925790+RandomityGuy@users.noreply.github.com> Date: Tue, 30 Jan 2024 00:59:47 +0530 Subject: [PATCH] move sync?? --- src/Marble.hx | 1 + src/MarbleWorld.hx | 2 +- src/net/MoveManager.hx | 7 +++++-- 3 files changed, 7 insertions(+), 3 deletions(-) diff --git a/src/Marble.hx b/src/Marble.hx index fb56f749..c6135b87 100644 --- a/src/Marble.hx +++ b/src/Marble.hx @@ -1725,6 +1725,7 @@ class Marble extends GameObject { var moveId = 65535; if (!this.controllable && this.connection != null && Net.isHost) { var nextMove = this.connection.moveManager.getNextMove(); + // trace('Moves left: ${@:privateAccess this.connection.moveManager.queuedMoves.length}'); if (nextMove == null) { var axis = getMarbleAxis()[1]; var innerMove = new Move(); diff --git a/src/MarbleWorld.hx b/src/MarbleWorld.hx index c3d3c6a9..84c73c58 100644 --- a/src/MarbleWorld.hx +++ b/src/MarbleWorld.hx @@ -1058,7 +1058,7 @@ class MarbleWorld extends Scheduler { var ackLag = @:privateAccess Net.clientConnection.moveManager.queuedMoves.length; var mvStored = null; if (!lastMoves.ourMoveApplied) - mvStored = Net.clientConnection.moveManager.acknowledgeMove(ourLastMove.move.id); + mvStored = Net.clientConnection.moveManager.acknowledgeMove(ourLastMove.move.id, timeState); else return; diff --git a/src/net/MoveManager.hx b/src/net/MoveManager.hx index 83ba1d1d..63ff9e43 100644 --- a/src/net/MoveManager.hx +++ b/src/net/MoveManager.hx @@ -35,8 +35,9 @@ class MoveManager { var nextMoveId:Int; var lastMove:NetMove; var lastAckMoveId:Int = -1; + var ackRTT:Int = -1; - static var maxMoves = 45; + var maxMoves = 45; public function new(connection:ClientConnection) { queuedMoves = []; @@ -153,7 +154,7 @@ class MoveManager { } } - public function acknowledgeMove(m:Int) { + public function acknowledgeMove(m:Int, timeState:TimeState) { if (m == 65535 || m == -1) return null; if (m <= lastAckMoveId) @@ -168,6 +169,8 @@ class MoveManager { if (m == queuedMoves[0].id) { delta = queuedMoves[0].id - lastAckMoveId; mv = queuedMoves.shift(); + ackRTT = timeState.ticks - mv.timeState.ticks; + maxMoves = Std.int(ackRTT * 1.5); } lastAckMoveId = m; return mv;