plMovementStrategy classes have been reworked and completely replace all plAvatarControllers.
While based on the old implementation, plPhysicalControllerCore has essentially been rewritten.
Remnants of long gone physical "actions" have been removed.
4 files removed -
plAVCallbackAction.h & plAVCallbackAction.cpp
plAntiGravAction.h & plAntiGravAction.cpp
This revision will not compile, requires new plPXPhysicalControllerCore implementation.
Fixes#180 (if combined with the moul-scripts commit). These two Python/Plasma functions are used in the moul-scripts fix for the scrolling KI Chat issue.
This also includes some header debloat and const/reference fixes
(particularly in pyMatrix44). This will result in the generation of
slightly more efficient code.
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.
On the other hand, have we ever figured out exactly what this code is
supposed to do? Mark added it for something, but it's not really clear
what the purpose is.
Rearrange some things so such that low-level CoreLib headers aren't quite
so crazy. For higher level stuff, you still need to include the
appropriate header.