This includes all the work from 3.41 that got canned when we found a bad bug, as well as a bunch of extra stuff we snuck in.
Options
- Added set password function so Steam and Kongregate players can then log in via web
- Tweaked options screen visuals
Treasure
- On failed item transfer from treasure, put items back into cache.
- Introduce a queue to flush the treasure cache instead of doing it all at once.
- Don't move items on client/server when resetting a chest store chest as it should be empty anyway.
- Don't empty treasure store cache when advancing adventure.
Login/Accounts
- Steam login dialog provides a better guess at what error 2032 might mean during failed login.
- Set the initial tab correctly on steam login dialog.
- Check active flag on login
- Escape some special characters in JSON responses in user authentication.
- Reworked the maintenance mode check.
Co-op
- Added co-op chat room, opened by Co-op button, for people to find groups without disturbing World chat.
- Award coop flag for completing an exhausted adventure.
Chat
- Increased world chat user limit
- Renamed "Battle" chat audio level "Some", set it as default for new accounts.
Registration
- Fixed the error message display when attempting to register a rejected account name.
- Fixed NameCheck.php not to mangle the regexp.
- Modified restricted and bad words for account registration to work with preg_match case insensitive syntax.
- Copied over the bad words file from SFS to accounts.
Achievements
- Battle results get final rating doesn't error when ratings are missing. Should fix league stats and achievements in Steam.
- Award co-op flag for completing an unprimed adventure in co-op mode.
Optimisation
- Partition campaign_flags, player_item and store_item tables.
- Minor optimisation in new adventure start
- Break up leaderboard JOIN query into two separate queries.
- Make multiple calls using a simpler prepared statement instead of building up a large statement with lots of arguments when finding friends.
- Optimised friend search
- Early out optimisation on a mismatch when changing passwords.
- Leave room for the worker pool to grow
- Fix up a non-tunable limitation on chat queue to be more sane
- Increase socket reader pool size
Admin
- Additional moderation tools and cleanup
- Set maintenance mode at the start of the shutdown process
Logging/Profiling
- Better logging of item transfer errors.
- Add some extra logging on room removal to help determine the cause of duplicated log messages
- Refactoring profiling functions to use a common base, since the several types share functionality
- Add missing argument to command help output
- Fix incorrect column name in profile data.
- Clear buffer of previous response before adding CSV profile data.
Console
- Remove a few console commands that don't work right anymore and aren't needed.
User Admin
- Added citadel chests to user editor.