diff --git a/Engine/source/T3D/player.cpp b/Engine/source/T3D/player.cpp index 7aabe0384..6ff20e298 100644 --- a/Engine/source/T3D/player.cpp +++ b/Engine/source/T3D/player.cpp @@ -477,9 +477,6 @@ bool PlayerData::preload(bool server, String &errorStr) { if (!getPlayerSoundProfile(i)) Con::errorf("PlayerData::Preload() - unable to find sfxProfile for asset %d %s", i, mPlayerSoundAssetId[i]); - - const char* enumString = castConsoleTypeToString(static_cast(i)); - Con::printf("preload: %s = %s", enumString, mPlayerSoundAssetId[i]); } } @@ -7045,11 +7042,11 @@ void Player::playFootstepSound( bool triggeredLeft, Material* contactMaterial, S } } } - else if( contactMaterial && contactMaterial->mFootstepSoundCustom ) + else if( contactMaterial && contactMaterial->getCustomFootstepSoundProfile()) { // Footstep sound defined on material. - SFX->playOnce( contactMaterial->mFootstepSoundCustom, &footMat ); + SFX->playOnce( contactMaterial->getCustomFootstepSoundProfile(), &footMat ); } else { @@ -7082,8 +7079,8 @@ void Player:: playImpactSound() { Material* material = ( rInfo.material ? dynamic_cast< Material* >( rInfo.material->getMaterial() ) : 0 ); - if( material && material->mImpactSoundCustom ) - SFX->playOnce( material->mImpactSoundCustom, &getTransform() ); + if( material && material->getCustomImpactSoundProfile() ) + SFX->playOnce( material->getCustomImpactSoundProfile(), &getTransform() ); else { S32 sound = -1; diff --git a/Engine/source/T3D/projectile.cpp b/Engine/source/T3D/projectile.cpp index 4150f1506..e43372720 100644 --- a/Engine/source/T3D/projectile.cpp +++ b/Engine/source/T3D/projectile.cpp @@ -367,10 +367,9 @@ bool ProjectileData::preload(bool server, String &errorStr) if (Sim::findObject(decalId, decal) == false) Con::errorf(ConsoleLogEntry::General, "ProjectileData::preload: Invalid packet, bad datablockId(decal): %d", decalId); + _setProjectileSound(getProjectileSound()); if (getProjectileSound() != StringTable->EmptyString()) { - _setProjectileSound(getProjectileSound()); - if (!getProjectileSoundProfile()) Con::errorf(ConsoleLogEntry::General, "SplashData::preload: Cant get an sfxProfile for splash."); } @@ -1101,7 +1100,7 @@ void Projectile::explode( const Point3F &p, const Point3F &n, const U32 collideT void Projectile::updateSound() { - if (!mDataBlock->getProjectileSound()) + if (!mDataBlock->isProjectileSoundValid()) return; if ( mSound ) diff --git a/Engine/source/afx/afxMagicMissile.cpp b/Engine/source/afx/afxMagicMissile.cpp index a67447248..900a2db05 100644 --- a/Engine/source/afx/afxMagicMissile.cpp +++ b/Engine/source/afx/afxMagicMissile.cpp @@ -142,8 +142,7 @@ U32 Projectile::smProjectileWarpTicks = 5; afxMagicMissileData::afxMagicMissileData() { INIT_ASSET(ProjectileShape); - - sound = NULL; + INIT_ASSET(ProjectileSound); /* From stock Projectile code... explosion = NULL; @@ -248,7 +247,7 @@ afxMagicMissileData::afxMagicMissileData(const afxMagicMissileData& other, bool { CLONE_ASSET(ProjectileShape); projectileShape = other.projectileShape; // -- TSShape loads using projectileShapeName - sound = other.sound; + CLONE_ASSET(ProjectileSound); splash = other.splash; splashId = other.splashId; // -- for pack/unpack of splash ptr lightDesc = other.lightDesc; @@ -338,7 +337,7 @@ void afxMagicMissileData::initPersistFields() INITPERSISTFIELD_SHAPEASSET(ProjectileShape, afxMagicMissileData, "Shape for the projectile"); addField("scale", TypePoint3F, Offset(scale, afxMagicMissileData)); - addField("sound", TypeSFXTrackName, Offset(sound, afxMagicMissileData)); + INITPERSISTFIELD_SOUNDASSET(ProjectileSound, afxMagicMissileData, "sound for the projectile"); /* From stock Projectile code... addField("explosion", TYPEID< ExplosionData >(), Offset(explosion, ProjectileData)); @@ -533,9 +532,12 @@ bool afxMagicMissileData::preload(bool server, String &errorStr) Con::errorf(ConsoleLogEntry::General, "ProjectileData::preload: Invalid packet, bad datablockId(decal): %d", decalId); */ - String sfxErrorStr; - if( !sfxResolve( &sound, sfxErrorStr) ) - Con::errorf(ConsoleLogEntry::General, "afxMagicMissileData::preload: Invalid packet: %s", sfxErrorStr.c_str()); + _setProjectileSound(getProjectileSound()); + if (getProjectileSound() != StringTable->EmptyString()) + { + if (!getProjectileSoundProfile()) + Con::errorf(ConsoleLogEntry::General, "afxMagicMissileData::preload: Cant get an sfxProfile for afxMagicMissileData."); + } if (!lightDesc && lightDescId != 0) if (Sim::findObject(lightDescId, lightDesc) == false) @@ -547,7 +549,7 @@ bool afxMagicMissileData::preload(bool server, String &errorStr) projectileShape = mProjectileShapeAsset->getShapeResource(); if (bool(projectileShape) == false) { - errorStr = String::ToString("afxMagicMissileData::load: Couldn't load shape \"%s\"", mProjectileShapeAssetId); + errorStr = String::ToString("afxMagicMissileData::preload: Couldn't load shape \"%s\"", mProjectileShapeAssetId); return false; } /* From stock Projectile code... @@ -641,7 +643,7 @@ void afxMagicMissileData::packData(BitStream* stream) DataBlockObjectIdLast); */ - sfxWrite( stream, sound ); + PACKDATA_ASSET(ProjectileSound); if ( stream->writeFlag(lightDesc != NULL)) stream->writeRangedU32(lightDesc->getId(), DataBlockObjectIdFirst, @@ -747,7 +749,7 @@ void afxMagicMissileData::unpackData(BitStream* stream) decalId = stream->readRangedU32(DataBlockObjectIdFirst, DataBlockObjectIdLast); */ - sfxRead( stream, &sound ); + UNPACKDATA_ASSET(ProjectileSound); if (stream->readFlag()) lightDescId = stream->readRangedU32(DataBlockObjectIdFirst, DataBlockObjectIdLast); @@ -1170,8 +1172,8 @@ bool afxMagicMissile::onNewDataBlock(GameBaseData* dptr, bool reload) SFX_DELETE( mSound ); - if ( mDataBlock->sound ) - mSound = SFX->createSource( mDataBlock->sound ); + if (mDataBlock->getProjectileSound()) + mSound = SFX->createSource(mDataBlock->getProjectileSoundProfile()); } return true; @@ -2006,7 +2008,7 @@ void afxMagicMissile::get_launch_data(Point3F& pos, Point3F& vel) void afxMagicMissile::updateSound() { - if (!mDataBlock->sound) + if (!mDataBlock->isProjectileSoundValid()) return; if ( mSound ) diff --git a/Engine/source/afx/afxMagicMissile.h b/Engine/source/afx/afxMagicMissile.h index 626dfd91d..4b3430918 100644 --- a/Engine/source/afx/afxMagicMissile.h +++ b/Engine/source/afx/afxMagicMissile.h @@ -126,7 +126,8 @@ public: SplashData* splash; // Water Splash Datablock S32 splashId; // Water splash ID - SFXTrack* sound; // Projectile Sound + DECLARE_SOUNDASSET(afxMagicMissileData, ProjectileSound); + DECLARE_ASSET_SETGET(afxMagicMissileData, ProjectileSound); LightDescription *lightDesc; S32 lightDescId; diff --git a/Engine/source/gui/controls/guiMLTextCtrl.cpp b/Engine/source/gui/controls/guiMLTextCtrl.cpp index 85d093f26..1b1c3184f 100644 --- a/Engine/source/gui/controls/guiMLTextCtrl.cpp +++ b/Engine/source/gui/controls/guiMLTextCtrl.cpp @@ -268,7 +268,7 @@ GuiMLTextCtrl::GuiMLTextCtrl() { mActive = true; //mInitialText = StringTable->EmptyString(); - Sim::findObject("InputDeniedSound", mDeniedSound); + INIT_ASSET(DeniedSound); } //-------------------------------------------------------------------------- @@ -290,7 +290,7 @@ void GuiMLTextCtrl::initPersistFields() addField("lineSpacing", TypeS32, Offset(mLineSpacingPixels, GuiMLTextCtrl), "The number of blank pixels to place between each line.\n"); addField("allowColorChars", TypeBool, Offset(mAllowColorChars, GuiMLTextCtrl), "If true, the control will allow characters to have unique colors."); addField("maxChars", TypeS32, Offset(mMaxBufferSize, GuiMLTextCtrl), "Maximum number of characters that the control will display."); - addField("deniedSound", TypeSFXTrackName, Offset(mDeniedSound, GuiMLTextCtrl), "If the text will not fit in the control, the deniedSound is played."); + INITPERSISTFIELD_SOUNDASSET(DeniedSound, GuiMLTextCtrl, "If the text will not fit in the control, the deniedSound is played."); addField("text", TypeCaseString, Offset( mInitialText, GuiMLTextCtrl ), "Text to display in this control."); addField("useURLMouseCursor", TypeBool, Offset(mUseURLMouseCursor, GuiMLTextCtrl), "If true, the mouse cursor will turn into a hand cursor while over a link in the text.\n" "This is dependant on the markup language used by the GuiMLTextCtrl\n"); @@ -323,6 +323,9 @@ bool GuiMLTextCtrl::onAdd() if (!mTextBuffer.length() && mInitialText[0] != 0) setText(mInitialText, dStrlen(mInitialText)+1); + + _setDeniedSound(getDeniedSound()); + return true; } @@ -917,8 +920,8 @@ void GuiMLTextCtrl::insertChars(const char* inputChars, if (numCharsToInsert <= 0) { // Play the "Denied" sound: - if ( numInputChars > 0 && mDeniedSound ) - SFX->playOnce(mDeniedSound); + if ( numInputChars > 0 && getDeniedSoundProfile()) + SFX->playOnce(getDeniedSoundProfile()); return; } diff --git a/Engine/source/gui/controls/guiMLTextCtrl.h b/Engine/source/gui/controls/guiMLTextCtrl.h index 8eb3ff263..177d4e0c4 100644 --- a/Engine/source/gui/controls/guiMLTextCtrl.h +++ b/Engine/source/gui/controls/guiMLTextCtrl.h @@ -31,6 +31,10 @@ #include "core/stringBuffer.h" #endif +#ifndef SOUND_ASSET_H +#include "T3D/assets/SoundAsset.h" +#endif + class GFont; class SFXTrack; @@ -258,8 +262,8 @@ class GuiMLTextCtrl : public GuiControl bool mUseURLMouseCursor; // Too many chars sound: - SFXTrack* mDeniedSound; - + DECLARE_SOUNDASSET(GuiMLTextCtrl, DeniedSound); + DECLARE_ASSET_SETGET(GuiMLTextCtrl, DeniedSound); //-------------------------------------- Protected interface protected: // Inserting and deleting character blocks... diff --git a/Engine/source/materials/materialDefinition.cpp b/Engine/source/materials/materialDefinition.cpp index 07a769ee7..1ed904bee 100644 --- a/Engine/source/materials/materialDefinition.cpp +++ b/Engine/source/materials/materialDefinition.cpp @@ -231,7 +231,8 @@ Material::Material() mFootstepSoundId = -1; mImpactSoundId = -1; mImpactFXIndex = -1; - mFootstepSoundCustom = 0; mImpactSoundCustom = 0; + INIT_ASSET(CustomFootstepSound); + INIT_ASSET(CustomImpactSound); mFriction = 0.0; mDirectSoundOcclusion = 1.f; @@ -476,7 +477,7 @@ void Material::initPersistFields() "- 16: PlayerData::impactWaterHard\n" "- 17: PlayerData::exitingWater\n"); - addField("customFootstepSound", TypeSFXTrackName, Offset(mFootstepSoundCustom, Material), + INITPERSISTFIELD_SOUNDASSET(CustomFootstepSound, Material, "The sound to play when the player walks over the material. If this is set, it overrides #footstepSoundId. This field is " "useful for directly assigning custom footstep sounds to materials without having to rely on the PlayerData sound assignment.\n\n" "@warn Be aware that materials are client-side objects. This means that the SFXTracks assigned to materials must be client-side, too."); @@ -488,7 +489,7 @@ void Material::initPersistFields() "What FX to play from the PlayerData sound list when the player impacts on the surface with a velocity equal or greater " "than PlayerData::groundImpactMinSpeed.\n\n" "For a list of IDs, see #impactFXId"); - addField("customImpactSound", TypeSFXTrackName, Offset(mImpactSoundCustom, Material), + INITPERSISTFIELD_SOUNDASSET(CustomImpactSound, Material, "The sound to play when the player impacts on the surface with a velocity equal or greater than PlayerData::groundImpactMinSpeed. " "If this is set, it overrides #impactSoundId. This field is useful for directly assigning custom impact sounds to materials " "without having to rely on the PlayerData sound assignment.\n\n" diff --git a/Engine/source/materials/materialDefinition.h b/Engine/source/materials/materialDefinition.h index 0e258e2c5..e29f53695 100644 --- a/Engine/source/materials/materialDefinition.h +++ b/Engine/source/materials/materialDefinition.h @@ -47,6 +47,9 @@ #ifndef _ASSET_PTR_H_ #include "assets/assetPtr.h" #endif +#ifndef SOUND_ASSET_H +#include "T3D/assets/SoundAsset.h" +#endif class CubemapData; class SFXTrack; @@ -367,8 +370,10 @@ public: /// Sound effect to play when walking on surface with this material. /// If defined, overrides mFootstepSoundId. /// @see mFootstepSoundId - SFXTrack* mFootstepSoundCustom; - SFXTrack* mImpactSoundCustom; + DECLARE_SOUNDASSET(Material, CustomFootstepSound); + DECLARE_ASSET_SETGET(Material, CustomFootstepSound); + DECLARE_SOUNDASSET(Material, CustomImpactSound); + DECLARE_ASSET_SETGET(Material, CustomImpactSound); F32 mFriction; ///< Friction coefficient when moving along surface. diff --git a/Engine/source/sfx/sfxAmbience.cpp b/Engine/source/sfx/sfxAmbience.cpp index e24b5b6e2..fa1d9ed5b 100644 --- a/Engine/source/sfx/sfxAmbience.cpp +++ b/Engine/source/sfx/sfxAmbience.cpp @@ -85,10 +85,10 @@ SFXAmbience::ChangeSignal SFXAmbience::smChangeSignal; SFXAmbience::SFXAmbience() : mDopplerFactor( 0.5f ), mRolloffFactor( 1.f ), - mSoundTrack( NULL ), mEnvironment( NULL ) { dMemset( mState, 0, sizeof( mState ) ); + INIT_ASSET(SoundTrack); } //----------------------------------------------------------------------------- @@ -100,7 +100,7 @@ void SFXAmbience::initPersistFields() addField( "environment", TypeSFXEnvironmentName, Offset( mEnvironment, SFXAmbience ), "Reverb environment active in the ambience zone.\n" "@ref SFX_reverb" ); - addField( "soundTrack", TypeSFXTrackName, Offset( mSoundTrack, SFXAmbience ), + INITPERSISTFIELD_SOUNDASSET(SoundTrack, SFXAmbience, "Sound track to play in the ambience zone." ); addField( "rolloffFactor", TypeF32, Offset( mRolloffFactor, SFXAmbience ), "The rolloff factor to apply to distance-based volume attenuation in this space.\n" @@ -131,7 +131,8 @@ bool SFXAmbience::onAdd() return false; Sim::getSFXAmbienceSet()->addObject( this ); - + + _setSoundTrack(getSoundTrack()); return true; } @@ -150,9 +151,13 @@ bool SFXAmbience::preload( bool server, String& errorStr ) { if( !sfxResolve( &mEnvironment, errorStr ) ) return false; - - if( !sfxResolve( &mSoundTrack, errorStr ) ) + + _setSoundTrack(getSoundTrack()); + if (!getSoundTrackProfile()) + { + Con::errorf("SFXAmbience::Preload() - unable to find sfxProfile for asset %s", mSoundTrackAssetId); return false; + } for( U32 i = 0; i < MaxStates; ++ i ) if( !sfxResolve( &mState[ i ], errorStr ) ) @@ -169,7 +174,7 @@ void SFXAmbience::packData( BitStream* stream ) Parent::packData( stream ); sfxWrite( stream, mEnvironment ); - sfxWrite( stream, mSoundTrack ); + PACKDATA_ASSET(SoundTrack); stream->write( mRolloffFactor ); stream->write( mDopplerFactor ); @@ -185,7 +190,7 @@ void SFXAmbience::unpackData( BitStream* stream ) Parent::unpackData( stream ); sfxRead( stream, &mEnvironment ); - sfxRead( stream, &mSoundTrack ); + UNPACKDATA_ASSET(SoundTrack); stream->read( &mRolloffFactor ); stream->read( &mDopplerFactor ); diff --git a/Engine/source/sfx/sfxAmbience.h b/Engine/source/sfx/sfxAmbience.h index 22d91be4e..598d42596 100644 --- a/Engine/source/sfx/sfxAmbience.h +++ b/Engine/source/sfx/sfxAmbience.h @@ -33,6 +33,9 @@ #include "core/util/tSignal.h" #endif +#ifndef SOUND_ASSET_H +#include "T3D/assets/SoundAsset.h" +#endif class SFXEnvironment; class SFXTrack; @@ -63,7 +66,8 @@ class SFXAmbience : public SimDataBlock F32 mRolloffFactor; /// Sound track to play when inside the ambient space. - SFXTrack* mSoundTrack; + DECLARE_SOUNDASSET(SFXAmbience, SoundTrack); + DECLARE_ASSET_SETGET(SFXAmbience, SoundTrack); /// Reverb environment to apply when inside the ambient space. SFXEnvironment* mEnvironment; @@ -89,10 +93,7 @@ class SFXAmbience : public SimDataBlock /// Return the reverb environment of the ambient space. SFXEnvironment* getEnvironment() const { return mEnvironment; } - - /// Return the ambient soundtrack of this ambient space. - SFXTrack* getSoundTrack() const { return mSoundTrack; } - + /// Return the given state bound to this ambient space. SFXState* getState( U32 i ) const { diff --git a/Engine/source/sfx/sfxController.cpp b/Engine/source/sfx/sfxController.cpp index 6bb5924b9..4946280ff 100644 --- a/Engine/source/sfx/sfxController.cpp +++ b/Engine/source/sfx/sfxController.cpp @@ -166,7 +166,7 @@ void SFXController::_compileList( SFXPlayList* playList ) // If there's no track in this slot, ignore it. - if( !playList->getSlots().mTrack[ slotIndex ] ) + if( !playList->getTrackProfile(slotIndex)) continue; // If this is a looped slot and the list is not set to loop @@ -393,7 +393,7 @@ bool SFXController::_execInsn() case OP_Play: { SFXPlayList* playList = getPlayList(); - SFXTrack* track = playList->getSlots().mTrack[ insn.mSlotIndex ]; + SFXTrack* track = playList->getTrackProfile(insn.mSlotIndex); // Handle existing sources playing on this slot and find // whether we need to start a new source. diff --git a/Engine/source/sfx/sfxPlayList.cpp b/Engine/source/sfx/sfxPlayList.cpp index ffbbaf68d..0e56d4607 100644 --- a/Engine/source/sfx/sfxPlayList.cpp +++ b/Engine/source/sfx/sfxPlayList.cpp @@ -220,6 +220,8 @@ SFXPlayList::SFXPlayList() mTrace( false ), mNumSlotsToPlay( NUM_SLOTS ) { + for (U32 i=0;iwrite( mSlots.mRepeatCount[ i ] ); FOR_EACH_SLOT sfxWrite( stream, mSlots.mState[ i ] ); - FOR_EACH_SLOT sfxWrite( stream, mSlots.mTrack[ i ] ); + FOR_EACH_SLOT PACKDATA_ASSET_ARRAY(Track, i); } //----------------------------------------------------------------------------- @@ -458,7 +464,7 @@ void SFXPlayList::unpackData( BitStream* stream ) FOR_EACH_SLOT if(stream->readFlag()){ stream->read( &mSlots.mRepeatCount[ i ] );} FOR_EACH_SLOT sfxRead( stream, &mSlots.mState[ i ] ); - FOR_EACH_SLOT sfxRead( stream, &mSlots.mTrack[ i ] ); + FOR_EACH_SLOT UNPACKDATA_ASSET_ARRAY(Track, i); #undef FOR_EACH_SLOT } diff --git a/Engine/source/sfx/sfxPlayList.h b/Engine/source/sfx/sfxPlayList.h index 6bde33734..1043bf988 100644 --- a/Engine/source/sfx/sfxPlayList.h +++ b/Engine/source/sfx/sfxPlayList.h @@ -30,6 +30,10 @@ #include "sfx/sfxTrack.h" #endif +#ifndef SOUND_ASSET_H +#include "T3D/assets/SoundAsset.h" +#endif + class SFXState; @@ -256,10 +260,7 @@ class SFXPlayList : public SFXTrack /// Bahavior when state of this slot is deactivated and the slot's track /// is playing. EStateMode mStateMode[ NUM_SLOTS ]; - - /// Track to play in this slot. - SFXTrack* mTrack[ NUM_SLOTS ]; - + SlotData() { dMemset( mReplayMode, 0, sizeof( mReplayMode ) ); @@ -267,7 +268,6 @@ class SFXPlayList : public SFXTrack dMemset( mTransitionOut, 0, sizeof( mTransitionOut ) ); dMemset( mRepeatCount, 0, sizeof( mRepeatCount ) ); dMemset( mState, 0, sizeof( mState ) ); - dMemset( mTrack, 0, sizeof( mTrack ) ); dMemset( mStateMode, 0, sizeof( mStateMode ) ); for( U32 i = 0; i < NUM_SLOTS; ++ i ) @@ -282,7 +282,9 @@ class SFXPlayList : public SFXTrack } } }; - + DECLARE_SOUNDASSET_ARRAY(SFXPlayList, Track, NUM_SLOTS); + DECLARE_ASSET_ARRAY_SETGET(SFXPlayList, Track); + protected: /// Trace interpreter execution. This field is not networked. diff --git a/Engine/source/sfx/sfxSoundscape.cpp b/Engine/source/sfx/sfxSoundscape.cpp index 855ebd2be..c90015ffc 100644 --- a/Engine/source/sfx/sfxSoundscape.cpp +++ b/Engine/source/sfx/sfxSoundscape.cpp @@ -150,7 +150,7 @@ void SFXSoundscapeManager::update() if( !soundscape->_isOverridden() ) { - SFXTrack* track = ambience->getSoundTrack(); + SFXTrack* track = ambience->getSoundTrackProfile(); if( !soundscape->mSource || soundscape->mSource->getTrack() != track ) { if( soundscape->mSource != NULL ) diff --git a/Templates/BaseGame/game/tools/materialEditor/scripts/materialEditor.ed.tscript b/Templates/BaseGame/game/tools/materialEditor/scripts/materialEditor.ed.tscript index 8a21c9907..5deca8a4c 100644 --- a/Templates/BaseGame/game/tools/materialEditor/scripts/materialEditor.ed.tscript +++ b/Templates/BaseGame/game/tools/materialEditor/scripts/materialEditor.ed.tscript @@ -95,11 +95,15 @@ function MaterialEditorGui::open(%this) %sounds = "" TAB "" TAB "" TAB "" TAB ""; // Default sounds - // Get custom sound datablocks - foreach (%db in DataBlockSet) + %assetQuery = new AssetQuery(); + AssetDatabase.findAssetType(%assetQuery, "SoundAsset"); + + %count = %assetQuery.getCount(); + // Get custom sound assets + for(%i=0; %i < %count; %i++) { - if (%db.isMemberOfClass("SFXTrack")) - %sounds = %sounds TAB %db.getName(); + %assetId = %assetQuery.getAsset(%i); + %sounds = %sounds TAB %assetId; } %count = getFieldCount(%sounds); @@ -1504,7 +1508,7 @@ function MaterialEditorGui::updateBehaviorSound(%this, %type, %sound) } %this.updateActiveMaterial(%type @ "SoundId", %defaultId); - %this.updateActiveMaterial("custom" @ %type @ "Sound", %customName); + %this.updateActiveMaterial("custom" @ %type @ "SoundAsset", %customName); } function MaterialEditorGui::updateSoundPopup(%this, %type, %defaultId, %customName) diff --git a/Templates/BaseGame/game/tools/projectImporter/scripts/pre40/T3Dpre4ProjectImporter.tscript b/Templates/BaseGame/game/tools/projectImporter/scripts/pre40/T3Dpre4ProjectImporter.tscript index 119ba6066..78cdfecf8 100644 --- a/Templates/BaseGame/game/tools/projectImporter/scripts/pre40/T3Dpre4ProjectImporter.tscript +++ b/Templates/BaseGame/game/tools/projectImporter/scripts/pre40/T3Dpre4ProjectImporter.tscript @@ -839,7 +839,7 @@ T3Dpre4ProjectImporter::genProcessor("LevelInfo", "accuTexture accuTextureAsset" T3Dpre4ProjectImporter::genProcessor("TSStatic", "shape shapeAsset shapeName shapeAsset"); T3Dpre4ProjectImporter::genProcessor("TSForestItemData", "shape shapeAsset shapeName shapeAsset shapeFile shapeAsset"); T3Dpre4ProjectImporter::genProcessor("TerrainBlock", "terrainFile terrainAsset"); -T3Dpre4ProjectImporter::genProcessor("afxMagicMissileData", "projectileShapeName projectileShapeAsset sound soundAsset"); +T3Dpre4ProjectImporter::genProcessor("afxMagicMissileData", "projectileShape projectileShapeAsset projectileShapeName projectileShapeAsset sound projectileSoundAsset"); T3Dpre4ProjectImporter::genProcessor("afxBillboardData", "texture textureAsset"); T3Dpre4ProjectImporter::genProcessor("afxModelData", "shapeName shapeAsset shapeFile shapeAsset"); T3Dpre4ProjectImporter::genProcessor("afxZodiacData", "texture textureAsset"); @@ -902,6 +902,7 @@ T3Dpre4ProjectImporter::genProcessor("GuiProgressBitmap", "bitmap bitmapAsset"); T3Dpre4ProjectImporter::genProcessor("GuiMissionArea", "handleBitmap handleBitmapAsset"); T3Dpre4ProjectImporter::genProcessor("WorldEditor", "selectHandle selectHandleAsset defaultHandle defaultHandleAsset lockedHandle lockedHandleAsset"); T3Dpre4ProjectImporter::genProcessor("GuiControlProfile", "bitmap bitmapAsset"); +T3Dpre4ProjectImporter::genProcessor("GuiMLTextCtrl", "deniedSound deniedSoundAsset"); function T3Dpre4ProjectImporter::processGuiBitmapButtonCtrlLine(%this, %line) { @@ -925,7 +926,7 @@ T3Dpre4ProjectImporter::genProcessor("SplashData", "texture textureAsset soundPr T3Dpre4ProjectImporter::genProcessor("LightFlareData", "flareTexture flareTextureAsset"); T3Dpre4ProjectImporter::genProcessor("PhysicsDebrisData", "shape shapeAsset shapeFile shapeAsset"); T3Dpre4ProjectImporter::genProcessor("PhysicsShapeData", "shape shapeAsset shapeName shapeAsset"); -T3Dpre4ProjectImporter::genProcessor("ProjectileData", "projectileShape projectileShapeAsset projectileShapeName projectileShapeAsset sound soundAsset"); +T3Dpre4ProjectImporter::genProcessor("ProjectileData", "projectileShape projectileShapeAsset projectileShapeName projectileShapeAsset sound projectileSoundAsset"); T3Dpre4ProjectImporter::genProcessor("ShapeBaseData", "shapeFile shapeAsset shape shapeAsset debrisShape debrisShapeAsset debrisShapeName debrisShapeAsset"); T3Dpre4ProjectImporter::genProcessor("ShapeBaseImageData", "shape shapeAsset[0] shapeFP shapeAsset[1] shapeFile shapeAsset[0] shapeFileFP shapeAsset[1] stateSound stateSoundAsset"); T3Dpre4ProjectImporter::genProcessor("ProximityMineData","armingSound ArmSoundAsset TriggerSound TriggerSoundAsset"); @@ -937,13 +938,13 @@ T3Dpre4ProjectImporter::genProcessor("HoverVehicleData", "engineSound engineSoun //============================================================================== // Datablocks - Long Lists //============================================================================== - +// - RigidShapeData $rigidEntriesList = "softImpactSound softImpactSoundAsset hardImpactSound hardImpactSoundAsset"; $rigidEntriesList = $rigidEntriesList SPC "exitingWater exitingWaterAsset impactWaterEasy impactWaterEasyAsset"; $rigidEntriesList = $rigidEntriesList SPC "impactWaterMedium impactWaterMediumAsset impactWaterHard impactWaterHardAsset"; $rigidEntriesList = $rigidEntriesList SPC "waterWakeSound waterWakeSoundAsset"; T3Dpre4ProjectImporter::genProcessor("RigidShapeData",$rigidEntriesList); - +// - PlayerData $PlayerEntriesList = "shapeFP shapeFPAsset shapeNameFP shapeFPAsset"; $PlayerEntriesList = $PlayerEntriesList SPC "FootSoftSound FootSoftAsset FootHardSound FootHardAsset FootMetalSound FootMetal"; $PlayerEntriesList = $PlayerEntriesList SPC "FootSnowSound FootSnowAsset FootShallowSound FootShallowSplashAsset"; @@ -954,50 +955,21 @@ $PlayerEntriesList = $PlayerEntriesList SPC "impactSoftSound ImpactSoftAsset imp $PlayerEntriesList = $PlayerEntriesList SPC "impactMetalSound ImpactMetalAsset impactSnowSound impactSnowAsset"; $PlayerEntriesList = $PlayerEntriesList SPC "impactWaterEasy impactWaterEasyAsset impactWaterMedium impactWaterMediumAsset impactWaterHard impactWaterHardAsset"; $PlayerEntriesList = $PlayerEntriesList SPC "exitingWater ExitWaterAsset"; - - T3Dpre4ProjectImporter::genProcessor("PlayerData", $PlayerEntriesList); +// - Material +$MaterialEntriesList = "baseTex diffuseMapAsset diffuseMap diffuseMapAsset"; +$MaterialEntriesList = $MaterialEntriesList SPC "lightMap lightMapAsset toneMap toneMapAsset"; +$MaterialEntriesList = $MaterialEntriesList SPC "detailTex detailMapAsset detailMap detailMapAsset detailNormalMap detailNormalMapAsset"; +$MaterialEntriesList = $MaterialEntriesList SPC "overlayTex overlayMapAsset overlayMap overlayMapAsset"; +$MaterialEntriesList = $MaterialEntriesList SPC "bumpTex normalMapAsset normalMap normalMapAsset +$MaterialEntriesList = $MaterialEntriesList SPC "ormConfigMap ormConfigMapAsset roughMap roughMapAsset"; +$MaterialEntriesList = $MaterialEntriesList SPC "aoMap aoMapAsset metalMap metalMapAsset"; +$MaterialEntriesList = $MaterialEntriesList SPC "glowMap glowMapAsset"; +$MaterialEntriesList = $MaterialEntriesList SPC "customFootstepSound customFootstepSoundAsset customImpactSound customImpactSoundAsset"; +T3Dpre4ProjectImporter::genProcessor("Material", $MaterialEntriesList); //============================================================================== // Materials //============================================================================== -//long form of the result of T3Dpre4ProjectImporter::genProcessor since that would result in a rediculously long oneliner -function T3Dpre4ProjectImporter::processMaterialLine(%this, %line) -{ - %outLine = processLegacyField(%line, "baseTex", "diffuseMapAsset"); - if(%outLine !$= %line) return %outLine; - %outLine = processLegacyField(%line, "diffuseMap", "diffuseMapAsset"); - if(%outLine !$= %line) return %outLine; - %outLine = processLegacyField(%line, "lightMap", "lightMapAsset"); - if(%outLine !$= %line) return %outLine; - %outLine = processLegacyField(%line, "toneMap", "toneMapAsset"); - if(%outLine !$= %line) return %outLine; - %outLine = processLegacyField(%line, "detailTex", "detailMapAsset"); - if(%outLine !$= %line) return %outLine; - %outLine = processLegacyField(%line, "detailMap", "detailMapAsset"); - if(%outLine !$= %line) return %outLine; - %outLine = processLegacyField(%line, "overlayTex", "overlayMapAsset"); - if(%outLine !$= %line) return %outLine; - %outLine = processLegacyField(%line, "overlayMap", "overlayMapAsset"); - if(%outLine !$= %line) return %outLine; - %outLine = processLegacyField(%line, "bumpTex", "normalMapAsset"); - if(%outLine !$= %line) return %outLine; - %outLine = processLegacyField(%line, "normalMap", "normalMapAsset"); - if(%outLine !$= %line) return %outLine; - %outLine = processLegacyField(%line, "ormConfigMap", "ormConfigMapAsset"); - if(%outLine !$= %line) return %outLine; - %outLine = processLegacyField(%line, "roughMap", "roughMapAsset"); - if(%outLine !$= %line) return %outLine; - %outLine = processLegacyField(%line, "aoMap", "aoMapAsset"); - if(%outLine !$= %line) return %outLine; - %outLine = processLegacyField(%line, "metalMap", "metalMapAsset"); - if(%outLine !$= %line) return %outLine; - %outLine = processLegacyField(%line, "glowMap", "glowMapAsset"); - if(%outLine !$= %line) return %outLine; - %outLine = processLegacyField(%line, "detailNormalMap", "detailNormalMapAsset"); - if(%outLine !$= %line) return %outLine; - return %line; -} - function T3Dpre4ProjectImporter::processMaterialObject(%this, %file, %objectName) { %matAsset = MaterialAsset::getAssetIdByMaterialName(%objectName); @@ -1107,6 +1079,9 @@ T3Dpre4ProjectImporter::genProcessor("PostEffect", "texture textureAsset"); // Using existing SFXProfiles allows us to also injest the descriptions, giving us // our meta-properties on the sound asset itself. //============================================================================== +T3Dpre4ProjectImporter::genProcessor("SFXAmbience", "soundTrack soundTrackAsset"); +T3Dpre4ProjectImporter::genProcessor("SFXPlayList", "track trackAsset"); + function T3Dpre4ProjectImporter::processSFXProfileLine(%this, %line) { return %line; @@ -1342,5 +1317,4 @@ function processGuiBitmapButtonCtrlField(%line, %originalFieldName, %newFieldNam { return %line; } -} - +} \ No newline at end of file