diff options
author | Kae <80987908+Novaenia@users.noreply.github.com> | 2023-07-31 14:59:38 +1000 |
---|---|---|
committer | Kae <80987908+Novaenia@users.noreply.github.com> | 2023-07-31 14:59:38 +1000 |
commit | f4ff9dcc492268f46a0811e752e1ce17a588f640 (patch) | |
tree | 156b9226b557db91a72303bac4c5e1ed3c2161e2 /source/game/StarWorldClient.cpp | |
parent | 80a02c7bde3686cac5c22ec29195442f9d1ae6ca (diff) |
better debug logMapping for predicted tiles
Diffstat (limited to 'source/game/StarWorldClient.cpp')
-rw-r--r-- | source/game/StarWorldClient.cpp | 17 |
1 files changed, 10 insertions, 7 deletions
diff --git a/source/game/StarWorldClient.cpp b/source/game/StarWorldClient.cpp index 280c336..f1f4300 100644 --- a/source/game/StarWorldClient.cpp +++ b/source/game/StarWorldClient.cpp @@ -1006,8 +1006,16 @@ void WorldClient::update(float dt) { m_lightingCalculator.setMonochrome(Root::singleton().configuration()->get("monochromeLighting").toBool()); - auto expiry = Time::monotonicMilliseconds() + min<int64_t>(m_latency + 100, 2000); - eraseWhere(m_predictedTiles, [expiry](auto& pair){ return pair.second.time > expiry; }); + float expireTime = min((float)m_latency + 100, 2000.f); + auto now = Time::monotonicMilliseconds(); + eraseWhere(m_predictedTiles, [now, expireTime](auto& pair) { + float expiry = (float)(now - pair.second.time) / expireTime; + auto center = Vec2F(pair.first) + Vec2F::filled(0.5f); + auto size = Vec2F::filled(0.875f - expiry * 0.875f); + auto poly = PolyF(RectF::withCenter(center, size)); + SpatialLogger::logPoly("world", poly, Color::Cyan.mix(Color::Red, expiry).toRgba()); + return expiry >= 1.0f; + }); // Secret broadcasts are transmitted through DamageNotifications for vanilla server compatibility. // Because DamageNotification packets are spoofable, we have to sign the data so other clients can validate that it is legitimate. @@ -1156,11 +1164,6 @@ void WorldClient::update(float dt) { if (m_collisionDebug) renderCollisionDebug(); - for (auto const& prediction : m_predictedTiles) { - auto poly = PolyF(RectF::withCenter(Vec2F(prediction.first) + Vec2F::filled(0.5f), Vec2F::filled(0.875f))); - SpatialLogger::logPoly("world", poly, Color::Cyan.toRgba()); - } - LogMap::set("client_entities", m_entityMap->size()); LogMap::set("client_sectors", toString(loadedSectors.size())); LogMap::set("client_lua_mem", m_luaRoot->luaMemoryUsage()); |