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.
Should render fallback for namedTarget if namedTarget fails
Add safety around namedtarget getTexture to stop assert
Missing assets should revert to fallback image and print a warning to console
Remove REFACTOR tag from all macros.
report *what* field is an invalid console type
prune down floating point fuzzed validators to 0
default the visual fidelity to POINT_EPSILON (0.0001) rather than 1/FLT_MAX
use the bit(bitcount) macro for legibility
fix breakangle
Processed core, tools and default modules to utilize assets
Converted all console types that were string based, such as TypeImageFilename to utilize const char*/the string table, which avoids a lot of type swapping shenanigans and avoids string corruption
Removed unneeded MainEditor mockup module
Removed some unused/duplicate image assets from the tools
1. When addProtectedField used with custom setters, we need to return false, or it will set the value via regular routine after the method exists (change ParticleData::protectedSetTimes() to return false instead of true).
2. The ParticleData::sizes[] needs a custom setter, so the value is clamped in a range of 0.f and MaxParticleSize.
3. The spinRadnomMin and spinRandomMax ParticleData fields need a FRangeValidator, so it auto-clamped in a range of -1000 to 1000, as we are writing data trying to fit the values in 11 bits (as UInt upto 2048 max).
* The description for those fields needs to be updated to use 1000 instead of 10000.
* ParticleData::onAdd() should check for values to be in a correct range too.