mirror of
https://github.com/TorqueGameEngines/Torque3D.git
synced 2026-07-14 16:14:38 +00:00
-SoundAsset added init for enum types.
-Vehicles updated to use enum initpersistfield.
This commit is contained in:
parent
76addc52eb
commit
6bec47d3fa
5 changed files with 62 additions and 8 deletions
|
|
@ -371,6 +371,16 @@ DefineEngineMethod(className, set##name, bool, (const char* shape), , assetText
|
||||||
|
|
||||||
#pragma endregion
|
#pragma endregion
|
||||||
|
|
||||||
|
#define assetEnumNameConcat(x,suff,ForT)(new std::string(std::string(#x) + suff + std::string(#ForT)))->c_str()
|
||||||
|
|
||||||
|
#define INITPERSISTFIELD_SOUNDASSET_ENUMED(name, enumType, maxValue, consoleClass, docs) \
|
||||||
|
for (U32 i = 0; i <= maxValue; i++)\
|
||||||
|
{\
|
||||||
|
const char* enumString = castConsoleTypeToString(static_cast<enumType>(i));\
|
||||||
|
addProtectedField(assetEnumNameConcat(name,enumString, File), TypeSoundFilename, Offset(m##name##Name[i], consoleClass), _set##name##Data, & defaultProtectedGetFn, assetText(name, docs), AbstractClassRep::FIELD_HideInInspectors); \
|
||||||
|
addProtectedField(assetEnumNameConcat(name,enumString, Asset), TypeSoundAssetId, Offset(m##name##AssetId[i], consoleClass), _set##name##Data, & defaultProtectedGetFn, assetText(name, asset reference.));\
|
||||||
|
}\
|
||||||
|
|
||||||
#pragma region Arrayed Asset Macros
|
#pragma region Arrayed Asset Macros
|
||||||
|
|
||||||
#define DECLARE_SOUNDASSET_ARRAY(className,name,max) public: \
|
#define DECLARE_SOUNDASSET_ARRAY(className,name,max) public: \
|
||||||
|
|
|
||||||
|
|
@ -68,6 +68,16 @@ ConsoleDocClass( HoverVehicle,
|
||||||
"@ingroup Vehicles\n"
|
"@ingroup Vehicles\n"
|
||||||
);
|
);
|
||||||
|
|
||||||
|
typedef HoverVehicleData::Sounds hoverSoundsEnum;
|
||||||
|
DefineEnumType(hoverSoundsEnum);
|
||||||
|
|
||||||
|
ImplementEnumType(hoverSoundsEnum, "enum types.\n"
|
||||||
|
"@ingroup HoverVehicleData\n\n")
|
||||||
|
{ HoverVehicleData::JetSound, "JetSound", "..." },
|
||||||
|
{ HoverVehicleData::EngineSound, "EngineSound", "..." },
|
||||||
|
{ HoverVehicleData::FloatSound, "FloatSound", "..." },
|
||||||
|
EndImplementEnumType;
|
||||||
|
|
||||||
namespace {
|
namespace {
|
||||||
|
|
||||||
const U32 sCollisionMoveMask = (TerrainObjectType | PlayerObjectType |
|
const U32 sCollisionMoveMask = (TerrainObjectType | PlayerObjectType |
|
||||||
|
|
@ -232,7 +242,7 @@ void HoverVehicleData::initPersistFields()
|
||||||
addField( "pitchForce", TypeF32, Offset(pitchForce, HoverVehicleData),
|
addField( "pitchForce", TypeF32, Offset(pitchForce, HoverVehicleData),
|
||||||
"Pitch (rotation about the X-axis) force applied when steering in the y-axis direction." );
|
"Pitch (rotation about the X-axis) force applied when steering in the y-axis direction." );
|
||||||
|
|
||||||
INITPERSISTFIELD_SOUNDASSET_ARRAY(HoverSounds, Sounds::MaxSounds, HoverVehicleData, "Sounds for hover vehicle.");
|
INITPERSISTFIELD_SOUNDASSET_ENUMED(HoverSounds, hoverSoundsEnum, Sounds::MaxSounds, HoverVehicleData, "Sounds for hover vehicle.");
|
||||||
|
|
||||||
addField( "dustTrailEmitter", TYPEID< ParticleEmitterData >(), Offset(dustTrailEmitter, HoverVehicleData),
|
addField( "dustTrailEmitter", TYPEID< ParticleEmitterData >(), Offset(dustTrailEmitter, HoverVehicleData),
|
||||||
"Emitter to generate particles for the vehicle's dust trail.\nThe trail "
|
"Emitter to generate particles for the vehicle's dust trail.\nThe trail "
|
||||||
|
|
@ -307,7 +317,7 @@ bool HoverVehicleData::preload(bool server, String &errorStr)
|
||||||
if (!server) {
|
if (!server) {
|
||||||
|
|
||||||
for (S32 i = 0; i < MaxSounds; i++)
|
for (S32 i = 0; i < MaxSounds; i++)
|
||||||
if (mHoverSounds[i])
|
if (getHoverSounds(i) != StringTable->EmptyString())
|
||||||
{
|
{
|
||||||
_setHoverSounds(getHoverSounds(i), i);
|
_setHoverSounds(getHoverSounds(i), i);
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -80,6 +80,28 @@ static U32 sTriggerMask = ItemObjectType |
|
||||||
|
|
||||||
IMPLEMENT_CONOBJECT(VehicleData);
|
IMPLEMENT_CONOBJECT(VehicleData);
|
||||||
|
|
||||||
|
typedef VehicleData::Body::Sounds bodySounds;
|
||||||
|
DefineEnumType(bodySounds);
|
||||||
|
|
||||||
|
ImplementEnumType(bodySounds, "enum types.\n"
|
||||||
|
"@ingroup VehicleData\n\n")
|
||||||
|
{ VehicleData::Body::SoftImpactSound, "SoftImpactSound", "..." },
|
||||||
|
{ VehicleData::Body::HardImpactSound, "HardImpactSound", "..." },
|
||||||
|
EndImplementEnumType;
|
||||||
|
|
||||||
|
|
||||||
|
typedef VehicleData::Sounds vehSoundsEnum;
|
||||||
|
DefineEnumType(vehSoundsEnum);
|
||||||
|
|
||||||
|
ImplementEnumType(vehSoundsEnum, "enum types.\n"
|
||||||
|
"@ingroup VehicleData\n\n")
|
||||||
|
{ VehicleData::ExitWater, "ExitWater", "..." },
|
||||||
|
{ VehicleData::ImpactSoft, "ImpactSoft", "..." },
|
||||||
|
{ VehicleData::ImpactMedium, "ImpactMedium", "..." },
|
||||||
|
{ VehicleData::ImpactHard, "ImpactHard", "..." },
|
||||||
|
{ VehicleData::Wake, "Wake", "..." },
|
||||||
|
EndImplementEnumType;
|
||||||
|
|
||||||
ConsoleDocClass( VehicleData,
|
ConsoleDocClass( VehicleData,
|
||||||
"@brief Base properties shared by all Vehicles (FlyingVehicle, HoverVehicle, "
|
"@brief Base properties shared by all Vehicles (FlyingVehicle, HoverVehicle, "
|
||||||
"WheeledVehicle).\n\n"
|
"WheeledVehicle).\n\n"
|
||||||
|
|
@ -219,7 +241,7 @@ bool VehicleData::preload(bool server, String &errorStr)
|
||||||
if (!server) {
|
if (!server) {
|
||||||
for (S32 i = 0; i < Body::MaxSounds; i++)
|
for (S32 i = 0; i < Body::MaxSounds; i++)
|
||||||
{
|
{
|
||||||
if (mVehicleBodySounds[i])
|
if (getVehicleBodySounds(i) != StringTable->EmptyString() )
|
||||||
{
|
{
|
||||||
_setVehicleBodySounds(getVehicleBodySounds(i), i);
|
_setVehicleBodySounds(getVehicleBodySounds(i), i);
|
||||||
}
|
}
|
||||||
|
|
@ -227,7 +249,7 @@ bool VehicleData::preload(bool server, String &errorStr)
|
||||||
|
|
||||||
for (S32 j = 0; j < Sounds::MaxSounds; j++)
|
for (S32 j = 0; j < Sounds::MaxSounds; j++)
|
||||||
{
|
{
|
||||||
if (mVehicleWaterSounds[j])
|
if (getVehicleWaterSounds(j) != StringTable->EmptyString())
|
||||||
{
|
{
|
||||||
_setVehicleWaterSounds(getVehicleWaterSounds(j), j);
|
_setVehicleWaterSounds(getVehicleWaterSounds(j), j);
|
||||||
}
|
}
|
||||||
|
|
@ -503,7 +525,7 @@ void VehicleData::initPersistFields()
|
||||||
"Collision friction coefficient.\nHow well this object will slide against "
|
"Collision friction coefficient.\nHow well this object will slide against "
|
||||||
"objects it collides with." );
|
"objects it collides with." );
|
||||||
|
|
||||||
INITPERSISTFIELD_SOUNDASSET_ARRAY(VehicleBodySounds, Body::Sounds::MaxSounds, VehicleData, "Sounds for vehicle body impacts.");
|
INITPERSISTFIELD_SOUNDASSET_ENUMED(VehicleBodySounds, bodySounds, Body::Sounds::MaxSounds, VehicleData, "Sounds for vehicle body impacts.");
|
||||||
|
|
||||||
addField( "minImpactSpeed", TypeF32, Offset(minImpactSpeed, VehicleData),
|
addField( "minImpactSpeed", TypeF32, Offset(minImpactSpeed, VehicleData),
|
||||||
"Minimum collision speed for the onImpact callback to be invoked." );
|
"Minimum collision speed for the onImpact callback to be invoked." );
|
||||||
|
|
@ -601,7 +623,7 @@ void VehicleData::initPersistFields()
|
||||||
"Minimum velocity when entering the water for the imapactWaterHard sound "
|
"Minimum velocity when entering the water for the imapactWaterHard sound "
|
||||||
"to play.\n\n@see impactWaterHard" );
|
"to play.\n\n@see impactWaterHard" );
|
||||||
|
|
||||||
INITPERSISTFIELD_SOUNDASSET_ARRAY(WaterSounds, Sounds::MaxSounds, VehicleData, "Sounds for interacting with water.");
|
INITPERSISTFIELD_SOUNDASSET_ENUMED(WaterSounds, vehSoundsEnum, VehicleData::Sounds::MaxSounds, VehicleData, "Sounds for interacting with water.");
|
||||||
|
|
||||||
addField( "collDamageThresholdVel", TypeF32, Offset(collDamageThresholdVel, VehicleData),
|
addField( "collDamageThresholdVel", TypeF32, Offset(collDamageThresholdVel, VehicleData),
|
||||||
"Minimum collision velocity to cause damage to this vehicle.\nCurrently unused." );
|
"Minimum collision velocity to cause damage to this vehicle.\nCurrently unused." );
|
||||||
|
|
|
||||||
|
|
@ -289,6 +289,17 @@ ConsoleDocClass( WheeledVehicleData,
|
||||||
"@ingroup Vehicles\n"
|
"@ingroup Vehicles\n"
|
||||||
);
|
);
|
||||||
|
|
||||||
|
typedef WheeledVehicleData::Sounds wheelSoundsEnum;
|
||||||
|
DefineEnumType(wheelSoundsEnum);
|
||||||
|
|
||||||
|
ImplementEnumType(wheelSoundsEnum, "enum types.\n"
|
||||||
|
"@ingroup WheeledVehicleData\n\n")
|
||||||
|
{WheeledVehicleData::JetSound, "JetSound", "..." },
|
||||||
|
{WheeledVehicleData::EngineSound, "EngineSound", "..." },
|
||||||
|
{WheeledVehicleData::SquealSound, "SquealSound", "..." },
|
||||||
|
{WheeledVehicleData::WheelImpactSound, "WheelImpactSound", "..." },
|
||||||
|
EndImplementEnumType;
|
||||||
|
|
||||||
WheeledVehicleData::WheeledVehicleData()
|
WheeledVehicleData::WheeledVehicleData()
|
||||||
{
|
{
|
||||||
tireEmitter = 0;
|
tireEmitter = 0;
|
||||||
|
|
@ -335,7 +346,7 @@ bool WheeledVehicleData::preload(bool server, String &errorStr)
|
||||||
if (!server) {
|
if (!server) {
|
||||||
for (S32 i = 0; i < MaxSounds; i++)
|
for (S32 i = 0; i < MaxSounds; i++)
|
||||||
{
|
{
|
||||||
if (mWheeledVehicleSounds[i])
|
if (getWheeledVehicleSounds(i) != StringTable->EmptyString())
|
||||||
{
|
{
|
||||||
_setWheeledVehicleSounds(getWheeledVehicleSounds(i), i);
|
_setWheeledVehicleSounds(getWheeledVehicleSounds(i), i);
|
||||||
}
|
}
|
||||||
|
|
@ -437,7 +448,7 @@ bool WheeledVehicleData::mirrorWheel(Wheel* we)
|
||||||
|
|
||||||
void WheeledVehicleData::initPersistFields()
|
void WheeledVehicleData::initPersistFields()
|
||||||
{
|
{
|
||||||
INITPERSISTFIELD_SOUNDASSET_ARRAY(WheeledVehicleSounds, Sounds::MaxSounds, WheeledVehicleData, "Sounds related to wheeled vehicle.");
|
INITPERSISTFIELD_SOUNDASSET_ENUMED(WheeledVehicleSounds, wheelSoundsEnum, MaxSounds, WheeledVehicleData, "Sounds related to wheeled vehicle.");
|
||||||
|
|
||||||
addField("tireEmitter",TYPEID< ParticleEmitterData >(), Offset(tireEmitter, WheeledVehicleData),
|
addField("tireEmitter",TYPEID< ParticleEmitterData >(), Offset(tireEmitter, WheeledVehicleData),
|
||||||
"ParticleEmitterData datablock used to generate particles from each wheel "
|
"ParticleEmitterData datablock used to generate particles from each wheel "
|
||||||
|
|
|
||||||
|
|
@ -118,6 +118,7 @@ struct WheeledVehicleData: public VehicleData
|
||||||
WheelImpactSound,
|
WheelImpactSound,
|
||||||
MaxSounds,
|
MaxSounds,
|
||||||
};
|
};
|
||||||
|
|
||||||
DECLARE_SOUNDASSET_ARRAY(WheeledVehicleData, WheeledVehicleSounds, Sounds::MaxSounds);
|
DECLARE_SOUNDASSET_ARRAY(WheeledVehicleData, WheeledVehicleSounds, Sounds::MaxSounds);
|
||||||
DECLARE_SOUNDASSET_ARRAY_SETGET(WheeledVehicleData, WheeledVehicleSounds);
|
DECLARE_SOUNDASSET_ARRAY_SETGET(WheeledVehicleData, WheeledVehicleSounds);
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue