It appears that in Havok-physics enabled versions of Plasma, plEnableMsg
does not affect physics. Therefore, we have to send the PotS-era
plSimSuppressMsg to do this job.
MOUL/DX9 will not rt light any vertex with a near-zero component in its
normal. This prevents shadows and decals from appearing on flat surfaces
in Ages exported for the MOUL engine. Instead of fighting with the
pipeline and vertex buffer code in Plasma, we'll just clamp the values
here.
This allows for objects to print decals at runtime, like the baskets in
Eder Gira. Also, the same functionality can be hijacked for coincident
objects to exist as decals. This is basically a shortcut for adding hack
Z-flags to the base layer of a decal material.
This allows blend textures to be used for mesh transparency without
having to fiddle around too much. It was also a stab at fixing some
regressions in the MOUL engine around decals, but that bit failed,
sadly.
The soft volumes were previously in aproximately the correct location
but the exported normals were not unit vectors. This seems to have made
the resulting soft volumes not function as intended.
This fixes the issue in which python nodes reused in multiple pages
won't get properly exported. The exporter doesn't store which page a
node was exported to, and the "optimization" to prevent dupe python
parameters was over-optimizing in the case of multiple pages. Trivial
attempts to track the pages we exported to failed, so we'll fall back to
checking the PFM's filename. If it's None, then obviously the PFM has
not been exported...
Explanation: The JPEG format in plMipmap does not have to be an actual
JPEG image, it can also hold an RLE bitmap. libHSPlasma currently does
not attempt to compress any images held as uncompressed data and marked
JPEG, rather, it exports them as RLE maps. Maybe a bit odd, but it
works. I guess.
This improves the panel layout and fixes the issue in which
`plShadowMaster` exported with `maxSize` == 0, causing crappy shadows
in PotS and generally no shadows in MOUL.
This fixes two bugs with empty node socket spawning:
- The first time an empty is spawned, the link is moved to the last
socket.
- Unlinking a socket in the middle of the group would cause that socket
to be the one that's empty. This isn't bad per-se, but with Responders
being ID-based, it could result in some confusion.
Previously, Korman exported cameras without the "Maintain LOS" flag
applied, allowing cameras to swing through geometry. In the token of
better defaults and easier to understand objects, all the tracking
options have been audited for clarity and their exporting to the correct
camera type.
Previously, reusing node trees required careful thought and
specification of specific nodes in the advanced logic modifier. This
tedious requirement has been removed in favor of ensuring that the nodes
themselves take into account whether or not they should generate and
attach plasma objects.