Closed assertivist closed 3 years ago
At the very simplest, we could simply uncomment the break
line and have it drop out of the game loop instead of getting stuck in the "waiting" loop that never exits.
That would be one way to do it, though sometimes it can recover. In situations like we were in with Seven it would probably just kick him every time he tried to play. I dunno if that's ideal but. IDSN+ only
Marking this a bug because the original had it:
https://github.com/avaraline/Avara/blob/30ded35720213cc2d0712c63e0f15f4ba1e3c4b3/src/game/CPlayerManager.cpp#L496-L512
This is used when a network stall happens. We've discussed other methods of resolving network stalls, like just kicking users out of the game, but i think this is still useful--other solutions will still have a timeout before they apply, specific user types will just have bad connections.
I'm thinking an easy way to do this, rather than a dialog in nanogui or something like that, is just drawing a message on the screen with nanovg, and include a specific key combination (manually checked in the events, right there at that spot, not a mapped key) that will allow users to abort whatever network wait they're experiencing. If implemented here in the same place as the original it should work the same way and allow the other connections to remain active and then start a new game.
For extra sauce points, the thing would be able to indicate in the HUD somehow which players are not sending packets. The game does send a status message to the console, but while the network is blocking that doesn't update so it is only if you wait out the lag do you see the 'problem player'.