Fixes for networking change in 762f460e23

This commit is contained in:
Wojciech Figat
2022-12-29 13:56:25 +01:00
parent 45286468c9
commit 2408aa48c1
2 changed files with 14 additions and 1 deletions

View File

@@ -317,7 +317,6 @@ void NetworkManager::Stop()
client->State = NetworkConnectionState::Disconnecting;
StateChanged();
NetworkInternal::NetworkReplicatorClear();
for (int32 i = Clients.Count() - 1; i >= 0; i--)
{
NetworkClient* client = Clients[i];
@@ -331,6 +330,7 @@ void NetworkManager::Stop()
ClientDisconnected(LocalClient);
LocalClient->State = NetworkConnectionState::Disconnected;
}
NetworkInternal::NetworkReplicatorClear();
StopPeer();
if (LocalClient)
{

View File

@@ -735,7 +735,20 @@ void NetworkReplicator::DespawnObject(ScriptingObject* obj)
ScopeLock lock(ObjectsLock);
const auto it = Objects.Find(obj->GetID());
if (it == Objects.End())
{
// Special case if we're just spawning this object
for (int32 i = 0; i < SpawnQueue.Count(); i++)
{
auto& item = SpawnQueue[i];
if (item.Object == obj)
{
SpawnQueue.RemoveAt(i);
DeleteNetworkObject(obj);
break;
}
}
return;
}
auto& item = it->Item;
if (item.Object != obj || !item.Spawned || item.OwnerClientId != NetworkManager::LocalClientId)
return;