Fixes to world scale up over network
This commit is contained in:
parent
015e9bc5df
commit
48823ebad6
4 changed files with 32 additions and 16 deletions
|
|
@ -98,7 +98,7 @@ World::World(MainProgram& initMain, const CustomEvents::OpenInfiniPaintFileEvent
|
|||
|
||||
void World::init_client_data_list() {
|
||||
clients = netObjMan.make_obj<NetworkingObjects::NetObjUnorderedSet<ClientData>>();
|
||||
ownClientData = clients->emplace_direct(clients, ClientData::InitStruct{
|
||||
serverClientData = ownClientData = clients->emplace_direct(clients, ClientData::InitStruct{
|
||||
.cursorColor = get_random_cursor_color(),
|
||||
.displayName = main.conf.displayName
|
||||
});
|
||||
|
|
@ -156,16 +156,17 @@ void World::init_client(const std::string& serverFullID) {
|
|||
drawProg.init_client_callbacks();
|
||||
netClient->add_recv_callback(CLIENT_INITIAL_DATA, [&](cereal::PortableBinaryInputArchive& message) {
|
||||
std::string fileDisplayName;
|
||||
NetworkingObjects::NetObjID clientDataObjID;
|
||||
message(fileDisplayName, clientDataObjID);
|
||||
NetworkingObjects::NetObjID clientDataObjID, serverDataObjID;
|
||||
message(fileDisplayName, clientDataObjID, serverDataObjID);
|
||||
set_name(fileDisplayName);
|
||||
clients = netObjMan.read_create_message<NetworkingObjects::NetObjUnorderedSet<ClientData>>(message, nullptr);
|
||||
ownClientData = netObjMan.get_obj_temporary_ref_from_id<ClientData>(clientDataObjID);
|
||||
serverClientData = netObjMan.get_obj_temporary_ref_from_id<ClientData>(serverDataObjID);
|
||||
bMan.read_create_message(message);
|
||||
gridMan.read_create_message(message);
|
||||
drawProg.read_components_client(message);
|
||||
canvasTheme.read_create_message(message);
|
||||
clients = netObjMan.read_create_message<NetworkingObjects::NetObjUnorderedSet<ClientData>>(message, nullptr);
|
||||
init_client_data_list_callbacks();
|
||||
ownClientData = netObjMan.get_obj_temporary_ref_from_id<ClientData>(clientDataObjID);
|
||||
drawData.cam.smooth_move_to(*main.world, ownClientData->get_cam_coords(), ownClientData->get_window_size(), true);
|
||||
|
||||
#ifdef ENABLE_ORDERED_LIST_TEST
|
||||
|
|
@ -435,12 +436,12 @@ void World::start_hosting(const std::string& initNetSource, const std::string& s
|
|||
auto ss(std::make_shared<std::stringstream>());
|
||||
{
|
||||
cereal::PortableBinaryOutputArchive a(*ss);
|
||||
a(CLIENT_INITIAL_DATA, name, clientDataObjPtr.get_net_id());
|
||||
a(CLIENT_INITIAL_DATA, name, clientDataObjPtr.get_net_id(), serverClientData.get_net_id());
|
||||
clients.write_create_message(a);
|
||||
bMan.bookmarkListRoot.write_create_message(a);
|
||||
gridMan.grids.write_create_message(a);
|
||||
drawProg.write_components_server(a);
|
||||
canvasTheme.write_create_message(a);
|
||||
clients.write_create_message(a);
|
||||
#ifdef ENABLE_ORDERED_LIST_TEST
|
||||
listDebugTest.write_create_message(a);
|
||||
#endif
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue