Changeset View
Changeset View
Standalone View
Standalone View
ps/trunk/source/network/NetClient.cpp
Show First 20 Lines • Show All 65 Lines • ▼ Show 20 Lines | |||||
private: | private: | ||||
CNetClient& m_Client; | CNetClient& m_Client; | ||||
}; | }; | ||||
CNetClient::CNetClient(CGame* game, bool isLocalClient) : | CNetClient::CNetClient(CGame* game, bool isLocalClient) : | ||||
m_Session(NULL), | m_Session(NULL), | ||||
m_UserName(L"anonymous"), | m_UserName(L"anonymous"), | ||||
m_HostID((u32)-1), m_ClientTurnManager(NULL), m_Game(game), | m_HostID((u32)-1), m_ClientTurnManager(NULL), m_Game(game), | ||||
m_GameAttributes(game->GetSimulation2()->GetScriptInterface().GetJSRuntime()), | m_GameAttributes(game->GetSimulation2()->GetScriptInterface().GetGeneralJSContext()), | ||||
m_IsLocalClient(isLocalClient), | m_IsLocalClient(isLocalClient), | ||||
m_LastConnectionCheck(0), | m_LastConnectionCheck(0), | ||||
m_Rejoin(false) | m_Rejoin(false) | ||||
{ | { | ||||
m_Game->SetTurnManager(NULL); // delete the old local turn manager so we don't accidentally use it | m_Game->SetTurnManager(NULL); // delete the old local turn manager so we don't accidentally use it | ||||
void* context = this; | void* context = this; | ||||
JS_AddExtraGCRootsTracer(GetScriptInterface().GetJSRuntime(), CNetClient::Trace, this); | JS_AddExtraGCRootsTracer(GetScriptInterface().GetGeneralJSContext(), CNetClient::Trace, this); | ||||
// Set up transitions for session | // Set up transitions for session | ||||
AddTransition(NCS_UNCONNECTED, (uint)NMT_CONNECT_COMPLETE, NCS_CONNECT, (void*)&OnConnect, context); | AddTransition(NCS_UNCONNECTED, (uint)NMT_CONNECT_COMPLETE, NCS_CONNECT, (void*)&OnConnect, context); | ||||
AddTransition(NCS_CONNECT, (uint)NMT_SERVER_HANDSHAKE, NCS_HANDSHAKE, (void*)&OnHandshake, context); | AddTransition(NCS_CONNECT, (uint)NMT_SERVER_HANDSHAKE, NCS_HANDSHAKE, (void*)&OnHandshake, context); | ||||
AddTransition(NCS_HANDSHAKE, (uint)NMT_SERVER_HANDSHAKE_RESPONSE, NCS_AUTHENTICATE, (void*)&OnHandshakeResponse, context); | AddTransition(NCS_HANDSHAKE, (uint)NMT_SERVER_HANDSHAKE_RESPONSE, NCS_AUTHENTICATE, (void*)&OnHandshakeResponse, context); | ||||
▲ Show 20 Lines • Show All 47 Lines • ▼ Show 20 Lines | CNetClient::CNetClient(CGame* game, bool isLocalClient) : | ||||
// Set first state | // Set first state | ||||
SetFirstState(NCS_UNCONNECTED); | SetFirstState(NCS_UNCONNECTED); | ||||
} | } | ||||
CNetClient::~CNetClient() | CNetClient::~CNetClient() | ||||
{ | { | ||||
DestroyConnection(); | DestroyConnection(); | ||||
JS_RemoveExtraGCRootsTracer(GetScriptInterface().GetJSRuntime(), CNetClient::Trace, this); | JS_RemoveExtraGCRootsTracer(GetScriptInterface().GetGeneralJSContext(), CNetClient::Trace, this); | ||||
} | } | ||||
void CNetClient::TraceMember(JSTracer *trc) | void CNetClient::TraceMember(JSTracer *trc) | ||||
{ | { | ||||
for (JS::Heap<JS::Value>& guiMessage : m_GuiMessageQueue) | for (JS::Heap<JS::Value>& guiMessage : m_GuiMessageQueue) | ||||
JS::TraceEdge(trc, &guiMessage, "m_GuiMessageQueue"); | JS::TraceEdge(trc, &guiMessage, "m_GuiMessageQueue"); | ||||
} | } | ||||
▲ Show 20 Lines • Show All 706 Lines • Show Last 20 Lines |
Wildfire Games · Phabricator