Stuff to finish before release
Moderator: Moderators
- clericvash
- Posts: 1394
- Joined: 05 Oct 2004, 01:05
I'm not going to add new features like that unless I'm really bored.
I made it so it should give desync message exactly so often that there's always one desync message active in the infolog. I think that works fine, but I the new desync detect code I made just after 0.74b3 was released has some problems probably causing it to detect desync only once and not continuously.
I made it so it should give desync message exactly so often that there's always one desync message active in the infolog. I think that works fine, but I the new desync detect code I made just after 0.74b3 was released has some problems probably causing it to detect desync only once and not continuously.
I can add handling of desync messages (not kicking but displaying it somewhere else) to IceUI.. For example having only one message per player and then change all TeamLogos of that player to a different icon..
AF, if you use a lua popup box for that it would have to be included in Spring and enabled by default.. Because most newbies that don't know about desyncs probably also don't know about Lua..
AF, if you use a lua popup box for that it would have to be included in Spring and enabled by default.. Because most newbies that don't know about desyncs probably also don't know about Lua..
-
- Posts: 933
- Joined: 27 Feb 2006, 02:04
Honestly, just having it pause the game and bringing up an easy unit handover screen would be great. The people who "break" in a desync just need to give their units to a teammate or if they're the only one on a team self destruct and quit. Sticking around isn't doing anyone any favors. I know it sounds harsh, but its better than having the whole game be wrecked. Losing a few people is better than having to start over from scratch in my opinion.MelTraX wrote:I can add handling of desync messages (not kicking but displaying it somewhere else) to IceUI.. For example having only one message per player and then change all TeamLogos of that player to a different icon..
Also, it'd be great if it paused it if someone hasn't responded in 5 or 10 seconds. At that point they've either crashed, or have been lagging long enough that you should pause it anyway. The pause will allow someone to take their units or automatically self D them if they disconnect.
-
- Posts: 933
- Joined: 27 Feb 2006, 02:04
Well, adding pause button and a GUI for the kicker fits your project. Does your player status window still show player CPU % and ping time? Those would be nice to color code so that it'd be obvious to everyone when someone is lagging. (Apologies for derailing this to discuss his GUI project)MelTraX wrote:Yeah, I kinda agree to that stuff.. But pausing and maybe auto-kicking is no feature of the GUI.. So someone else just make a normal widget for that..
Spring should always popup a message box saying why ti exited when it closes, except for the following situations:
shift+esc
end game dialog exit button
For example if the connection tot he server times out the game exits, and the user thinks that spring has crashed and that we've let a bug pass through. They don't realize the connection timed out nobody told them, they may not realize that its timed out and they may be able to fix it themselves if they knew. It really shows off the rough edges on the engine and gives a terrible impression to users.
shift+esc
end game dialog exit button
For example if the connection tot he server times out the game exits, and the user thinks that spring has crashed and that we've let a bug pass through. They don't realize the connection timed out nobody told them, they may not realize that its timed out and they may be able to fix it themselves if they knew. It really shows off the rough edges on the engine and gives a terrible impression to users.
It needs a bit of clean up in general. There's a handleerror macro that should be removed IMHO and replaced by throw statements with appropriate exceptions. These exceptions should be designed such that there are different ones for different types of errors, like there is one for content_error now (should be renamed ContentError TBH).
Then there can be a number of catch blocks in main that use the cross platform messagebox functionality (may need a little refactor) to show the appropriate error and call exit() afterwards.
Also some normal quits, which are probably handled with "done" variables in while loops should be promoted (degraded?) to exceptions, like the "client read net wanted quit" one before game has ended. (This is mostly the issue you pointed out.)
But apart from that yeah it's just searching for exit and maybe the functions/exception classes that call exit directly or indirectly (e.g. handleerror, content_error).
Then there can be a number of catch blocks in main that use the cross platform messagebox functionality (may need a little refactor) to show the appropriate error and call exit() afterwards.
Also some normal quits, which are probably handled with "done" variables in while loops should be promoted (degraded?) to exceptions, like the "client read net wanted quit" one before game has ended. (This is mostly the issue you pointed out.)
But apart from that yeah it's just searching for exit and maybe the functions/exception classes that call exit directly or indirectly (e.g. handleerror, content_error).
... http://www.bash.org/?10958Tobi wrote:Fixed, stupid typo of me (converted 1 to false when refactoring int to bool )