the conversion functions were making assumptions that were wrong based on mant being 0 and the out being 0 completely on small numbers also if the sign was flipped it rounded to 0. Also simplified
update libpng, the repo now requires a vcpkg setup for integrating but skipping the install step should allow it to work for windows an linux, mac might need more
Fix for "|" in text for popupctrl
If 1 was found it was just assuming all other bars existed for a colour input.
there could be a cleaner way to do this but the direct approach allows for clear safeties.
while it still remains a good idea to port as many NULL compares and assignments over to nullPtr as feasable, we do still need to sort out how to better support scripted empty, false, and zero assigns for things like objectIDs.
this means we'll need to both fully convert the backend of the parser to support that kind of thing, but also alter most if not all exisiting NULLs. up to and including things like SAFE_DELETE. while that's certainly feasable, given there's aproximatel 400 nullptr assigns/checks prior to this commit, and roughly 1800 of the prior, if it terminates in a script call and not an aip one direct, we'll be dialing that back until such time as fork fully fopcused on converting and resolving any lingering mismatches is completed.
Turns out ConvexFeature::collide assumes the second round of testVertex calls will only add one entry to the collision list at a time and was erroneously only changing the last object and material reference.
by request,
adds a per object-instance onadd for datablocks if an object instance *also* defines a class.
be mindful not to mix up which namespace is in use there, as you can not tag two different core class instances the same scripted class
implements the same with the same restrictions for simobjects in general
fix animation export filename eroneous append
add ::canLoadCachedDSQ(const Torque::Path& path) methods to dae and assimp chains
SPECIAL NOTE:
as the above leads to dsqs not being previewable in editor, nor being able to understand they shouldn't be filtering out bones, for the block
bool readSuccess = false;
if (canLoadCached)
{
readSuccess = shape->read(&cachedStream);
}
else
{
readSuccess = shape->importSequences(&cachedStream, cachedPath);
}
we'll be wanting to inject an armature proxy method to fill out TSShape *shape = new TSShape;
untill such time as that's sorted, there's a bool gTryUseDSQs = false; killswitch in for dsqs
GBitmap Changes:
Added all other formats to gbitmap that we support
gbitmap now supports cubemaps
added converters for all these other formats
added stb_image_resize for extrudemips so we can extrude mipmaps for all other formats
GFXTextureManager
Can now directly make cubemaps and texture arrays based on the GFXTextureProfile
API implementations for all functions that cubemaps and arrays needed
fx navmesh scale detection
fill in mission file based .nav file name
account for walkableclimb having more filter weight than walkableslope when it comes to slanted quads generating navmesh data
the basic articulable principle is the thicker and less translucent a given object is, the more it mimics standard solid objects. the more transparent, the less light bounces back since it continues on uninterrupted, casuing less backscatter.
rigid: main finding is rigid needs to take delta into account for integration (aka interpolation)
also used POINT_EPSILON for thresholds for consistency
for rigidshape/item/player, main finding was length calcs for the search area were all over the place,
so we now derive the extended length of the cached area based on the velocity and the object's radius itself rather than guessin per class
atrest gravity calc suplimental syncing between rigidshape and vehicle
**remindernote POINT_EPSILO is 0.0001