While based heavily on the old implementation, this is essentially a rewrite.
Notable changes -
Controllers are now updated at the same fixed frequency as the simulation.
Resulting output is interpolated between steps to precisely match the frame delta.
Physics work is only done when enough time has passed to perform a step.
The kinematic actor that followed around the controller has been removed.
The underlying kinematic actor created by the NxController is now used for triggering.
A new sim group was added for a kinematically controlled avatar.
2 unused files removed -
plPXPhysicalController.h & plPXPhysicalController.cpp
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.
The meat comes from the following H-uru/Plasma commits by Branan and Zrax, but I?m not going to replicate that spaghetti history here:
commit 3522f7069a4183ccd87e80c0e7e46a01f5b14de6
Author: Michael Hansen <zrax0111@gmail.com>
Date: Mon Apr 11 13:42:22 2011 -0700
Merge branch 'stlfixups' into numlockfix
commit 094cb11bb328b326695cdc75f1f18ca72d135b49
Author: Michael Hansen <zrax0111@gmail.com>
Date: Mon Apr 11 11:53:11 2011 -0700
Don't need to de-iteratorize this one
commit 498dead64dc0b46bf24055980ba997ff2dfa05b4
Author: Michael Hansen <zrax0111@gmail.com>
Date: Mon Apr 11 01:44:53 2011 -0700
Don't change the iteration order
commit e004491eab00edc312cef5ba08653745695f277e
Author: Branan Purvine-Riley <branan@gmail.com>
Date: Sun Apr 10 23:20:08 2011 -0700
STL fixes needed to link from StartUp to Personal
(e.g. the linking book loading animation). Nobody ever noticed because the debug build was completely broken in MSVC7, and H-uru/Plasma does it completely differently.
Include stddef.h to avoid a redefinition problem with offsetof(s,m).
Remove wchar_t typedef. This is a native type is MSVC10 and should be appropriately defined with the inclusion of stddef.h in earlier versions.
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.
The default value of the "dst" argument must be 0, because -1 leads to incorrect results when the given time falls into local DST. However, a "dst" argument makes no sense on a method that deals with GMT anyway, so remove it entirely.
The bounds type test was performed on stale bounding data from the previous
frame resulting in the avatar being drawn without textures for a frame after
switching from 1st to 3rd person camera.
_PyTuple_Resize may destroy the original tuple and return a new one through the pointer argument. When it does that and we don?t put the new one back into the map, we end up with a stale pointer to a destroyed object in the map, which is likely to blow up one way or another next time it?s accessed.
Untested because, as far as I can see, this code isn?t actually used currently. All uses of this method deal with fixed-size SDL variables. Resizable variables are not used at all in age SDL, only in non-age SDL (animation, avatar, clothing etc.), and I?m not even sure if those are even accessible using this Python API.
Fixes egg room private chat channels and entering Teledahn buckets with Python 2.7. These and other uses of ptSDL.setIndex() only worked by chance with Python 2.3 because the tuples happened to have reference counts of 1.