Various minor fixes to networking
This commit is contained in:
@@ -164,6 +164,7 @@ void ENetDriver::Disconnect(const NetworkConnection& connection)
|
||||
|
||||
bool ENetDriver::PopEvent(NetworkEvent* eventPtr)
|
||||
{
|
||||
ASSERT(_host);
|
||||
ENetEvent event;
|
||||
const int result = enet_host_service(_host, &event, 0);
|
||||
if (result < 0)
|
||||
|
||||
@@ -191,6 +191,7 @@ bool StartPeer()
|
||||
if (!NetworkManager::Peer)
|
||||
{
|
||||
LOG(Error, "Failed to create Network Peer at {0}:{1}", networkConfig.Address, networkConfig.Port);
|
||||
NetworkManager::State = NetworkConnectionState::Offline;
|
||||
return true;
|
||||
}
|
||||
NetworkManager::Frame = 0;
|
||||
@@ -243,7 +244,10 @@ bool NetworkManager::StartServer()
|
||||
LOG(Info, "Starting network manager as server");
|
||||
Mode = NetworkManagerMode::Server;
|
||||
if (StartPeer())
|
||||
{
|
||||
Mode = NetworkManagerMode::Offline;
|
||||
return true;
|
||||
}
|
||||
if (!Peer->Listen())
|
||||
{
|
||||
Stop();
|
||||
@@ -265,7 +269,10 @@ bool NetworkManager::StartClient()
|
||||
LOG(Info, "Starting network manager as client");
|
||||
Mode = NetworkManagerMode::Client;
|
||||
if (StartPeer())
|
||||
{
|
||||
Mode = NetworkManagerMode::Offline;
|
||||
return true;
|
||||
}
|
||||
if (!Peer->Connect())
|
||||
{
|
||||
Stop();
|
||||
@@ -286,9 +293,15 @@ bool NetworkManager::StartHost()
|
||||
LOG(Info, "Starting network manager as host");
|
||||
Mode = NetworkManagerMode::Host;
|
||||
if (StartPeer())
|
||||
{
|
||||
Mode = NetworkManagerMode::Offline;
|
||||
return true;
|
||||
}
|
||||
if (!Peer->Listen())
|
||||
{
|
||||
Mode = NetworkManagerMode::Offline;
|
||||
return true;
|
||||
}
|
||||
LocalClientId = ServerClientId;
|
||||
NextClientId = ServerClientId + 1;
|
||||
LocalClient = New<NetworkClient>(LocalClientId, NetworkConnection{ 0 });
|
||||
|
||||
@@ -1474,6 +1474,10 @@ void NetworkInternal::OnNetworkMessageObjectSpawn(NetworkEvent& event, NetworkCl
|
||||
if (!obj->IsRegistered())
|
||||
obj->RegisterObject();
|
||||
const NetworkReplicatedObject* parent = ResolveObject(msgDataItem.ParentId);
|
||||
if (!parent && msgDataItem.ParentId.IsValid())
|
||||
{
|
||||
NETWORK_REPLICATOR_LOG(Error, "[NetworkReplicator] Failed to find object {} as parent to spawned object", msgDataItem.ParentId.ToString());
|
||||
}
|
||||
|
||||
// Add object to the list
|
||||
NetworkReplicatedObject item;
|
||||
|
||||
Reference in New Issue
Block a user