final setup for assimp
Added assimp importers and exporters, removed defaulting to all
Added compression to tshape
added dts version to tshape and cmake
Update assimpShapeLoader.cpp
quick fix
fix previewing dsq ground work
automatically export dsq files for animations
Groundwork
Adds the same sort of model for registering loaders and exporters as is set out on gbitmap
Added a bit more safety around the assimp matrix fix to convert incoming models to torques coordinate system.
working example of hrtf set the pref usehrtf to true to test
For now any mhr file that is in the game directory can be used, just run once to get the index of that mhr and pass that index in to $pref::SFX::hrtfProfile
Adds reverb functionality to sound system
TODO: Make a proper sfxMixer api that will route voices to channels that have the effects slots added to them. this is just a place holder for a more complete implementation
DSound has since been deprecated and xaudio2 would require us to write our own 3d spatialization and mixer
Load devices the same way we load in the gfx end
setup sfx provider
run sfx devices on startup
various fixes around sfx null device
added the bitrate and samplerate globals
added the hrtf global code is in to use this but not setup yet
Adds speed of sound to the sound system
SFXAmbience now has a property for speed of sound for different mediums, can also be set directly
camerasplines in general previously assumed you would always want to ease in and out at the first and final node. even when looping. adds an mUsease to it, and to pathshapedata to optionally shut that off. (on by default to behave as legacy)
Also fixes how the shapeConstructor is searched/parsed when doing reimports vs new import creations
Fixes incorrect assetId usage in some of the prototyping shape constructors so they match now
this laregly occured due to adding ribbon nodes in smaller increments than the size of a given quad.
we therefore skip adding new ribbon nodes if velocity, as determined by the point deltas, would be below 10% of the largest scale a given quad for that link in the ribbon would be.
as this will result in lower than a max length ribbon, also adds a timeout mechanism of removing a link every TickMS (32 ticks/second, or roughly how often one would also be aded when in a growth state)
for full finalization do still need to circle back and adress why there remains 1 quad spawned after motion.
similar https://github.com/TorqueGameEngines/Torque3D/pull/1497,
Con::executef( object, "onEditorRender", getIdString(), buf[0], buf[1] );
floods the console, making trace(true/false); unusable, so add a guard for that that shuts that off for that case.
- Adds proper marking of Load status for levelAsset, so if no mis file is defined then the asset fails to load and has proper error code
- Adjusts the get*Path() util methods for getting stuff like postFXPrefix or decal files to have a fallback if one isn't currently defined in the assetDef, as it could be a broken link but the file does exist
- Adjusts saving logic of level so it will properly update the levelAsset for postfx prefix or decal files so if they were added after creation of the assetdef, they're saved and updated as expected
- Adjusts the setter methods for the *File fields to correctly separate the File variable and Path variable to make things behave more clearly and consistently.
- Keeps checks for *.mis.decals file pattern, but shifts new creations of decals files to just be *.decals to better match other level-associated files like *.nav or *.forest
- Clicking the [...] button from the Particle Emitter tab now opens to the Particle tab *and* properly selects the particle data to be edited
- Selecting an emitter object in the map and opening the particle editor now selects the Particle Data to be edited
- Selecting a new Particle Data for a particles slot on a Particle Emitter in the editor now correctly updates the values and updates the field display
- Made it so if clicking [...] button on the ParticleEmitterData or other similar fields for objects, it will now open to the Particle editor instead of the Datablock editor
add minimal padding to counteract floating point flurrer when rounding due to changes in parent element scale
revisit the aspect maintining resizer math to correct a few failures with live editing the values.
the player class (and resource derivatives, contain a mix of hardcoded animation names, as well as scriptable ones that can be tripped via playthread/setActionThread.
to determine if an animation within the stored vector is hardcoded or a scripted oneoff for that mesh, theres a demarcation at NumTableActionAnims for the up to 512 animation slots available.
when deriving from player, we must therefore allow that entry to be overridden for any class which adds additional hardcoded animations
therefore this introduces a datablock-level entry for the marked slot.