Avatar physics update
A significant and much needed cleanup of the avatar physics code. It resolves numerous issue with and greatly simplifies the physx character controller implementation.
While there is still room for improvement, this is a good starting point.
Avatars now jump consistently, regardless of cpu speed. Fixes unexpected camera transitions with entering/exiting some subworlds. (Teledahn elevator) Fixes a jitter in animated subworlds. (Er'cana harvester) Dynamic controllers are correctly positioned on the ground. (Jalak) Much improved interaction with dynamic physicals.
Other physics related issues may or may not be addressed.
In particular, the intro movie now exits immediately again rather than staying indefinitely.
The important difference is to send the completion callback in plBinkPlayer::NextFrame(), i.e. act as if we had reached the end of the movie.
Storing the filename is to keep plClient::IHandleMovieMsg() from deleting and recreating the plBinkPlayer on every message.
The changed return values are just to better match the previous behavior and probably don?t matter.
To better handle erroneous trigger events under the new timing method, use the number
of times the simulation has actually advanced instead of the number of evals received.
Cleaned up a bit.
Provides more accurate interaction with detectors when the avatar is moving up or down.
Also decreases the severity of the PhysX trigger hull bug in some detectors.
This change doesn't affect world collisions.
Improved Cursors
This is the second attempt at getting the following improvements to the Uru mouse cursors into CWE-ou:
* fix the blurriness
* add a subtle shadow to fix cursors being invisible on light backgrounds
* cleaner, more regular appearance
A (slightly outdated) picture for comparison is at http://forums.openuru.org/viewtopic.php?t=558&p=4265#p4265 , and anyone who has played on Gehn, TOC, or any other shard using the H'uru client has already seen the new cursors.
In order to do this properly, in a way that will continue to work in a cross-platform future, a lot of work done by Deledrius in the H'uru fork is included: He added PNG support to Plasma and introduced a client resource manager that loads resources such as the cursors, but also voice chat indicators and the loading linking book animation, which were also replaced by higher-quality recreations, fromfile instead of from Windows resources. resource.data
This also opens the way for other applications of PNG, such as saving the local copies of KI pictures in a lossless format instead of the heavily compressed JPEG we currently have.
Note: the new code requires a newer version of libpng than included with the CWE sources. Like other library dependencies, this must be installed separately. Instructions for that are at http://wiki.openuru.org/index.php?title=Build_the_client_with_MSVC_2003#Build_steps .
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.
Fix Landing Behaviors
How to Verify: The avatar should now land on the ground from jumps as in PotS. Therefore, standing jumps produce a full landing, downhill jumps produce a blended landing based on how far down the avatar fell, and uphill jumps produce no landing.
DST Fix
Original implementation by Adam Johnson, with some bug fixes by Christian Walther.
Includes a fix for plUnifiedTime::SetGMTime not working correctly when the given time falls into local DST.
Basic clipboard functionality
Adds following commands to single- and multiline edit boxes: Ctrl-C - copy field contents to system clipboard Ctrl-V - paste contents of clipboard at current cursor position
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.
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.