From 94758aaee415770dc56615590212602a34c5f81f Mon Sep 17 00:00:00 2001 From: Yousef Khadadeh Date: Mon, 15 Dec 2025 18:14:12 +0300 Subject: [PATCH] Erase multiple objects from net list now works from client to server --- include/Helpers/NetworkingObjects/NetObjManager.hpp | 4 ++++ include/Helpers/NetworkingObjects/NetObjOrderedList.hpp | 2 +- 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/include/Helpers/NetworkingObjects/NetObjManager.hpp b/include/Helpers/NetworkingObjects/NetObjManager.hpp index 34db568..86ba289 100644 --- a/include/Helpers/NetworkingObjects/NetObjManager.hpp +++ b/include/Helpers/NetworkingObjects/NetObjManager.hpp @@ -76,6 +76,7 @@ namespace NetworkingObjects { } template static void send_client_update(const NetObjTemporaryPtr& ptr, const std::string& channel, std::function&, cereal::PortableBinaryOutputArchive&)> sendUpdateFunc) { + assert(!isServer); if(ptr.get_obj_man()->client && !ptr.get_obj_man()->client->is_disconnected()) { auto ss(std::make_shared()); { @@ -88,6 +89,7 @@ namespace NetworkingObjects { } template static void send_server_update_to_client(const NetObjTemporaryPtr& ptr, const std::shared_ptr& clientToSendTo, const std::string& channel, std::function&, cereal::PortableBinaryOutputArchive&)> sendUpdateFunc) { + assert(isServer); if(ptr.get_obj_man()->server && !ptr.get_obj_man()->server->is_disconnected()) { auto ss(std::make_shared()); { @@ -100,6 +102,7 @@ namespace NetworkingObjects { } template static void send_server_update_to_all_clients_except(const NetObjTemporaryPtr& ptr, const std::shared_ptr& clientToNotSendTo, const std::string& channel, std::function&, cereal::PortableBinaryOutputArchive&)> sendUpdateFunc) { + assert(isServer); if(ptr.get_obj_man()->server && !ptr.get_obj_man()->server->is_disconnected()) { auto ss(std::make_shared()); { @@ -112,6 +115,7 @@ namespace NetworkingObjects { } template static void send_server_update_to_all_clients(const NetObjTemporaryPtr& ptr, const std::string& channel, std::function&, cereal::PortableBinaryOutputArchive&)> sendUpdateFunc) { + assert(isServer); if(ptr.get_obj_man()->server && !ptr.get_obj_man()->server->is_disconnected()) { auto ss(std::make_shared()); { diff --git a/include/Helpers/NetworkingObjects/NetObjOrderedList.hpp b/include/Helpers/NetworkingObjects/NetObjOrderedList.hpp index a2d8d40..4e9903b 100644 --- a/include/Helpers/NetworkingObjects/NetObjOrderedList.hpp +++ b/include/Helpers/NetworkingObjects/NetObjOrderedList.hpp @@ -433,7 +433,7 @@ namespace NetworkingObjects { this->call_erase_callback(clientData[indexToErase]); clientData.erase(clientData.begin() + indexToErase); } - l.send_server_update_to_all_clients(RELIABLE_COMMAND_CHANNEL, [&ids](const NetObjTemporaryPtr>&, cereal::PortableBinaryOutputArchive& a) { + l.send_client_update(RELIABLE_COMMAND_CHANNEL, [&ids](const NetObjTemporaryPtr>&, cereal::PortableBinaryOutputArchive& a) { a(ObjPtrOrderedListCommand_CtoS::ERASE_MANY, ids); }); set_positions_for_object_info_vector(clientData, indicesToErase.front());