diff --git a/src/Server/CommandList.hpp b/src/Server/CommandList.hpp index c348223..74b1338 100644 --- a/src/Server/CommandList.hpp +++ b/src/Server/CommandList.hpp @@ -57,4 +57,4 @@ enum ClientCommands : MessageCommandType { #define VERSION_STRING "0.2.0" // Arbitrary value. Higher scale up values lead to less scale up events (which can cause stuttering), but leads to larger numbers overall, which can cause a tiny bit of lag and increased memory usage -#define CANVAS_SCALE_UP_STEP WorldScalar("100000000000000000000000000000000000000000000000000") +#define CANVAS_SCALE_UP_STEP WorldScalar("2") diff --git a/src/World.cpp b/src/World.cpp index 047e95e..6916ce1 100644 --- a/src/World.cpp +++ b/src/World.cpp @@ -122,9 +122,11 @@ void World::init_client_callbacks() { con.client_add_recv_callback(CLIENT_CANVAS_SCALE, [&](cereal::PortableBinaryInputArchive& message) { uint64_t newCanvasScale; message(newCanvasScale); - con.client_send_items_to_server(RELIABLE_COMMAND_CHANNEL, SERVER_CANVAS_SCALE, newCanvasScale); - scale_up(FixedPoint::pow_int(CANVAS_SCALE_UP_STEP, newCanvasScale - canvasScale)); - canvasScale = newCanvasScale; + if(newCanvasScale > canvasScale) { + con.client_send_items_to_server(RELIABLE_COMMAND_CHANNEL, SERVER_CANVAS_SCALE, newCanvasScale); + scale_up(FixedPoint::pow_int(CANVAS_SCALE_UP_STEP, newCanvasScale - canvasScale)); + canvasScale = newCanvasScale; + } }); con.client_add_recv_callback(CLIENT_KEEP_ALIVE, [&](cereal::PortableBinaryInputArchive& message) { });