diff --git a/src/DrawCamera.cpp b/src/DrawCamera.cpp index 8747c3d..c5e8e24 100755 --- a/src/DrawCamera.cpp +++ b/src/DrawCamera.cpp @@ -9,10 +9,7 @@ #include DrawCamera::DrawCamera(): - c({0, 0}, WorldScalar(10), 0.0) - //c({-843000, -72500}, WorldScalar(1000), 0.0) - //c({0, 0}, WorldScalar(1000), 0.0) - //c({"1000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", "1000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000"}, WorldScalar("1000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000"), 0.0) + c({0, 0}, WorldScalar(1000000), 0.0) {} void DrawCamera::set_based_on_properties(World& w, const WorldVec& newPos, const WorldScalar& newZoom, double newRotate) { diff --git a/src/Server/CommandList.hpp b/src/Server/CommandList.hpp index 74b1338..c348223 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("2") +#define CANVAS_SCALE_UP_STEP WorldScalar("100000000000000000000000000000000000000000000000000") diff --git a/src/Server/MainServer.cpp b/src/Server/MainServer.cpp index 7a78b5a..3534d7f 100644 --- a/src/Server/MainServer.cpp +++ b/src/Server/MainServer.cpp @@ -84,7 +84,7 @@ MainServer::MainServer(World& initWorld, const std::string& serverLocalID): auto& c = clients[client->customID]; if(c.canvasScale < data.canvasScale) - newComp->scale_up(FixedPoint::pow_int(CANVAS_SCALE_UP_STEP, c.canvasScale - data.canvasScale)); + newComp->scale_up(FixedPoint::pow_int(CANVAS_SCALE_UP_STEP, data.canvasScale - c.canvasScale)); newComp->server_send_place(*this, placement); }); @@ -132,7 +132,7 @@ MainServer::MainServer(World& initWorld, const std::string& serverLocalID): auto& c = clients[client->customID]; if(c.canvasScale < data.canvasScale) { for(auto& o : objOrderedVector) - o->obj->scale_up(FixedPoint::pow_int(CANVAS_SCALE_UP_STEP, c.canvasScale - data.canvasScale)); + o->obj->scale_up(FixedPoint::pow_int(CANVAS_SCALE_UP_STEP, data.canvasScale - c.canvasScale)); } DrawComponent::server_send_place_many(*this, objOrderedVector); @@ -167,7 +167,7 @@ MainServer::MainServer(World& initWorld, const std::string& serverLocalID): auto& c = clients[client->customID]; if(c.canvasScale < data.canvasScale) { for(auto& [id, coord] : transformsToSend) - coord.scale_about(WorldVec{0, 0}, FixedPoint::pow_int(CANVAS_SCALE_UP_STEP, c.canvasScale - data.canvasScale), true); + coord.scale_about(WorldVec{0, 0}, FixedPoint::pow_int(CANVAS_SCALE_UP_STEP, data.canvasScale - c.canvasScale), true); } DrawComponent::server_send_transform_many(*this, transformsToSend); }); @@ -222,7 +222,7 @@ MainServer::MainServer(World& initWorld, const std::string& serverLocalID): auto& c = clients[client->customID]; if(c.canvasScale < data.canvasScale) - b.scale_up(FixedPoint::pow_int(CANVAS_SCALE_UP_STEP, c.canvasScale - data.canvasScale)); + b.scale_up(FixedPoint::pow_int(CANVAS_SCALE_UP_STEP, data.canvasScale - c.canvasScale)); netServer->send_items_to_all_clients(RELIABLE_COMMAND_CHANNEL, CLIENT_NEW_BOOKMARK, name, b); }); @@ -240,7 +240,7 @@ MainServer::MainServer(World& initWorld, const std::string& serverLocalID): auto& c = clients[client->customID]; if(c.canvasScale < data.canvasScale) - g.scale_up(FixedPoint::pow_int(CANVAS_SCALE_UP_STEP, c.canvasScale - data.canvasScale)); + g.scale_up(FixedPoint::pow_int(CANVAS_SCALE_UP_STEP, data.canvasScale - c.canvasScale)); netServer->send_items_to_all_clients(RELIABLE_COMMAND_CHANNEL, CLIENT_SET_GRID, gID, g); }); diff --git a/src/World.cpp b/src/World.cpp index 34e5bcb..baa1d70 100644 --- a/src/World.cpp +++ b/src/World.cpp @@ -81,6 +81,10 @@ void World::init_client_callbacks() { message(canvasScale); drawProg.initialize_draw_data(message); message(bMan, gridMan); + if(!clients.empty()) { + auto& [randomClientServerID, randomClient] = *clients.begin(); + drawData.cam.smooth_move_to(*main.world, randomClient.camCoords, randomClient.windowSize, true); + } } nextClientID = get_max_id(ownID); clientStillConnecting = false;