diff options
author | orwell96 <mono96.mml@gmail.com> | 2016-02-01 19:29:53 +0100 |
---|---|---|
committer | est31 <MTest31@outlook.com> | 2016-02-22 19:59:56 +0100 |
commit | e17fbb31d6db3e6d2d9b68f5793ad8b2146f7bcc (patch) | |
tree | eaec1dbb3e99a1ae620536e4a7b6fd33bba5470d | |
parent | a26970cdd4aec995416566cd75dd271c6b485f16 (diff) | |
download | minetest-e17fbb31d6db3e6d2d9b68f5793ad8b2146f7bcc.tar.gz minetest-e17fbb31d6db3e6d2d9b68f5793ad8b2146f7bcc.tar.bz2 minetest-e17fbb31d6db3e6d2d9b68f5793ad8b2146f7bcc.zip |
Reset block send timer when invoking setBlock(s)NotSent()
As stated in this forum thread [1], I noticed that there is a
2 second interval in which inventory changes are shown on the
client. @yyt16384 found the source of these 2 seconds:
m_nothing_to_send_pause_timer is set to 2.0 every time there
are no changes to make, but this timer is not reset when
SetBlockNotSent or setBlocksNotSent are invoked. So in worst
case, the changed block will be sent over 2 seconds too late.
With this change, changed inventories are updated almost
immediately, but it causes additional connection load.
-rw-r--r-- | src/clientiface.cpp | 2 |
1 files changed, 2 insertions, 0 deletions
diff --git a/src/clientiface.cpp b/src/clientiface.cpp index e7f127b84..8a1a62694 100644 --- a/src/clientiface.cpp +++ b/src/clientiface.cpp @@ -391,6 +391,7 @@ void RemoteClient::SentBlock(v3s16 p) void RemoteClient::SetBlockNotSent(v3s16 p) { m_nearest_unsent_d = 0; + m_nothing_to_send_pause_timer = 0; if(m_blocks_sending.find(p) != m_blocks_sending.end()) m_blocks_sending.erase(p); @@ -401,6 +402,7 @@ void RemoteClient::SetBlockNotSent(v3s16 p) void RemoteClient::SetBlocksNotSent(std::map<v3s16, MapBlock*> &blocks) { m_nearest_unsent_d = 0; + m_nothing_to_send_pause_timer = 0; for(std::map<v3s16, MapBlock*>::iterator i = blocks.begin(); |