Added ability to test Int properties as Choices. Added functionality to fix the property name map keeping track of unused type/ID pairs. Fixed various UI bugs.

This commit is contained in:
Aruki 2018-10-21 19:01:57 -06:00
parent 8d1aec35ad
commit 1bc95a30a5
36 changed files with 1861 additions and 20912 deletions

File diff suppressed because it is too large Load Diff

View File

@ -1,4 +1,5 @@
#include "NPropertyMap.h"
#include "NGameList.h"
#include <Common/NBasics.h>
#include <Common/Serialization/XML.h>
@ -202,6 +203,21 @@ void SaveMap(bool Force /*= false*/)
}
else
{
// Make sure all game templates are loaded and clear out ID-type pairs that aren't used
// This mostly occurs when type names are changed - unneeded pairings with the old type can be left in the map
NGameList::LoadAllGameTemplates();
for (auto Iter = gNameMap.begin(); Iter != gNameMap.end(); Iter++)
{
SNameValue& Value = Iter->second;
if (Value.PropertyList.empty())
{
Iter = gNameMap.erase(Iter);
}
}
// Perform the actual save
CXMLWriter Writer(gpkMapPath, "PropertyMap");
ASSERT(Writer.IsValid());
Writer << SerialParameter("PropertyMap", gNameMap, SH_HexDisplay);

View File

@ -69,6 +69,12 @@ void CPropertyNameGenerator::Generate(const SPropertyNameGenerationParameters& r
mTypeNames = rkParams.TypeNames;
}
// If TestIntsAsChoices is enabled, and int is in the type list, then choice must be in the type list too.
if (rkParams.TestIntsAsChoices && NBasics::VectorContains(mTypeNames, TString("int")))
{
NBasics::VectorAddUnique(mTypeNames, TString("choice"));
}
// If we haven't loaded the word list yet, load it.
// If we are still loading the word list, wait until we're finished.
if (!mWordListLoadFinished)
@ -202,7 +208,7 @@ void CPropertyNameGenerator::Generate(const SPropertyNameGenerationParameters& r
}
PropertyName.Name += rkParams.Suffix;
PropertyName.Type = mTypeNames[TypeIdx];
PropertyName.Type = pkTypeName;
PropertyName.ID = PropertyID;
if (SaveResults)
@ -253,7 +259,7 @@ void CPropertyNameGenerator::Generate(const SPropertyNameGenerationParameters& r
}
/** Returns whether a given property ID is valid */
bool CPropertyNameGenerator::IsValidPropertyID(u32 ID, const char* pkType, const SPropertyNameGenerationParameters& rkParams)
bool CPropertyNameGenerator::IsValidPropertyID(u32 ID, const char*& pkType, const SPropertyNameGenerationParameters& rkParams)
{
if (!mValidTypePairMap.empty())
{
@ -261,7 +267,20 @@ bool CPropertyNameGenerator::IsValidPropertyID(u32 ID, const char* pkType, const
if (Find != mValidTypePairMap.end())
{
return strcmp( Find->second, pkType ) == 0;
if (strcmp( Find->second, pkType ) == 0)
{
return true;
}
else if (rkParams.TestIntsAsChoices && strcmp(pkType, "choice") == 0)
{
if (strcmp( Find->second, "int" ) == 0)
{
pkType = "int";
return true;
}
}
return false;
}
else
return false;
@ -270,6 +289,17 @@ bool CPropertyNameGenerator::IsValidPropertyID(u32 ID, const char* pkType, const
{
bool IsAlreadyNamed;
bool IsValid = NPropertyMap::IsValidPropertyID(ID, pkType, &IsAlreadyNamed);
if (!IsValid && rkParams.TestIntsAsChoices && strcmp(pkType, "choice") == 0)
{
IsValid = NPropertyMap::IsValidPropertyID(ID, "int", &IsAlreadyNamed);
if (IsValid)
{
pkType = "int";
}
}
return IsValid && (!IsAlreadyNamed || !rkParams.ExcludeAccuratelyNamedProperties);
}
}

View File

@ -43,6 +43,9 @@ struct SPropertyNameGenerationParameters
/** Whether to exclude properties that already have accurate names from the generation results. */
bool ExcludeAccuratelyNamedProperties;
/** Whether to test int properties as choices */
bool TestIntsAsChoices;
/** Whether to print the output from the generation process to the log */
bool PrintToLog;
};
@ -102,7 +105,7 @@ public:
void Generate(const SPropertyNameGenerationParameters& rkParams, IProgressNotifier* pProgressNotifier);
/** Returns whether a given property ID is valid */
bool IsValidPropertyID(u32 ID, const char* pkType, const SPropertyNameGenerationParameters& rkParams);
bool IsValidPropertyID(u32 ID, const char*& pkType, const SPropertyNameGenerationParameters& rkParams);
/** Accessors */
bool IsRunning() const

View File

@ -518,10 +518,11 @@ bool IProperty::UsesNameMap()
bool IProperty::HasAccurateName()
{
// Exceptions for the three hardcoded 4CC property IDs
// Exceptions for the three hardcoded 4CC property IDs, and for 0xFFFFFFFF (root properties)
if (mID == FOURCC('XFRM') ||
mID == FOURCC('INAM') ||
mID == FOURCC('ACTV'))
mID == FOURCC('ACTV') ||
mID == 0xFFFFFFFF)
{
return true;
}
@ -543,10 +544,24 @@ bool IProperty::HasAccurateName()
Hash.Hash(HashableTypeName());
u32 GeneratedID = Hash.Digest();
// Some choice properties are incorrectly declared as ints, so account for
// this and allow matching ints against choice typenames as well.
if (GeneratedID != mID && Type() == EPropertyType::Int)
{
Hash = CCRC32();
Hash.Hash(*mName);
Hash.Hash("choice");
GeneratedID = Hash.Digest();
}
if (GeneratedID == mID)
{
mFlags.SetFlag( EPropertyFlag::HasCorrectPropertyName );
}
else
{
mFlags.ClearFlag( EPropertyFlag::HasCorrectPropertyName );
}
mFlags.SetFlag(EPropertyFlag::HasCachedNameCheck);
}

View File

@ -163,6 +163,7 @@ void CGeneratePropertyNamesDialog::StartGeneration()
Params.Casing = mpUI->CasingComboBox->currentEnum();
Params.ValidIdPairs = mIdPairs.toStdVector();
Params.ExcludeAccuratelyNamedProperties = mpUI->UnnamedOnlyCheckBox->isChecked();
Params.TestIntsAsChoices = mpUI->TestIntsAsChoicesCheckBox->isChecked();
Params.PrintToLog = mpUI->LogOutputCheckBox->isChecked();
// Run the task and configure ourselves so we can update correctly

View File

@ -98,6 +98,13 @@
</property>
</widget>
</item>
<item>
<widget class="QCheckBox" name="TestIntsAsChoicesCheckBox">
<property name="text">
<string>Test ints as choices</string>
</property>
</widget>
</item>
</layout>
</widget>
</item>

View File

@ -262,7 +262,7 @@ QVariant CPropertyModel::data(const QModelIndex& rkIndex, int Role) const
{
if (rkIndex.row() == 0) return "AnimSet";
if (rkIndex.row() == 1) return "Character";
if (rkIndex.row() == 2) return "Default Anim";
if (rkIndex.row() == 2) return "DefaultAnim";
}
// For column 1, rows 0/1 have persistent editors so we only handle 2
@ -275,7 +275,7 @@ QVariant CPropertyModel::data(const QModelIndex& rkIndex, int Role) const
if (rkIndex.column() == 0)
{
if (rkIndex.row() == 0) return "Character";
if (rkIndex.row() == 1) return "Default Anim";
if (rkIndex.row() == 1) return "DefaultAnim";
}
// Same deal here, only handle row 1
@ -288,8 +288,8 @@ QVariant CPropertyModel::data(const QModelIndex& rkIndex, int Role) const
if (rkIndex.column() == 0)
{
if (rkIndex.row() == 0) return "Character";
else if (rkIndex.row() == 1) return "Default Anim";
else return "Unknown " + QString::number(rkIndex.row() - 1);
else if (rkIndex.row() == 1) return "DefaultAnim";
else return "Unknown" + QString::number(rkIndex.row() - 1);
}
if (rkIndex.column() == 1 && rkIndex.row() > 0)
@ -458,8 +458,7 @@ QVariant CPropertyModel::data(const QModelIndex& rkIndex, int Role) const
{
IProperty *pProp = PropertyForIndex(rkIndex, true);
// Don't highlight the name of the root property
if (pProp && pProp->Parent() != nullptr)
if (pProp)
{
static const QColor skRightColor = QColor(128, 255, 128);
static const QColor skWrongColor = QColor(255, 128, 128);

View File

@ -29,8 +29,11 @@ CTemplateEditDialog::CTemplateEditDialog(IProperty *pProperty, QWidget *pParent)
EPropertyType Type = pProperty->Type();
// Configure type name
if (Type == EPropertyType::Struct || Type == EPropertyType::Choice || Type == EPropertyType::Enum || Type == EPropertyType::Flags)
// Configure type name. Type name overrides are sourced from the name of the property archetype,
// so this field should only be editable for properties that have an archetype.
bool AllowTypeNameEdit = (pProperty->RootArchetype()->IsRootParent());
if (AllowTypeNameEdit)
{
connect( mpUI->TypenameLineEdit, SIGNAL(textChanged(QString)), this, SLOT(RefreshTypeNameOverride()) );
mOriginalTypeName = pProperty->RootArchetype()->Name();

View File

@ -40,8 +40,6 @@ WModifyTab::WModifyTab(CWorldEditor *pEditor, QWidget *pParent)
ui->InLinksTableView->setModel(mpInLinkModel);
ui->OutLinksTableView->setModel(mpOutLinkModel);
ui->InLinksTableView->horizontalHeader()->setSectionResizeMode(0, QHeaderView::Stretch);
ui->OutLinksTableView->horizontalHeader()->setSectionResizeMode(0, QHeaderView::Stretch);
connect(ui->InLinksTableView, SIGNAL(doubleClicked(QModelIndex)), this, SLOT(OnLinkTableDoubleClick(QModelIndex)));
connect(ui->OutLinksTableView, SIGNAL(doubleClicked(QModelIndex)), this, SLOT(OnLinkTableDoubleClick(QModelIndex)));
connect(ui->InLinksTableView->selectionModel(), SIGNAL(selectionChanged(QItemSelection,QItemSelection)), this, SLOT(OnLinksSelectionModified()));
@ -110,6 +108,8 @@ void WModifyTab::GenerateUI()
ui->InLinksTableView->clearSelection();
ui->OutLinksTableView->clearSelection();
ui->InLinksTableView->horizontalHeader()->setSectionResizeMode(0, QHeaderView::Stretch);
ui->OutLinksTableView->horizontalHeader()->setSectionResizeMode(0, QHeaderView::Stretch);
}
}

View File

@ -739,6 +739,10 @@
<Key>BopJumpData</Key>
<Value Path="Structs/BopJumpData.xml"/>
</Element>
<Element>
<Key>BossHUD</Key>
<Value Path="Structs/BossHUD.xml"/>
</Element>
<Element>
<Key>BouncyTireData</Key>
<Value Path="Structs/BouncyTireData.xml"/>
@ -755,6 +759,10 @@
<Key>CableProperties</Key>
<Value Path="Structs/CableProperties.xml"/>
</Element>
<Element>
<Key>CameraClip</Key>
<Value Path="Structs/CameraClip.xml"/>
</Element>
<Element>
<Key>CameraConstraints</Key>
<Value Path="Structs/CameraConstraints.xml"/>
@ -763,6 +771,10 @@
<Key>CameraFieldOfView</Key>
<Value Path="Structs/CameraFieldOfView.xml"/>
</Element>
<Element>
<Key>CameraFraming</Key>
<Value Path="Structs/CameraFraming.xml"/>
</Element>
<Element>
<Key>CameraInterpolation</Key>
<Value Path="Structs/CameraInterpolation.xml"/>
@ -799,6 +811,10 @@
<Key>CameraShakerEnvelope</Key>
<Value Path="Structs/CameraShakerEnvelope.xml"/>
</Element>
<Element>
<Key>CameraTracking</Key>
<Value Path="Structs/CameraTracking.xml"/>
</Element>
<Element>
<Key>CharacterGlueData</Key>
<Value Path="Structs/CharacterGlueData.xml"/>
@ -835,6 +851,10 @@
<Key>CounterConditions</Key>
<Value Path="Structs/CounterConditions.xml"/>
</Element>
<Element>
<Key>CreditsData</Key>
<Value Path="Structs/CreditsData.xml"/>
</Element>
<Element>
<Key>DKBarrelGlueData</Key>
<Value Path="Structs/DKBarrelGlueData.xml"/>
@ -879,6 +899,10 @@
<Key>DespawnRules</Key>
<Value Path="Structs/DespawnRules.xml"/>
</Element>
<Element>
<Key>DrivenIntoGroundBehaviorData</Key>
<Value Path="Structs/DrivenIntoGroundBehaviorData.xml"/>
</Element>
<Element>
<Key>DynamicLightFalloff</Key>
<Value Path="Structs/DynamicLightFalloff.xml"/>
@ -939,6 +963,10 @@
<Key>ForestBossStructC</Key>
<Value Path="Structs/ForestBossStructC.xml"/>
</Element>
<Element>
<Key>FramingRules</Key>
<Value Path="Structs/FramingRules.xml"/>
</Element>
<Element>
<Key>GeneratedObjectDeleterProperties</Key>
<Value Path="Structs/GeneratedObjectDeleterProperties.xml"/>
@ -1176,12 +1204,16 @@
<Value Path="Structs/PatternedAITypedef.xml"/>
</Element>
<Element>
<Key>PeanutProperties</Key>
<Value Path="Structs/PeanutProperties.xml"/>
<Key>PauseHUD</Key>
<Value Path="Structs/PauseHUD.xml"/>
</Element>
<Element>
<Key>PeanutStruct</Key>
<Value Path="Structs/PeanutStruct.xml"/>
<Key>PeanutMaterialEffects</Key>
<Value Path="Structs/PeanutMaterialEffects.xml"/>
</Element>
<Element>
<Key>PeanutProperties</Key>
<Value Path="Structs/PeanutProperties.xml"/>
</Element>
<Element>
<Key>PickupData</Key>
@ -1671,10 +1703,6 @@
<Key>UnknownStruct122</Key>
<Value Path="Structs/UnknownStruct122.xml"/>
</Element>
<Element>
<Key>UnknownStruct124</Key>
<Value Path="Structs/UnknownStruct124.xml"/>
</Element>
<Element>
<Key>UnknownStruct128</Key>
<Value Path="Structs/UnknownStruct128.xml"/>
@ -1759,14 +1787,6 @@
<Key>UnknownStruct151</Key>
<Value Path="Structs/UnknownStruct151.xml"/>
</Element>
<Element>
<Key>UnknownStruct152</Key>
<Value Path="Structs/UnknownStruct152.xml"/>
</Element>
<Element>
<Key>UnknownStruct153</Key>
<Value Path="Structs/UnknownStruct153.xml"/>
</Element>
<Element>
<Key>UnknownStruct154</Key>
<Value Path="Structs/UnknownStruct154.xml"/>
@ -2471,10 +2491,6 @@
<Key>UnknownStruct74</Key>
<Value Path="Structs/UnknownStruct74.xml"/>
</Element>
<Element>
<Key>UnknownStruct75</Key>
<Value Path="Structs/UnknownStruct75.xml"/>
</Element>
<Element>
<Key>UnknownStruct76</Key>
<Value Path="Structs/UnknownStruct76.xml"/>
@ -2483,26 +2499,10 @@
<Key>UnknownStruct77</Key>
<Value Path="Structs/UnknownStruct77.xml"/>
</Element>
<Element>
<Key>UnknownStruct78</Key>
<Value Path="Structs/UnknownStruct78.xml"/>
</Element>
<Element>
<Key>UnknownStruct79</Key>
<Value Path="Structs/UnknownStruct79.xml"/>
</Element>
<Element>
<Key>UnknownStruct8</Key>
<Value Path="Structs/UnknownStruct8.xml"/>
</Element>
<Element>
<Key>UnknownStruct80</Key>
<Value Path="Structs/UnknownStruct80.xml"/>
</Element>
<Element>
<Key>UnknownStruct81</Key>
<Value Path="Structs/UnknownStruct81.xml"/>
</Element>
<Element>
<Key>UnknownStruct83</Key>
<Value Path="Structs/UnknownStruct83.xml"/>
@ -2535,10 +2535,6 @@
<Key>UnknownStruct9</Key>
<Value Path="Structs/UnknownStruct9.xml"/>
</Element>
<Element>
<Key>UnknownStruct90</Key>
<Value Path="Structs/UnknownStruct90.xml"/>
</Element>
<Element>
<Key>UnknownStruct91</Key>
<Value Path="Structs/UnknownStruct91.xml"/>
@ -2603,6 +2599,10 @@
<Key>WanderRandomTurnData</Key>
<Value Path="Structs/WanderRandomTurnData.xml"/>
</Element>
<Element>
<Key>ZoomBehaviorData</Key>
<Value Path="Structs/ZoomBehaviorData.xml"/>
</Element>
</PropertyArchetypes>
<States>
<Element>

View File

@ -75,10 +75,10 @@
<Element Type="Struct" ID="0xC962CB9C" Archetype="AdditiveTouchAttackBehaviorData"/>
<Element Type="Struct" ID="0xF6E5327" Archetype="UnknownStruct122"/>
<Element Type="Struct" ID="0xE2C2F5EF" Archetype="StunnedByContactRuleData"/>
<Element Type="Struct" ID="0x5192CCEC" Archetype="UnknownStruct124"/>
<Element Type="Struct" ID="0x5192CCEC" Archetype="DrivenIntoGroundBehaviorData"/>
<Element Type="Struct" ID="0xAFCADE60" Archetype="OneShotBehaviorData"/>
<Element Type="Struct" ID="0x749A68A1" Archetype="TargetPlayerBehaviorData"/>
<Element Type="Struct" ID="0x2CC6F52" Archetype="UnknownStruct124"/>
<Element Type="Struct" ID="0x2CC6F52" Archetype="DrivenIntoGroundBehaviorData"/>
<Element Type="Struct" ID="0xE37F3561" Archetype="AreaAttackBehaviorData"/>
<Element Type="Struct" ID="0xA1F091B2" Archetype="UnknownStruct128"/>
<Element Type="Struct" ID="0x638FC2B" Archetype="SeparateAndReformBehaviorData"/>

View File

@ -1,7 +1,7 @@
<?xml version="1.0" encoding="UTF-8"?>
<PropertyTemplate ArchiveVer="4" Game="DKCReturns">
<PropertyArchetype Type="Struct">
<Name>UnknownStruct153</Name>
<Name>BossHUD</Name>
<SubProperties>
<Element Type="Asset" ID="0x8B4C102C">
<TypeFilter>

View File

@ -1,7 +1,7 @@
<?xml version="1.0" encoding="UTF-8"?>
<PropertyTemplate ArchiveVer="4" Game="DKCReturns">
<PropertyArchetype Type="Struct">
<Name>UnknownStruct81</Name>
<Name>CameraClip</Name>
<SubProperties>
<Element Type="Float" ID="0xF4817F13">
<DefaultValue>0.2</DefaultValue>

View File

@ -1,10 +1,10 @@
<?xml version="1.0" encoding="UTF-8"?>
<PropertyTemplate ArchiveVer="4" Game="DKCReturns">
<PropertyArchetype Type="Struct">
<Name>UnknownStruct80</Name>
<Name>CameraFraming</Name>
<SubProperties>
<Element Type="Struct" ID="0xC79AA0C6" Archetype="UnknownStruct78"/>
<Element Type="Struct" ID="0x62243011" Archetype="UnknownStruct79"/>
<Element Type="Struct" ID="0xC79AA0C6" Archetype="FramingRules"/>
<Element Type="Struct" ID="0x62243011" Archetype="ZoomBehaviorData"/>
</SubProperties>
</PropertyArchetype>
</PropertyTemplate>

View File

@ -1,7 +1,7 @@
<?xml version="1.0" encoding="UTF-8"?>
<PropertyTemplate ArchiveVer="4" Game="DKCReturns">
<PropertyArchetype Type="Struct">
<Name>UnknownStruct75</Name>
<Name>CameraTracking</Name>
<SubProperties>
<Element Type="Enum" ID="0x5BFED7DB">
<DefaultValue>0x62C2ABD5</DefaultValue>

View File

@ -1,7 +1,7 @@
<?xml version="1.0" encoding="UTF-8"?>
<PropertyTemplate ArchiveVer="4" Game="DKCReturns">
<PropertyArchetype Type="Struct">
<Name>UnknownStruct90</Name>
<Name>CreditsData</Name>
<SubProperties>
<Element Type="Float" ID="0xC7A734CE">
<DefaultValue>180.0</DefaultValue>

View File

@ -1,7 +1,7 @@
<?xml version="1.0" encoding="UTF-8"?>
<PropertyTemplate ArchiveVer="4" Game="DKCReturns">
<PropertyArchetype Type="Struct">
<Name>UnknownStruct124</Name>
<Name>DrivenIntoGroundBehaviorData</Name>
<SubProperties>
<Element Type="Bool" ID="0xBB0E924C">
<DefaultValue>false</DefaultValue>

View File

@ -1,7 +1,7 @@
<?xml version="1.0" encoding="UTF-8"?>
<PropertyTemplate ArchiveVer="4" Game="DKCReturns">
<PropertyArchetype Type="Struct">
<Name>UnknownStruct78</Name>
<Name>FramingRules</Name>
<SubProperties>
<Element Type="Bool" ID="0x1D2830C3">
<DefaultValue>false</DefaultValue>

View File

@ -1,7 +1,7 @@
<?xml version="1.0" encoding="UTF-8"?>
<PropertyTemplate ArchiveVer="4" Game="DKCReturns">
<PropertyArchetype Type="Struct">
<Name>UnknownStruct152</Name>
<Name>PauseHUD</Name>
<SubProperties>
<Element Type="Struct" ID="0xEB03168D" Archetype="UnknownStruct149"/>
<Element Type="Struct" ID="0xCCD85456" Archetype="UnknownStruct150"/>

View File

@ -1,7 +1,7 @@
<?xml version="1.0" encoding="UTF-8"?>
<PropertyTemplate ArchiveVer="4" Game="DKCReturns">
<PropertyArchetype Type="Struct">
<Name>PeanutStruct</Name>
<Name>PeanutMaterialEffects</Name>
<SubProperties>
<Element Type="Struct" ID="0xD72E09E1" Archetype="MaterialType"/>
<Element Type="Asset" ID="0x5B60214F"/>

View File

@ -111,14 +111,14 @@
<Element Type="Int" ID="0x5A79779">
<DefaultValue>0</DefaultValue>
</Element>
<Element Type="Struct" ID="0xE8D26BAE" Archetype="PeanutStruct"/>
<Element Type="Struct" ID="0xD1AAC6EE" Archetype="PeanutStruct"/>
<Element Type="Struct" ID="0xC682A22E" Archetype="PeanutStruct"/>
<Element Type="Struct" ID="0xA35B9C6E" Archetype="PeanutStruct"/>
<Element Type="Struct" ID="0xB473F8AE" Archetype="PeanutStruct"/>
<Element Type="Struct" ID="0x8D0B55EE" Archetype="PeanutStruct"/>
<Element Type="Struct" ID="0x9A23312E" Archetype="PeanutStruct"/>
<Element Type="Struct" ID="0x46B9296E" Archetype="PeanutStruct"/>
<Element Type="Struct" ID="0xE8D26BAE" Archetype="PeanutMaterialEffects"/>
<Element Type="Struct" ID="0xD1AAC6EE" Archetype="PeanutMaterialEffects"/>
<Element Type="Struct" ID="0xC682A22E" Archetype="PeanutMaterialEffects"/>
<Element Type="Struct" ID="0xA35B9C6E" Archetype="PeanutMaterialEffects"/>
<Element Type="Struct" ID="0xB473F8AE" Archetype="PeanutMaterialEffects"/>
<Element Type="Struct" ID="0x8D0B55EE" Archetype="PeanutMaterialEffects"/>
<Element Type="Struct" ID="0x9A23312E" Archetype="PeanutMaterialEffects"/>
<Element Type="Struct" ID="0x46B9296E" Archetype="PeanutMaterialEffects"/>
</SubProperties>
</PropertyArchetype>
</PropertyTemplate>

View File

@ -3,7 +3,7 @@
<PropertyArchetype Type="Struct">
<Name>SpindlePosition</Name>
<SubProperties>
<Element Type="Int" ID="0xB8A6413A">
<Element Type="Flags" ID="0xB8A6413A">
<CookPreference>Always</CookPreference>
<DefaultValue>320</DefaultValue>
</Element>

View File

@ -1,7 +1,7 @@
<?xml version="1.0" encoding="UTF-8"?>
<PropertyTemplate ArchiveVer="4" Game="DKCReturns">
<PropertyArchetype Type="Struct">
<Name>UnknownStruct79</Name>
<Name>ZoomBehaviorData</Name>
<SubProperties>
<Element Type="Spline" ID="0x343A18A7"/>
<Element Type="Bool" ID="0x82AF371E">

View File

@ -839,6 +839,10 @@
<Key>EditorProperties</Key>
<Value Path="Structs/EditorProperties.xml"/>
</Element>
<Element>
<Key>EmperorIngStage3Data</Key>
<Value Path="Structs/EmperorIngStage3Data.xml"/>
</Element>
<Element>
<Key>EmperorIngStage3StructA</Key>
<Value Path="Structs/EmperorIngStage3StructA.xml"/>
@ -879,6 +883,10 @@
<Key>IngSpiderballGuardianStruct</Key>
<Value Path="Structs/IngSpiderballGuardianStruct.xml"/>
</Element>
<Element>
<Key>LayerInfo</Key>
<Value Path="Structs/LayerInfo.xml"/>
</Element>
<Element>
<Key>LayerSwitch</Key>
<Value Path="Structs/LayerSwitch.xml"/>
@ -1075,10 +1083,6 @@
<Key>UnknownStruct26</Key>
<Value Path="Structs/UnknownStruct26.xml"/>
</Element>
<Element>
<Key>UnknownStruct27</Key>
<Value Path="Structs/UnknownStruct27.xml"/>
</Element>
<Element>
<Key>UnknownStruct28</Key>
<Value Path="Structs/UnknownStruct28.xml"/>
@ -1179,10 +1183,6 @@
<Key>VisorParameters</Key>
<Value Path="Structs/VisorParameters.xml"/>
</Element>
<Element>
<Key>WaterStruct</Key>
<Value Path="Structs/WaterStruct.xml"/>
</Element>
<Element>
<Key>WeaponType</Key>
<Value Path="Enums/WeaponType.xml"/>

View File

@ -1,7 +1,7 @@
<?xml version="1.0" encoding="UTF-8"?>
<PropertyTemplate ArchiveVer="4" Game="Echoes">
<PropertyArchetype Type="Struct">
<Name>UnknownStruct27</Name>
<Name>EmperorIngStage3Data</Name>
<SubProperties>
<Element Type="Float" ID="0x293A0C19">
<DefaultValue>0.0</DefaultValue>

View File

@ -1,7 +1,7 @@
<?xml version="1.0" encoding="UTF-8"?>
<PropertyTemplate ArchiveVer="4" Game="Echoes">
<PropertyArchetype Type="Struct">
<Name>WaterStruct</Name>
<Name>LayerInfo</Name>
<SubProperties>
<Element Type="Int" ID="0xE94F7E87">
<DefaultValue>-2143184152</DefaultValue>

File diff suppressed because it is too large Load Diff

View File

@ -10,12 +10,12 @@
<Element Type="Float" ID="0x8747552E">
<DefaultValue>0.0</DefaultValue>
</Element>
<Element Type="Int" ID="0x21D720A9">
<Element Type="Flags" ID="0x21D720A9">
<CookPreference>Always</CookPreference>
<DefaultValue>1610905732</DefaultValue>
</Element>
<Element Type="Struct" ID="0x97A93F8F" Archetype="CameraConstraints"/>
<Element Type="Struct" ID="0xE8EAAF0E" Archetype="UnknownStruct75"/>
<Element Type="Struct" ID="0xE8EAAF0E" Archetype="CameraTracking"/>
<Element Type="Struct" ID="0xD1BD5C40" Archetype="CameraPosition"/>
<Element Type="Struct" ID="0x4F2CA324" Archetype="CameraPosition"/>
<Element Type="Struct" ID="0x4BE3494B" Archetype="CameraNavigation"/>
@ -23,9 +23,9 @@
<Element Type="Struct" ID="0x65FC11FF" Archetype="CameraOrientation"/>
<Element Type="Struct" ID="0xA7C38D" Archetype="CameraRotation"/>
<Element Type="Struct" ID="0xFC126AD1" Archetype="CameraFieldOfView"/>
<Element Type="Struct" ID="0xE389796E" Archetype="UnknownStruct80"/>
<Element Type="Struct" ID="0xE389796E" Archetype="CameraFraming"/>
<Element Type="Struct" ID="0x764827D4" Archetype="CameraInterpolation"/>
<Element Type="Struct" ID="0xD3696C11" Archetype="UnknownStruct81"/>
<Element Type="Struct" ID="0xD3696C11" Archetype="CameraClip"/>
<Element Type="Struct" ID="0x95D0D437" Archetype="InterpolationMethod"/>
</SubProperties>
</Properties>

View File

@ -4,7 +4,7 @@
<Name>CreditsScreen</Name>
<SubProperties>
<Element Type="Struct" ID="0x255A4580" Archetype="EditorProperties"/>
<Element Type="Struct" ID="0x6B9F6B7C" Archetype="UnknownStruct90"/>
<Element Type="Struct" ID="0x6B9F6B7C" Archetype="CreditsData"/>
</SubProperties>
</Properties>
<EditorProperties>

View File

@ -5,8 +5,8 @@
<SubProperties>
<Element Type="Struct" ID="0x255A4580" Archetype="EditorProperties"/>
<Element Type="Struct" ID="0x5D9C85DA" Archetype="UnknownStruct147"/>
<Element Type="Struct" ID="0x10659639" Archetype="UnknownStruct152"/>
<Element Type="Struct" ID="0xAE41EED1" Archetype="UnknownStruct153"/>
<Element Type="Struct" ID="0x10659639" Archetype="PauseHUD"/>
<Element Type="Struct" ID="0xAE41EED1" Archetype="BossHUD"/>
<Element Type="Struct" ID="0xB914BD82" Archetype="UnknownStruct156"/>
<Element Type="Struct" ID="0xB594741" Archetype="UnknownStruct157"/>
<Element Type="Struct" ID="0x51841C6D" Archetype="UnknownStruct159"/>

View File

@ -14,7 +14,7 @@
<Element Name="Unknown 6" ID="0x4309158B"/>
</Values>
</Element>
<Element Type="Int" ID="0xB1B6CF33">
<Element Type="Flags" ID="0xB1B6CF33">
<CookPreference>Always</CookPreference>
<DefaultValue>2</DefaultValue>
</Element>

View File

@ -15,7 +15,7 @@
</SubProperties>
</Element>
<Element Type="Struct" ID="0x7E397FED" Archetype="ActorParameters"/>
<Element Type="Struct" ID="0x30DE1A5B" Archetype="UnknownStruct27"/>
<Element Type="Struct" ID="0x30DE1A5B" Archetype="EmperorIngStage3Data"/>
</SubProperties>
</Properties>
<EditorProperties>

View File

@ -85,7 +85,7 @@
<Element Type="Float" ID="0xB0259D23">
<DefaultValue>0.0</DefaultValue>
</Element>
<Element Type="Struct" ID="0x244E9E6D" Archetype="WaterStruct">
<Element Type="Struct" ID="0x244E9E6D" Archetype="LayerInfo">
<SubProperties>
<Element Type="Int" ID="0xE94F7E87">
<DefaultValue>0</DefaultValue>
@ -101,7 +101,7 @@
</Element>
</SubProperties>
</Element>
<Element Type="Struct" ID="0xE75248E4" Archetype="WaterStruct">
<Element Type="Struct" ID="0xE75248E4" Archetype="LayerInfo">
<SubProperties>
<Element Type="Int" ID="0xE94F7E87">
<DefaultValue>0</DefaultValue>
@ -117,7 +117,7 @@
</Element>
</SubProperties>
</Element>
<Element Type="Struct" ID="0x385E0D43" Archetype="WaterStruct">
<Element Type="Struct" ID="0x385E0D43" Archetype="LayerInfo">
<SubProperties>
<Element Type="Int" ID="0xE94F7E87">
<DefaultValue>0</DefaultValue>
@ -133,7 +133,7 @@
</Element>
</SubProperties>
</Element>
<Element Type="Struct" ID="0xD369B640" Archetype="WaterStruct">
<Element Type="Struct" ID="0xD369B640" Archetype="LayerInfo">
<SubProperties>
<Element Type="Int" ID="0xE94F7E87">
<DefaultValue>0</DefaultValue>
@ -149,7 +149,7 @@
</Element>
</SubProperties>
</Element>
<Element Type="Struct" ID="0x6DDEA66D" Archetype="WaterStruct">
<Element Type="Struct" ID="0x6DDEA66D" Archetype="LayerInfo">
<SubProperties>
<Element Type="Int" ID="0xE94F7E87">
<DefaultValue>0</DefaultValue>
@ -213,7 +213,7 @@
<Element Type="Sound" ID="0xBA717F19">
<DefaultValue>0</DefaultValue>
</Element>
<Element Type="Int" ID="0xAE7C7EFC">
<Element Type="Sound" ID="0xAE7C7EFC">
<DefaultValue>-1</DefaultValue>
</Element>
<Element Type="Sound" ID="0xEEF81E4C">

View File

@ -110,7 +110,7 @@
<Element Type="Sound" ID="0x97070F80">
<DefaultValue>0</DefaultValue>
</Element>
<Element Type="Int" ID="0xAA453357">
<Element Type="Sound" ID="0xAA453357">
<DefaultValue>-1</DefaultValue>
</Element>
<Element Type="Float" ID="0xD2986C43">

View File

@ -40,7 +40,7 @@
<Element Type="Struct" ID="0xD756416E" Archetype="DamageInfo">
<SubProperties>
<Element Type="Choice" ID="0x119FBD31">
<DefaultValue>9</DefaultValue>
<DefaultValue>0x9</DefaultValue>
</Element>
<Element Type="Float" ID="0xF2D02613">
<DefaultValue>5.0</DefaultValue>
@ -56,7 +56,7 @@
<Element Type="Struct" ID="0x5285DB00" Archetype="DamageInfo">
<SubProperties>
<Element Type="Choice" ID="0x119FBD31">
<DefaultValue>9</DefaultValue>
<DefaultValue>0x9</DefaultValue>
</Element>
</SubProperties>
</Element>