
I finally fixed a source of memory corruption in the shell so it should be a lot more stable now. PlayerInfo would write an extra byte past the end of its memory block, so if it was just the right size it could damage the header of the next block and cause memory system crashes.
Updated! Now with 100% less freeze-ups!
Downloads:
Testing Executable and Symbols
Game Assets (no changes since 2011-05-19)
What's new:
* Switched back to the original volume setting code for CD audio
- The mixer was setting the volume for the entire application (!)
- CD music playing back at full volume isn't great bit it's at least consistent
* Attempted to fix the invalid unit type problem in AI_Match_Get_Unit_Strength
- Cleaned up some uninitialized values in strategic AI attachments
- Added a workaround so it prints the name of the offending unit instead of crashing
* Set the SeismicWave falloff to match the original version
- This time for sure!
- I had made this change before but managed to lose it somehow
* Auto-kick start time begins when a player first spawns
- This should prevent spurious auto-kicks while loading
* Airborne units no longer use straight-line pathing
- This fixes pilots getting stuck on terrain obstacles after they land
- They instead ignore the "stuck" test since they can sail over obstacles
* Pilots mark the empty vehicle they're going for so other pilots won't go for it
- This makes pilots hopping out of barracks all go for separate vehicles
* Yet another attempt at fixing the black screen problem
- Shell WM_PAINT cases return 0 to indicate they handled the message
* Barracks starts pilots as airborne so they can maneuver out
* Improved stability of the multiplayer shell
- Fixed some potentially-uninitialized values
- Fixed PlayerInfo sometimes corrupting memory (!)
. This was the most likely cause of various shell crashes
* Net game dialog now loads map description and vehicle list "on demand"
- The dialog works correctly even if the map is not listed in netmis.txt
- NOTE: it shows the map's filename instead of its label in that case
* Fixed an exception in the net game dialog on exiting the application
- It only came up when pressing Alt-F4 or clicking the close button, though
* Net error dialog runs the networking system if necessary
- This fixes players lagging out if they don't click OK fast enough
* Update networking thread more frequently while loading
- This should reduce high ping times while players load
* Sped up the file cache slightly
- Read file data into the cache buffer directly without a memcpy
- This may improve load times a tiny bit on slower systems
* Cleaned up a bunch of memory leaks
- Many of these were only in debug builds or things not freed on exit
- Still, every little bit counts
