After hacking the old to just barely use plString, I received some UTF-8
asserts. So, that seemed like a good excuse to convert the whole mess to
plString. Note that the output is now saved in VaultClient.log. This
should help with getting some of the chaos out of OLD_ASYNC_LOG.log
This has a couple of benefits:
- We should theoretically no longer run into UnicodeDecodeErrors from the
plString-based implementation
- By doing things engine side, we can use the logging API to colorize log
messages.
Also did some work on decreasing header bloat. No promises on a complete
job--this was just enough to allow PCH to actually help us out (and boy
does it!)
With an Intel Core 2 Duo (4GB DDR2 800)
With PCH: 50.51 seconds
Without: 4 minutes, 17.14 seconds
:D
Manual state management in python was kind of fiddly, so let's track all
avatar clones in the NetApp and unload them as needed. This also seems to
fix a potential bug in plNPCSpawnMod (is that even used?).
The previous implementation had the following bugs:
- DST was truncated to end of October
- DST start was off by one week in years where March 1st is a Monday
- DST start was off by one second (1:59:59 -> 2:00:00 -> 3:00:01 instead of the correct 1:59:59 -> 3:00:00 -> 3:00:01)
Tested against tzdata 2009g.
Function and macro names for endianness were previously vague,
and on big-endian systems entirely misleading. The names are
now properly descriptive of what they actually do.
This fixes various date formatting problems when building on a system where time_t is 64-bit (e.g. Visual Studio 2010), and, as a bonus, extends the range past 2038 on such systems.
The wire protocol is left at 32-bit for now, we might change that to 64 when other reasons to break compatibility have accumulated.