summaryrefslogtreecommitdiff
path: root/src/network
diff options
context:
space:
mode:
authorLoïc Blot <nerzhul@users.noreply.github.com>2017-08-29 20:37:54 +0200
committerGitHub <noreply@github.com>2017-08-29 20:37:54 +0200
commit1d4a2a6ea7608a9fbe8de07dde8a48476c9f5e0d (patch)
treec39a77aea0dc5820f0b9f5f5f6b9ed01eec68644 /src/network
parent35a40827273c2c30ac018334c7b448545982b784 (diff)
downloadminetest-1d4a2a6ea7608a9fbe8de07dde8a48476c9f5e0d.tar.gz
minetest-1d4a2a6ea7608a9fbe8de07dde8a48476c9f5e0d.tar.bz2
minetest-1d4a2a6ea7608a9fbe8de07dde8a48476c9f5e0d.zip
Network proto handlers/container fixes (#6334)
* Fix HP transport + some double <-> float problems TOCLIENT_HP transport u16 hp as a u8, use u16 HP, this prevent HP over 255 to overflow across network * Fix more double/float problem in serverpackethandler & remove implicit struct type for TileAnimationParams * Fix connection unittests container
Diffstat (limited to 'src/network')
-rw-r--r--src/network/clientpackethandler.cpp14
-rw-r--r--src/network/serverpackethandler.cpp12
2 files changed, 13 insertions, 13 deletions
diff --git a/src/network/clientpackethandler.cpp b/src/network/clientpackethandler.cpp
index 49dba7a91..bdad785eb 100644
--- a/src/network/clientpackethandler.cpp
+++ b/src/network/clientpackethandler.cpp
@@ -375,11 +375,11 @@ void Client::handleCommand_TimeOfDay(NetworkPacket* pkt)
}
else {
// Old message; try to approximate speed of time by ourselves
- float time_of_day_f = (float)time_of_day / 24000.0;
+ float time_of_day_f = (float)time_of_day / 24000.0f;
float tod_diff_f = 0;
if (time_of_day_f < 0.2 && m_last_time_of_day_f > 0.8)
- tod_diff_f = time_of_day_f - m_last_time_of_day_f + 1.0;
+ tod_diff_f = time_of_day_f - m_last_time_of_day_f + 1.0f;
else
tod_diff_f = time_of_day_f - m_last_time_of_day_f;
@@ -388,7 +388,7 @@ void Client::handleCommand_TimeOfDay(NetworkPacket* pkt)
m_time_of_day_update_timer = 0;
if (m_time_of_day_set) {
- time_speed = (3600.0 * 24.0) * tod_diff_f / time_diff;
+ time_speed = (3600.0f * 24.0f) * tod_diff_f / time_diff;
infostream << "Client: Measured time_of_day speed (old format): "
<< time_speed << " tod_diff_f=" << tod_diff_f
<< " time_diff=" << time_diff << std::endl;
@@ -565,9 +565,9 @@ void Client::handleCommand_HP(NetworkPacket* pkt)
LocalPlayer *player = m_env.getLocalPlayer();
assert(player != NULL);
- u8 oldhp = player->hp;
+ u16 oldhp = player->hp;
- u8 hp;
+ u16 hp;
*pkt >> hp;
player->hp = hp;
@@ -966,7 +966,7 @@ void Client::handleCommand_SpawnParticle(NetworkPacket* pkt)
std::string texture = deSerializeLongString(is);
bool vertical = false;
bool collision_removal = false;
- struct TileAnimationParams animation;
+ TileAnimationParams animation;
animation.type = TAT_NONE;
u8 glow = 0;
try {
@@ -1020,7 +1020,7 @@ void Client::handleCommand_AddParticleSpawner(NetworkPacket* pkt)
bool vertical = false;
bool collision_removal = false;
- struct TileAnimationParams animation;
+ TileAnimationParams animation;
animation.type = TAT_NONE;
u8 glow = 0;
u16 attached_id = 0;
diff --git a/src/network/serverpackethandler.cpp b/src/network/serverpackethandler.cpp
index 5ed38d6d7..62da136ad 100644
--- a/src/network/serverpackethandler.cpp
+++ b/src/network/serverpackethandler.cpp
@@ -780,8 +780,8 @@ void Server::process_PlayerPos(RemotePlayer *player, PlayerSAO *playersao,
*pkt >> f32pitch;
*pkt >> f32yaw;
- f32 pitch = (f32)f32pitch / 100.0;
- f32 yaw = (f32)f32yaw / 100.0;
+ f32 pitch = (f32)f32pitch / 100.0f;
+ f32 yaw = (f32)f32yaw / 100.0f;
u32 keyPressed = 0;
// default behavior (in case an old client doesn't send these)
@@ -792,13 +792,13 @@ void Server::process_PlayerPos(RemotePlayer *player, PlayerSAO *playersao,
*pkt >> keyPressed;
if (pkt->getRemainingBytes() >= 1) {
*pkt >> f32fov;
- fov = (f32)f32fov / 80.0;
+ fov = (f32)f32fov / 80.0f;
}
if (pkt->getRemainingBytes() >= 1)
*pkt >> wanted_range;
- v3f position((f32)ps.X / 100.0, (f32)ps.Y / 100.0, (f32)ps.Z / 100.0);
- v3f speed((f32)ss.X / 100.0, (f32)ss.Y / 100.0, (f32)ss.Z / 100.0);
+ v3f position((f32)ps.X / 100.0f, (f32)ps.Y / 100.0f, (f32)ps.Z / 100.0f);
+ v3f speed((f32)ss.X / 100.0f, (f32)ss.Y / 100.0f, (f32)ss.Z / 100.0f);
pitch = modulo360f(pitch);
yaw = wrapDegrees_0_360(yaw);
@@ -1406,7 +1406,7 @@ void Server::handleCommand_Interact(NetworkPacket* pkt)
if (max_d < 0 && max_d_hand >= 0)
max_d = max_d_hand;
else if (max_d < 0)
- max_d = BS * 4.0;
+ max_d = BS * 4.0f;
// cube diagonal: sqrt(3) = 1.73
if (d > max_d * 1.73) {
actionstream << "Player " << player->getName()