From 8c0d89bc62ace40ffe283768bb58f27f591153d0 Mon Sep 17 00:00:00 2001 From: Wojtek Figat Date: Wed, 18 Sep 2024 12:54:10 +0200 Subject: [PATCH] Add `NetworkReplicator::MapObjectId` for networked object identifies mapping --- Source/Engine/Networking/NetworkReplicator.cpp | 5 +++++ Source/Engine/Networking/NetworkReplicator.h | 6 ++++++ 2 files changed, 11 insertions(+) diff --git a/Source/Engine/Networking/NetworkReplicator.cpp b/Source/Engine/Networking/NetworkReplicator.cpp index 2bb0d22b6..74a4f14e5 100644 --- a/Source/Engine/Networking/NetworkReplicator.cpp +++ b/Source/Engine/Networking/NetworkReplicator.cpp @@ -1302,6 +1302,11 @@ bool NetworkReplicator::HasObject(const ScriptingObject* obj) return false; } +void NetworkReplicator::MapObjectId(Guid& objectId) +{ + IdsRemappingTable.TryGet(objectId, objectId); +} + ScriptingObject* NetworkReplicator::ResolveForeignObject(Guid objectId) { if (const auto& object = ResolveObject(objectId)) diff --git a/Source/Engine/Networking/NetworkReplicator.h b/Source/Engine/Networking/NetworkReplicator.h index 202d2fc92..0b9da2c28 100644 --- a/Source/Engine/Networking/NetworkReplicator.h +++ b/Source/Engine/Networking/NetworkReplicator.h @@ -116,6 +116,12 @@ public: /// The network object. /// True if object exists in networking, otherwise false. API_FUNCTION() static bool HasObject(const ScriptingObject* obj); + + /// + /// Maps object ID into server or client ID (depending on the source ID). Leaves source value unchanged if that specific ID is unused. + /// + /// The network object identifier to map. Contains result ID once the method completes. + API_FUNCTION() static void MapObjectId(API_PARAM(Ref) Guid& objectId); /// /// Resolves foreign Guid into a local ScriptingObject