X-Git-Url: http://git.localhorst.tv/?a=blobdiff_plain;f=src%2Fclient%2Fnet.cpp;h=36d598bd9b2ba76681c509483a052f22717d6a6b;hb=1d225566f79566e2dbbad8cb2876696f4c074ff5;hp=73931f44c1825ba166a743cafd53c8e9747e4d7c;hpb=d38be21d103052761505d58a6d13e30a896dde01;p=blank.git diff --git a/src/client/net.cpp b/src/client/net.cpp index 73931f4..36d598b 100644 --- a/src/client/net.cpp +++ b/src/client/net.cpp @@ -306,6 +306,18 @@ uint16_t Client::SendPart() { return conn.Send(client_pack, client_sock); } +uint16_t Client::SendMessage( + uint8_t type, + uint32_t ref, + const string &msg +) { + auto pack = Packet::Make(client_pack); + pack.WriteType(type); + pack.WriteReferral(ref); + pack.WriteMessage(msg); + client_pack.len = sizeof(Packet::Header) + Packet::Message::GetSize(msg); + return conn.Send(client_pack, client_sock); +} NetworkedInput::NetworkedInput(World &world, Player &player, Client &client) : PlayerController(world, player) @@ -332,12 +344,12 @@ void NetworkedInput::PushPlayerUpdate(int dt) { InventorySlot() ); if (player_hist.size() < 16) { - player_hist.emplace_back(state, GetPlayer().GetEntity().TargetVelocity(), dt, packet); + player_hist.emplace_back(state, GetPlayer().GetEntity().TargetVelocity(), dt * 0.001f, packet); } else { auto entry = player_hist.begin(); entry->state = state; entry->tgt_vel = GetPlayer().GetEntity().TargetVelocity(); - entry->delta_t = dt; + entry->delta_t = dt * 0.001f; entry->packet = packet; player_hist.splice(player_hist.end(), player_hist, entry); } @@ -380,11 +392,7 @@ void NetworkedInput::MergePlayerCorrection(uint16_t seq, const EntityState &corr while (entry != end) { replay.Velocity(entry->state.velocity); replay.TargetVelocity(entry->tgt_vel); - replay.Update(entry->delta_t); - if (GetWorld().Intersection(replay, col)) { - GetWorld().Resolve(replay, col); - col.clear(); - } + GetWorld().Update(replay, entry->delta_t); entry->state.chunk_pos = replay.GetState().chunk_pos; entry->state.block_pos = replay.GetState().block_pos; ++entry;