Change netplay initial gctime to be determined by the hosts initial time

This commit is contained in:
Ziek
2015-02-02 02:08:58 -08:00
parent 4cdc307b87
commit 074d688884
14 changed files with 62 additions and 68 deletions

View File

@ -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}

View File

@ -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;
}

View File

@ -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();