Author: Adam Johnson <AdamJohnso@gmail.com>
Date: Fri Feb 8 00:15:56 2013 -0500
Fix crazy camera stack issues
Turns out, it was an artifact of us suspending the simulation during links
and partly because of Cyan's late adding of the avatar controller to the
sim. Now, we add the avatar as soon as the age data is loaded. This causes
the camera stack to be populated with whatever garbage PhysX decides on,
then xJourneyClothsGen2 is free to set the real stack after we get all the
SDL from the server.
Verified to fix Teledahn oddness and not display a regression in Kemo.
Let ptVault.setAgePublic accept ptVaultAgeInfoNode in addition to ptAgeInfoStruct
In this case it now also works for non-owners of the age. Previously it only worked for owners because the ageInfoStruct does not contain the vault node ID, so it needed to be looked up somewhere, and that was in the AgesIOwnFolder.
Prerequisite for hood auto-bump (MOULSCRIPT-ou PR #22).
From H-uru/Plasma#461.
Shadowed Chat and Player List Text
This implements the (existing but unimplemented) plDynamicTextMap::kFontShadowed flag, making the text of the mini KI (player list and chat) better readable on light and patterned backgrounds.
For best results, an additional Python change is recommended: MOULSCRIPT-ou PR #23.
From H-uru/Plasma#392.
In this case it now also works for non-owners of the age. Previously it only worked for owners because the ageInfoStruct does not contain the vault node ID, so it needed to be looked up somewhere, and that was in the AgesIOwnFolder.
Previous revision didn't work, many controls retained their shadows because they never got the new flags from the color scheme and put them into the dynamic text map. I haven't checked if any more of the many control classes are affected, but those that we need in the KI right now are covered.
- plCCRMgr.h which is still needed by plAvatarMgr.cpp (plCCRError only - if there is more in this file at Cyan, that definition should be split out into a separate header)
- Stubs for pyCCRMgr{|Glue|Glue2}.cpp which are still part of the pfPython project as well as pfCCRConsoleCommands.cpp which is still part of the pfConsole project. This is under the assumption that these files still exist with nontrivial contents at Cyan - if not, they could just be removed from the projects. Requires adjustment by Cyan to build with PLASMA_CCR_RELEASE.
- Put more missing includes and calls under #ifdef PLASMA_CCR_RELEASE
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.
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.).
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.
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.
This fixes the irregular dark fringes around light text when not exactly pixel-aligned that are caused by independent interpolation of color and alpha. It also makes calculations simpler for things to come.
In addition to being a prerequisite for shadowed text, this also fixes an issue sometimes seen at the bottom of the mini KI player list where characters with a descender were missing.
_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.