Added support for excluding properties from generation results that already have valid names. Plus some more property names
This commit is contained in:
parent
bd8579167d
commit
95d270cde7
|
@ -101,6 +101,9 @@ struct SNameValue
|
||||||
/** Name of the property */
|
/** Name of the property */
|
||||||
TString Name;
|
TString Name;
|
||||||
|
|
||||||
|
/** Whether this name is valid */
|
||||||
|
bool IsValid;
|
||||||
|
|
||||||
/** List of all properties using this ID */
|
/** List of all properties using this ID */
|
||||||
std::list<IProperty*> PropertyList;
|
std::list<IProperty*> PropertyList;
|
||||||
|
|
||||||
|
@ -154,6 +157,14 @@ void LoadMap()
|
||||||
CXMLReader Reader(gpkMapPath);
|
CXMLReader Reader(gpkMapPath);
|
||||||
ASSERT(Reader.IsValid());
|
ASSERT(Reader.IsValid());
|
||||||
Reader << SerialParameter("PropertyMap", gNameMap, SH_HexDisplay);
|
Reader << SerialParameter("PropertyMap", gNameMap, SH_HexDisplay);
|
||||||
|
|
||||||
|
// Iterate over the map and set up the valid flags
|
||||||
|
for (auto Iter = gNameMap.begin(); Iter != gNameMap.end(); Iter++)
|
||||||
|
{
|
||||||
|
const SNameKey& kKey = Iter->first;
|
||||||
|
SNameValue& Value = Iter->second;
|
||||||
|
Value.IsValid = (CalculatePropertyID(*Value.Name, *gHashToTypeName[kKey.TypeHash]) == kKey.ID);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
gMapIsLoaded = true;
|
gMapIsLoaded = true;
|
||||||
|
@ -230,13 +241,31 @@ const char* GetPropertyName(u32 ID, const char* pkTypeName)
|
||||||
return MapFind == gNameMap.end() ? "Unknown" : *MapFind->second.Name;
|
return MapFind == gNameMap.end() ? "Unknown" : *MapFind->second.Name;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/** Calculate the property ID of a given name/type. */
|
||||||
|
u32 CalculatePropertyID(const char* pkName, const char* pkTypeName)
|
||||||
|
{
|
||||||
|
CCRC32 CRC;
|
||||||
|
CRC.Hash(pkName);
|
||||||
|
CRC.Hash(pkTypeName);
|
||||||
|
return CRC.Digest();
|
||||||
|
}
|
||||||
|
|
||||||
/** Returns whether the specified ID is in the map. */
|
/** Returns whether the specified ID is in the map. */
|
||||||
bool IsValidPropertyID(u32 ID, const char* pkTypeName)
|
bool IsValidPropertyID(u32 ID, const char* pkTypeName, bool* pOutIsValid /*= nullptr*/)
|
||||||
{
|
{
|
||||||
SNameKey Key = CreateKey(ID, pkTypeName);
|
SNameKey Key = CreateKey(ID, pkTypeName);
|
||||||
auto MapFind = gNameMap.find(Key);
|
auto MapFind = gNameMap.find(Key);
|
||||||
return MapFind != gNameMap.end();
|
|
||||||
|
if (MapFind != gNameMap.end())
|
||||||
|
{
|
||||||
|
if (pOutIsValid != nullptr)
|
||||||
|
{
|
||||||
|
SNameValue& Value = MapFind->second;
|
||||||
|
*pOutIsValid = Value.IsValid;
|
||||||
|
}
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
else return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
/** Retrieves a list of all properties that match the requested property ID. */
|
/** Retrieves a list of all properties that match the requested property ID. */
|
||||||
|
@ -355,6 +384,7 @@ void ChangeTypeName(IProperty* pProperty, const char* pkOldTypeName, const char*
|
||||||
{
|
{
|
||||||
SNameValue Value;
|
SNameValue Value;
|
||||||
Value.Name = pProperty->Name();
|
Value.Name = pProperty->Name();
|
||||||
|
Value.IsValid = ( CalculatePropertyID(*Value.Name, pkNewTypeName) == pProperty->ID() );
|
||||||
gNameMap[NewKey] = Value;
|
gNameMap[NewKey] = Value;
|
||||||
Find = gNameMap.find(NewKey);
|
Find = gNameMap.find(NewKey);
|
||||||
}
|
}
|
||||||
|
@ -365,7 +395,7 @@ void ChangeTypeName(IProperty* pProperty, const char* pkOldTypeName, const char*
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
gHashToTypeName[NewTypeHash] = pkNewTypeName;
|
RegisterTypeName(NewTypeHash, pkNewTypeName);
|
||||||
}
|
}
|
||||||
|
|
||||||
/** Change a type name. */
|
/** Change a type name. */
|
||||||
|
@ -401,6 +431,7 @@ void ChangeTypeNameGlobally(const char* pkOldTypeName, const char* pkNewTypeName
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
RegisterTypeName(NewTypeHash, pkNewTypeName);
|
||||||
gHashToTypeName[NewTypeHash] = pkNewTypeName;
|
gHashToTypeName[NewTypeHash] = pkNewTypeName;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -430,6 +461,7 @@ void RegisterProperty(IProperty* pProperty)
|
||||||
|
|
||||||
SNameValue Value;
|
SNameValue Value;
|
||||||
Value.Name = LegacyMapFind->second;
|
Value.Name = LegacyMapFind->second;
|
||||||
|
Value.IsValid = ( CalculatePropertyID(*Value.Name, pProperty->HashableTypeName()) == pProperty->ID() );
|
||||||
pProperty->SetName(Value.Name);
|
pProperty->SetName(Value.Name);
|
||||||
|
|
||||||
gNameMap[Key] = Value;
|
gNameMap[Key] = Value;
|
||||||
|
@ -465,4 +497,50 @@ void UnregisterProperty(IProperty* pProperty)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/** Class for iterating through the map */
|
||||||
|
class CIteratorImpl
|
||||||
|
{
|
||||||
|
public:
|
||||||
|
std::map<SNameKey, SNameValue>::const_iterator mIter;
|
||||||
|
};
|
||||||
|
|
||||||
|
CIterator::CIterator()
|
||||||
|
{
|
||||||
|
mpImpl = new CIteratorImpl;
|
||||||
|
mpImpl->mIter = gNameMap.begin();
|
||||||
|
}
|
||||||
|
|
||||||
|
CIterator::~CIterator()
|
||||||
|
{
|
||||||
|
delete mpImpl;
|
||||||
|
}
|
||||||
|
|
||||||
|
u32 CIterator::ID() const
|
||||||
|
{
|
||||||
|
return mpImpl->mIter->first.ID;
|
||||||
|
}
|
||||||
|
|
||||||
|
const char* CIterator::Name() const
|
||||||
|
{
|
||||||
|
return *mpImpl->mIter->second.Name;
|
||||||
|
}
|
||||||
|
|
||||||
|
const char* CIterator::TypeName() const
|
||||||
|
{
|
||||||
|
u32 TypeHash = mpImpl->mIter->first.TypeHash;
|
||||||
|
auto Find = gHashToTypeName.find(TypeHash);
|
||||||
|
ASSERT(Find != gHashToTypeName.end());
|
||||||
|
return *Find->second;
|
||||||
|
}
|
||||||
|
|
||||||
|
CIterator::operator bool() const
|
||||||
|
{
|
||||||
|
return mpImpl->mIter != gNameMap.end();
|
||||||
|
}
|
||||||
|
|
||||||
|
void CIterator::operator++()
|
||||||
|
{
|
||||||
|
mpImpl->mIter++;
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -22,8 +22,14 @@ const char* GetPropertyName(IProperty* pProperty);
|
||||||
*/
|
*/
|
||||||
const char* GetPropertyName(u32 ID, const char* pkTypeName);
|
const char* GetPropertyName(u32 ID, const char* pkTypeName);
|
||||||
|
|
||||||
/** Returns whether the specified name is in the map. */
|
/** Calculate the property ID of a given name/type. */
|
||||||
bool IsValidPropertyID(u32 ID, const char* pkTypeName);
|
u32 CalculatePropertyID(const char* pkName, const char* pkTypeName);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Returns whether the specified name is in the map.
|
||||||
|
* If the ID is valid and pOutIsValid is non-null, it will return whether the current name is correct.
|
||||||
|
*/
|
||||||
|
bool IsValidPropertyID(u32 ID, const char* pkTypeName, bool* pOutIsValid = nullptr);
|
||||||
|
|
||||||
/** Retrieves a list of all properties that match the requested property ID. */
|
/** Retrieves a list of all properties that match the requested property ID. */
|
||||||
void RetrievePropertiesWithID(u32 ID, const char* pkTypeName, std::list<IProperty*>& OutList);
|
void RetrievePropertiesWithID(u32 ID, const char* pkTypeName, std::list<IProperty*>& OutList);
|
||||||
|
@ -46,6 +52,24 @@ void RegisterProperty(IProperty* pProperty);
|
||||||
/** Unregisters a property from the name map. Should be called on all properties that use the map on destruction. */
|
/** Unregisters a property from the name map. Should be called on all properties that use the map on destruction. */
|
||||||
void UnregisterProperty(IProperty* pProperty);
|
void UnregisterProperty(IProperty* pProperty);
|
||||||
|
|
||||||
|
/** Class that allows for iteration through the name map */
|
||||||
|
class CIterator
|
||||||
|
{
|
||||||
|
/** Private implementation */
|
||||||
|
class CIteratorImpl* mpImpl;
|
||||||
|
|
||||||
|
public:
|
||||||
|
CIterator();
|
||||||
|
~CIterator();
|
||||||
|
|
||||||
|
u32 ID() const;
|
||||||
|
const char* Name() const;
|
||||||
|
const char* TypeName() const;
|
||||||
|
|
||||||
|
operator bool() const;
|
||||||
|
void operator ++();
|
||||||
|
};
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
#endif // NPROPERTYMAP_H
|
#endif // NPROPERTYMAP_H
|
||||||
|
|
|
@ -176,7 +176,7 @@ void CPropertyNameGenerator::Generate(const SPropertyNameGenerationParameters& r
|
||||||
u32 PropertyID = FullHash.Digest();
|
u32 PropertyID = FullHash.Digest();
|
||||||
|
|
||||||
// Check if this hash is a property ID
|
// Check if this hash is a property ID
|
||||||
if (IsValidPropertyID(PropertyID, pkTypeName))
|
if (IsValidPropertyID(PropertyID, pkTypeName, rkParams))
|
||||||
{
|
{
|
||||||
SGeneratedPropertyName PropertyName;
|
SGeneratedPropertyName PropertyName;
|
||||||
NPropertyMap::RetrieveXMLsWithProperty(PropertyID, pkTypeName, PropertyName.XmlList);
|
NPropertyMap::RetrieveXMLsWithProperty(PropertyID, pkTypeName, PropertyName.XmlList);
|
||||||
|
@ -253,7 +253,7 @@ void CPropertyNameGenerator::Generate(const SPropertyNameGenerationParameters& r
|
||||||
}
|
}
|
||||||
|
|
||||||
/** Returns whether a given property ID is valid */
|
/** Returns whether a given property ID is valid */
|
||||||
bool CPropertyNameGenerator::IsValidPropertyID(u32 ID, const char* pkType)
|
bool CPropertyNameGenerator::IsValidPropertyID(u32 ID, const char* pkType, const SPropertyNameGenerationParameters& rkParams)
|
||||||
{
|
{
|
||||||
if (!mValidTypePairMap.empty())
|
if (!mValidTypePairMap.empty())
|
||||||
{
|
{
|
||||||
|
@ -267,5 +267,9 @@ bool CPropertyNameGenerator::IsValidPropertyID(u32 ID, const char* pkType)
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
return NPropertyMap::IsValidPropertyID(ID, pkType);
|
{
|
||||||
|
bool IsAlreadyNamed;
|
||||||
|
bool IsValid = NPropertyMap::IsValidPropertyID(ID, pkType, &IsAlreadyNamed);
|
||||||
|
return IsValid && (!IsAlreadyNamed || !rkParams.ExcludeAccuratelyNamedProperties);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -40,6 +40,9 @@ struct SPropertyNameGenerationParameters
|
||||||
/** List of ID/type pairs to check against. If empty, all properties are valid. */
|
/** List of ID/type pairs to check against. If empty, all properties are valid. */
|
||||||
std::vector<SPropertyIdTypePair> ValidIdPairs;
|
std::vector<SPropertyIdTypePair> ValidIdPairs;
|
||||||
|
|
||||||
|
/** Whether to exclude properties that already have accurate names from the generation results. */
|
||||||
|
bool ExcludeAccuratelyNamedProperties;
|
||||||
|
|
||||||
/** Whether to print the output from the generation process to the log */
|
/** Whether to print the output from the generation process to the log */
|
||||||
bool PrintToLog;
|
bool PrintToLog;
|
||||||
};
|
};
|
||||||
|
@ -99,7 +102,7 @@ public:
|
||||||
void Generate(const SPropertyNameGenerationParameters& rkParams, IProgressNotifier* pProgressNotifier);
|
void Generate(const SPropertyNameGenerationParameters& rkParams, IProgressNotifier* pProgressNotifier);
|
||||||
|
|
||||||
/** Returns whether a given property ID is valid */
|
/** Returns whether a given property ID is valid */
|
||||||
bool IsValidPropertyID(u32 ID, const char* pkType);
|
bool IsValidPropertyID(u32 ID, const char* pkType, const SPropertyNameGenerationParameters& rkParams);
|
||||||
|
|
||||||
/** Accessors */
|
/** Accessors */
|
||||||
bool IsRunning() const
|
bool IsRunning() const
|
||||||
|
|
|
@ -162,6 +162,7 @@ void CGeneratePropertyNamesDialog::StartGeneration()
|
||||||
Params.Suffix = TO_TSTRING( mpUI->SuffixLineEdit->text() );
|
Params.Suffix = TO_TSTRING( mpUI->SuffixLineEdit->text() );
|
||||||
Params.Casing = mpUI->CasingComboBox->currentEnum();
|
Params.Casing = mpUI->CasingComboBox->currentEnum();
|
||||||
Params.ValidIdPairs = mIdPairs.toStdVector();
|
Params.ValidIdPairs = mIdPairs.toStdVector();
|
||||||
|
Params.ExcludeAccuratelyNamedProperties = mpUI->UnnamedOnlyCheckBox->isChecked();
|
||||||
Params.PrintToLog = mpUI->LogOutputCheckBox->isChecked();
|
Params.PrintToLog = mpUI->LogOutputCheckBox->isChecked();
|
||||||
|
|
||||||
// Run the task and configure ourselves so we can update correctly
|
// Run the task and configure ourselves so we can update correctly
|
||||||
|
|
|
@ -88,6 +88,16 @@
|
||||||
</property>
|
</property>
|
||||||
</widget>
|
</widget>
|
||||||
</item>
|
</item>
|
||||||
|
<item>
|
||||||
|
<widget class="QCheckBox" name="UnnamedOnlyCheckBox">
|
||||||
|
<property name="text">
|
||||||
|
<string>Exclude known properties</string>
|
||||||
|
</property>
|
||||||
|
<property name="checked">
|
||||||
|
<bool>true</bool>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
</layout>
|
</layout>
|
||||||
</widget>
|
</widget>
|
||||||
</item>
|
</item>
|
||||||
|
|
|
@ -759,10 +759,18 @@
|
||||||
<Key>CameraRotation</Key>
|
<Key>CameraRotation</Key>
|
||||||
<Value Path="Structs/CameraRotation.xml"/>
|
<Value Path="Structs/CameraRotation.xml"/>
|
||||||
</Element>
|
</Element>
|
||||||
|
<Element>
|
||||||
|
<Key>CameraShakerData</Key>
|
||||||
|
<Value Path="Structs/CameraShakerData.xml"/>
|
||||||
|
</Element>
|
||||||
<Element>
|
<Element>
|
||||||
<Key>CameraShakerEnvelope</Key>
|
<Key>CameraShakerEnvelope</Key>
|
||||||
<Value Path="Structs/CameraShakerEnvelope.xml"/>
|
<Value Path="Structs/CameraShakerEnvelope.xml"/>
|
||||||
</Element>
|
</Element>
|
||||||
|
<Element>
|
||||||
|
<Key>CharacterGlueData</Key>
|
||||||
|
<Value Path="Structs/CharacterGlueData.xml"/>
|
||||||
|
</Element>
|
||||||
<Element>
|
<Element>
|
||||||
<Key>CheckpointData</Key>
|
<Key>CheckpointData</Key>
|
||||||
<Value Path="Structs/CheckpointData.xml"/>
|
<Value Path="Structs/CheckpointData.xml"/>
|
||||||
|
@ -1223,10 +1231,6 @@
|
||||||
<Key>ShadowData</Key>
|
<Key>ShadowData</Key>
|
||||||
<Value Path="Structs/ShadowData.xml"/>
|
<Value Path="Structs/ShadowData.xml"/>
|
||||||
</Element>
|
</Element>
|
||||||
<Element>
|
|
||||||
<Key>ShakerData</Key>
|
|
||||||
<Value Path="Structs/ShakerData.xml"/>
|
|
||||||
</Element>
|
|
||||||
<Element>
|
<Element>
|
||||||
<Key>Shape</Key>
|
<Key>Shape</Key>
|
||||||
<Value Path="Enums/Shape.xml"/>
|
<Value Path="Enums/Shape.xml"/>
|
||||||
|
@ -1543,10 +1547,6 @@
|
||||||
<Key>UnknownStruct138</Key>
|
<Key>UnknownStruct138</Key>
|
||||||
<Value Path="Structs/UnknownStruct138.xml"/>
|
<Value Path="Structs/UnknownStruct138.xml"/>
|
||||||
</Element>
|
</Element>
|
||||||
<Element>
|
|
||||||
<Key>UnknownStruct139</Key>
|
|
||||||
<Value Path="Structs/UnknownStruct139.xml"/>
|
|
||||||
</Element>
|
|
||||||
<Element>
|
<Element>
|
||||||
<Key>UnknownStruct14</Key>
|
<Key>UnknownStruct14</Key>
|
||||||
<Value Path="Structs/UnknownStruct14.xml"/>
|
<Value Path="Structs/UnknownStruct14.xml"/>
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
<?xml version="1.0" encoding="UTF-8"?>
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
<PropertyTemplate ArchiveVer="4" Game="DKCReturns">
|
<PropertyTemplate ArchiveVer="4" Game="DKCReturns">
|
||||||
<PropertyArchetype Type="Struct">
|
<PropertyArchetype Type="Struct">
|
||||||
<Name>ShakerData</Name>
|
<Name>CameraShakerData</Name>
|
||||||
<SubProperties>
|
<SubProperties>
|
||||||
<Element Type="Int" ID="0xC3E75C5F">
|
<Element Type="Int" ID="0xC3E75C5F">
|
||||||
<CookPreference>Always</CookPreference>
|
<CookPreference>Always</CookPreference>
|
|
@ -1,7 +1,7 @@
|
||||||
<?xml version="1.0" encoding="UTF-8"?>
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
<PropertyTemplate ArchiveVer="4" Game="DKCReturns">
|
<PropertyTemplate ArchiveVer="4" Game="DKCReturns">
|
||||||
<PropertyArchetype Type="Struct">
|
<PropertyArchetype Type="Struct">
|
||||||
<Name>UnknownStruct139</Name>
|
<Name>CharacterGlueData</Name>
|
||||||
<SubProperties>
|
<SubProperties>
|
||||||
<Element Type="Enum" ID="0x411D0552">
|
<Element Type="Enum" ID="0x411D0552">
|
||||||
<DefaultValue>0xD4E949F7</DefaultValue>
|
<DefaultValue>0xD4E949F7</DefaultValue>
|
|
@ -10,7 +10,7 @@
|
||||||
<Element Type="Struct" ID="0x975DCEF7" Archetype="GenericCreatureStructG"/>
|
<Element Type="Struct" ID="0x975DCEF7" Archetype="GenericCreatureStructG"/>
|
||||||
<Element Type="Struct" ID="0x8ABB25C4" Archetype="PlayerCrushData"/>
|
<Element Type="Struct" ID="0x8ABB25C4" Archetype="PlayerCrushData"/>
|
||||||
<Element Type="Struct" ID="0xF4D39593" Archetype="TrackObjectModuleData"/>
|
<Element Type="Struct" ID="0xF4D39593" Archetype="TrackObjectModuleData"/>
|
||||||
<Element Type="Struct" ID="0x9D9CE325" Archetype="UnknownStruct139"/>
|
<Element Type="Struct" ID="0x9D9CE325" Archetype="CharacterGlueData"/>
|
||||||
<Element Type="Struct" ID="0x34A979A6" Archetype="TandemBeam"/>
|
<Element Type="Struct" ID="0x34A979A6" Archetype="TandemBeam"/>
|
||||||
</SubProperties>
|
</SubProperties>
|
||||||
</PropertyArchetype>
|
</PropertyArchetype>
|
||||||
|
|
|
@ -927,6 +927,10 @@
|
||||||
<Key>CameraRotation</Key>
|
<Key>CameraRotation</Key>
|
||||||
<Value Path="Structs/CameraRotation.xml"/>
|
<Value Path="Structs/CameraRotation.xml"/>
|
||||||
</Element>
|
</Element>
|
||||||
|
<Element>
|
||||||
|
<Key>CameraShakerData</Key>
|
||||||
|
<Value Path="Structs/CameraShakerData.xml"/>
|
||||||
|
</Element>
|
||||||
<Element>
|
<Element>
|
||||||
<Key>CameraShakerEnvelope</Key>
|
<Key>CameraShakerEnvelope</Key>
|
||||||
<Value Path="Structs/CameraShakerEnvelope.xml"/>
|
<Value Path="Structs/CameraShakerEnvelope.xml"/>
|
||||||
|
@ -1443,10 +1447,6 @@
|
||||||
<Key>SeedBoss3Data</Key>
|
<Key>SeedBoss3Data</Key>
|
||||||
<Value Path="Structs/SeedBoss3Data.xml"/>
|
<Value Path="Structs/SeedBoss3Data.xml"/>
|
||||||
</Element>
|
</Element>
|
||||||
<Element>
|
|
||||||
<Key>ShakerData</Key>
|
|
||||||
<Value Path="Structs/ShakerData.xml"/>
|
|
||||||
</Element>
|
|
||||||
<Element>
|
<Element>
|
||||||
<Key>Ship</Key>
|
<Key>Ship</Key>
|
||||||
<Value Path="Structs/Ship.xml"/>
|
<Value Path="Structs/Ship.xml"/>
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
<?xml version="1.0" encoding="UTF-8"?>
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
<PropertyTemplate ArchiveVer="4" Game="Corruption">
|
<PropertyTemplate ArchiveVer="4" Game="Corruption">
|
||||||
<PropertyArchetype Type="Struct">
|
<PropertyArchetype Type="Struct">
|
||||||
<Name>ShakerData</Name>
|
<Name>CameraShakerData</Name>
|
||||||
<SubProperties>
|
<SubProperties>
|
||||||
<Element Type="Int" ID="0xC3E75C5F">
|
<Element Type="Int" ID="0xC3E75C5F">
|
||||||
<DefaultValue>48</DefaultValue>
|
<DefaultValue>48</DefaultValue>
|
|
@ -687,6 +687,10 @@
|
||||||
<Key>CameraRotation</Key>
|
<Key>CameraRotation</Key>
|
||||||
<Value Path="Structs/CameraRotation.xml"/>
|
<Value Path="Structs/CameraRotation.xml"/>
|
||||||
</Element>
|
</Element>
|
||||||
|
<Element>
|
||||||
|
<Key>CameraShakerData</Key>
|
||||||
|
<Value Path="Structs/CameraShakerData.xml"/>
|
||||||
|
</Element>
|
||||||
<Element>
|
<Element>
|
||||||
<Key>CameraShakerEnvelope</Key>
|
<Key>CameraShakerEnvelope</Key>
|
||||||
<Value Path="Structs/CameraShakerEnvelope.xml"/>
|
<Value Path="Structs/CameraShakerEnvelope.xml"/>
|
||||||
|
@ -1115,10 +1119,6 @@
|
||||||
<Key>SeedBoss1Stage</Key>
|
<Key>SeedBoss1Stage</Key>
|
||||||
<Value Path="Structs/SeedBoss1Stage.xml"/>
|
<Value Path="Structs/SeedBoss1Stage.xml"/>
|
||||||
</Element>
|
</Element>
|
||||||
<Element>
|
|
||||||
<Key>ShakerData</Key>
|
|
||||||
<Value Path="Structs/ShakerData.xml"/>
|
|
||||||
</Element>
|
|
||||||
<Element>
|
<Element>
|
||||||
<Key>Ship</Key>
|
<Key>Ship</Key>
|
||||||
<Value Path="Structs/Ship.xml"/>
|
<Value Path="Structs/Ship.xml"/>
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
<?xml version="1.0" encoding="UTF-8"?>
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
<PropertyTemplate ArchiveVer="4" Game="CorruptionProto">
|
<PropertyTemplate ArchiveVer="4" Game="CorruptionProto">
|
||||||
<PropertyArchetype Type="Struct">
|
<PropertyArchetype Type="Struct">
|
||||||
<Name>ShakerData</Name>
|
<Name>CameraShakerData</Name>
|
||||||
<SubProperties>
|
<SubProperties>
|
||||||
<Element Type="Int" ID="0xC3E75C5F">
|
<Element Type="Int" ID="0xC3E75C5F">
|
||||||
<DefaultValue>48</DefaultValue>
|
<DefaultValue>48</DefaultValue>
|
|
@ -1727,7 +1727,7 @@
|
||||||
</Element>
|
</Element>
|
||||||
<Element>
|
<Element>
|
||||||
<Key ID="0xC431344" Type="bool"/>
|
<Key ID="0xC431344" Type="bool"/>
|
||||||
<Value Name="Unknown"/>
|
<Value Name="ApplyBoostAfterUnStun"/>
|
||||||
</Element>
|
</Element>
|
||||||
<Element>
|
<Element>
|
||||||
<Key ID="0xC4763D7" Type="float"/>
|
<Key ID="0xC4763D7" Type="float"/>
|
||||||
|
@ -2695,7 +2695,7 @@
|
||||||
</Element>
|
</Element>
|
||||||
<Element>
|
<Element>
|
||||||
<Key ID="0x130539A0" Type="Vector"/>
|
<Key ID="0x130539A0" Type="Vector"/>
|
||||||
<Value Name="Unknown"/>
|
<Value Name="IceGibParticlesOffset"/>
|
||||||
</Element>
|
</Element>
|
||||||
<Element>
|
<Element>
|
||||||
<Key ID="0x13072E6C" Type="asset"/>
|
<Key ID="0x13072E6C" Type="asset"/>
|
||||||
|
@ -7395,7 +7395,7 @@
|
||||||
</Element>
|
</Element>
|
||||||
<Element>
|
<Element>
|
||||||
<Key ID="0x31896ED0" Type="GenericCreatureStructC"/>
|
<Key ID="0x31896ED0" Type="GenericCreatureStructC"/>
|
||||||
<Value Name="GenericCreatureStructC"/>
|
<Value Name="ActorRule3"/>
|
||||||
</Element>
|
</Element>
|
||||||
<Element>
|
<Element>
|
||||||
<Key ID="0x3196B2E7" Type="Color"/>
|
<Key ID="0x3196B2E7" Type="Color"/>
|
||||||
|
@ -8363,7 +8363,7 @@
|
||||||
</Element>
|
</Element>
|
||||||
<Element>
|
<Element>
|
||||||
<Key ID="0x38711325" Type="bool"/>
|
<Key ID="0x38711325" Type="bool"/>
|
||||||
<Value Name="Unknown"/>
|
<Value Name="StunOnlyWhenOnGround"/>
|
||||||
</Element>
|
</Element>
|
||||||
<Element>
|
<Element>
|
||||||
<Key ID="0x3874576D" Type="BloggStruct"/>
|
<Key ID="0x3874576D" Type="BloggStruct"/>
|
||||||
|
@ -9515,7 +9515,7 @@
|
||||||
</Element>
|
</Element>
|
||||||
<Element>
|
<Element>
|
||||||
<Key ID="0x3FF111B9" Type="UnknownStruct2"/>
|
<Key ID="0x3FF111B9" Type="UnknownStruct2"/>
|
||||||
<Value Name="UnknownStruct2"/>
|
<Value Name="Attack"/>
|
||||||
</Element>
|
</Element>
|
||||||
<Element>
|
<Element>
|
||||||
<Key ID="0x3FF87A8C" Type="bool"/>
|
<Key ID="0x3FF87A8C" Type="bool"/>
|
||||||
|
@ -9635,7 +9635,7 @@
|
||||||
</Element>
|
</Element>
|
||||||
<Element>
|
<Element>
|
||||||
<Key ID="0x40A372B6" Type="bool"/>
|
<Key ID="0x40A372B6" Type="bool"/>
|
||||||
<Value Name="Unknown"/>
|
<Value Name="CanUnStun"/>
|
||||||
</Element>
|
</Element>
|
||||||
<Element>
|
<Element>
|
||||||
<Key ID="0x40AB00FA" Type="Vector"/>
|
<Key ID="0x40AB00FA" Type="Vector"/>
|
||||||
|
@ -10111,7 +10111,7 @@
|
||||||
</Element>
|
</Element>
|
||||||
<Element>
|
<Element>
|
||||||
<Key ID="0x43BBB1DD" Type="PatternedAITypedef"/>
|
<Key ID="0x43BBB1DD" Type="PatternedAITypedef"/>
|
||||||
<Value Name="PatternedAITypedef"/>
|
<Value Name="PatternedInfo"/>
|
||||||
</Element>
|
</Element>
|
||||||
<Element>
|
<Element>
|
||||||
<Key ID="0x43BC661C" Type="bool"/>
|
<Key ID="0x43BC661C" Type="bool"/>
|
||||||
|
@ -13267,7 +13267,7 @@
|
||||||
</Element>
|
</Element>
|
||||||
<Element>
|
<Element>
|
||||||
<Key ID="0x586EE888" Type="GenericCreatureStructC"/>
|
<Key ID="0x586EE888" Type="GenericCreatureStructC"/>
|
||||||
<Value Name="GenericCreatureStructC"/>
|
<Value Name="ActorRule4"/>
|
||||||
</Element>
|
</Element>
|
||||||
<Element>
|
<Element>
|
||||||
<Key ID="0x58769EB2" Type="DamageInfo"/>
|
<Key ID="0x58769EB2" Type="DamageInfo"/>
|
||||||
|
@ -14723,7 +14723,7 @@
|
||||||
</Element>
|
</Element>
|
||||||
<Element>
|
<Element>
|
||||||
<Key ID="0x62F0CFFC" Type="float"/>
|
<Key ID="0x62F0CFFC" Type="float"/>
|
||||||
<Value Name="Unknown"/>
|
<Value Name="GroundPoundDistanceVerticalMultiplier"/>
|
||||||
</Element>
|
</Element>
|
||||||
<Element>
|
<Element>
|
||||||
<Key ID="0x62FB47A5" Type="float"/>
|
<Key ID="0x62FB47A5" Type="float"/>
|
||||||
|
@ -23571,7 +23571,11 @@
|
||||||
</Element>
|
</Element>
|
||||||
<Element>
|
<Element>
|
||||||
<Key ID="0x9D9CE325" Type="UnknownStruct139"/>
|
<Key ID="0x9D9CE325" Type="UnknownStruct139"/>
|
||||||
<Value Name="UnknownStruct139"/>
|
<Value Name="CharacterGlue"/>
|
||||||
|
</Element>
|
||||||
|
<Element>
|
||||||
|
<Key ID="0x9D9CE325" Type="CharacterGlueData"/>
|
||||||
|
<Value Name="CharacterGlue"/>
|
||||||
</Element>
|
</Element>
|
||||||
<Element>
|
<Element>
|
||||||
<Key ID="0x9D9D3760" Type="float"/>
|
<Key ID="0x9D9D3760" Type="float"/>
|
||||||
|
@ -25115,7 +25119,7 @@
|
||||||
</Element>
|
</Element>
|
||||||
<Element>
|
<Element>
|
||||||
<Key ID="0xA792725D" Type="UnknownStruct98"/>
|
<Key ID="0xA792725D" Type="UnknownStruct98"/>
|
||||||
<Value Name="UnknownStruct98"/>
|
<Value Name="Idle"/>
|
||||||
</Element>
|
</Element>
|
||||||
<Element>
|
<Element>
|
||||||
<Key ID="0xA793E5F3" Type="int"/>
|
<Key ID="0xA793E5F3" Type="int"/>
|
||||||
|
@ -26127,7 +26131,7 @@
|
||||||
</Element>
|
</Element>
|
||||||
<Element>
|
<Element>
|
||||||
<Key ID="0xAE53ED4E" Type="GenericCreatureStructC"/>
|
<Key ID="0xAE53ED4E" Type="GenericCreatureStructC"/>
|
||||||
<Value Name="GenericCreatureStructC"/>
|
<Value Name="ActorRule2"/>
|
||||||
</Element>
|
</Element>
|
||||||
<Element>
|
<Element>
|
||||||
<Key ID="0xAE599017" Type="float"/>
|
<Key ID="0xAE599017" Type="float"/>
|
||||||
|
@ -29771,7 +29775,7 @@
|
||||||
</Element>
|
</Element>
|
||||||
<Element>
|
<Element>
|
||||||
<Key ID="0xC69F691A" Type="SeedBoss1HandData"/>
|
<Key ID="0xC69F691A" Type="SeedBoss1HandData"/>
|
||||||
<Value Name="SeedBoss1HandData"/>
|
<Value Name="HandData"/>
|
||||||
</Element>
|
</Element>
|
||||||
<Element>
|
<Element>
|
||||||
<Key ID="0xC6A6B724" Type="float"/>
|
<Key ID="0xC6A6B724" Type="float"/>
|
||||||
|
@ -29991,7 +29995,7 @@
|
||||||
</Element>
|
</Element>
|
||||||
<Element>
|
<Element>
|
||||||
<Key ID="0xC7B46B16" Type="GenericCreatureStructC"/>
|
<Key ID="0xC7B46B16" Type="GenericCreatureStructC"/>
|
||||||
<Value Name="GenericCreatureStructC"/>
|
<Value Name="ActorRule5"/>
|
||||||
</Element>
|
</Element>
|
||||||
<Element>
|
<Element>
|
||||||
<Key ID="0xC7BD1022" Type="UnknownStruct263"/>
|
<Key ID="0xC7BD1022" Type="UnknownStruct263"/>
|
||||||
|
@ -32055,7 +32059,7 @@
|
||||||
</Element>
|
</Element>
|
||||||
<Element>
|
<Element>
|
||||||
<Key ID="0xD5110050" Type="UnknownStruct97"/>
|
<Key ID="0xD5110050" Type="UnknownStruct97"/>
|
||||||
<Value Name="UnknownStruct97"/>
|
<Value Name="Damage"/>
|
||||||
</Element>
|
</Element>
|
||||||
<Element>
|
<Element>
|
||||||
<Key ID="0xD51CA051" Type="sound"/>
|
<Key ID="0xD51CA051" Type="sound"/>
|
||||||
|
@ -32091,7 +32095,7 @@
|
||||||
</Element>
|
</Element>
|
||||||
<Element>
|
<Element>
|
||||||
<Key ID="0xD54D6FAD" Type="GenericCreatureStructC"/>
|
<Key ID="0xD54D6FAD" Type="GenericCreatureStructC"/>
|
||||||
<Value Name="GenericCreatureStructC"/>
|
<Value Name="ActorRule1"/>
|
||||||
</Element>
|
</Element>
|
||||||
<Element>
|
<Element>
|
||||||
<Key ID="0xD5505EA4" Type="float"/>
|
<Key ID="0xD5505EA4" Type="float"/>
|
||||||
|
@ -34115,7 +34119,7 @@
|
||||||
</Element>
|
</Element>
|
||||||
<Element>
|
<Element>
|
||||||
<Key ID="0xE38A723D" Type="bool"/>
|
<Key ID="0xE38A723D" Type="bool"/>
|
||||||
<Value Name="Unknown"/>
|
<Value Name="KnockbackInsteadOfStun"/>
|
||||||
</Element>
|
</Element>
|
||||||
<Element>
|
<Element>
|
||||||
<Key ID="0xE38B44AF" Type="asset"/>
|
<Key ID="0xE38B44AF" Type="asset"/>
|
||||||
|
@ -37199,7 +37203,7 @@
|
||||||
</Element>
|
</Element>
|
||||||
<Element>
|
<Element>
|
||||||
<Key ID="0xF6E66110" Type="SeedBoss1Data"/>
|
<Key ID="0xF6E66110" Type="SeedBoss1Data"/>
|
||||||
<Value Name="SeedBoss1Data"/>
|
<Value Name="Data"/>
|
||||||
</Element>
|
</Element>
|
||||||
<Element>
|
<Element>
|
||||||
<Key ID="0xF6F185D6" Type="sound"/>
|
<Key ID="0xF6F185D6" Type="sound"/>
|
||||||
|
@ -37595,7 +37599,7 @@
|
||||||
</Element>
|
</Element>
|
||||||
<Element>
|
<Element>
|
||||||
<Key ID="0xF9656C39" Type="Color"/>
|
<Key ID="0xF9656C39" Type="Color"/>
|
||||||
<Value Name="Unknown"/>
|
<Value Name="ColorHyperQuake"/>
|
||||||
</Element>
|
</Element>
|
||||||
<Element>
|
<Element>
|
||||||
<Key ID="0xF9670AC1" Type="float"/>
|
<Key ID="0xF9670AC1" Type="float"/>
|
||||||
|
|
|
@ -10,7 +10,7 @@
|
||||||
</Element>
|
</Element>
|
||||||
</SubProperties>
|
</SubProperties>
|
||||||
</Element>
|
</Element>
|
||||||
<Element Type="Struct" ID="0xAD547F96" Archetype="ShakerData"/>
|
<Element Type="Struct" ID="0xAD547F96" Archetype="CameraShakerData"/>
|
||||||
</SubProperties>
|
</SubProperties>
|
||||||
</Properties>
|
</Properties>
|
||||||
<EditorProperties>
|
<EditorProperties>
|
||||||
|
|
|
@ -4,7 +4,7 @@
|
||||||
<Name>CameraShaker</Name>
|
<Name>CameraShaker</Name>
|
||||||
<SubProperties>
|
<SubProperties>
|
||||||
<Element Type="Struct" ID="0x255A4580" Archetype="EditorProperties"/>
|
<Element Type="Struct" ID="0x255A4580" Archetype="EditorProperties"/>
|
||||||
<Element Type="Struct" ID="0xAD547F96" Archetype="ShakerData"/>
|
<Element Type="Struct" ID="0xAD547F96" Archetype="CameraShakerData"/>
|
||||||
</SubProperties>
|
</SubProperties>
|
||||||
</Properties>
|
</Properties>
|
||||||
<EditorProperties>
|
<EditorProperties>
|
||||||
|
|
|
@ -4,7 +4,7 @@
|
||||||
<Name>CameraShaker</Name>
|
<Name>CameraShaker</Name>
|
||||||
<SubProperties>
|
<SubProperties>
|
||||||
<Element Type="Struct" ID="0x255A4580" Archetype="EditorProperties"/>
|
<Element Type="Struct" ID="0x255A4580" Archetype="EditorProperties"/>
|
||||||
<Element Type="Struct" ID="0xAD547F96" Archetype="ShakerData"/>
|
<Element Type="Struct" ID="0xAD547F96" Archetype="CameraShakerData"/>
|
||||||
</SubProperties>
|
</SubProperties>
|
||||||
</Properties>
|
</Properties>
|
||||||
<EditorProperties>
|
<EditorProperties>
|
||||||
|
|
Loading…
Reference in New Issue