From 2e1add84be1783616ee58c091c4c00c8bcdc3b65 Mon Sep 17 00:00:00 2001 From: parax0 Date: Thu, 1 Sep 2016 18:02:26 -0600 Subject: [PATCH] Added support for sound properties, labelled most MP1 sound properties --- src/Core/CAudioManager.cpp | 48 +++++++++++-------- src/Core/CAudioManager.h | 9 ++++ src/Core/Resource/CAudioLookupTable.h | 2 +- src/Core/Resource/Cooker/CScriptCooker.cpp | 7 +++ src/Core/Resource/Factory/CScriptLoader.cpp | 7 +++ src/Core/Resource/Factory/CTemplateLoader.cpp | 1 + src/Core/Resource/Script/EPropertyType.h | 1 + src/Core/Resource/Script/IProperty.h | 14 ++++-- .../Resource/Script/IPropertyTemplate.cpp | 2 + src/Core/Resource/Script/IPropertyTemplate.h | 20 +++++++- src/Core/Resource/Script/IPropertyValue.h | 15 ++++++ src/Editor/PropertyEdit/CPropertyDelegate.cpp | 12 +++++ src/Editor/PropertyEdit/CPropertyModel.cpp | 29 +++++++++++ templates/mp1/Script/AtomicBeta.xml | 6 +-- templates/mp1/Script/Babygoth.xml | 10 ++-- templates/mp1/Script/BloodFlower.xml | 2 +- templates/mp1/Script/ChozoGhost.xml | 8 ++-- templates/mp1/Script/Drone.xml | 2 +- templates/mp1/Script/ElitePirate.xml | 10 ++-- templates/mp1/Script/EnergyBall.xml | 4 +- templates/mp1/Script/Eyeball.xml | 2 +- templates/mp1/Script/FishCloud.xml | 2 +- templates/mp1/Script/FlyingPirate.xml | 10 ++-- templates/mp1/Script/Geemer.xml | 6 +-- templates/mp1/Script/GunTurret.xml | 12 ++--- templates/mp1/Script/IceSheegoth.xml | 4 +- templates/mp1/Script/MetroidPrimeStage1.xml | 2 +- templates/mp1/Script/MetroidPrimeStage2.xml | 2 +- templates/mp1/Script/OmegaPirate.xml | 10 ++-- templates/mp1/Script/Puffer.xml | 2 +- templates/mp1/Script/Ridley.xml | 6 +-- templates/mp1/Script/SnakeWeedSwarm.xml | 6 +-- templates/mp1/Script/Sound.xml | 2 +- templates/mp1/Script/SpacePirate.xml | 10 ++-- templates/mp1/Script/SpecialFunction.xml | 6 +-- templates/mp1/Script/Thardus.xml | 10 ++-- templates/mp1/Script/VisorGoo.xml | 2 +- templates/mp1/Script/WallCrawlerSwarm.xml | 4 +- templates/mp1/Script/Warwasp.xml | 2 +- templates/mp1/Script/Water.xml | 10 ++-- templates/mp1/Script/WorldTeleporter.xml | 2 +- templates/mp1/Structs/PatternedInfo.xml | 4 +- templates/mp1/Structs/PrimeStruct4.xml | 2 +- 43 files changed, 221 insertions(+), 106 deletions(-) diff --git a/src/Core/CAudioManager.cpp b/src/Core/CAudioManager.cpp index 70b7b049..ac8ca0c6 100644 --- a/src/Core/CAudioManager.cpp +++ b/src/Core/CAudioManager.cpp @@ -56,30 +56,38 @@ void CAudioManager::LoadAssets() } } +SSoundInfo CAudioManager::GetSoundInfo(u32 SoundID) +{ + SSoundInfo Out; + Out.SoundID = SoundID; + Out.DefineID = mpAudioLookupTable->FindSoundDefineID(SoundID); + Out.pAudioGroup = nullptr; + + if (Out.DefineID != 0xFFFF) + { + auto Iter = mSfxIdMap.find(Out.DefineID); + if (Iter != mSfxIdMap.end()) + Out.pAudioGroup = Iter->second; + + if (mpProject->Game() >= eEchoesDemo) + Out.Name = mpSfxNameList->StringByIndex(Out.DefineID); + } + + return Out; +} + void CAudioManager::LogSoundInfo(u32 SoundID) { - u16 DefineID = mpAudioLookupTable->FindSoundDefineID(SoundID); + SSoundInfo SoundInfo = GetSoundInfo(SoundID); - if (DefineID == -1) - Log::Write("Invalid sound"); - - else + if (SoundInfo.DefineID != 0xFFFF) { - auto Iter = mSfxIdMap.find(DefineID); + if (mpProject->Game() >= eEchoesDemo) + Log::Write("Sound Name: " + SoundInfo.Name); - if (Iter != mSfxIdMap.end()) - { - if (mpProject->Game() >= eEchoesDemo) - { - TString SoundName = mpSfxNameList->StringByIndex(DefineID); - Log::Write("Sound Name: " + SoundName); - } - - CAudioGroup *pGroup = Iter->second; - Log::Write("Sound ID: " + TString::HexString(SoundID, 4)); - Log::Write("Define ID: " + TString::HexString(DefineID, 4)); - Log::Write("Audio Group: " + pGroup->Entry()->Name().ToUTF8()); - Log::Write(""); - } + Log::Write("Sound ID: " + TString::HexString(SoundInfo.SoundID, 4)); + Log::Write("Define ID: " + TString::HexString(SoundInfo.DefineID, 4)); + Log::Write("Audio Group: " + SoundInfo.pAudioGroup->Entry()->Name().ToUTF8()); + Log::Write(""); } } diff --git a/src/Core/CAudioManager.h b/src/Core/CAudioManager.h index d934540d..41b4296f 100644 --- a/src/Core/CAudioManager.h +++ b/src/Core/CAudioManager.h @@ -8,6 +8,14 @@ #include #include +struct SSoundInfo +{ + CAudioGroup *pAudioGroup; + TString Name; + u32 SoundID; + u16 DefineID; +}; + class CAudioManager { CGameProject *mpProject; @@ -20,6 +28,7 @@ class CAudioManager public: CAudioManager(CGameProject *pProj); void LoadAssets(); + SSoundInfo GetSoundInfo(u32 SoundID); void LogSoundInfo(u32 SoundID); }; diff --git a/src/Core/Resource/CAudioLookupTable.h b/src/Core/Resource/CAudioLookupTable.h index ba8f39d9..fc2c1f70 100644 --- a/src/Core/Resource/CAudioLookupTable.h +++ b/src/Core/Resource/CAudioLookupTable.h @@ -16,7 +16,7 @@ public: inline u16 FindSoundDefineID(u32 SoundID) { - ASSERT(SoundID >= 0 && SoundID < mDefineIDs.size()); + if (SoundID >= mDefineIDs.size()) return -1; return mDefineIDs[SoundID]; } }; diff --git a/src/Core/Resource/Cooker/CScriptCooker.cpp b/src/Core/Resource/Cooker/CScriptCooker.cpp index c58fd83c..12e73051 100644 --- a/src/Core/Resource/Cooker/CScriptCooker.cpp +++ b/src/Core/Resource/Cooker/CScriptCooker.cpp @@ -86,6 +86,13 @@ void CScriptCooker::WriteProperty(IProperty *pProp, bool InSingleStruct) break; } + case eSoundProperty: + { + TSoundProperty *pSoundCast = static_cast(pProp); + mpSCLY->WriteLong(pSoundCast->Get()); + break; + } + case eAssetProperty: { TAssetProperty *pAssetCast = static_cast(pProp); diff --git a/src/Core/Resource/Factory/CScriptLoader.cpp b/src/Core/Resource/Factory/CScriptLoader.cpp index 2bcb5892..a43f17c1 100644 --- a/src/Core/Resource/Factory/CScriptLoader.cpp +++ b/src/Core/Resource/Factory/CScriptLoader.cpp @@ -106,6 +106,13 @@ void CScriptLoader::ReadProperty(IProperty *pProp, u32 Size, IInputStream& rSCLY break; } + case eSoundProperty: + { + TSoundProperty *pSoundCast = static_cast(pProp); + pSoundCast->Set(rSCLY.ReadLong()); + break; + } + case eAssetProperty: { TAssetProperty *pAssetCast = static_cast(pProp); diff --git a/src/Core/Resource/Factory/CTemplateLoader.cpp b/src/Core/Resource/Factory/CTemplateLoader.cpp index e4339691..3c042be3 100644 --- a/src/Core/Resource/Factory/CTemplateLoader.cpp +++ b/src/Core/Resource/Factory/CTemplateLoader.cpp @@ -190,6 +190,7 @@ IPropertyTemplate* CTemplateLoader::CreateProperty(u32 ID, EPropertyType Type, c case eStringProperty: pOut = CREATE_PROP_TEMP(TStringTemplate); break; case eVector3Property: pOut = CREATE_PROP_TEMP(TVector3Template); break; case eColorProperty: pOut = CREATE_PROP_TEMP(TColorTemplate); break; + case eSoundProperty: pOut = CREATE_PROP_TEMP(TSoundTemplate); break; case eAssetProperty: pOut = CREATE_PROP_TEMP(CAssetTemplate); break; case eCharacterProperty: pOut = CREATE_PROP_TEMP(TCharacterTemplate); break; case eMayaSplineProperty: pOut = CREATE_PROP_TEMP(TMayaSplineTemplate); break; diff --git a/src/Core/Resource/Script/EPropertyType.h b/src/Core/Resource/Script/EPropertyType.h index 4e90e8b2..0cfad3e1 100644 --- a/src/Core/Resource/Script/EPropertyType.h +++ b/src/Core/Resource/Script/EPropertyType.h @@ -15,6 +15,7 @@ enum EPropertyType eStringProperty, eVector3Property, eColorProperty, + eSoundProperty, eAssetProperty, eStructProperty, eArrayProperty, diff --git a/src/Core/Resource/Script/IProperty.h b/src/Core/Resource/Script/IProperty.h index 17c3723e..b57d5843 100644 --- a/src/Core/Resource/Script/IProperty.h +++ b/src/Core/Resource/Script/IProperty.h @@ -22,8 +22,6 @@ typedef TString TIDString; */ class IProperty { - friend class CScriptLoader; - protected: class CPropertyStruct *mpParent; CScriptObject *mpInstance; @@ -78,7 +76,6 @@ public: template class TTypedProperty : public IProperty { - friend class CScriptLoader; ValueClass mValue; public: TTypedProperty(IPropertyTemplate *pTemp, CScriptObject *pInstance, CPropertyStruct *pParent) @@ -124,7 +121,7 @@ typedef TTypedProperty typedef TTypedProperty, eUnknownProperty, CUnknownValue> TUnknownProperty; /* - * TStringProperty, TAssetProperty, and TCharacterProperty get little subclasses in order to override some virtual functions. + * TStringProperty, TSoundProperty, TAssetProperty, and TCharacterProperty get little subclasses in order to override some virtual functions. */ #define IMPLEMENT_PROPERTY_CTORS(ClassName, ValueType) \ ClassName(IPropertyTemplate *pTemp, CScriptObject *pInstance, CPropertyStruct *pParent) \ @@ -142,6 +139,15 @@ public: virtual bool ShouldCook() { return true; } }; +class TSoundProperty : public TTypedProperty +{ +public: + IMPLEMENT_PROPERTY_CTORS(TSoundProperty, u32) + IMPLEMENT_PROPERTY_CLONE(TSoundProperty) + virtual bool MatchesDefault() { return Get() == -1; } + virtual bool ShouldCook() { return MatchesDefault(); } +}; + class TAssetProperty : public TTypedProperty { public: diff --git a/src/Core/Resource/Script/IPropertyTemplate.cpp b/src/Core/Resource/Script/IPropertyTemplate.cpp index 57bd0ea6..aa9f53a4 100644 --- a/src/Core/Resource/Script/IPropertyTemplate.cpp +++ b/src/Core/Resource/Script/IPropertyTemplate.cpp @@ -229,6 +229,7 @@ TString PropEnumToPropString(EPropertyType Prop) case eStringProperty: return "string"; case eColorProperty: return "color"; case eVector3Property: return "vector3f"; + case eSoundProperty: return "sound"; case eAssetProperty: return "asset"; case eStructProperty: return "struct"; case eArrayProperty: return "array"; @@ -255,6 +256,7 @@ EPropertyType PropStringToPropEnum(TString Prop) if (Prop == "string") return eStringProperty; if (Prop == "color") return eColorProperty; if (Prop == "vector3f") return eVector3Property; + if (Prop == "sound") return eSoundProperty; if (Prop == "asset") return eAssetProperty; if (Prop == "struct") return eStructProperty; if (Prop == "array") return eArrayProperty; diff --git a/src/Core/Resource/Script/IPropertyTemplate.h b/src/Core/Resource/Script/IPropertyTemplate.h index fc08dbaf..40b26201 100644 --- a/src/Core/Resource/Script/IPropertyTemplate.h +++ b/src/Core/Resource/Script/IPropertyTemplate.h @@ -308,7 +308,7 @@ typedef TNumericalPropertyTemplate typedef TTypedPropertyTemplate TVector3Template; typedef TTypedPropertyTemplate TColorTemplate; -// TCharacterTemplate, TStringTemplate, and TMayaSplineTemplate get their own subclasses so they can reimplement a couple functions +// TCharacterTemplate, TSoundTemplate, TStringTemplate, and TMayaSplineTemplate get their own subclasses so they can reimplement a couple functions class TCharacterTemplate : public TTypedPropertyTemplate { friend class CTemplateLoader; @@ -327,6 +327,24 @@ public: } }; +class TSoundTemplate : public TTypedPropertyTemplate +{ + friend class CTemplateLoader; + friend class CTemplateWriter; + +public: + TSoundTemplate(u32 ID, CScriptTemplate *pScript, CMasterTemplate *pMaster, CStructTemplate *pParent = 0) + : TTypedPropertyTemplate(ID, pScript, pMaster, pParent) {} + + TSoundTemplate(u32 ID, const TString& rkName, ECookPreference CookPreference, CScriptTemplate *pScript, CMasterTemplate *pMaster, CStructTemplate *pParent = 0) + : TTypedPropertyTemplate(ID, rkName, CookPreference, pScript, pMaster, pParent) {} + + IProperty* InstantiateProperty(CScriptObject *pInstance, CPropertyStruct *pParent) + { + return new TSoundProperty(this, pInstance, pParent, -1); + } +}; + class TStringTemplate : public TTypedPropertyTemplate { friend class CTemplateLoader; diff --git a/src/Core/Resource/Script/IPropertyValue.h b/src/Core/Resource/Script/IPropertyValue.h index 4be0edb1..b509b691 100644 --- a/src/Core/Resource/Script/IPropertyValue.h +++ b/src/Core/Resource/Script/IPropertyValue.h @@ -342,6 +342,21 @@ public: } }; +class CSoundValue : public TTypedPropertyValue +{ +public: + CSoundValue() {} + CSoundValue(u32 SoundID) { mValue = SoundID; } + + TString ToString() const { return TString::FromInt32(mValue, 0, 10); } + void FromString(const TString& rkString) { mValue = rkString.ToInt32(10); } + + IPropertyValue* Clone() const + { + return new CSoundValue(mValue); + } +}; + class CAssetValue : public TTypedPropertyValue { public: diff --git a/src/Editor/PropertyEdit/CPropertyDelegate.cpp b/src/Editor/PropertyEdit/CPropertyDelegate.cpp index 89ab6737..1f066933 100644 --- a/src/Editor/PropertyEdit/CPropertyDelegate.cpp +++ b/src/Editor/PropertyEdit/CPropertyDelegate.cpp @@ -104,6 +104,16 @@ QWidget* CPropertyDelegate::createEditor(QWidget *pParent, const QStyleOptionVie break; } + case eSoundProperty: + { + WIntegralSpinBox *pSpinBox = new WIntegralSpinBox(pParent); + pSpinBox->setMinimum(-1); + pSpinBox->setMaximum(0xFFFF); + CONNECT_RELAY(pSpinBox, rkIndex, valueChanged(int)) + pOut = pSpinBox; + break; + } + case eStringProperty: { QLineEdit *pLineEdit = new QLineEdit(pParent); @@ -237,6 +247,7 @@ void CPropertyDelegate::setEditorData(QWidget *pEditor, const QModelIndex &rkInd } case eLongProperty: + case eSoundProperty: { WIntegralSpinBox *pSpinBox = static_cast(pEditor); @@ -406,6 +417,7 @@ void CPropertyDelegate::setModelData(QWidget *pEditor, QAbstractItemModel* /*pMo } case eLongProperty: + case eSoundProperty: { WIntegralSpinBox *pSpinBox = static_cast(pEditor); TLongProperty *pLong = static_cast(pProp); diff --git a/src/Editor/PropertyEdit/CPropertyModel.cpp b/src/Editor/PropertyEdit/CPropertyModel.cpp index b0a6e06c..78f034cf 100644 --- a/src/Editor/PropertyEdit/CPropertyModel.cpp +++ b/src/Editor/PropertyEdit/CPropertyModel.cpp @@ -1,5 +1,6 @@ #include "CPropertyModel.h" #include "Editor/UICommon.h" +#include #include #include #include @@ -289,6 +290,34 @@ QVariant CPropertyModel::data(const QModelIndex& rkIndex, int Role) const case eVector3Property: return "(" + TO_QSTRING(pProp->ToString()) + ")"; + // Display the AGSC/sound name for sounds + case eSoundProperty: + { + TSoundProperty *pSound = static_cast(pProp); + u32 SoundID = pSound->Get(); + if (SoundID == -1) return "[None]"; + + CGameProject *pProj = CGameProject::ActiveProject(); + SSoundInfo SoundInfo = pProj->AudioManager()->GetSoundInfo(SoundID); + + QString Out = QString::number(SoundID); + + if (SoundInfo.DefineID == -1) + return Out + " [INVALID]"; + + // Always display define ID. Display sound name if we have one, otherwise display AGSC ID. + Out += " [" + TO_QSTRING( TString::HexString(SoundInfo.DefineID, 4) ); + QString AudioGroupName = (SoundInfo.pAudioGroup ? TO_QSTRING(SoundInfo.pAudioGroup->Entry()->Name()) : "NO AUDIO GROUP"); + QString Name = (!SoundInfo.Name.IsEmpty() ? TO_QSTRING(SoundInfo.Name) : AudioGroupName); + Out += " " + Name + "]"; + + // If we have a sound name and this is a tooltip, add a second line with the AGSC name + if (Role == Qt::ToolTipRole && !SoundInfo.Name.IsEmpty()) + Out += "\n" + AudioGroupName; + + return Out; + } + // Display character name for characters case eCharacterProperty: return TO_QSTRING(static_cast(pProp)->Get().GetCurrentCharacterName()); diff --git a/templates/mp1/Script/AtomicBeta.xml b/templates/mp1/Script/AtomicBeta.xml index 3da38108..33aa54fa 100644 --- a/templates/mp1/Script/AtomicBeta.xml +++ b/templates/mp1/Script/AtomicBeta.xml @@ -19,9 +19,9 @@ - - - + + + diff --git a/templates/mp1/Script/Babygoth.xml b/templates/mp1/Script/Babygoth.xml index 277bf522..e7b88a22 100644 --- a/templates/mp1/Script/Babygoth.xml +++ b/templates/mp1/Script/Babygoth.xml @@ -21,19 +21,19 @@ - + - - - + + + - + diff --git a/templates/mp1/Script/BloodFlower.xml b/templates/mp1/Script/BloodFlower.xml index 155390be..f31bb7ba 100644 --- a/templates/mp1/Script/BloodFlower.xml +++ b/templates/mp1/Script/BloodFlower.xml @@ -19,7 +19,7 @@ - + diff --git a/templates/mp1/Script/ChozoGhost.xml b/templates/mp1/Script/ChozoGhost.xml index e9e94e7f..7c905f75 100644 --- a/templates/mp1/Script/ChozoGhost.xml +++ b/templates/mp1/Script/ChozoGhost.xml @@ -19,16 +19,16 @@ - + - - + + - + diff --git a/templates/mp1/Script/Drone.xml b/templates/mp1/Script/Drone.xml index f7123e2e..c52e25f1 100644 --- a/templates/mp1/Script/Drone.xml +++ b/templates/mp1/Script/Drone.xml @@ -45,7 +45,7 @@ - + diff --git a/templates/mp1/Script/ElitePirate.xml b/templates/mp1/Script/ElitePirate.xml index 6e707903..de180c23 100644 --- a/templates/mp1/Script/ElitePirate.xml +++ b/templates/mp1/Script/ElitePirate.xml @@ -17,11 +17,11 @@ - + - + @@ -36,12 +36,12 @@ - - + + - + diff --git a/templates/mp1/Script/EnergyBall.xml b/templates/mp1/Script/EnergyBall.xml index 7e0a492d..24dcde13 100644 --- a/templates/mp1/Script/EnergyBall.xml +++ b/templates/mp1/Script/EnergyBall.xml @@ -13,10 +13,10 @@ - + - + diff --git a/templates/mp1/Script/Eyeball.xml b/templates/mp1/Script/Eyeball.xml index 0bf89df1..63f0f4a4 100644 --- a/templates/mp1/Script/Eyeball.xml +++ b/templates/mp1/Script/Eyeball.xml @@ -21,7 +21,7 @@ - + diff --git a/templates/mp1/Script/FishCloud.xml b/templates/mp1/Script/FishCloud.xml index 511fb778..d605330f 100644 --- a/templates/mp1/Script/FishCloud.xml +++ b/templates/mp1/Script/FishCloud.xml @@ -35,7 +35,7 @@ - + diff --git a/templates/mp1/Script/FlyingPirate.xml b/templates/mp1/Script/FlyingPirate.xml index ff16e009..63c48402 100644 --- a/templates/mp1/Script/FlyingPirate.xml +++ b/templates/mp1/Script/FlyingPirate.xml @@ -13,7 +13,7 @@ - + @@ -25,16 +25,16 @@ - - + + - - + + diff --git a/templates/mp1/Script/Geemer.xml b/templates/mp1/Script/Geemer.xml index f1c417d2..28e2195e 100644 --- a/templates/mp1/Script/Geemer.xml +++ b/templates/mp1/Script/Geemer.xml @@ -15,9 +15,9 @@ - - - + + + diff --git a/templates/mp1/Script/GunTurret.xml b/templates/mp1/Script/GunTurret.xml index ef331200..780dd47e 100644 --- a/templates/mp1/Script/GunTurret.xml +++ b/templates/mp1/Script/GunTurret.xml @@ -37,12 +37,12 @@ - - - - - - + + + + + + diff --git a/templates/mp1/Script/IceSheegoth.xml b/templates/mp1/Script/IceSheegoth.xml index 4bed677d..4258c2d5 100644 --- a/templates/mp1/Script/IceSheegoth.xml +++ b/templates/mp1/Script/IceSheegoth.xml @@ -30,12 +30,12 @@ - + - + diff --git a/templates/mp1/Script/MetroidPrimeStage1.xml b/templates/mp1/Script/MetroidPrimeStage1.xml index a1ff16c9..60c3b4fe 100644 --- a/templates/mp1/Script/MetroidPrimeStage1.xml +++ b/templates/mp1/Script/MetroidPrimeStage1.xml @@ -41,7 +41,7 @@ - + diff --git a/templates/mp1/Script/MetroidPrimeStage2.xml b/templates/mp1/Script/MetroidPrimeStage2.xml index 67a1d463..cbc64f29 100644 --- a/templates/mp1/Script/MetroidPrimeStage2.xml +++ b/templates/mp1/Script/MetroidPrimeStage2.xml @@ -11,7 +11,7 @@ - + diff --git a/templates/mp1/Script/OmegaPirate.xml b/templates/mp1/Script/OmegaPirate.xml index e074f2f9..455f5913 100644 --- a/templates/mp1/Script/OmegaPirate.xml +++ b/templates/mp1/Script/OmegaPirate.xml @@ -17,11 +17,11 @@ - + - + @@ -36,12 +36,12 @@ - - + + - + diff --git a/templates/mp1/Script/Puffer.xml b/templates/mp1/Script/Puffer.xml index 27f20327..8e407b6a 100644 --- a/templates/mp1/Script/Puffer.xml +++ b/templates/mp1/Script/Puffer.xml @@ -17,7 +17,7 @@ - + diff --git a/templates/mp1/Script/Ridley.xml b/templates/mp1/Script/Ridley.xml index 0ea447a0..66fa8105 100644 --- a/templates/mp1/Script/Ridley.xml +++ b/templates/mp1/Script/Ridley.xml @@ -48,14 +48,14 @@ - + - + @@ -68,7 +68,7 @@ - + diff --git a/templates/mp1/Script/SnakeWeedSwarm.xml b/templates/mp1/Script/SnakeWeedSwarm.xml index f7d860a9..77ec8a59 100644 --- a/templates/mp1/Script/SnakeWeedSwarm.xml +++ b/templates/mp1/Script/SnakeWeedSwarm.xml @@ -24,9 +24,9 @@ - - - + + + diff --git a/templates/mp1/Script/Sound.xml b/templates/mp1/Script/Sound.xml index 4d169a22..d489f551 100644 --- a/templates/mp1/Script/Sound.xml +++ b/templates/mp1/Script/Sound.xml @@ -5,7 +5,7 @@ - + diff --git a/templates/mp1/Script/SpacePirate.xml b/templates/mp1/Script/SpacePirate.xml index 1b0f1e2c..ea9d6ad2 100644 --- a/templates/mp1/Script/SpacePirate.xml +++ b/templates/mp1/Script/SpacePirate.xml @@ -18,24 +18,24 @@ - + - + - + - - + + diff --git a/templates/mp1/Script/SpecialFunction.xml b/templates/mp1/Script/SpecialFunction.xml index b7476aa2..f40d7448 100644 --- a/templates/mp1/Script/SpecialFunction.xml +++ b/templates/mp1/Script/SpecialFunction.xml @@ -55,9 +55,9 @@ - - - + + + diff --git a/templates/mp1/Script/Thardus.xml b/templates/mp1/Script/Thardus.xml index bce7e606..01a75bdd 100644 --- a/templates/mp1/Script/Thardus.xml +++ b/templates/mp1/Script/Thardus.xml @@ -23,7 +23,7 @@ - + @@ -41,11 +41,11 @@ - + - - - + + + diff --git a/templates/mp1/Script/VisorGoo.xml b/templates/mp1/Script/VisorGoo.xml index eb76e453..1aaf3a9e 100644 --- a/templates/mp1/Script/VisorGoo.xml +++ b/templates/mp1/Script/VisorGoo.xml @@ -11,7 +11,7 @@ - + diff --git a/templates/mp1/Script/WallCrawlerSwarm.xml b/templates/mp1/Script/WallCrawlerSwarm.xml index 75cda599..b42f4ef7 100644 --- a/templates/mp1/Script/WallCrawlerSwarm.xml +++ b/templates/mp1/Script/WallCrawlerSwarm.xml @@ -39,8 +39,8 @@ - - + + diff --git a/templates/mp1/Script/Warwasp.xml b/templates/mp1/Script/Warwasp.xml index f009d7e0..f4aef7ef 100644 --- a/templates/mp1/Script/Warwasp.xml +++ b/templates/mp1/Script/Warwasp.xml @@ -14,7 +14,7 @@ - + diff --git a/templates/mp1/Script/Water.xml b/templates/mp1/Script/Water.xml index 928b221d..5703a1f7 100644 --- a/templates/mp1/Script/Water.xml +++ b/templates/mp1/Script/Water.xml @@ -50,11 +50,11 @@ - - - - - + + + + + diff --git a/templates/mp1/Script/WorldTeleporter.xml b/templates/mp1/Script/WorldTeleporter.xml index 977bbae6..b433c826 100644 --- a/templates/mp1/Script/WorldTeleporter.xml +++ b/templates/mp1/Script/WorldTeleporter.xml @@ -13,7 +13,7 @@ - + diff --git a/templates/mp1/Structs/PatternedInfo.xml b/templates/mp1/Structs/PatternedInfo.xml index 6230a830..50e53f00 100644 --- a/templates/mp1/Structs/PatternedInfo.xml +++ b/templates/mp1/Structs/PatternedInfo.xml @@ -25,7 +25,7 @@ - + @@ -38,6 +38,6 @@ - + diff --git a/templates/mp1/Structs/PrimeStruct4.xml b/templates/mp1/Structs/PrimeStruct4.xml index b44fc56e..57ab15d5 100644 --- a/templates/mp1/Structs/PrimeStruct4.xml +++ b/templates/mp1/Structs/PrimeStruct4.xml @@ -22,7 +22,7 @@ - +