mirror of
https://github.com/dolphin-emu/dolphin.git
synced 2025-07-24 14:49:42 -06:00
Change netplay initial gctime to be determined by the hosts initial time
This commit is contained in:
@ -24,6 +24,7 @@ set(SRCS BreakPoints.cpp
|
||||
SysConf.cpp
|
||||
Thread.cpp
|
||||
Timer.cpp
|
||||
TraversalClient.cpp
|
||||
Version.cpp
|
||||
x64ABI.cpp
|
||||
x64Analyzer.cpp
|
||||
@ -33,7 +34,7 @@ set(SRCS BreakPoints.cpp
|
||||
Logging/ConsoleListener.cpp
|
||||
Logging/LogManager.cpp)
|
||||
|
||||
|
||||
set(LIBS enet)
|
||||
if(_M_ARM)
|
||||
if (_M_ARM_32) #ARMv7
|
||||
set(SRCS ${SRCS}
|
||||
|
@ -1,8 +1,7 @@
|
||||
// This file is public domain, in case it's useful to anyone. -comex
|
||||
|
||||
#include "Common/TraversalClient.h"
|
||||
#include "enet/enet.h"
|
||||
#include "Timer.h"
|
||||
#include "Common/TraversalClient.h"
|
||||
|
||||
static void GetRandomishBytes(u8* buf, size_t size)
|
||||
{
|
||||
@ -15,11 +14,11 @@ static void GetRandomishBytes(u8* buf, size_t size)
|
||||
|
||||
TraversalClient::TraversalClient(ENetHost* netHost, const std::string& server)
|
||||
: m_NetHost(netHost)
|
||||
, m_Server(server)
|
||||
, m_Client(nullptr)
|
||||
, m_FailureReason(0)
|
||||
, m_ConnectRequestId(0)
|
||||
, m_PendingConnect(false)
|
||||
, m_Server(server)
|
||||
, m_PingTime(0)
|
||||
{
|
||||
netHost->intercept = TraversalClient::InterceptCallback;
|
||||
@ -113,6 +112,8 @@ void TraversalClient::Update()
|
||||
|
||||
enet_packet_destroy(netEvent.packet);
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
}
|
||||
HandleResends();
|
||||
@ -343,9 +344,7 @@ bool EnsureTraversalClient(const std::string& server, u16 port)
|
||||
return false;
|
||||
}
|
||||
g_MainNetHost.reset(host);
|
||||
|
||||
g_TraversalClient.reset(new TraversalClient(g_MainNetHost.get(), server));
|
||||
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
@ -7,7 +7,6 @@
|
||||
#include "Common/Common.h"
|
||||
#include "Common/Thread.h"
|
||||
#include "Common/TraversalProto.h"
|
||||
|
||||
#include "enet/enet.h"
|
||||
|
||||
class TraversalClientClient
|
||||
@ -28,7 +27,6 @@ public:
|
||||
Connected,
|
||||
Failure
|
||||
};
|
||||
|
||||
enum FailureReason
|
||||
{
|
||||
BadHost = 0x300,
|
||||
@ -38,14 +36,12 @@ public:
|
||||
ResendTimeout,
|
||||
ConnectFailedError = 0x400,
|
||||
};
|
||||
|
||||
TraversalClient(ENetHost* netHost, const std::string& server);
|
||||
~TraversalClient();
|
||||
void Reset();
|
||||
void ConnectToClient(const std::string& host);
|
||||
void ReconnectToServer();
|
||||
void Update();
|
||||
|
||||
// called from NetHost
|
||||
bool TestPacket(u8* data, size_t size, ENetAddress* from);
|
||||
void HandleResends();
|
||||
@ -63,14 +59,12 @@ private:
|
||||
int tries;
|
||||
enet_uint32 sendTime;
|
||||
};
|
||||
|
||||
void HandleServerPacket(TraversalPacket* packet);
|
||||
void ResendPacket(OutgoingTraversalPacketInfo* info);
|
||||
TraversalRequestId SendTraversalPacket(const TraversalPacket& packet);
|
||||
void OnFailure(int reason);
|
||||
void HandlePing();
|
||||
static int ENET_CALLBACK InterceptCallback(ENetHost* host, ENetEvent* event);
|
||||
|
||||
TraversalRequestId m_ConnectRequestId;
|
||||
bool m_PendingConnect;
|
||||
std::list<OutgoingTraversalPacketInfo> m_OutgoingTraversalPackets;
|
||||
@ -78,11 +72,9 @@ private:
|
||||
std::string m_Server;
|
||||
enet_uint32 m_PingTime;
|
||||
};
|
||||
|
||||
extern std::unique_ptr<TraversalClient> g_TraversalClient;
|
||||
// the NetHost connected to the TraversalClient.
|
||||
extern std::unique_ptr<ENetHost> g_MainNetHost;
|
||||
|
||||
// Create g_TraversalClient and g_MainNetHost if necessary.
|
||||
bool EnsureTraversalClient(const std::string& server, u16 port);
|
||||
void ReleaseTraversalClient();
|
||||
|
Reference in New Issue
Block a user