Belated Bugfix Build

[h3]Belated Bugfix Build[/h3]
This build is mostly a bunch of small stuff, but the biggest and most important things are:
- I finally fixed the "sliding bug" where eventually the walking position and animations would desynchronize, this was due to accumulated error in some fixedpoint values sent over the network, and the fix was pretty easy once I realized this...I just keep track of the error on the sender and compensate for it over time.
- No more dupes in dailies! I've been testing the red/black tree implementation for months, and I'm pretty sure it's rock solid, so now I'm turning it on for a full 365 days. If you see a duplicate game in the daily challenge ever again (not counting games before this build) then it's a big bug!
- I now queue the last three games in a match for spectators, so if you're a late joiner or the match is set to spectation /delay, you won't miss out on the first few games.
Enjoy, and let me know if there are bugs!
Chris
v0.1.7232.0:
- code
- fix Away, Spectating "build" in /stats to be a little less noisy
- daily challenge should not have dupes for 365 days now
- check for spy and sniper setup complete on spectation load to avoid bad replays in dailies
- lobby state CLOSED allows games but not matches/sets
- fix lobby assert when cached game is evicted before message lands
- fix lobby assert if invited by highest client id and then they disconnect and then our spectation socket closes !?
- if invitations fail to find other client id, fail accepts and handle them somewhat
- email notification on lobby crash
- fix sliding bug, which seems to be caused by error buildup in relative timestamps in packets, track error on server and send corrections to client
- fix replay timeline scrubbing memory leak (and crash?), if fading sound out don't remove from list
- RIP bookmarking in practice sniper menu text
- fix a crash if we're in a replay dir that gets renames but the notification fails to trigger
- add prompt to /say and /emote on room change during typing to avoid spamming lobby, and fix /sayroom and /emoteroom
- make /win more robust, w h, x y w h, or all params
- clear credentials on exit has one-shot and always options, default steam users to one-shot for old versions, have people use one-shot for working around steam bug for now
- record finished http request time from signal thread so we aren't dependent on load times for computing server clock skew
- queue 3 games after end so late joiners can have a chance to watch a game even with delay on
- save replay data as soon as done, don't wait for retire, avoids some quick exit situations that didn't save game correctly
- display next spectation game ready in a slightly less epilepsy inducing typeface
- if /away then default invites to off
- display the "next game has started" thing in casting mode if we've seen the end of the game once
- allow the spy normal action key to fire the sniper rifle
- more asserts to try to catch this portrait crash(es)
- flush log if lose focus
- sort /away folks to bottom of lobby list above finishing folks
- fix bug with replay set results screen missing title
- setting for filtering lobby meta chat messages like join/leave, probably want more stuff under this category
- don't play drink crash twice on canceling waiter purloin
- don't use replay muting in replay/spectation sniping mode, only when viewing the replay as a spectator
- fix Away, Spectating "build" in /stats to be a little less noisy
- content
- investigating and fixing offsets in pub and ballroom, this was not a big deal until the Daily Challenge and these old replays started showing up everywhere!
- venue texture and geometry fixes for ballroom, gallery, balcony, high-rise, moderne, library, pub, redwoods, teien, terrace, veranda
- thanks to cleetose for finding all these!!!
- reduce volume a bit on drink crash and statue clank
- investigating and fixing offsets in pub and ballroom, this was not a big deal until the Daily Challenge and these old replays started showing up everywhere!
Edit: Just updated to 7237, fixing a tutorial crash. Should be live in a few minutes.