summaryrefslogtreecommitdiff
path: root/src/client.cpp
diff options
context:
space:
mode:
authorRogier-5 <rogier777@gmail.com>2016-12-11 19:49:49 +0100
committerest31 <est31@users.noreply.github.com>2016-12-11 19:49:49 +0100
commit60772071e9b63c24a939078c706b713f46bf3279 (patch)
treebf4fd991f240a81a8f3fbc99e382b757ee4ec5f1 /src/client.cpp
parent2886f0ccb06af04927d4cd661eaf82a253426c05 (diff)
downloadminetest-60772071e9b63c24a939078c706b713f46bf3279.tar.gz
minetest-60772071e9b63c24a939078c706b713f46bf3279.tar.bz2
minetest-60772071e9b63c24a939078c706b713f46bf3279.zip
Fix computation of viewing range (in blocks) sent to server (#4882)
Fixes #4878 Also remove an artificial viewing range reduction that (presumably) was added to compensate for miscomputed viewing ranges, and that doesn't seem to be needed any more (thanks to lhofhansl).
Diffstat (limited to 'src/client.cpp')
-rw-r--r--src/client.cpp5
1 files changed, 3 insertions, 2 deletions
diff --git a/src/client.cpp b/src/client.cpp
index e9d273c69..7e88e5562 100644
--- a/src/client.cpp
+++ b/src/client.cpp
@@ -20,6 +20,7 @@ with this program; if not, write to the Free Software Foundation, Inc.,
#include <iostream>
#include <algorithm>
#include <sstream>
+#include <cmath>
#include <IFileSystem.h>
#include "threading/mutex_auto_lock.h"
#include "util/auth.h"
@@ -939,7 +940,7 @@ void writePlayerPos(LocalPlayer *myplayer, ClientMap *clientMap, NetworkPacket *
u32 keyPressed = myplayer->keyPressed;
// scaled by 80, so that pi can fit into a u8
u8 fov = clientMap->getCameraFov() * 80;
- u8 wanted_range = clientMap->getControl().wanted_range / MAP_BLOCKSIZE;
+ u8 wanted_range = std::ceil(clientMap->getControl().wanted_range / MAP_BLOCKSIZE);
v3s32 position(pf.X, pf.Y, pf.Z);
v3s32 speed(sf.X, sf.Y, sf.Z);
@@ -952,7 +953,7 @@ void writePlayerPos(LocalPlayer *myplayer, ClientMap *clientMap, NetworkPacket *
[12+12+4] s32 yaw*100
[12+12+4+4] u32 keyPressed
[12+12+4+4+4] u8 fov*80
- [12+12+4+4+4+1] u8 wanted_range / MAP_BLOCKSIZE
+ [12+12+4+4+4+1] u8 ceil(wanted_range / MAP_BLOCKSIZE)
*/
*pkt << position << speed << pitch << yaw << keyPressed;
*pkt << fov << wanted_range;