This happens on DirtSand shards when two avatars are loading the same age
at once. LoadCloneMsgs are dispatched to the clients before they have
loaded the original keys. The server has no way of knowing that however,
so this is the correct place to fix the problem.
This should keep the avatar from getting stuck on some stupid stuff such
as on the pellet machine. A real fix would be to tweak the data, but we
cannot do that.
Yeah, looks like PhysX 2.6.4 has a bug with spawning stuff inside of
regions. So, let's bring back the hack that spawns the avatar at -2000
feet. The link-in process will set the correct position on the controller
and fire the appropriate detectors.
This changeset introduced a new plBitmap flag `kAutoGenMipmap`, which
trickles through the pipeline and becomes `D3DUSAGE_AUTOGENMIPMAP` in
standard DirectX texture creation. This flag is applied to all
DyanmicTextMaps. The end result is that DynamicTextMaps become fuzzy at a
distance, rather than choppy.
Bug in the registry key list refactor... We wrote out all the keys in the
key list instead of only the keys with objects. This meant we got a lot of
garbage (empty) objects when exporting [Fem|M]aleWave.
This commit is really quite awesome in that you can now propagate any
plLinkToAgeMsg that will mute the link out, link in sounds, or both. Some
garbage fields were repurposed for this functionality. The messages were
passed correctly on Cyan's MOULa server.
Conflicts:
Sources/Plasma/PubUtilLib/plMessage/plLinkToAgeMsg.h
Sources/Plasma/PubUtilLib/plNetClient/plLinkEffectsMgr.cpp
Sources/Plasma/PubUtilLib/plNetClient/plNetClientMgr.h
Sources/Plasma/PubUtilLib/plNetClient/plNetLinkingMgr.cpp
Previously, multiple controllers in a single age
would overlap. This adds a static positional
counter which is reset at the start of a new list.
This commit also attempts to make the list more
useful by showing the controller objects'
owner's name.
plStringification of plPXPhysicalControllerCore::IDrawDebugDisplay
and general clean-up. Also changed to only display
avatar collisions heading if any exist to show.
This is in preparation for page patching. The old code kept dynamic
(programatically created) and serialized keys separate. This had the
potential to reorder the key list during the application of a patch.
This is separate from the prp-patches branch to facillitate review.