X-Git-Url: http://git.localhorst.tv/?a=blobdiff_plain;f=src%2Fclient%2Fnet.cpp;fp=src%2Fclient%2Fnet.cpp;h=d7a2661d56c3bc54d09df6140da9a003fed848db;hb=4727825186798902f68df5b99a6a32f0ef618454;hp=1c13f9e2912c7c79971a5042806079194bf0ab5e;hpb=4fbf5a3c1b0e530706023f5fc4be2f68d30ea645;p=blank.git diff --git a/src/client/net.cpp b/src/client/net.cpp index 1c13f9e..d7a2661 100644 --- a/src/client/net.cpp +++ b/src/client/net.cpp @@ -62,7 +62,7 @@ int ChunkReceiver::ToLoad() const noexcept { void ChunkReceiver::LoadOne() { if (!store.HasMissing()) return; - Chunk::Pos pos = store.NextMissing(); + ExactLocation::Coarse pos = store.NextMissing(); Chunk *chunk = store.Allocate(pos); if (!chunk) { // chunk store corrupted? @@ -392,8 +392,7 @@ void NetworkedInput::MergePlayerCorrection(uint16_t seq, const EntityState &corr replay.SetState(corrected_state); if (entry != end) { - entry->state.chunk_pos = replay.GetState().chunk_pos; - entry->state.block_pos = replay.GetState().block_pos; + entry->state.pos = replay.GetState().pos; ++entry; } @@ -401,8 +400,7 @@ void NetworkedInput::MergePlayerCorrection(uint16_t seq, const EntityState &corr while (entry != end) { SetMovement(entry->movement); GetWorld().Update(replay, entry->delta_t); - entry->state.chunk_pos = replay.GetState().chunk_pos; - entry->state.block_pos = replay.GetState().block_pos; + entry->state.pos = replay.GetState().pos; ++entry; } @@ -421,13 +419,12 @@ void NetworkedInput::MergePlayerCorrection(uint16_t seq, const EntityState &corr constexpr float max_disp = 0.0001f; // (1/100)^2 if (disp_squared > warp_thresh) { - player_state.chunk_pos = replay.GetState().chunk_pos; - player_state.block_pos = replay.GetState().block_pos; + player_state.pos = replay.GetState().pos; } else if (disp_squared < max_disp) { - player_state.block_pos += displacement; + player_state.pos.block += displacement; } else { displacement *= 0.01f / sqrt(disp_squared); - player_state.block_pos += displacement; + player_state.pos.block += displacement; } GetPlayer().GetEntity().SetState(player_state); SetMovement(restore_movement);