From 207e173c1ab08c8767c08e681daf9eddcec7a386 Mon Sep 17 00:00:00 2001 From: Yousef Khadadeh Date: Tue, 29 Jul 2025 21:38:33 +0300 Subject: [PATCH] Fixes to get code to compile on emscripten --- include/Helpers/Networking/ByteStream.cpp | 8 ++++---- include/Helpers/Networking/ByteStream.hpp | 2 +- src/CollabList.hpp | 12 ++++++------ src/Server/MainServer.cpp | 4 ++-- 4 files changed, 13 insertions(+), 13 deletions(-) diff --git a/include/Helpers/Networking/ByteStream.cpp b/include/Helpers/Networking/ByteStream.cpp index ee8a464..3dfabd0 100644 --- a/include/Helpers/Networking/ByteStream.cpp +++ b/include/Helpers/Networking/ByteStream.cpp @@ -16,7 +16,7 @@ ByteMemStream::ByteMemStream(char* p, size_t l): rdbuf(&buffer); } -std::vector> fragment_message(std::string_view uncompressedView, uint64_t stride) { +std::vector> fragment_message(std::string_view uncompressedView, size_t stride) { if(uncompressedView.length() <= stride) return {}; @@ -30,7 +30,7 @@ std::vector> fragment_message(std::string_vie toRet.emplace_back(std::make_shared()); - size_t messFirstStride = std::min(stride, v.size()); + size_t messFirstStride = std::min(stride, v.size()); { cereal::PortableBinaryOutputArchive m(*toRet.back()); @@ -46,7 +46,7 @@ std::vector> fragment_message(std::string_vie toRet.emplace_back(std::make_shared()); { cereal::PortableBinaryOutputArchive m(*toRet.back()); - m((MessageCommandType)0, cereal::binary_data(v.data() + nextByte, (uint64_t)(v.length() - nextByte))); + m((MessageCommandType)0, cereal::binary_data(v.data() + nextByte, v.length() - nextByte)); } break; } @@ -78,7 +78,7 @@ void decode_fragmented_message(cereal::PortableBinaryInputArchive& inArchive, Pa inArchive(messageSize); spfm.partialFragmentMessage.resize(messageSize); - size_t messStride = std::min(fragmentMessageStride, spfm.partialFragmentMessage.size()); + size_t messStride = std::min(fragmentMessageStride, spfm.partialFragmentMessage.size()); inArchive(cereal::binary_data(spfm.partialFragmentMessage.data() + spfm.partialFragmentMessageLoc, messStride)); spfm.partialFragmentMessageLoc += messStride; diff --git a/include/Helpers/Networking/ByteStream.hpp b/include/Helpers/Networking/ByteStream.hpp index 814d772..ca62e30 100644 --- a/include/Helpers/Networking/ByteStream.hpp +++ b/include/Helpers/Networking/ByteStream.hpp @@ -22,5 +22,5 @@ struct PartialFragmentMessage { uint64_t partialFragmentMessageLoc = 0; }; -std::vector> fragment_message(std::string_view uncompressedView, uint64_t stride); +std::vector> fragment_message(std::string_view uncompressedView, size_t stride); void decode_fragmented_message(cereal::PortableBinaryInputArchive& inArchive, PartialFragmentMessage& spfm, size_t fragmentMessageStride, std::function runAfterDecoded); diff --git a/src/CollabList.hpp b/src/CollabList.hpp index 7f81c54..9a6d0cc 100644 --- a/src/CollabList.hpp +++ b/src/CollabList.hpp @@ -181,12 +181,12 @@ template class CollabList { obj->obj->collabListInfo = obj; idToObjectMap.emplace(obj->id, obj); if(obj->pos - objOrderedVector[startPoint]->pos != (i - startPoint)) { - uint64_t insertPosition = std::min(clientSideList.size(), objOrderedVector[startPoint]->pos); + uint64_t insertPosition = std::min(clientSideList.size(), objOrderedVector[startPoint]->pos); clientSideList.insert(clientSideList.begin() + insertPosition, objOrderedVector.begin() + startPoint, objOrderedVector.begin() + i); startPoint = i; } } - clientSideList.insert(clientSideList.begin() + std::min(clientSideList.size(), objOrderedVector[startPoint]->pos), objOrderedVector.begin() + startPoint, objOrderedVector.end()); + clientSideList.insert(clientSideList.begin() + std::min(clientSideList.size(), objOrderedVector[startPoint]->pos), objOrderedVector.begin() + startPoint, objOrderedVector.end()); complete_client_pos_refresh(false); if(updateCallback) @@ -222,15 +222,15 @@ template class CollabList { obj->obj->collabListInfo = obj; if(obj->pos - objOrderedVector[startPoint]->pos != (i - startPoint)) { - uint64_t insertPosition = std::min(clientSideList.size(), objOrderedVector[startPoint]->pos); + uint64_t insertPosition = std::min(clientSideList.size(), objOrderedVector[startPoint]->pos); clientSideList.insert(clientSideList.begin() + insertPosition, objOrderedVector.begin() + startPoint, objOrderedVector.begin() + i); - uint64_t insertPositionServer = std::min(serverSideList.size(), objOrderedVector[startPoint]->pos); + uint64_t insertPositionServer = std::min(serverSideList.size(), objOrderedVector[startPoint]->pos); serverSideList.insert(serverSideList.begin() + insertPositionServer, objOrderedVector.begin() + startPoint, objOrderedVector.begin() + i); startPoint = i; } } - clientSideList.insert(clientSideList.begin() + std::min(clientSideList.size(), objOrderedVector[startPoint]->pos), objOrderedVector.begin() + startPoint, objOrderedVector.end()); - serverSideList.insert(serverSideList.begin() + std::min(serverSideList.size(), objOrderedVector[startPoint]->pos), objOrderedVector.begin() + startPoint, objOrderedVector.end()); + clientSideList.insert(clientSideList.begin() + std::min(clientSideList.size(), objOrderedVector[startPoint]->pos), objOrderedVector.begin() + startPoint, objOrderedVector.end()); + serverSideList.insert(serverSideList.begin() + std::min(serverSideList.size(), objOrderedVector[startPoint]->pos), objOrderedVector.begin() + startPoint, objOrderedVector.end()); if(clientInsertOrderedVectorCallback) clientInsertOrderedVectorCallback(objOrderedVector); diff --git a/src/Server/MainServer.cpp b/src/Server/MainServer.cpp index 040d72c..3c01f60 100644 --- a/src/Server/MainServer.cpp +++ b/src/Server/MainServer.cpp @@ -142,13 +142,13 @@ MainServer::MainServer(World& initWorld, const std::string& serverLocalID): auto& obj = objOrderedVector[i]; data.idToComponentMap.emplace(obj->id, obj->obj); if(obj->pos - objOrderedVector[startPoint]->pos != (i - startPoint)) { - uint64_t insertPosition = std::min(data.components.size(), objOrderedVector[startPoint]->pos); + uint64_t insertPosition = std::min(data.components.size(), objOrderedVector[startPoint]->pos); data.components.insert(data.components.begin() + insertPosition, objOrderedComponentPairs.begin() + startPoint, objOrderedComponentPairs.begin() + i); startPoint = i; } } - data.components.insert(data.components.begin() + std::min(data.components.size(), objOrderedVector[startPoint]->pos), objOrderedComponentPairs.begin() + startPoint, objOrderedComponentPairs.end()); + data.components.insert(data.components.begin() + std::min(data.components.size(), objOrderedVector[startPoint]->pos), objOrderedComponentPairs.begin() + startPoint, objOrderedComponentPairs.end()); startPoint = 0;