Removed the old SHAPE_ASSET macros
Implements AssetRef struct that acts as a universal wrapper for an templated AssetPtr and AssetId pair
Adds Type handling for AssetRef for ShapeAsset to unify handling in classes that utilize a shapeAsset, so assigning an assetPtr or an assetId will keep a record of the assignment in the event the assetPtr is invalid.
Update all classes that utilized the old SHAPE_ASSET macros to utilize the AssetRef struct and updated the class code to utilize it to provide much more clean and concise code that isn't blocked behind macro definitions
Added a new example class: shapeDatablockExample which allows render of a simple shape object utilizing a simple example datablock.
If we define an array field have every other field inside that array declared inherit its element count. Can be override with a .elements(N) if N is > 1.
Use the field descriptor struct to add fields instead of the overloads
Adds a visibility function to control whether a field is visible in the inspector
EG:
ADD_FIELD("soundFile", TypeAssetLooseFilePath, Offset(mSoundFile, SoundAsset))
.doc("Path to the sound file.")
.elements(SFXPlayList::SFXPlaylistSettings::NUM_SLOTS)
.onSet(&_setSoundFile);
the grammar can change to make these easier to work with, review changes carefully
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.
initServer callback is run the once
onCreateGameServer callback is run every mission load
for queueexec("filename",true); to work, that has to be from the same callback pool being executed.
given resources use the initServer, pool, shifted the damagemodel baseline there as well.
may want to revisit this one as time allows for quicker prototyping turnaround
Also adds callbacks so gamemodes/modules can provide custom camera modes.
This gives more control and integration of specialty camera types so it doesn't have to fight the editor's handling of camera modes/toggles.
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