Changeset View
Changeset View
Standalone View
Standalone View
source/network/NetClient.cpp
Show First 20 Lines • Show All 113 Lines • ▼ Show 20 Lines | CNetClient::CNetClient(CGame* game, bool isLocalClient) : | ||||
AddTransition(NCS_JOIN_SYNCING, (uint)NMT_LOADED_GAME, NCS_INGAME, (void*)&OnLoadedGame, context); | AddTransition(NCS_JOIN_SYNCING, (uint)NMT_LOADED_GAME, NCS_INGAME, (void*)&OnLoadedGame, context); | ||||
AddTransition(NCS_LOADING, (uint)NMT_CHAT, NCS_LOADING, (void*)&OnChat, context); | AddTransition(NCS_LOADING, (uint)NMT_CHAT, NCS_LOADING, (void*)&OnChat, context); | ||||
AddTransition(NCS_LOADING, (uint)NMT_GAME_SETUP, NCS_LOADING, (void*)&OnGameSetup, context); | AddTransition(NCS_LOADING, (uint)NMT_GAME_SETUP, NCS_LOADING, (void*)&OnGameSetup, context); | ||||
AddTransition(NCS_LOADING, (uint)NMT_PLAYER_ASSIGNMENT, NCS_LOADING, (void*)&OnPlayerAssignment, context); | AddTransition(NCS_LOADING, (uint)NMT_PLAYER_ASSIGNMENT, NCS_LOADING, (void*)&OnPlayerAssignment, context); | ||||
AddTransition(NCS_LOADING, (uint)NMT_KICKED, NCS_LOADING, (void*)&OnKicked, context); | AddTransition(NCS_LOADING, (uint)NMT_KICKED, NCS_LOADING, (void*)&OnKicked, context); | ||||
AddTransition(NCS_LOADING, (uint)NMT_CLIENT_TIMEOUT, NCS_LOADING, (void*)&OnClientTimeout, context); | AddTransition(NCS_LOADING, (uint)NMT_CLIENT_TIMEOUT, NCS_LOADING, (void*)&OnClientTimeout, context); | ||||
AddTransition(NCS_LOADING, (uint)NMT_CLIENT_PERFORMANCE, NCS_LOADING, (void*)&OnClientPerformance, context); | AddTransition(NCS_LOADING, (uint)NMT_CLIENT_PERFORMANCE, NCS_LOADING, (void*)&OnClientPerformance, context); | ||||
AddTransition(NCS_LOADING, (uint)NMT_CLIENTS_LOADING, NCS_LOADING, (void*)&OnClientsLoading, context); | |||||
AddTransition(NCS_LOADING, (uint)NMT_LOADED_GAME, NCS_INGAME, (void*)&OnLoadedGame, context); | AddTransition(NCS_LOADING, (uint)NMT_LOADED_GAME, NCS_INGAME, (void*)&OnLoadedGame, context); | ||||
AddTransition(NCS_INGAME, (uint)NMT_REJOINED, NCS_INGAME, (void*)&OnRejoined, context); | AddTransition(NCS_INGAME, (uint)NMT_REJOINED, NCS_INGAME, (void*)&OnRejoined, context); | ||||
AddTransition(NCS_INGAME, (uint)NMT_KICKED, NCS_INGAME, (void*)&OnKicked, context); | AddTransition(NCS_INGAME, (uint)NMT_KICKED, NCS_INGAME, (void*)&OnKicked, context); | ||||
AddTransition(NCS_INGAME, (uint)NMT_CLIENT_TIMEOUT, NCS_INGAME, (void*)&OnClientTimeout, context); | AddTransition(NCS_INGAME, (uint)NMT_CLIENT_TIMEOUT, NCS_INGAME, (void*)&OnClientTimeout, context); | ||||
AddTransition(NCS_INGAME, (uint)NMT_CLIENT_PERFORMANCE, NCS_INGAME, (void*)&OnClientPerformance, context); | AddTransition(NCS_INGAME, (uint)NMT_CLIENT_PERFORMANCE, NCS_INGAME, (void*)&OnClientPerformance, context); | ||||
AddTransition(NCS_INGAME, (uint)NMT_CLIENTS_LOADING, NCS_INGAME, (void*)&OnClientsLoading, context); | |||||
elexis: Can't think of a missing transition, as the synchronizing state should be ruled out as we don't… | |||||
AddTransition(NCS_INGAME, (uint)NMT_CLIENT_PAUSED, NCS_INGAME, (void*)&OnClientPaused, context); | AddTransition(NCS_INGAME, (uint)NMT_CLIENT_PAUSED, NCS_INGAME, (void*)&OnClientPaused, context); | ||||
AddTransition(NCS_INGAME, (uint)NMT_CHAT, NCS_INGAME, (void*)&OnChat, context); | AddTransition(NCS_INGAME, (uint)NMT_CHAT, NCS_INGAME, (void*)&OnChat, context); | ||||
AddTransition(NCS_INGAME, (uint)NMT_GAME_SETUP, NCS_INGAME, (void*)&OnGameSetup, context); | AddTransition(NCS_INGAME, (uint)NMT_GAME_SETUP, NCS_INGAME, (void*)&OnGameSetup, context); | ||||
AddTransition(NCS_INGAME, (uint)NMT_PLAYER_ASSIGNMENT, NCS_INGAME, (void*)&OnPlayerAssignment, context); | AddTransition(NCS_INGAME, (uint)NMT_PLAYER_ASSIGNMENT, NCS_INGAME, (void*)&OnPlayerAssignment, context); | ||||
AddTransition(NCS_INGAME, (uint)NMT_SIMULATION_COMMAND, NCS_INGAME, (void*)&OnInGame, context); | AddTransition(NCS_INGAME, (uint)NMT_SIMULATION_COMMAND, NCS_INGAME, (void*)&OnInGame, context); | ||||
AddTransition(NCS_INGAME, (uint)NMT_SYNC_ERROR, NCS_INGAME, (void*)&OnInGame, context); | AddTransition(NCS_INGAME, (uint)NMT_SYNC_ERROR, NCS_INGAME, (void*)&OnInGame, context); | ||||
AddTransition(NCS_INGAME, (uint)NMT_END_COMMAND_BATCH, NCS_INGAME, (void*)&OnInGame, context); | AddTransition(NCS_INGAME, (uint)NMT_END_COMMAND_BATCH, NCS_INGAME, (void*)&OnInGame, context); | ||||
▲ Show 20 Lines • Show All 637 Lines • ▼ Show 20 Lines | for (size_t i = 0; i < message->m_Clients.size(); ++i) | ||||
client->GetScriptInterface().SetProperty(msg, "guid", message->m_Clients[i].m_GUID); | client->GetScriptInterface().SetProperty(msg, "guid", message->m_Clients[i].m_GUID); | ||||
client->GetScriptInterface().SetProperty(msg, "meanRTT", message->m_Clients[i].m_MeanRTT); | client->GetScriptInterface().SetProperty(msg, "meanRTT", message->m_Clients[i].m_MeanRTT); | ||||
client->PushGuiMessage(msg); | client->PushGuiMessage(msg); | ||||
} | } | ||||
return true; | return true; | ||||
} | } | ||||
bool CNetClient::OnClientsLoading(void *context, CFsmEvent *event) | |||||
{ | |||||
ENSURE(event->GetType() == (uint)NMT_CLIENTS_LOADING); | |||||
CClientsLoadingMessage* message = (CClientsLoadingMessage*)event->GetParamRef(); | |||||
std::vector<CStr> guids; | |||||
Not Done Inline Actionsguids is okay (I can imagine us replacing all guids with GUIDs and findGuidForPlayerID with findGUIDForPlayerID some day) elexis: guids is okay (I can imagine us replacing all guids with GUIDs and findGuidForPlayerID with… | |||||
Done Inline Actionsguids.reserve(message->m_Clients.size()); doesn't matter much here, but just to get used to it, refs D105#inline-1973 elexis: `guids.reserve(message->m_Clients.size());` doesn't matter much here, but just to get used to… | |||||
for (CClientsLoadingMessage::S_m_Clients client : message->m_Clients) | |||||
Done Inline Actionsconst & elexis: const & | |||||
Not Done Inline Actionsthx elexis: thx | |||||
guids.push_back(client.m_GUID); | |||||
CNetClient* client = (CNetClient*)context; | |||||
JSContext* cx = client->GetScriptInterface().GetContext(); | |||||
JSAutoRequest rq(cx); | |||||
JS::RootedValue msg(cx); | |||||
client->GetScriptInterface().Eval("({ 'type':'clients-loading' })", &msg); | |||||
client->GetScriptInterface().SetProperty(msg, "guids", guids); | |||||
client->PushGuiMessage(msg); | |||||
return true; | |||||
} | |||||
bool CNetClient::OnClientPaused(void *context, CFsmEvent *event) | bool CNetClient::OnClientPaused(void *context, CFsmEvent *event) | ||||
{ | { | ||||
ENSURE(event->GetType() == (uint)NMT_CLIENT_PAUSED); | ENSURE(event->GetType() == (uint)NMT_CLIENT_PAUSED); | ||||
CNetClient* client = (CNetClient*)context; | CNetClient* client = (CNetClient*)context; | ||||
JSContext* cx = client->GetScriptInterface().GetContext(); | JSContext* cx = client->GetScriptInterface().GetContext(); | ||||
JSAutoRequest rq(cx); | JSAutoRequest rq(cx); | ||||
▲ Show 20 Lines • Show All 62 Lines • Show Last 20 Lines |
Wildfire Games · Phabricator
Can't think of a missing transition, as the synchronizing state should be ruled out as we don't have people rejoining after the first turn