Fixes for networking change in 762f460e23
This commit is contained in:
@@ -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)
|
||||
{
|
||||
|
||||
@@ -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;
|
||||
|
||||
Reference in New Issue
Block a user