Ticket #2240: fix-quit-while-syncing.diff
File fix-quit-while-syncing.diff, 1.1 KB (added by , 10 years ago) |
---|
-
source/network/NetServer.cpp
563 563 session->AddTransition(NSS_PREGAME, (uint)NMT_READY, NSS_PREGAME, (void*)&OnReady, context); 564 564 session->AddTransition(NSS_PREGAME, (uint)NMT_LOADED_GAME, NSS_INGAME, (void*)&OnLoadedGame, context); 565 565 566 session->AddTransition(NSS_JOIN_SYNCING, (uint)NMT_CONNECTION_LOST, NSS_UNCONNECTED, (void*)&OnDisconnect, context); 566 567 session->AddTransition(NSS_JOIN_SYNCING, (uint)NMT_LOADED_GAME, NSS_INGAME, (void*)&OnJoinSyncingLoadedGame, context); 567 568 568 569 session->AddTransition(NSS_INGAME, (uint)NMT_CONNECTION_LOST, NSS_UNCONNECTED, (void*)&OnDisconnect, context); … … 601 602 { 602 603 RemovePlayer(session->GetGUID()); 603 604 604 if (m_ServerTurnManager )605 if (m_ServerTurnManager && session->GetCurrState() != NSS_JOIN_SYNCING) 605 606 m_ServerTurnManager->UninitialiseClient(session->GetHostID()); // TODO: only for non-observers 606 607 607 608 // TODO: ought to switch the player controlled by that client