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.
Port of H-uru #236 and #237. This adds stubs for the removed Bink files, to make things compile and run again, with just enough functionality to replicate the previous behavior when built without BINK_SDK_AVAILABLE, i.e. movies are treated as zero-length.
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.
This hack prevents the cursor from leaving the window when panning the
camera or changing directions quickly. This is important for those with
high mouse sensitivities.
Fix improperly calculated window size in initial Windowed mode.
User visible effect: This changeset removes an (in)visible grid of seams or blurriness in the client window. They are most noticeable when moving the cursor over them.
Window shouldn't have a resizing border.
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 .
Update for Visual Studio 2010
Update for MSVC10 as briefly discussed in the forums.
This was done over several commits to make it easier to identify the changes that were required and to assist the review process. It adds VC10 project files for the client, most of the Plasma apps and the required Plasma libraries.
Dependencies. The new projects are configured to find 3rd party libraries in the same locations as the 2003 projects with the following exceptions - VS2010 doesn't like the old speex lib in the repository, and will instead look in - xiph/include/speex and xiph/lib. And the ogg and vorbis libraries are also expected to be in the same directory - xiph/include/ogg, xiph/include/vorbis and xiph/lib.
Project Configurations. Configurations have been setup for debug and release builds of the both the internal and external live client.
Fixed console documentation
Fixed console documentation. Prompting for brief HTML documentation no longer appends a new group to the previous one (see https://github.com/H-uru/Plasma/issues/170). This has been tested both by myself and by H'uru members.
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.
- Update Scripts/Python/plasma/* with our changes from MOULSCRIPT-ou (apparently their build process uses or produces these, ours doesn't).
- Bump build ID.
Allow plNotify variable events to carry integers in addition to floats
This fixes crashes when trying to upload a KI note with an odd vault node id > 2^24 to an imager, and allows for future cleanup of other plNotifyMsg uses.
To be accompanied by moulscript 886c4.
Wrap uses of the missing CyPythonIDE with #ifdef HAVE_CYPYTHONIDE
This fix is needed to build an internal client (without /DPLASMA_EXTERNAL_RELEASE).
It is designed to match the corresponding fix in H-uru/Plasma (b76fd10 etc.).
Add plFileEncrypt, plFileSecure, plPythonPack to AllClient.sln
As requested at http://forums.openuru.org/viewtopic.php?p=6100#p6100 .
Build products are placed in MOULOpenSourceClientPlugin/Plasma20/tools/ (as plPythonPack.exe already was).