aboutsummaryrefslogtreecommitdiff
path: root/src/client/client.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/client/client.cpp')
-rw-r--r--src/client/client.cpp11
1 files changed, 9 insertions, 2 deletions
diff --git a/src/client/client.cpp b/src/client/client.cpp
index 2d9d226e4..5e31387ab 100644
--- a/src/client/client.cpp
+++ b/src/client/client.cpp
@@ -533,6 +533,7 @@ void Client::step(float dtime)
{
int num_processed_meshes = 0;
std::vector<v3s16> blocks_to_ack;
+ bool force_update_shadows = false;
while (!m_mesh_update_thread.m_queue_out.empty())
{
num_processed_meshes++;
@@ -559,9 +560,11 @@ void Client::step(float dtime)
if (is_empty)
delete r.mesh;
- else
+ else {
// Replace with the new mesh
block->mesh = r.mesh;
+ force_update_shadows = true;
+ }
}
} else {
delete r.mesh;
@@ -586,6 +589,10 @@ void Client::step(float dtime)
if (num_processed_meshes > 0)
g_profiler->graphAdd("num_processed_meshes", num_processed_meshes);
+
+ auto shadow_renderer = RenderingEngine::get_shadow_renderer();
+ if (shadow_renderer && force_update_shadows)
+ shadow_renderer->setForceUpdateShadowMap();
}
/*
@@ -799,7 +806,7 @@ void Client::deletingPeer(con::Peer *peer, bool timeout)
m_access_denied = true;
if (timeout)
m_access_denied_reason = gettext("Connection timed out.");
- else
+ else if (m_access_denied_reason.empty())
m_access_denied_reason = gettext("Connection aborted (protocol error?).");
}