Finished the template writer and regenerated templates (most of the template changes are just automated formatting changes)
This commit is contained in:
parent
3296948bea
commit
34eb7c436e
|
@ -5,6 +5,7 @@
|
||||||
#include <tinyxml2.h>
|
#include <tinyxml2.h>
|
||||||
|
|
||||||
using namespace tinyxml2;
|
using namespace tinyxml2;
|
||||||
|
TString CTemplateWriter::smTemplatesDir = "../templates/";
|
||||||
|
|
||||||
CTemplateWriter::CTemplateWriter()
|
CTemplateWriter::CTemplateWriter()
|
||||||
{
|
{
|
||||||
|
@ -14,12 +15,14 @@ void CTemplateWriter::SaveAllTemplates()
|
||||||
{
|
{
|
||||||
// Create directory
|
// Create directory
|
||||||
std::list<CMasterTemplate*> MasterList = CMasterTemplate::GetMasterList();
|
std::list<CMasterTemplate*> MasterList = CMasterTemplate::GetMasterList();
|
||||||
TString Out = "../templates/";
|
boost::filesystem::create_directory(smTemplatesDir.ToStdString());
|
||||||
boost::filesystem::create_directory(Out.ToStdString());
|
|
||||||
|
// Resave property list
|
||||||
|
SavePropertyList();
|
||||||
|
|
||||||
// Resave master templates
|
// Resave master templates
|
||||||
for (auto it = MasterList.begin(); it != MasterList.end(); it++)
|
for (auto it = MasterList.begin(); it != MasterList.end(); it++)
|
||||||
SaveGameTemplates(*it, Out);
|
SaveGameTemplates(*it);
|
||||||
|
|
||||||
// Resave game list
|
// Resave game list
|
||||||
XMLDocument GameList;
|
XMLDocument GameList;
|
||||||
|
@ -31,6 +34,10 @@ void CTemplateWriter::SaveAllTemplates()
|
||||||
pBase->SetAttribute("version", 4);
|
pBase->SetAttribute("version", 4);
|
||||||
GameList.LinkEndChild(pBase);
|
GameList.LinkEndChild(pBase);
|
||||||
|
|
||||||
|
XMLElement *pProperties = GameList.NewElement("properties");
|
||||||
|
pProperties->SetText("Properties.xml");
|
||||||
|
pBase->LinkEndChild(pProperties);
|
||||||
|
|
||||||
for (auto it = MasterList.begin(); it != MasterList.end(); it++)
|
for (auto it = MasterList.begin(); it != MasterList.end(); it++)
|
||||||
{
|
{
|
||||||
CMasterTemplate *pMaster = *it;
|
CMasterTemplate *pMaster = *it;
|
||||||
|
@ -52,20 +59,24 @@ void CTemplateWriter::SaveAllTemplates()
|
||||||
pGame->LinkEndChild(pTempPath);
|
pGame->LinkEndChild(pTempPath);
|
||||||
}
|
}
|
||||||
|
|
||||||
TString GameListName = Out + "GameList.xml";
|
TString GameListName = smTemplatesDir + "GameList.xml";
|
||||||
GameList.SaveFile(*GameListName);
|
GameList.SaveFile(*GameListName);
|
||||||
}
|
}
|
||||||
|
|
||||||
void CTemplateWriter::SaveGameTemplates(CMasterTemplate *pMaster, const TString& rkDir)
|
void CTemplateWriter::SaveGameTemplates(CMasterTemplate *pMaster)
|
||||||
{
|
{
|
||||||
// Create directory
|
// Create directory
|
||||||
TString OutFile = rkDir + pMaster->mSourceFile;
|
TString OutFile = smTemplatesDir + pMaster->mSourceFile;
|
||||||
TString OutDir = OutFile.GetFileDirectory();
|
TString OutDir = OutFile.GetFileDirectory();
|
||||||
boost::filesystem::create_directory(OutDir.ToStdString());
|
boost::filesystem::create_directory(OutDir.ToStdString());
|
||||||
|
|
||||||
// Resave script templates
|
// Resave script templates
|
||||||
for (auto it = pMaster->mTemplates.begin(); it != pMaster->mTemplates.end(); it++)
|
for (auto it = pMaster->mTemplates.begin(); it != pMaster->mTemplates.end(); it++)
|
||||||
SaveScriptTemplate(it->second, OutDir);
|
SaveScriptTemplate(it->second);
|
||||||
|
|
||||||
|
// Resave struct templates
|
||||||
|
for (auto it = pMaster->mStructTemplates.begin(); it != pMaster->mStructTemplates.end(); it++)
|
||||||
|
SaveStructTemplate(it->second, pMaster);
|
||||||
|
|
||||||
// Resave master template
|
// Resave master template
|
||||||
XMLDocument Master;
|
XMLDocument Master;
|
||||||
|
@ -77,16 +88,6 @@ void CTemplateWriter::SaveGameTemplates(CMasterTemplate *pMaster, const TString&
|
||||||
pBase->SetAttribute("version", 4);
|
pBase->SetAttribute("version", 4);
|
||||||
Master.LinkEndChild(pBase);
|
Master.LinkEndChild(pBase);
|
||||||
|
|
||||||
// Write property list
|
|
||||||
if (!pMaster->smPropertyNames.empty())
|
|
||||||
{
|
|
||||||
SavePropertyList(OutDir);
|
|
||||||
|
|
||||||
XMLElement *pPropList = Master.NewElement("properties");
|
|
||||||
pPropList->SetText("Properties.xml");
|
|
||||||
pBase->LinkEndChild(pPropList);
|
|
||||||
}
|
|
||||||
|
|
||||||
// Write versions
|
// Write versions
|
||||||
if (!pMaster->mGameVersions.empty())
|
if (!pMaster->mGameVersions.empty())
|
||||||
{
|
{
|
||||||
|
@ -97,7 +98,7 @@ void CTemplateWriter::SaveGameTemplates(CMasterTemplate *pMaster, const TString&
|
||||||
{
|
{
|
||||||
XMLElement *pVersion = Master.NewElement("version");
|
XMLElement *pVersion = Master.NewElement("version");
|
||||||
pVersion->SetText(*(*it));
|
pVersion->SetText(*(*it));
|
||||||
pBase->LinkEndChild(pVersion);
|
pVersionsBlock->LinkEndChild(pVersion);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -147,7 +148,7 @@ void CTemplateWriter::SaveGameTemplates(CMasterTemplate *pMaster, const TString&
|
||||||
Master.SaveFile(*OutFile);
|
Master.SaveFile(*OutFile);
|
||||||
}
|
}
|
||||||
|
|
||||||
void CTemplateWriter::SavePropertyList(const TString& rkDir)
|
void CTemplateWriter::SavePropertyList()
|
||||||
{
|
{
|
||||||
// Create XML
|
// Create XML
|
||||||
XMLDocument List;
|
XMLDocument List;
|
||||||
|
@ -171,16 +172,18 @@ void CTemplateWriter::SavePropertyList(const TString& rkDir)
|
||||||
pBase->LinkEndChild(pElem);
|
pBase->LinkEndChild(pElem);
|
||||||
}
|
}
|
||||||
|
|
||||||
TString OutFile = rkDir + "Properties.xml";
|
TString OutFile = smTemplatesDir + "Properties.xml";
|
||||||
List.SaveFile(*OutFile);
|
List.SaveFile(*OutFile);
|
||||||
}
|
}
|
||||||
|
|
||||||
void CTemplateWriter::SaveScriptTemplate(CScriptTemplate *pTemp, const TString& rkDir)
|
void CTemplateWriter::SaveScriptTemplate(CScriptTemplate *pTemp)
|
||||||
{
|
{
|
||||||
|
CMasterTemplate *pMaster = pTemp->MasterTemplate();
|
||||||
|
|
||||||
// Create directory
|
// Create directory
|
||||||
TString OutFile = rkDir + pTemp->mSourceFile;
|
TString OutFile = smTemplatesDir + pMaster->GetDirectory() + pTemp->mSourceFile;
|
||||||
TString outDir = OutFile.GetFileDirectory();
|
TString OutDir = OutFile.GetFileDirectory();
|
||||||
boost::filesystem::create_directory(*outDir);
|
boost::filesystem::create_directory(*OutDir);
|
||||||
|
|
||||||
// Create new document
|
// Create new document
|
||||||
XMLDocument ScriptXML;
|
XMLDocument ScriptXML;
|
||||||
|
@ -199,7 +202,14 @@ void CTemplateWriter::SaveScriptTemplate(CScriptTemplate *pTemp, const TString&
|
||||||
pRoot->LinkEndChild(pName);
|
pRoot->LinkEndChild(pName);
|
||||||
|
|
||||||
// Write properties
|
// Write properties
|
||||||
SaveProperties(&ScriptXML, pRoot, pTemp->mpBaseStruct, pTemp->MasterTemplate(), rkDir);
|
SaveProperties(&ScriptXML, pRoot, pTemp->mpBaseStruct, pMaster);
|
||||||
|
|
||||||
|
// States/Messages [todo]
|
||||||
|
XMLElement *pStates = ScriptXML.NewElement("states");
|
||||||
|
pRoot->LinkEndChild(pStates);
|
||||||
|
|
||||||
|
XMLElement *pMessages = ScriptXML.NewElement("messages");
|
||||||
|
pRoot->LinkEndChild(pMessages);
|
||||||
|
|
||||||
// Write editor properties
|
// Write editor properties
|
||||||
XMLElement *pEditor = ScriptXML.NewElement("editor");
|
XMLElement *pEditor = ScriptXML.NewElement("editor");
|
||||||
|
@ -248,12 +258,12 @@ void CTemplateWriter::SaveScriptTemplate(CScriptTemplate *pTemp, const TString&
|
||||||
}
|
}
|
||||||
|
|
||||||
s32 Force = -1;
|
s32 Force = -1;
|
||||||
if (it->AssetSource == CScriptTemplate::SEditorAsset::eAnimParams)
|
if (it->AssetType == CScriptTemplate::SEditorAsset::eAnimParams)
|
||||||
Force = it->ForceNodeIndex;
|
Force = it->ForceNodeIndex;
|
||||||
|
|
||||||
XMLElement *pAsset = ScriptXML.NewElement(*Type);
|
XMLElement *pAsset = ScriptXML.NewElement(*Type);
|
||||||
pAsset->SetAttribute("source", *Source);
|
pAsset->SetAttribute("source", *Source);
|
||||||
if (Force >= 0) pAsset->SetAttribute("force", std::to_string(Force).c_str());
|
if (Force >= 0) pAsset->SetAttribute("force", *TString::FromInt32(Force, 0, 10));
|
||||||
pAsset->SetText(*it->AssetLocation);
|
pAsset->SetText(*it->AssetLocation);
|
||||||
pAssets->LinkEndChild(pAsset);
|
pAssets->LinkEndChild(pAsset);
|
||||||
}
|
}
|
||||||
|
@ -314,7 +324,7 @@ void CTemplateWriter::SaveScriptTemplate(CScriptTemplate *pTemp, const TString&
|
||||||
// Write conditions
|
// Write conditions
|
||||||
for (auto it = pTemp->mVolumeConditions.begin(); it != pTemp->mVolumeConditions.end(); it++)
|
for (auto it = pTemp->mVolumeConditions.begin(); it != pTemp->mVolumeConditions.end(); it++)
|
||||||
{
|
{
|
||||||
// Value should be an integer, or a boolean condition?
|
// Value should be an integer, or a boolean condition
|
||||||
TString StrVal;
|
TString StrVal;
|
||||||
|
|
||||||
if (pProp->Type() == eBoolProperty)
|
if (pProp->Type() == eBoolProperty)
|
||||||
|
@ -335,10 +345,10 @@ void CTemplateWriter::SaveScriptTemplate(CScriptTemplate *pTemp, const TString&
|
||||||
ScriptXML.SaveFile(*OutFile);
|
ScriptXML.SaveFile(*OutFile);
|
||||||
}
|
}
|
||||||
|
|
||||||
void CTemplateWriter::SaveStructTemplate(CStructTemplate *pTemp, CMasterTemplate *pMaster, const TString& rkDir)
|
void CTemplateWriter::SaveStructTemplate(CStructTemplate *pTemp, CMasterTemplate *pMaster)
|
||||||
{
|
{
|
||||||
// Create directory
|
// Create directory
|
||||||
TString OutFile = rkDir + pTemp->mSourceFile;
|
TString OutFile = smTemplatesDir + pMaster->GetDirectory() + pTemp->mSourceFile;
|
||||||
TString OutDir = OutFile.GetFileDirectory();
|
TString OutDir = OutFile.GetFileDirectory();
|
||||||
TString Name = OutFile.GetFileName(false);
|
TString Name = OutFile.GetFileName(false);
|
||||||
boost::filesystem::create_directory(OutDir.ToStdString());
|
boost::filesystem::create_directory(OutDir.ToStdString());
|
||||||
|
@ -354,14 +364,14 @@ void CTemplateWriter::SaveStructTemplate(CStructTemplate *pTemp, CMasterTemplate
|
||||||
pRoot->SetAttribute("type", (pTemp->IsSingleProperty() ? "single" : "multi"));
|
pRoot->SetAttribute("type", (pTemp->IsSingleProperty() ? "single" : "multi"));
|
||||||
StructXML.LinkEndChild(pRoot);
|
StructXML.LinkEndChild(pRoot);
|
||||||
|
|
||||||
SaveProperties(&StructXML, pRoot, pTemp, pMaster, rkDir);
|
SaveProperties(&StructXML, pRoot, pTemp, pMaster);
|
||||||
StructXML.SaveFile(*OutFile);
|
StructXML.SaveFile(*OutFile);
|
||||||
}
|
}
|
||||||
|
|
||||||
void CTemplateWriter::SaveEnumTemplate(CEnumTemplate *pTemp, const TString& rkDir)
|
void CTemplateWriter::SaveEnumTemplate(CEnumTemplate *pTemp, CMasterTemplate *pMaster)
|
||||||
{
|
{
|
||||||
// Create directory
|
// Create directory
|
||||||
TString OutFile = rkDir + pTemp->mSourceFile;
|
TString OutFile = smTemplatesDir + pMaster->GetDirectory() + pTemp->mSourceFile;
|
||||||
TString OutDir = OutFile.GetFileDirectory();
|
TString OutDir = OutFile.GetFileDirectory();
|
||||||
TString Name = OutFile.GetFileName(false);
|
TString Name = OutFile.GetFileName(false);
|
||||||
boost::filesystem::create_directory(*OutDir);
|
boost::filesystem::create_directory(*OutDir);
|
||||||
|
@ -380,10 +390,10 @@ void CTemplateWriter::SaveEnumTemplate(CEnumTemplate *pTemp, const TString& rkDi
|
||||||
EnumXML.SaveFile(*OutFile);
|
EnumXML.SaveFile(*OutFile);
|
||||||
}
|
}
|
||||||
|
|
||||||
void CTemplateWriter::SaveBitfieldTemplate(CBitfieldTemplate *pTemp, const TString& rkDir)
|
void CTemplateWriter::SaveBitfieldTemplate(CBitfieldTemplate *pTemp, CMasterTemplate *pMaster)
|
||||||
{
|
{
|
||||||
// Create directory
|
// Create directory
|
||||||
TString OutFile = rkDir + pTemp->mSourceFile;
|
TString OutFile = smTemplatesDir + pMaster->GetDirectory() + pTemp->mSourceFile;
|
||||||
TString OutDir = OutFile.GetFileDirectory();
|
TString OutDir = OutFile.GetFileDirectory();
|
||||||
TString Name = pTemp->mSourceFile.GetFileName(false);
|
TString Name = pTemp->mSourceFile.GetFileName(false);
|
||||||
boost::filesystem::create_directory(*OutDir);
|
boost::filesystem::create_directory(*OutDir);
|
||||||
|
@ -402,7 +412,7 @@ void CTemplateWriter::SaveBitfieldTemplate(CBitfieldTemplate *pTemp, const TStri
|
||||||
BitfieldXML.SaveFile(*OutFile);
|
BitfieldXML.SaveFile(*OutFile);
|
||||||
}
|
}
|
||||||
|
|
||||||
void CTemplateWriter::SaveProperties(XMLDocument *pDoc, XMLElement *pParent, CStructTemplate *pTemp, CMasterTemplate *pMaster, const TString& rkDir)
|
void CTemplateWriter::SaveProperties(XMLDocument *pDoc, XMLElement *pParent, CStructTemplate *pTemp, CMasterTemplate *pMaster)
|
||||||
{
|
{
|
||||||
// Create base element
|
// Create base element
|
||||||
XMLElement *pPropsBlock = pDoc->NewElement("properties");
|
XMLElement *pPropsBlock = pDoc->NewElement("properties");
|
||||||
|
@ -429,20 +439,15 @@ void CTemplateWriter::SaveProperties(XMLDocument *pDoc, XMLElement *pParent, CSt
|
||||||
else
|
else
|
||||||
pElem = pDoc->NewElement("property");
|
pElem = pDoc->NewElement("property");
|
||||||
|
|
||||||
|
pPropsBlock->LinkEndChild(pElem);
|
||||||
|
|
||||||
// Set common property parameters, starting with ID
|
// Set common property parameters, starting with ID
|
||||||
pElem->SetAttribute("ID", *StrID);
|
pElem->SetAttribute("ID", *StrID);
|
||||||
|
|
||||||
// Type
|
|
||||||
if (pProp->Type() == eStructProperty)
|
|
||||||
pElem->SetAttribute("type", (static_cast<CStructTemplate*>(pProp)->mIsSingleProperty ? "single" : "multi"));
|
|
||||||
|
|
||||||
else if (TString(pElem->Name()) == "property")
|
|
||||||
pElem->SetAttribute("type", *PropEnumToPropString(pProp->Type()));
|
|
||||||
|
|
||||||
// Name
|
// Name
|
||||||
TString Name = pProp->Name();
|
TString Name = pProp->Name();
|
||||||
|
|
||||||
if (pMaster->GetGame() >= eEchoesDemo)
|
if (pMaster->GetGame() >= eEchoesDemo && ID > 0xFF)
|
||||||
{
|
{
|
||||||
TString MasterName = CMasterTemplate::GetPropertyName(ID);
|
TString MasterName = CMasterTemplate::GetPropertyName(ID);
|
||||||
|
|
||||||
|
@ -453,14 +458,53 @@ void CTemplateWriter::SaveProperties(XMLDocument *pDoc, XMLElement *pParent, CSt
|
||||||
else
|
else
|
||||||
pElem->SetAttribute("name", *Name);
|
pElem->SetAttribute("name", *Name);
|
||||||
|
|
||||||
|
// Type
|
||||||
|
if (pProp->Type() == eStructProperty)
|
||||||
|
{
|
||||||
|
CStructTemplate *pStruct = static_cast<CStructTemplate*>(pProp);
|
||||||
|
|
||||||
|
if (pStruct->mSourceFile.IsEmpty())
|
||||||
|
pElem->SetAttribute("type", (pStruct->mIsSingleProperty ? "single" : "multi"));
|
||||||
|
}
|
||||||
|
|
||||||
|
else if (TString(pElem->Name()) == "property")
|
||||||
|
pElem->SetAttribute("type", *PropEnumToPropString(pProp->Type()));
|
||||||
|
|
||||||
|
// Versions
|
||||||
|
u32 NumVersions = pProp->mAllowedVersions.size();
|
||||||
|
|
||||||
|
if (NumVersions > 0 && NumVersions != pMaster->mGameVersions.size())
|
||||||
|
{
|
||||||
|
XMLElement *pVersions = pDoc->NewElement("versions");
|
||||||
|
pElem->LinkEndChild(pVersions);
|
||||||
|
|
||||||
|
for (u32 iVer = 0; iVer < pMaster->mGameVersions.size(); iVer++)
|
||||||
|
{
|
||||||
|
if (pProp->IsInVersion(iVer))
|
||||||
|
{
|
||||||
|
XMLElement *pVersion = pDoc->NewElement("version");
|
||||||
|
pVersion->SetText(*pMaster->mGameVersions[iVer]);
|
||||||
|
pVersions->LinkEndChild(pVersion);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
// Default
|
// Default
|
||||||
if (pProp->CanHaveDefault())
|
if (pProp->CanHaveDefault() && pMaster->GetGame() >= eEchoesDemo)
|
||||||
{
|
{
|
||||||
XMLElement *pDefault = pDoc->NewElement("default");
|
XMLElement *pDefault = pDoc->NewElement("default");
|
||||||
pDefault->SetText(*pProp->DefaultToString());
|
pDefault->SetText(*pProp->DefaultToString());
|
||||||
pElem->LinkEndChild(pDefault);
|
pElem->LinkEndChild(pDefault);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Description
|
||||||
|
if (!pProp->Description().IsEmpty())
|
||||||
|
{
|
||||||
|
XMLElement *pDesc = pDoc->NewElement("description");
|
||||||
|
pDesc->SetText(*pProp->Description());
|
||||||
|
pElem->LinkEndChild(pDesc);
|
||||||
|
}
|
||||||
|
|
||||||
// Range
|
// Range
|
||||||
if (pProp->IsNumerical() && pProp->HasValidRange())
|
if (pProp->IsNumerical() && pProp->HasValidRange())
|
||||||
{
|
{
|
||||||
|
@ -502,7 +546,8 @@ void CTemplateWriter::SaveProperties(XMLDocument *pDoc, XMLElement *pParent, CSt
|
||||||
for (auto it = rkExtensions.begin(); it != rkExtensions.end(); it++)
|
for (auto it = rkExtensions.begin(); it != rkExtensions.end(); it++)
|
||||||
ExtensionsString += *it + ",";
|
ExtensionsString += *it + ",";
|
||||||
|
|
||||||
ExtensionsString.ChopBack(1); // Remove extra comma
|
ExtensionsString = ExtensionsString.ChopBack(1); // Remove extra comma
|
||||||
|
if (ExtensionsString.IsEmpty()) ExtensionsString = "UNKN";
|
||||||
pElem->SetAttribute("extensions", *ExtensionsString);
|
pElem->SetAttribute("extensions", *ExtensionsString);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -516,7 +561,7 @@ void CTemplateWriter::SaveProperties(XMLDocument *pDoc, XMLElement *pParent, CSt
|
||||||
|
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
SaveEnumTemplate(pEnum, rkDir);
|
SaveEnumTemplate(pEnum, pMaster);
|
||||||
pElem->SetAttribute("template", *pEnum->mSourceFile);
|
pElem->SetAttribute("template", *pEnum->mSourceFile);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -531,28 +576,167 @@ void CTemplateWriter::SaveProperties(XMLDocument *pDoc, XMLElement *pParent, CSt
|
||||||
|
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
SaveBitfieldTemplate(pBitfield, rkDir);
|
SaveBitfieldTemplate(pBitfield, pMaster);
|
||||||
pElem->SetAttribute("template", *pBitfield->mSourceFile);
|
pElem->SetAttribute("template", *pBitfield->mSourceFile);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// Struct/array-specific parameters
|
// Struct/array-specific parameters
|
||||||
if (pProp->Type() == eStructProperty || pProp->Type() == eArrayProperty)
|
else if (pProp->Type() == eStructProperty || pProp->Type() == eArrayProperty)
|
||||||
{
|
{
|
||||||
|
// Element Name
|
||||||
|
if (pProp->Type() == eArrayProperty)
|
||||||
|
{
|
||||||
|
CArrayTemplate *pArray = static_cast<CArrayTemplate*>(pProp);
|
||||||
|
|
||||||
|
if (!pArray->ElementName().IsEmpty())
|
||||||
|
{
|
||||||
|
XMLElement *pElement = pDoc->NewElement("element_name");
|
||||||
|
pElement->SetText(*static_cast<CArrayTemplate*>(pProp)->ElementName());
|
||||||
|
pElem->LinkEndChild(pElement);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// Sub-properties
|
||||||
CStructTemplate *pStruct = static_cast<CStructTemplate*>(pProp);
|
CStructTemplate *pStruct = static_cast<CStructTemplate*>(pProp);
|
||||||
|
|
||||||
if (pStruct->mSourceFile.IsEmpty())
|
if (pStruct->mSourceFile.IsEmpty())
|
||||||
SaveProperties(pDoc, pElem, pStruct, pMaster, rkDir);
|
SaveProperties(pDoc, pElem, pStruct, pMaster);
|
||||||
|
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
SaveStructTemplate(pStruct, pMaster, rkDir);
|
auto it = pMaster->mStructTemplates.find(pStruct->mSourceFile);
|
||||||
|
|
||||||
|
if (it != pMaster->mStructTemplates.end())
|
||||||
|
SavePropertyOverrides(pDoc, pElem, pStruct, it->second);
|
||||||
|
|
||||||
pElem->SetAttribute("template", *pStruct->mSourceFile);
|
pElem->SetAttribute("template", *pStruct->mSourceFile);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void CTemplateWriter::SavePropertyOverrides(XMLDocument *pDoc, XMLElement *pParent, CStructTemplate *pStruct, CStructTemplate *pOriginal)
|
||||||
|
{
|
||||||
|
if (!pStruct->StructDataMatches(pOriginal))
|
||||||
|
{
|
||||||
|
// Create base element
|
||||||
|
XMLElement *pPropsBlock = pDoc->NewElement("properties");
|
||||||
|
pParent->LinkEndChild(pPropsBlock);
|
||||||
|
|
||||||
|
for (u32 iProp = 0; iProp < pStruct->Count(); iProp++)
|
||||||
|
{
|
||||||
|
IPropertyTemplate *pProp = pStruct->PropertyByIndex(iProp);
|
||||||
|
IPropertyTemplate *pSource = pOriginal->PropertyByIndex(iProp);
|
||||||
|
|
||||||
|
if (!pProp->Matches(pSource))
|
||||||
|
{
|
||||||
|
// Create element
|
||||||
|
XMLElement *pElem;
|
||||||
|
|
||||||
|
if (pProp->Type() == eStructProperty)
|
||||||
|
pElem = pDoc->NewElement("struct");
|
||||||
|
else if (pProp->Type() == eEnumProperty)
|
||||||
|
pElem = pDoc->NewElement("enum");
|
||||||
|
else if (pProp->Type() == eBitfieldProperty)
|
||||||
|
pElem = pDoc->NewElement("bitfield");
|
||||||
|
else if (pProp->Type() == eArrayProperty)
|
||||||
|
pElem = pDoc->NewElement("array");
|
||||||
|
else
|
||||||
|
pElem = pDoc->NewElement("property");
|
||||||
|
|
||||||
|
pPropsBlock->LinkEndChild(pElem);
|
||||||
|
|
||||||
|
// ID
|
||||||
|
u32 ID = pProp->PropertyID();
|
||||||
|
pElem->SetAttribute("ID", *TString::HexString(pProp->PropertyID(), true, true, (ID > 0xFF ? 8 : 2)));
|
||||||
|
|
||||||
|
// Name
|
||||||
|
if (pProp->Name() != pSource->Name())
|
||||||
|
pElem->SetAttribute("name", *pProp->Name());
|
||||||
|
|
||||||
|
// Default
|
||||||
|
if (pProp->CanHaveDefault() && !pProp->RawDefaultValue()->Matches(pSource->RawDefaultValue()))
|
||||||
|
{
|
||||||
|
XMLElement *pDefault = pDoc->NewElement("default");
|
||||||
|
pDefault->SetText(*pProp->DefaultToString());
|
||||||
|
pElem->LinkEndChild(pDefault);
|
||||||
|
}
|
||||||
|
|
||||||
|
// Description
|
||||||
|
if (pProp->Description() != pSource->Description())
|
||||||
|
{
|
||||||
|
XMLElement *pDesc = pDoc->NewElement("description");
|
||||||
|
pDesc->SetText(*pProp->Description());
|
||||||
|
pElem->LinkEndChild(pDesc);
|
||||||
|
}
|
||||||
|
|
||||||
|
// Range
|
||||||
|
if (pProp->IsNumerical())
|
||||||
|
{
|
||||||
|
TString Range = pProp->RangeToString();
|
||||||
|
|
||||||
|
if (Range != pSource->RangeToString())
|
||||||
|
{
|
||||||
|
XMLElement *pRange = pDoc->NewElement("range");
|
||||||
|
pRange->SetText(*Range);
|
||||||
|
pElem->LinkEndChild(pRange);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// Suffix
|
||||||
|
if (pProp->Suffix() != pSource->Suffix())
|
||||||
|
{
|
||||||
|
XMLElement *pSuffix = pDoc->NewElement("suffix");
|
||||||
|
pSuffix->SetText(*pProp->Suffix());
|
||||||
|
pElem->LinkEndChild(pSuffix);
|
||||||
|
}
|
||||||
|
|
||||||
|
// Cook Pref
|
||||||
|
if (pProp->CookPreference() != pSource->CookPreference())
|
||||||
|
{
|
||||||
|
XMLElement *pCookPref = pDoc->NewElement("should_cook");
|
||||||
|
|
||||||
|
TString PrefStr;
|
||||||
|
if (pProp->CookPreference() == eAlwaysCook) PrefStr = "always";
|
||||||
|
else if (pProp->CookPreference() == eNeverCook) PrefStr = "never";
|
||||||
|
else PrefStr = "nopref";
|
||||||
|
|
||||||
|
pCookPref->SetText(*PrefStr);
|
||||||
|
pElem->LinkEndChild(pCookPref);
|
||||||
|
}
|
||||||
|
|
||||||
|
// File-specific parameters
|
||||||
|
if (pProp->Type() == eFileProperty)
|
||||||
|
{
|
||||||
|
CFileTemplate *pFile = static_cast<CFileTemplate*>(pProp);
|
||||||
|
CFileTemplate *pSourceFile = static_cast<CFileTemplate*>(pSource);
|
||||||
|
|
||||||
|
if (pFile->Extensions() != pSourceFile->Extensions())
|
||||||
|
{
|
||||||
|
TString ExtensionsString;
|
||||||
|
|
||||||
|
for (auto it = pFile->Extensions().begin(); it != pFile->Extensions().end(); it++)
|
||||||
|
ExtensionsString += *it + ",";
|
||||||
|
|
||||||
|
ExtensionsString = ExtensionsString.ChopBack(1);
|
||||||
|
if (ExtensionsString.IsEmpty()) ExtensionsString = "UNKN";
|
||||||
|
pElem->SetAttribute("extensions", *ExtensionsString);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// Struct/array-specific parameters
|
||||||
|
else if (pProp->Type() == eStructProperty || pProp->Type() == eArrayProperty)
|
||||||
|
{
|
||||||
|
CStructTemplate *pStruct = static_cast<CStructTemplate*>(pProp);
|
||||||
|
CStructTemplate *pSourceStruct = static_cast<CStructTemplate*>(pSource);
|
||||||
|
SavePropertyOverrides(pDoc, pElem, pStruct, pSourceStruct);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
void CTemplateWriter::SaveEnumerators(XMLDocument *pDoc, XMLElement *pParent, CEnumTemplate *pTemp)
|
void CTemplateWriter::SaveEnumerators(XMLDocument *pDoc, XMLElement *pParent, CEnumTemplate *pTemp)
|
||||||
{
|
{
|
||||||
XMLElement *pEnumerators = pDoc->NewElement("enumerators");
|
XMLElement *pEnumerators = pDoc->NewElement("enumerators");
|
||||||
|
@ -562,7 +746,7 @@ void CTemplateWriter::SaveEnumerators(XMLDocument *pDoc, XMLElement *pParent, CE
|
||||||
{
|
{
|
||||||
XMLElement *pElem = pDoc->NewElement("enumerator");
|
XMLElement *pElem = pDoc->NewElement("enumerator");
|
||||||
u32 EnumerID = pTemp->EnumeratorID(iEnum);
|
u32 EnumerID = pTemp->EnumeratorID(iEnum);
|
||||||
pElem->SetAttribute("ID", *TString::HexString(EnumerID, true, true, (EnumerID > 0xFF ? 8 : 0)));
|
pElem->SetAttribute("ID", *TString::HexString(EnumerID, true, true, (EnumerID > 0xFF ? 8 : 2)));
|
||||||
pElem->SetAttribute("name", *pTemp->EnumeratorName(iEnum));
|
pElem->SetAttribute("name", *pTemp->EnumeratorName(iEnum));
|
||||||
pEnumerators->LinkEndChild(pElem);
|
pEnumerators->LinkEndChild(pElem);
|
||||||
}
|
}
|
||||||
|
|
|
@ -8,16 +8,18 @@
|
||||||
class CTemplateWriter
|
class CTemplateWriter
|
||||||
{
|
{
|
||||||
CTemplateWriter();
|
CTemplateWriter();
|
||||||
|
static TString smTemplatesDir;
|
||||||
|
|
||||||
public:
|
public:
|
||||||
static void SaveAllTemplates();
|
static void SaveAllTemplates();
|
||||||
static void SaveGameTemplates(CMasterTemplate *pMaster, const TString& rkDir);
|
static void SaveGameTemplates(CMasterTemplate *pMaster);
|
||||||
static void SavePropertyList(const TString& rkDir);
|
static void SavePropertyList();
|
||||||
static void SaveScriptTemplate(CScriptTemplate *pTemp, const TString& rkDir);
|
static void SaveScriptTemplate(CScriptTemplate *pTemp);
|
||||||
static void SaveStructTemplate(CStructTemplate *pTemp, CMasterTemplate *pMaster, const TString& rkDir);
|
static void SaveStructTemplate(CStructTemplate *pTemp, CMasterTemplate *pMaster);
|
||||||
static void SaveEnumTemplate(CEnumTemplate *pTemp, const TString& rkDir);
|
static void SaveEnumTemplate(CEnumTemplate *pTemp, CMasterTemplate *pMaster);
|
||||||
static void SaveBitfieldTemplate(CBitfieldTemplate *pTemp, const TString& rkDir);
|
static void SaveBitfieldTemplate(CBitfieldTemplate *pTemp, CMasterTemplate *pMaster);
|
||||||
static void SaveProperties(tinyxml2::XMLDocument *pDoc, tinyxml2::XMLElement *pParent, CStructTemplate *pTemp, CMasterTemplate *pMaster, const TString& rkDir);
|
static void SaveProperties(tinyxml2::XMLDocument *pDoc, tinyxml2::XMLElement *pParent, CStructTemplate *pTemp, CMasterTemplate *pMaster);
|
||||||
|
static void SavePropertyOverrides(tinyxml2::XMLDocument *pDoc, tinyxml2::XMLElement *pParent, CStructTemplate *pStruct, CStructTemplate *pOriginal);
|
||||||
static void SaveEnumerators(tinyxml2::XMLDocument *pDoc, tinyxml2::XMLElement *pParent, CEnumTemplate *pTemp);
|
static void SaveEnumerators(tinyxml2::XMLDocument *pDoc, tinyxml2::XMLElement *pParent, CEnumTemplate *pTemp);
|
||||||
static void SaveBitFlags(tinyxml2::XMLDocument *pDoc, tinyxml2::XMLElement *pParent, CBitfieldTemplate *pTemp);
|
static void SaveBitFlags(tinyxml2::XMLDocument *pDoc, tinyxml2::XMLElement *pParent, CBitfieldTemplate *pTemp);
|
||||||
};
|
};
|
||||||
|
|
|
@ -20,7 +20,7 @@ IPropertyTemplate* CTemplateLoader::LoadProperty(XMLElement *pElem, CStructTempl
|
||||||
// Get ID + name
|
// Get ID + name
|
||||||
if (IDAttr.IsEmpty())
|
if (IDAttr.IsEmpty())
|
||||||
{
|
{
|
||||||
Log::Error("Error reading " + rkTemplateName + "; ran into a property with no ID");
|
Log::Error(rkTemplateName + ": ran into a property with no ID");
|
||||||
return nullptr;
|
return nullptr;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -33,7 +33,7 @@ IPropertyTemplate* CTemplateLoader::LoadProperty(XMLElement *pElem, CStructTempl
|
||||||
Name = CMasterTemplate::GetPropertyName(ID);
|
Name = CMasterTemplate::GetPropertyName(ID);
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
Log::Error("Error reading " + rkTemplateName + " property " + TString::HexString(ID, true, true, 8) + "; this property doesn't have a name either in the template itself nor in the master list");
|
Log::Error(rkTemplateName + ": Property " + TString::HexString(ID, true, true, 8) + " doesn't have a name either in the template itself nor in the master list");
|
||||||
return nullptr;
|
return nullptr;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -53,9 +53,9 @@ IPropertyTemplate* CTemplateLoader::LoadProperty(XMLElement *pElem, CStructTempl
|
||||||
if (Type == eInvalidProperty)
|
if (Type == eInvalidProperty)
|
||||||
{
|
{
|
||||||
if (TypeStr.IsEmpty())
|
if (TypeStr.IsEmpty())
|
||||||
Log::Error("Error reading " + rkTemplateName + " property " + TString::HexString(ID, true, true, 8) + "; this property doesn't have a valid type set");
|
Log::Error(rkTemplateName + ": Property " + TString::HexString(ID, true, true, 8) + " doesn't have a type set");
|
||||||
else
|
else
|
||||||
Log::Error("Error reading " + rkTemplateName + " property " + TString::HexString(ID, true, true, 8) + "; this property has an invalid type set: " + TypeStr);
|
Log::Error(rkTemplateName + ": Property " + TString::HexString(ID, true, true, 8) + " has an invalid type set: " + TypeStr);
|
||||||
|
|
||||||
return nullptr;
|
return nullptr;
|
||||||
}
|
}
|
||||||
|
@ -64,7 +64,7 @@ IPropertyTemplate* CTemplateLoader::LoadProperty(XMLElement *pElem, CStructTempl
|
||||||
|
|
||||||
if (!pProp)
|
if (!pProp)
|
||||||
{
|
{
|
||||||
Log::Error("Error reading " + rkTemplateName + " property " + TString::HexString(ID, true, true, 8) + "; seem to have attempted to load a valid but unsupported property type? (" + TypeStr + ")");
|
Log::Error(rkTemplateName + ": Property " + TString::HexString(ID, true, true, 8) + " seems to be using a valid but unsupported property type? (" + TypeStr + ")");
|
||||||
return nullptr;
|
return nullptr;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -90,7 +90,7 @@ IPropertyTemplate* CTemplateLoader::LoadProperty(XMLElement *pElem, CStructTempl
|
||||||
u32 VerIdx = mpMaster->GetGameVersion(VerName);
|
u32 VerIdx = mpMaster->GetGameVersion(VerName);
|
||||||
|
|
||||||
if (VerIdx == -1)
|
if (VerIdx == -1)
|
||||||
Log::Error("Error reading " + rkTemplateName + " property " + TString::HexString(ID, true, true, 8) + "; invalid version \"" + VerName + "\"");
|
Log::Error(rkTemplateName + ": Property " + TString::HexString(ID, true, true, 8) + " has invalid version \"" + VerName + "\"");
|
||||||
else
|
else
|
||||||
pProp->mAllowedVersions.push_back(VerIdx);
|
pProp->mAllowedVersions.push_back(VerIdx);
|
||||||
|
|
||||||
|
@ -156,15 +156,16 @@ IPropertyTemplate* CTemplateLoader::LoadProperty(XMLElement *pElem, CStructTempl
|
||||||
LoadStructTemplate(TemplateAttr, pStruct);
|
LoadStructTemplate(TemplateAttr, pStruct);
|
||||||
|
|
||||||
if (IsNewProperty && TemplateAttr.IsEmpty() && Type == eStructProperty)
|
if (IsNewProperty && TemplateAttr.IsEmpty() && Type == eStructProperty)
|
||||||
pStruct->mIsSingleProperty = (TypeAttr == "single" ? true : false);
|
pStruct->mIsSingleProperty = (TypeAttr == "single");
|
||||||
|
|
||||||
// Load sub-properties
|
// Load sub-properties and parameter overrides
|
||||||
XMLElement *pProperties = pElem->FirstChildElement("properties");
|
XMLElement *pProperties = pElem->FirstChildElement("properties");
|
||||||
|
|
||||||
if (pProperties)
|
if (pProperties)
|
||||||
LoadProperties(pProperties, pStruct, rkTemplateName);
|
LoadProperties(pProperties, pStruct, rkTemplateName);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
CMasterTemplate::AddProperty(pProp, mMasterDir + rkTemplateName);
|
||||||
return pProp;
|
return pProp;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -184,7 +185,7 @@ IPropertyTemplate* CTemplateLoader::CreateProperty(u32 ID, EPropertyType Type, c
|
||||||
case eVector3Property: pOut = CREATE_PROP_TEMP(TVector3Template); break;
|
case eVector3Property: pOut = CREATE_PROP_TEMP(TVector3Template); break;
|
||||||
case eColorProperty: pOut = CREATE_PROP_TEMP(TColorTemplate); break;
|
case eColorProperty: pOut = CREATE_PROP_TEMP(TColorTemplate); break;
|
||||||
case eFileProperty: pOut = CREATE_PROP_TEMP(CFileTemplate); break;
|
case eFileProperty: pOut = CREATE_PROP_TEMP(CFileTemplate); break;
|
||||||
case eCharacterProperty: pOut = CREATE_PROP_TEMP(CCharacterTemplate); break;
|
case eCharacterProperty: pOut = CREATE_PROP_TEMP(TCharacterTemplate); break;
|
||||||
case eEnumProperty: pOut = CREATE_PROP_TEMP(CEnumTemplate); break;
|
case eEnumProperty: pOut = CREATE_PROP_TEMP(CEnumTemplate); break;
|
||||||
case eBitfieldProperty: pOut = CREATE_PROP_TEMP(CBitfieldTemplate); break;
|
case eBitfieldProperty: pOut = CREATE_PROP_TEMP(CBitfieldTemplate); break;
|
||||||
case eArrayProperty: pOut = CREATE_PROP_TEMP(CArrayTemplate); break;
|
case eArrayProperty: pOut = CREATE_PROP_TEMP(CArrayTemplate); break;
|
||||||
|
@ -199,8 +200,15 @@ IPropertyTemplate* CTemplateLoader::CreateProperty(u32 ID, EPropertyType Type, c
|
||||||
|
|
||||||
void CTemplateLoader::LoadStructTemplate(const TString& rkTemplateFileName, CStructTemplate *pStruct)
|
void CTemplateLoader::LoadStructTemplate(const TString& rkTemplateFileName, CStructTemplate *pStruct)
|
||||||
{
|
{
|
||||||
|
// Check whether this struct has already been read
|
||||||
|
auto it = mpMaster->mStructTemplates.find(rkTemplateFileName);
|
||||||
|
CStructTemplate *pSource = (it == mpMaster->mStructTemplates.end() ? nullptr : it->second);
|
||||||
|
|
||||||
|
// If the source hasn't been read yet, then we read it and add it to master's list
|
||||||
|
if (!pSource)
|
||||||
|
{
|
||||||
XMLDocument Doc;
|
XMLDocument Doc;
|
||||||
OpenXML(mMasterDir + rkTemplateFileName, Doc);
|
OpenXML(mskTemplatesDir + mMasterDir + rkTemplateFileName, Doc);
|
||||||
|
|
||||||
if (!Doc.Error())
|
if (!Doc.Error())
|
||||||
{
|
{
|
||||||
|
@ -208,11 +216,12 @@ void CTemplateLoader::LoadStructTemplate(const TString& rkTemplateFileName, CStr
|
||||||
|
|
||||||
if (pStruct->Type() == eStructProperty)
|
if (pStruct->Type() == eStructProperty)
|
||||||
{
|
{
|
||||||
|
pSource = new CStructTemplate(-1, nullptr);
|
||||||
pRootElem = Doc.FirstChildElement("struct");
|
pRootElem = Doc.FirstChildElement("struct");
|
||||||
|
|
||||||
if (!pRootElem)
|
if (!pRootElem)
|
||||||
{
|
{
|
||||||
Log::Error("Error reading struct template " + rkTemplateFileName + ": there is no root \"struct\" element");
|
Log::Error(rkTemplateFileName + ": There is no root \"struct\" element");
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -220,11 +229,11 @@ void CTemplateLoader::LoadStructTemplate(const TString& rkTemplateFileName, CStr
|
||||||
|
|
||||||
if (TypeAttr.IsEmpty())
|
if (TypeAttr.IsEmpty())
|
||||||
{
|
{
|
||||||
Log::Error("Error reading struct template " + rkTemplateFileName + "; there is no struct type specified");
|
Log::Error(rkTemplateFileName + ": There is no struct type specified");
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
pStruct->mIsSingleProperty = (TypeAttr == "single" ? true : false);
|
pSource->mIsSingleProperty = (TypeAttr == "single" ? true : false);
|
||||||
}
|
}
|
||||||
|
|
||||||
else if (pStruct->Type() == eArrayProperty)
|
else if (pStruct->Type() == eArrayProperty)
|
||||||
|
@ -233,7 +242,7 @@ void CTemplateLoader::LoadStructTemplate(const TString& rkTemplateFileName, CStr
|
||||||
|
|
||||||
if (!pRootElem)
|
if (!pRootElem)
|
||||||
{
|
{
|
||||||
Log::Error("Error reading array template " + rkTemplateFileName + "; there is no root \"array\" element");
|
Log::Error(rkTemplateFileName + ": There is no root \"array\" element");
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -242,17 +251,30 @@ void CTemplateLoader::LoadStructTemplate(const TString& rkTemplateFileName, CStr
|
||||||
XMLElement *pSubPropsElem = pRootElem->FirstChildElement("properties");
|
XMLElement *pSubPropsElem = pRootElem->FirstChildElement("properties");
|
||||||
|
|
||||||
if (pSubPropsElem)
|
if (pSubPropsElem)
|
||||||
LoadProperties(pSubPropsElem, pStruct, rkTemplateFileName);
|
{
|
||||||
|
LoadProperties(pSubPropsElem, pSource, rkTemplateFileName);
|
||||||
|
mpMaster->mStructTemplates[rkTemplateFileName] = pSource;
|
||||||
|
pSource->mSourceFile = rkTemplateFileName;
|
||||||
|
}
|
||||||
|
|
||||||
else
|
else
|
||||||
Log::Error("Error reading " + TString(pStruct->Type() == eStructProperty ? "struct" : "array") + " template " + rkTemplateFileName + "; there's no \"properties\" block element");
|
{
|
||||||
|
Log::Error(rkTemplateFileName + ": There is no \"properties\" block element");
|
||||||
|
delete pSource;
|
||||||
|
pSource = nullptr;
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// Copy source to the new struct template
|
||||||
|
if (pSource)
|
||||||
|
pStruct->CopyStructData(pSource);
|
||||||
}
|
}
|
||||||
|
|
||||||
void CTemplateLoader::LoadEnumTemplate(const TString& rkTemplateFileName, CEnumTemplate *pEnum)
|
void CTemplateLoader::LoadEnumTemplate(const TString& rkTemplateFileName, CEnumTemplate *pEnum)
|
||||||
{
|
{
|
||||||
XMLDocument Doc;
|
XMLDocument Doc;
|
||||||
OpenXML(mMasterDir + rkTemplateFileName, Doc);
|
OpenXML(mskTemplatesDir + mMasterDir + rkTemplateFileName, Doc);
|
||||||
|
|
||||||
if (!Doc.Error())
|
if (!Doc.Error())
|
||||||
{
|
{
|
||||||
|
@ -260,7 +282,7 @@ void CTemplateLoader::LoadEnumTemplate(const TString& rkTemplateFileName, CEnumT
|
||||||
|
|
||||||
if (!pRootElem)
|
if (!pRootElem)
|
||||||
{
|
{
|
||||||
Log::Error("Error reading enum template " + rkTemplateFileName + "; there is no root \"enum\" element");
|
Log::Error(rkTemplateFileName + ": There is no root \"enum\" element");
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -270,14 +292,16 @@ void CTemplateLoader::LoadEnumTemplate(const TString& rkTemplateFileName, CEnumT
|
||||||
LoadEnumerators(pEnumers, pEnum, rkTemplateFileName);
|
LoadEnumerators(pEnumers, pEnum, rkTemplateFileName);
|
||||||
|
|
||||||
else
|
else
|
||||||
Log::Error("Error reading enum template " + rkTemplateFileName + "; there is no \"enumerators\" block element");
|
Log::Error(rkTemplateFileName + ": There is no \"enumerators\" block element");
|
||||||
|
|
||||||
|
pEnum->mSourceFile = rkTemplateFileName;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void CTemplateLoader::LoadBitfieldTemplate(const TString& rkTemplateFileName, CBitfieldTemplate *pBitfield)
|
void CTemplateLoader::LoadBitfieldTemplate(const TString& rkTemplateFileName, CBitfieldTemplate *pBitfield)
|
||||||
{
|
{
|
||||||
XMLDocument Doc;
|
XMLDocument Doc;
|
||||||
OpenXML(mMasterDir + rkTemplateFileName, Doc);
|
OpenXML(mskTemplatesDir + mMasterDir + rkTemplateFileName, Doc);
|
||||||
|
|
||||||
if (!Doc.Error())
|
if (!Doc.Error())
|
||||||
{
|
{
|
||||||
|
@ -285,7 +309,7 @@ void CTemplateLoader::LoadBitfieldTemplate(const TString& rkTemplateFileName, CB
|
||||||
|
|
||||||
if (!pRootElem)
|
if (!pRootElem)
|
||||||
{
|
{
|
||||||
Log::Error("Error reading bitfield template " + rkTemplateFileName + "; there is no root \"bitfield\" element");
|
Log::Error(rkTemplateFileName + ": There is no root \"bitfield\" element");
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -295,7 +319,9 @@ void CTemplateLoader::LoadBitfieldTemplate(const TString& rkTemplateFileName, CB
|
||||||
LoadBitFlags(pFlags, pBitfield, rkTemplateFileName);
|
LoadBitFlags(pFlags, pBitfield, rkTemplateFileName);
|
||||||
|
|
||||||
else
|
else
|
||||||
Log::Error("Error reading bitfield template " + rkTemplateFileName + "; there is no \"flags\" block element");
|
Log::Error(rkTemplateFileName + ": There is no \"flags\" block element");
|
||||||
|
|
||||||
|
pBitfield->mSourceFile = rkTemplateFileName;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -309,7 +335,7 @@ void CTemplateLoader::LoadProperties(XMLElement *pPropertiesElem, CStructTemplat
|
||||||
|
|
||||||
if ( (NodeType != "property") && (NodeType != "struct") && (NodeType != "enum") && (NodeType != "bitfield") && (NodeType != "array") )
|
if ( (NodeType != "property") && (NodeType != "struct") && (NodeType != "enum") && (NodeType != "bitfield") && (NodeType != "array") )
|
||||||
{
|
{
|
||||||
Log::Error("Error reading " + rkTemplateName + "; a node in a properties block has an invalid name: " + NodeType);
|
Log::Error(rkTemplateName + ": A node in a properties block has an invalid name: " + NodeType);
|
||||||
}
|
}
|
||||||
|
|
||||||
// LoadProperty adds newly created properties to the struct, so we don't need to do anything other than call it for each sub-element.
|
// LoadProperty adds newly created properties to the struct, so we don't need to do anything other than call it for each sub-element.
|
||||||
|
@ -339,7 +365,7 @@ void CTemplateLoader::LoadEnumerators(XMLElement *pEnumeratorsElem, CEnumTemplat
|
||||||
|
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
TString LogErrorBase = "Couldn't parse enumerator in " + rkTemplateName + "; ";
|
TString LogErrorBase = rkTemplateName + ": Couldn't parse enumerator; ";
|
||||||
|
|
||||||
if (!pkID && pkName) Log::Error(LogErrorBase + "no valid ID (" + pkName + ")");
|
if (!pkID && pkName) Log::Error(LogErrorBase + "no valid ID (" + pkName + ")");
|
||||||
else if (pkID && !pkName) Log::Error(LogErrorBase + "no valid name (ID " + pkID + ")");
|
else if (pkID && !pkName) Log::Error(LogErrorBase + "no valid name (ID " + pkID + ")");
|
||||||
|
@ -364,7 +390,7 @@ void CTemplateLoader::LoadBitFlags(XMLElement *pFlagsElem, CBitfieldTemplate *pT
|
||||||
|
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
TString LogErrorBase = "Couldn't parse bit flag in " + templateName + "; ";
|
TString LogErrorBase = templateName + ": Couldn't parse bit flag; ";
|
||||||
|
|
||||||
if (!pkMask && pkName) Log::Error(LogErrorBase + "no mask (" + pkName + ")");
|
if (!pkMask && pkName) Log::Error(LogErrorBase + "no mask (" + pkName + ")");
|
||||||
else if (pkMask && !pkName) Log::Error(LogErrorBase + "no name (mask " + pkMask + ")");
|
else if (pkMask && !pkName) Log::Error(LogErrorBase + "no name (mask " + pkMask + ")");
|
||||||
|
@ -381,6 +407,7 @@ CScriptTemplate* CTemplateLoader::LoadScriptTemplate(XMLDocument *pDoc, const TS
|
||||||
CScriptTemplate *pScript = new CScriptTemplate(mpMaster);
|
CScriptTemplate *pScript = new CScriptTemplate(mpMaster);
|
||||||
pScript->mObjectID = ObjectID;
|
pScript->mObjectID = ObjectID;
|
||||||
pScript->mpBaseStruct = new CStructTemplate(-1, nullptr);
|
pScript->mpBaseStruct = new CStructTemplate(-1, nullptr);
|
||||||
|
pScript->mSourceFile = rkTemplateName;
|
||||||
|
|
||||||
XMLElement *pRoot = pDoc->FirstChildElement("ScriptTemplate");
|
XMLElement *pRoot = pDoc->FirstChildElement("ScriptTemplate");
|
||||||
|
|
||||||
|
@ -399,7 +426,7 @@ CScriptTemplate* CTemplateLoader::LoadScriptTemplate(XMLDocument *pDoc, const TS
|
||||||
if (pPropsElem)
|
if (pPropsElem)
|
||||||
LoadProperties(pPropsElem, pScript->mpBaseStruct, rkTemplateName);
|
LoadProperties(pPropsElem, pScript->mpBaseStruct, rkTemplateName);
|
||||||
else
|
else
|
||||||
Log::Error("Error reading script template " + rkTemplateName + "; there is no properties block");
|
Log::Error(rkTemplateName + ": There is no \"properties\" block element");
|
||||||
|
|
||||||
// Editor Parameters
|
// Editor Parameters
|
||||||
XMLElement *pEditor = pRoot->FirstChildElement("editor");
|
XMLElement *pEditor = pRoot->FirstChildElement("editor");
|
||||||
|
@ -413,7 +440,7 @@ CScriptTemplate* CTemplateLoader::LoadScriptTemplate(XMLDocument *pDoc, const TS
|
||||||
while (pEdProp)
|
while (pEdProp)
|
||||||
{
|
{
|
||||||
TString Name = TString(pEdProp->Attribute("name")).ToLower();
|
TString Name = TString(pEdProp->Attribute("name")).ToLower();
|
||||||
TString ID = TString(pEdProp->Attribute("ID")).ToLower();
|
TString ID = TString(pEdProp->Attribute("ID"));
|
||||||
|
|
||||||
if (!Name.IsEmpty() && !ID.IsEmpty())
|
if (!Name.IsEmpty() && !ID.IsEmpty())
|
||||||
{
|
{
|
||||||
|
@ -489,7 +516,7 @@ CScriptTemplate* CTemplateLoader::LoadScriptTemplate(XMLDocument *pDoc, const TS
|
||||||
{
|
{
|
||||||
if (!pScript->mpBaseStruct->HasProperty(Asset.AssetLocation))
|
if (!pScript->mpBaseStruct->HasProperty(Asset.AssetLocation))
|
||||||
{
|
{
|
||||||
Log::Error("Error reading script template " + rkTemplateName + "; invalid property for " + Type + " asset: " + ID);
|
Log::Error(rkTemplateName + ": Invalid property for " + Type + " asset: " + ID);
|
||||||
pAsset = pAsset->NextSiblingElement();
|
pAsset = pAsset->NextSiblingElement();
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
@ -501,7 +528,7 @@ CScriptTemplate* CTemplateLoader::LoadScriptTemplate(XMLDocument *pDoc, const TS
|
||||||
TString Path = "../resources/" + ID;
|
TString Path = "../resources/" + ID;
|
||||||
if (!boost::filesystem::exists(*Path))
|
if (!boost::filesystem::exists(*Path))
|
||||||
{
|
{
|
||||||
Log::Error("Error reading script template " + rkTemplateName + "; invalid file for " + Type + " asset: " + ID);
|
Log::Error(rkTemplateName + ": Invalid file for " + Type + " asset: " + ID);
|
||||||
pAsset = pAsset->NextSiblingElement();
|
pAsset = pAsset->NextSiblingElement();
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
@ -625,7 +652,7 @@ CScriptTemplate* CTemplateLoader::LoadScriptTemplate(XMLDocument *pDoc, const TS
|
||||||
void CTemplateLoader::LoadMasterTemplate(XMLDocument *pDoc, CMasterTemplate *pMaster)
|
void CTemplateLoader::LoadMasterTemplate(XMLDocument *pDoc, CMasterTemplate *pMaster)
|
||||||
{
|
{
|
||||||
mpMaster = pMaster;
|
mpMaster = pMaster;
|
||||||
mMasterDir = mskTemplatesDir + pMaster->mSourceFile.GetFileDirectory();
|
mMasterDir = pMaster->mSourceFile.GetFileDirectory();
|
||||||
|
|
||||||
XMLElement *pRoot = pDoc->FirstChildElement("MasterTemplate");
|
XMLElement *pRoot = pDoc->FirstChildElement("MasterTemplate");
|
||||||
mpMaster->mVersion = TString(pRoot->Attribute("version")).ToInt32();
|
mpMaster->mVersion = TString(pRoot->Attribute("version")).ToInt32();
|
||||||
|
@ -668,18 +695,15 @@ void CTemplateLoader::LoadMasterTemplate(XMLDocument *pDoc, CMasterTemplate *pMa
|
||||||
TString TemplateName = pObj->Attribute("template");
|
TString TemplateName = pObj->Attribute("template");
|
||||||
|
|
||||||
XMLDocument ScriptXML;
|
XMLDocument ScriptXML;
|
||||||
OpenXML(mMasterDir + TemplateName, ScriptXML);
|
OpenXML(mskTemplatesDir + mMasterDir + TemplateName, ScriptXML);
|
||||||
|
|
||||||
if (!ScriptXML.Error())
|
if (!ScriptXML.Error())
|
||||||
{
|
{
|
||||||
CScriptTemplate *pTemp = LoadScriptTemplate(&ScriptXML, TemplateName, ID);
|
CScriptTemplate *pTemp = LoadScriptTemplate(&ScriptXML, TemplateName, ID);
|
||||||
|
|
||||||
if (pTemp)
|
if (pTemp)
|
||||||
{
|
|
||||||
pTemp->mSourceFile = TemplateName;
|
|
||||||
mpMaster->mTemplates[ID] = pTemp;
|
mpMaster->mTemplates[ID] = pTemp;
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
|
||||||
pObj = pObj->NextSiblingElement("object");
|
pObj = pObj->NextSiblingElement("object");
|
||||||
}
|
}
|
||||||
|
@ -773,7 +797,7 @@ void CTemplateLoader::OpenXML(const TString& rkPath, XMLDocument& rDoc)
|
||||||
if (rDoc.Error())
|
if (rDoc.Error())
|
||||||
{
|
{
|
||||||
TString Name = AbsPath.GetFileName();
|
TString Name = AbsPath.GetFileName();
|
||||||
Log::Error("Error when opening template XML " + Name + ": " + ErrorName(rDoc.ErrorID()));
|
Log::Error("Error opening " + Name + ": " + ErrorName(rDoc.ErrorID()));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -861,7 +885,7 @@ void CTemplateLoader::LoadGameTemplates(EGame Game)
|
||||||
{
|
{
|
||||||
CMasterTemplate *pMaster = *it;
|
CMasterTemplate *pMaster = *it;
|
||||||
|
|
||||||
if (pMaster->GetGame() == Game)
|
if (pMaster->GetGame() == Game && !pMaster->IsLoadedSuccessfully())
|
||||||
{
|
{
|
||||||
XMLDocument MasterXML;
|
XMLDocument MasterXML;
|
||||||
OpenXML(mskTemplatesDir + pMaster->mSourceFile, MasterXML);
|
OpenXML(mskTemplatesDir + pMaster->mSourceFile, MasterXML);
|
||||||
|
@ -878,12 +902,35 @@ void CTemplateLoader::LoadGameTemplates(EGame Game)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void CTemplateLoader::LoadAllGames()
|
||||||
|
{
|
||||||
|
std::list<CMasterTemplate*> MasterList = CMasterTemplate::GetMasterList();
|
||||||
|
|
||||||
|
for (auto it = MasterList.begin(); it != MasterList.end(); it++)
|
||||||
|
{
|
||||||
|
CMasterTemplate *pMaster = *it;
|
||||||
|
|
||||||
|
if (!pMaster->IsLoadedSuccessfully())
|
||||||
|
{
|
||||||
|
XMLDocument MasterXML;
|
||||||
|
OpenXML(mskTemplatesDir + pMaster->mSourceFile, MasterXML);
|
||||||
|
|
||||||
|
if (!MasterXML.Error())
|
||||||
|
{
|
||||||
|
CTemplateLoader Loader(mskTemplatesDir);
|
||||||
|
Loader.mGame = pMaster->GetGame();
|
||||||
|
Loader.LoadMasterTemplate(&MasterXML, pMaster);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
void CTemplateLoader::LoadPropertyList(XMLDocument *pDoc, const TString& ListName)
|
void CTemplateLoader::LoadPropertyList(XMLDocument *pDoc, const TString& ListName)
|
||||||
{
|
{
|
||||||
XMLElement *pRootElem = pDoc->FirstChildElement("Properties");
|
XMLElement *pRootElem = pDoc->FirstChildElement("Properties");
|
||||||
|
|
||||||
if (!pRootElem)
|
if (!pRootElem)
|
||||||
Log::Error("Error reading property list at " + ListName + "; there is no root \"Properties\" block element");
|
Log::Error(ListName + ": There is no root \"Properties\" block element");
|
||||||
|
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
|
|
@ -45,6 +45,7 @@ class CTemplateLoader
|
||||||
public:
|
public:
|
||||||
static void LoadGameList();
|
static void LoadGameList();
|
||||||
static void LoadGameTemplates(EGame Game);
|
static void LoadGameTemplates(EGame Game);
|
||||||
|
static void LoadAllGames();
|
||||||
static void LoadPropertyList(tinyxml2::XMLDocument *pDoc, const TString& rkListName);
|
static void LoadPropertyList(tinyxml2::XMLDocument *pDoc, const TString& rkListName);
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
|
@ -99,6 +99,11 @@ TString CMasterTemplate::MessageByIndex(u32 Index)
|
||||||
return (std::next(it, Index))->second;
|
return (std::next(it, Index))->second;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
TString CMasterTemplate::GetDirectory() const
|
||||||
|
{
|
||||||
|
return mSourceFile.GetFileDirectory();
|
||||||
|
}
|
||||||
|
|
||||||
bool CMasterTemplate::IsLoadedSuccessfully()
|
bool CMasterTemplate::IsLoadedSuccessfully()
|
||||||
{
|
{
|
||||||
return mFullyLoaded;
|
return mFullyLoaded;
|
||||||
|
@ -135,6 +140,79 @@ TString CMasterTemplate::GetPropertyName(u32 PropertyID)
|
||||||
return "Unknown";
|
return "Unknown";
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void CMasterTemplate::AddProperty(IPropertyTemplate *pTemp, const TString& rkTemplateName)
|
||||||
|
{
|
||||||
|
auto it = smIDMap.find(pTemp->PropertyID());
|
||||||
|
|
||||||
|
// Add this property/template to existing ID info
|
||||||
|
if (it != smIDMap.end())
|
||||||
|
{
|
||||||
|
SPropIDInfo& rInfo = it->second;
|
||||||
|
bool NewTemplate = true;
|
||||||
|
|
||||||
|
for (u32 iTemp = 0; iTemp < rInfo.XMLList.size(); iTemp++)
|
||||||
|
{
|
||||||
|
if (rInfo.XMLList[iTemp] == rkTemplateName)
|
||||||
|
{
|
||||||
|
NewTemplate = false;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if (NewTemplate)
|
||||||
|
rInfo.XMLList.push_back(rkTemplateName);
|
||||||
|
|
||||||
|
it->second.PropertyList.push_back(pTemp);
|
||||||
|
}
|
||||||
|
|
||||||
|
// Create new ID info
|
||||||
|
else
|
||||||
|
{
|
||||||
|
SPropIDInfo Info;
|
||||||
|
Info.XMLList.push_back(rkTemplateName);
|
||||||
|
Info.PropertyList.push_back(pTemp);
|
||||||
|
smIDMap[pTemp->PropertyID()] = Info;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
void CMasterTemplate::RenameProperty(u32 ID, const TString& rkNewName)
|
||||||
|
{
|
||||||
|
auto NameIt = smPropertyNames.find(ID);
|
||||||
|
TString CurName = (NameIt == smPropertyNames.end() ? "" : NameIt->second);
|
||||||
|
|
||||||
|
auto InfoIt = smIDMap.find(ID);
|
||||||
|
|
||||||
|
if (InfoIt != smIDMap.end())
|
||||||
|
{
|
||||||
|
const SPropIDInfo& rkInfo = InfoIt->second;
|
||||||
|
|
||||||
|
for (u32 iTemp = 0; iTemp < rkInfo.PropertyList.size(); iTemp++)
|
||||||
|
{
|
||||||
|
IPropertyTemplate *pTemp = rkInfo.PropertyList[iTemp];
|
||||||
|
|
||||||
|
if (pTemp->Name() == CurName)
|
||||||
|
pTemp->SetName(rkNewName);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if (NameIt != smPropertyNames.end())
|
||||||
|
smPropertyNames[ID] = rkNewName;
|
||||||
|
}
|
||||||
|
|
||||||
|
std::vector<TString> CMasterTemplate::GetTemplatesUsingID(u32 ID)
|
||||||
|
{
|
||||||
|
auto InfoIt = smIDMap.find(ID);
|
||||||
|
|
||||||
|
if (InfoIt != smIDMap.end())
|
||||||
|
{
|
||||||
|
const SPropIDInfo& rkInfo = InfoIt->second;
|
||||||
|
return rkInfo.XMLList;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
return std::vector<TString>();
|
||||||
|
}
|
||||||
|
|
||||||
|
std::map<u32, CMasterTemplate::SPropIDInfo> CMasterTemplate::smIDMap;
|
||||||
std::map<EGame, CMasterTemplate*> CMasterTemplate::smMasterMap;
|
std::map<EGame, CMasterTemplate*> CMasterTemplate::smMasterMap;
|
||||||
std::map<u32, TString> CMasterTemplate::smPropertyNames;
|
std::map<u32, TString> CMasterTemplate::smPropertyNames;
|
||||||
u32 CMasterTemplate::smGameListVersion;
|
u32 CMasterTemplate::smGameListVersion;
|
||||||
|
|
|
@ -18,11 +18,18 @@ class CMasterTemplate
|
||||||
bool mFullyLoaded;
|
bool mFullyLoaded;
|
||||||
|
|
||||||
std::vector<TString> mGameVersions;
|
std::vector<TString> mGameVersions;
|
||||||
|
std::map<TString, CStructTemplate*> mStructTemplates;
|
||||||
|
|
||||||
std::map<u32, CScriptTemplate*> mTemplates;
|
std::map<u32, CScriptTemplate*> mTemplates;
|
||||||
std::map<u32, TString> mStates;
|
std::map<u32, TString> mStates;
|
||||||
std::map<u32, TString> mMessages;
|
std::map<u32, TString> mMessages;
|
||||||
|
|
||||||
|
struct SPropIDInfo
|
||||||
|
{
|
||||||
|
std::vector<TString> XMLList; // List of script/struct templates that use this ID
|
||||||
|
std::vector<IPropertyTemplate*> PropertyList; // List of all properties that use this ID
|
||||||
|
};
|
||||||
|
static std::map<u32, SPropIDInfo> smIDMap;
|
||||||
static std::map<EGame, CMasterTemplate*> smMasterMap;
|
static std::map<EGame, CMasterTemplate*> smMasterMap;
|
||||||
static std::map<u32, TString> smPropertyNames;
|
static std::map<u32, TString> smPropertyNames;
|
||||||
static u32 smGameListVersion;
|
static u32 smGameListVersion;
|
||||||
|
@ -45,11 +52,15 @@ public:
|
||||||
TString MessageByID(u32 MessageID);
|
TString MessageByID(u32 MessageID);
|
||||||
TString MessageByID(const CFourCC& MessageID);
|
TString MessageByID(const CFourCC& MessageID);
|
||||||
TString MessageByIndex(u32 Index);
|
TString MessageByIndex(u32 Index);
|
||||||
|
TString GetDirectory() const;
|
||||||
bool IsLoadedSuccessfully();
|
bool IsLoadedSuccessfully();
|
||||||
|
|
||||||
static CMasterTemplate* GetMasterForGame(EGame Game);
|
static CMasterTemplate* GetMasterForGame(EGame Game);
|
||||||
static std::list<CMasterTemplate*> GetMasterList();
|
static std::list<CMasterTemplate*> GetMasterList();
|
||||||
static TString GetPropertyName(u32 PropertyID);
|
static TString GetPropertyName(u32 PropertyID);
|
||||||
|
static void AddProperty(IPropertyTemplate *pTemp, const TString& rkTemplateName);
|
||||||
|
static void RenameProperty(u32 ID, const TString& rkNewName);
|
||||||
|
static std::vector<TString> GetTemplatesUsingID(u32 ID);
|
||||||
};
|
};
|
||||||
|
|
||||||
// ************ INLINE ************
|
// ************ INLINE ************
|
||||||
|
|
|
@ -41,7 +41,7 @@ public:
|
||||||
IPropertyTemplate(u32 ID, CStructTemplate *pParent = 0)
|
IPropertyTemplate(u32 ID, CStructTemplate *pParent = 0)
|
||||||
: mID(ID)
|
: mID(ID)
|
||||||
, mpParent(pParent)
|
, mpParent(pParent)
|
||||||
, mName("Unknown")
|
, mName("UNSET PROPERTY NAME")
|
||||||
, mCookPreference(eNoCookPreference)
|
, mCookPreference(eNoCookPreference)
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
@ -130,7 +130,7 @@ public:
|
||||||
|
|
||||||
// TTypedPropertyTemplate - Template property class that allows for tracking
|
// TTypedPropertyTemplate - Template property class that allows for tracking
|
||||||
// a default value. Typedefs are set up for a bunch of property types.
|
// a default value. Typedefs are set up for a bunch of property types.
|
||||||
template<typename PropType, EPropertyType PropTypeEnum, class ValueClass>
|
template<typename PropType, EPropertyType PropTypeEnum, class ValueClass, bool CanHaveDefaultValue>
|
||||||
class TTypedPropertyTemplate : public IPropertyTemplate
|
class TTypedPropertyTemplate : public IPropertyTemplate
|
||||||
{
|
{
|
||||||
friend class CTemplateLoader;
|
friend class CTemplateLoader;
|
||||||
|
@ -147,7 +147,7 @@ public:
|
||||||
: IPropertyTemplate(ID, rkName, CookPreference, pParent) {}
|
: IPropertyTemplate(ID, rkName, CookPreference, pParent) {}
|
||||||
|
|
||||||
virtual EPropertyType Type() const { return PropTypeEnum; }
|
virtual EPropertyType Type() const { return PropTypeEnum; }
|
||||||
virtual bool CanHaveDefault() const { return true; }
|
virtual bool CanHaveDefault() const { return CanHaveDefaultValue; }
|
||||||
virtual bool IsNumerical() const { return false; }
|
virtual bool IsNumerical() const { return false; }
|
||||||
|
|
||||||
virtual IProperty* InstantiateProperty(CPropertyStruct *pParent)
|
virtual IProperty* InstantiateProperty(CPropertyStruct *pParent)
|
||||||
|
@ -200,7 +200,7 @@ public:
|
||||||
// TNumericalPropertyTemplate - Subclass of TTypedPropertyTemplate for numerical
|
// TNumericalPropertyTemplate - Subclass of TTypedPropertyTemplate for numerical
|
||||||
// property types, and allows a min/max value and a suffix to be tracked.
|
// property types, and allows a min/max value and a suffix to be tracked.
|
||||||
template<typename PropType, EPropertyType PropTypeEnum, class ValueClass>
|
template<typename PropType, EPropertyType PropTypeEnum, class ValueClass>
|
||||||
class TNumericalPropertyTemplate : public TTypedPropertyTemplate<PropType,PropTypeEnum,ValueClass>
|
class TNumericalPropertyTemplate : public TTypedPropertyTemplate<PropType,PropTypeEnum,ValueClass,true>
|
||||||
{
|
{
|
||||||
friend class CTemplateLoader;
|
friend class CTemplateLoader;
|
||||||
friend class CTemplateWriter;
|
friend class CTemplateWriter;
|
||||||
|
@ -252,7 +252,7 @@ public:
|
||||||
|
|
||||||
virtual void SetParam(const TString& rkParamName, const TString& rkValue)
|
virtual void SetParam(const TString& rkParamName, const TString& rkValue)
|
||||||
{
|
{
|
||||||
TTypedPropertyTemplate<PropType,PropTypeEnum,ValueClass>::SetParam(rkParamName, rkValue);
|
TTypedPropertyTemplate::SetParam(rkParamName, rkValue);
|
||||||
|
|
||||||
if (rkParamName == "range")
|
if (rkParamName == "range")
|
||||||
{
|
{
|
||||||
|
@ -288,14 +288,15 @@ public:
|
||||||
};
|
};
|
||||||
|
|
||||||
// Typedefs for all property types that don't need further functionality.
|
// Typedefs for all property types that don't need further functionality.
|
||||||
typedef TTypedPropertyTemplate<bool, eBoolProperty, CBoolValue> TBoolTemplate;
|
typedef TTypedPropertyTemplate<bool, eBoolProperty, CBoolValue, true> TBoolTemplate;
|
||||||
typedef TNumericalPropertyTemplate<s8, eByteProperty, CByteValue> TByteTemplate;
|
typedef TNumericalPropertyTemplate<s8, eByteProperty, CByteValue> TByteTemplate;
|
||||||
typedef TNumericalPropertyTemplate<s16, eShortProperty, CShortValue> TShortTemplate;
|
typedef TNumericalPropertyTemplate<s16, eShortProperty, CShortValue> TShortTemplate;
|
||||||
typedef TNumericalPropertyTemplate<s32, eLongProperty, CLongValue> TLongTemplate;
|
typedef TNumericalPropertyTemplate<s32, eLongProperty, CLongValue> TLongTemplate;
|
||||||
typedef TNumericalPropertyTemplate<float, eFloatProperty, CFloatValue> TFloatTemplate;
|
typedef TNumericalPropertyTemplate<float, eFloatProperty, CFloatValue> TFloatTemplate;
|
||||||
typedef TTypedPropertyTemplate<TString, eStringProperty, CStringValue> TStringTemplate;
|
typedef TTypedPropertyTemplate<TString, eStringProperty, CStringValue, false> TStringTemplate;
|
||||||
typedef TTypedPropertyTemplate<CVector3f, eVector3Property, CVector3Value> TVector3Template;
|
typedef TTypedPropertyTemplate<CVector3f, eVector3Property, CVector3Value, true> TVector3Template;
|
||||||
typedef TTypedPropertyTemplate<CColor, eColorProperty, CColorValue> TColorTemplate;
|
typedef TTypedPropertyTemplate<CColor, eColorProperty, CColorValue, true> TColorTemplate;
|
||||||
|
typedef TTypedPropertyTemplate<CAnimationParameters, eCharacterProperty, CCharacterValue, false> TCharacterTemplate;
|
||||||
|
|
||||||
// CFileTemplate - Property template for files. Tracks a list of file types that
|
// CFileTemplate - Property template for files. Tracks a list of file types that
|
||||||
// the property is allowed to accept.
|
// the property is allowed to accept.
|
||||||
|
@ -348,36 +349,8 @@ public:
|
||||||
const TStringList& Extensions() const { return mAcceptedExtensions; }
|
const TStringList& Extensions() const { return mAcceptedExtensions; }
|
||||||
};
|
};
|
||||||
|
|
||||||
// CCharacterTemplate - Typed property that doesn't allow default values.
|
|
||||||
class CCharacterTemplate : public TTypedPropertyTemplate<CAnimationParameters,
|
|
||||||
eCharacterProperty,
|
|
||||||
CCharacterValue>
|
|
||||||
{
|
|
||||||
friend class CTemplateLoader;
|
|
||||||
friend class CTemplateWriter;
|
|
||||||
|
|
||||||
public:
|
|
||||||
CCharacterTemplate(u32 ID, CStructTemplate *pParent = 0)
|
|
||||||
: TTypedPropertyTemplate(ID, pParent) { }
|
|
||||||
|
|
||||||
CCharacterTemplate(u32 ID, const TString& rkName, ECookPreference CookPreference, CStructTemplate *pParent = 0)
|
|
||||||
: TTypedPropertyTemplate(ID, rkName, CookPreference, pParent) { }
|
|
||||||
|
|
||||||
virtual bool CanHaveDefault() const
|
|
||||||
{
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
IProperty* InstantiateProperty(CPropertyStruct *pParent)
|
|
||||||
{
|
|
||||||
return new TCharacterProperty(this, pParent);
|
|
||||||
}
|
|
||||||
|
|
||||||
DEFINE_TEMPLATE_CLONE(CCharacterTemplate)
|
|
||||||
};
|
|
||||||
|
|
||||||
// CEnumTemplate - Property template for enums. Tracks a list of possible values (enumerators).
|
// CEnumTemplate - Property template for enums. Tracks a list of possible values (enumerators).
|
||||||
class CEnumTemplate : public TLongTemplate
|
class CEnumTemplate : public TTypedPropertyTemplate<s32, eEnumProperty, CHexLongValue, true>
|
||||||
{
|
{
|
||||||
friend class CTemplateLoader;
|
friend class CTemplateLoader;
|
||||||
friend class CTemplateWriter;
|
friend class CTemplateWriter;
|
||||||
|
@ -400,12 +373,12 @@ class CEnumTemplate : public TLongTemplate
|
||||||
|
|
||||||
public:
|
public:
|
||||||
CEnumTemplate(u32 ID, CStructTemplate *pParent = 0)
|
CEnumTemplate(u32 ID, CStructTemplate *pParent = 0)
|
||||||
: TLongTemplate(ID, pParent)
|
: TTypedPropertyTemplate(ID, pParent)
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
||||||
CEnumTemplate(u32 ID, const TString& rkName, ECookPreference CookPreference, CStructTemplate *pParent = 0)
|
CEnumTemplate(u32 ID, const TString& rkName, ECookPreference CookPreference, CStructTemplate *pParent = 0)
|
||||||
: TLongTemplate(ID, rkName, CookPreference, pParent)
|
: TTypedPropertyTemplate(ID, rkName, CookPreference, pParent)
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -424,7 +397,7 @@ public:
|
||||||
|
|
||||||
virtual void Copy(const IPropertyTemplate *pkTemp)
|
virtual void Copy(const IPropertyTemplate *pkTemp)
|
||||||
{
|
{
|
||||||
TLongTemplate::Copy(pkTemp);
|
TTypedPropertyTemplate::Copy(pkTemp);
|
||||||
|
|
||||||
const CEnumTemplate *pkEnum = static_cast<const CEnumTemplate*>(pkTemp);
|
const CEnumTemplate *pkEnum = static_cast<const CEnumTemplate*>(pkTemp);
|
||||||
mEnumerators = pkEnum->mEnumerators;
|
mEnumerators = pkEnum->mEnumerators;
|
||||||
|
@ -435,7 +408,7 @@ public:
|
||||||
{
|
{
|
||||||
const CEnumTemplate *pkEnum = static_cast<const CEnumTemplate*>(pkTemp);
|
const CEnumTemplate *pkEnum = static_cast<const CEnumTemplate*>(pkTemp);
|
||||||
|
|
||||||
return ( (TLongTemplate::Matches(pkTemp)) &&
|
return ( (TTypedPropertyTemplate::Matches(pkTemp)) &&
|
||||||
(mEnumerators == pkEnum->mEnumerators) &&
|
(mEnumerators == pkEnum->mEnumerators) &&
|
||||||
(mSourceFile == pkEnum->mSourceFile) );
|
(mSourceFile == pkEnum->mSourceFile) );
|
||||||
}
|
}
|
||||||
|
@ -474,7 +447,7 @@ public:
|
||||||
|
|
||||||
// CBitfieldTemplate - Property template for bitfields, which can have multiple
|
// CBitfieldTemplate - Property template for bitfields, which can have multiple
|
||||||
// distinct boolean parameters packed into one property.
|
// distinct boolean parameters packed into one property.
|
||||||
class CBitfieldTemplate : public TTypedPropertyTemplate<u32, eBitfieldProperty, CHexLongValue>
|
class CBitfieldTemplate : public TTypedPropertyTemplate<u32, eBitfieldProperty, CHexLongValue, true>
|
||||||
{
|
{
|
||||||
friend class CTemplateLoader;
|
friend class CTemplateLoader;
|
||||||
friend class CTemplateWriter;
|
friend class CTemplateWriter;
|
||||||
|
@ -594,6 +567,11 @@ public:
|
||||||
IPropertyTemplate::Copy(pkTemp);
|
IPropertyTemplate::Copy(pkTemp);
|
||||||
|
|
||||||
const CStructTemplate *pkStruct = static_cast<const CStructTemplate*>(pkTemp);
|
const CStructTemplate *pkStruct = static_cast<const CStructTemplate*>(pkTemp);
|
||||||
|
CopyStructData(pkStruct);
|
||||||
|
}
|
||||||
|
|
||||||
|
void CopyStructData(const CStructTemplate *pkStruct)
|
||||||
|
{
|
||||||
mVersionPropertyCounts = pkStruct->mVersionPropertyCounts;
|
mVersionPropertyCounts = pkStruct->mVersionPropertyCounts;
|
||||||
mIsSingleProperty = pkStruct->mIsSingleProperty;
|
mIsSingleProperty = pkStruct->mIsSingleProperty;
|
||||||
mSourceFile = pkStruct->mSourceFile;
|
mSourceFile = pkStruct->mSourceFile;
|
||||||
|
@ -611,7 +589,17 @@ public:
|
||||||
if ( (IPropertyTemplate::Matches(pkTemp)) &&
|
if ( (IPropertyTemplate::Matches(pkTemp)) &&
|
||||||
(mVersionPropertyCounts == pkStruct->mVersionPropertyCounts) &&
|
(mVersionPropertyCounts == pkStruct->mVersionPropertyCounts) &&
|
||||||
(mIsSingleProperty == pkStruct->mIsSingleProperty) &&
|
(mIsSingleProperty == pkStruct->mIsSingleProperty) &&
|
||||||
(mSourceFile == pkStruct->mSourceFile) &&
|
(mSourceFile == pkStruct->mSourceFile) )
|
||||||
|
{
|
||||||
|
return StructDataMatches(pkStruct);
|
||||||
|
}
|
||||||
|
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
bool StructDataMatches(const CStructTemplate *pkStruct) const
|
||||||
|
{
|
||||||
|
if ( (mIsSingleProperty == pkStruct->mIsSingleProperty) &&
|
||||||
(mSubProperties.size() == pkStruct->mSubProperties.size()) )
|
(mSubProperties.size() == pkStruct->mSubProperties.size()) )
|
||||||
{
|
{
|
||||||
for (u32 iSub = 0; iSub < mSubProperties.size(); iSub++)
|
for (u32 iSub = 0; iSub < mSubProperties.size(); iSub++)
|
||||||
|
@ -673,6 +661,8 @@ public:
|
||||||
|
|
||||||
virtual void Copy(const IPropertyTemplate *pkTemp)
|
virtual void Copy(const IPropertyTemplate *pkTemp)
|
||||||
{
|
{
|
||||||
|
IPropertyTemplate::Copy(pkTemp);
|
||||||
|
|
||||||
CStructTemplate::Copy(pkTemp);
|
CStructTemplate::Copy(pkTemp);
|
||||||
mElementName = static_cast<const CArrayTemplate*>(pkTemp)->mElementName;
|
mElementName = static_cast<const CArrayTemplate*>(pkTemp)->mElementName;
|
||||||
}
|
}
|
||||||
|
|
|
@ -168,7 +168,7 @@ public:
|
||||||
|
|
||||||
TString ToString() const
|
TString ToString() const
|
||||||
{
|
{
|
||||||
return TString::HexString(mValue, true, true, 8);
|
return TString::HexString(mValue, true, true, mValue > 0xFF ? 8 : 2);
|
||||||
}
|
}
|
||||||
|
|
||||||
void FromString(const TString& rkString)
|
void FromString(const TString& rkString)
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
<?xml version="1.0" encoding="UTF-8"?>
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
<Properties version="4">
|
<Properties version="4">
|
||||||
<property ID="0x0001F679" name="Unknown"/>
|
<property ID="0x0001F679" name="Unknown"/>
|
||||||
<property ID="0x000E4BAE" name="Sky Temple Key 5"/>
|
<property ID="0x000E4BAE" name="Sky Temple Key 5"/>
|
||||||
|
@ -4333,7 +4333,7 @@
|
||||||
<property ID="0x60FE934E" name="Unknown"/>
|
<property ID="0x60FE934E" name="Unknown"/>
|
||||||
<property ID="0x610B8FB8" name="Unknown"/>
|
<property ID="0x610B8FB8" name="Unknown"/>
|
||||||
<property ID="0x610C0165" name="Unknown"/>
|
<property ID="0x610C0165" name="Unknown"/>
|
||||||
<property ID="0x610EEC90" name="This room's #"/>
|
<property ID="0x610EEC90" name="This room's #"/>
|
||||||
<property ID="0x6117E78F" name="Unknown"/>
|
<property ID="0x6117E78F" name="Unknown"/>
|
||||||
<property ID="0x611905F1" name="Unknown"/>
|
<property ID="0x611905F1" name="Unknown"/>
|
||||||
<property ID="0x6119D07F" name="Unknown"/>
|
<property ID="0x6119D07F" name="Unknown"/>
|
||||||
|
|
|
@ -1,165 +1,165 @@
|
||||||
<?xml version="1.0" encoding="UTF-8"?>
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
<MasterTemplate version="4">
|
<MasterTemplate version="4">
|
||||||
<objects>
|
<objects>
|
||||||
|
<object ID="AAGM" template="Script/AnimGridModifier.xml"/>
|
||||||
|
<object ID="ACKF" template="Script/ActorKeyframe.xml"/>
|
||||||
|
<object ID="ACOU" template="Script/Acoustics.xml"/>
|
||||||
|
<object ID="ACTR" template="Script/Actor.xml"/>
|
||||||
|
<object ID="ADMG" template="Script/AreaDamage.xml"/>
|
||||||
<object ID="AIHT" template="Script/AIHint.xml"/>
|
<object ID="AIHT" template="Script/AIHint.xml"/>
|
||||||
<object ID="AIKF" template="Script/AIKeyframe.xml"/>
|
<object ID="AIKF" template="Script/AIKeyframe.xml"/>
|
||||||
<object ID="AIWP" template="Script/AIWaypoint.xml"/>
|
<object ID="AIWP" template="Script/AIWaypoint.xml"/>
|
||||||
<object ID="ACOU" template="Script/Acoustics.xml"/>
|
|
||||||
<object ID="ACTR" template="Script/Actor.xml"/>
|
|
||||||
<object ID="AAGM" template="Script/AnimGridModifier.xml"/>
|
|
||||||
<object ID="ACKF" template="Script/ActorKeyframe.xml"/>
|
|
||||||
<object ID="AMKF" template="Script/ActorMultiKeyframe.xml"/>
|
<object ID="AMKF" template="Script/ActorMultiKeyframe.xml"/>
|
||||||
<object ID="ATRN" template="Script/ActorTransform.xml"/>
|
<object ID="AOCL" template="Script/AudioOccluder.xml"/>
|
||||||
<object ID="REAA" template="Script/AreaAttributes.xml"/>
|
|
||||||
<object ID="ADMG" template="Script/AreaDamage.xml"/>
|
|
||||||
<object ID="ARNO" template="Script/AreaNode.xml"/>
|
<object ID="ARNO" template="Script/AreaNode.xml"/>
|
||||||
<object ID="ARPA" template="Script/AreaPath.xml"/>
|
<object ID="ARPA" template="Script/AreaPath.xml"/>
|
||||||
<object ID="ASAS" template="Script/AssignedAudioStream.xml"/>
|
<object ID="ASAS" template="Script/AssignedAudioStream.xml"/>
|
||||||
<object ID="AOCL" template="Script/AudioOccluder.xml"/>
|
<object ID="ATRN" template="Script/ActorTransform.xml"/>
|
||||||
<object ID="AVIS" template="Script/AVIS.xml"/>
|
<object ID="AVIS" template="Script/AVIS.xml"/>
|
||||||
<object ID="BABL" template="Script/BarrelBalloon.xml"/>
|
<object ID="BABL" template="Script/BarrelBalloon.xml"/>
|
||||||
<object ID="BARL" template="Script/BarrelCannon.xml"/>
|
<object ID="BARL" template="Script/BarrelCannon.xml"/>
|
||||||
<object ID="BUHA" template="Script/BeatUpHandler.xml"/>
|
|
||||||
<object ID="BIRD" template="Script/BirdBoss.xml"/>
|
<object ID="BIRD" template="Script/BirdBoss.xml"/>
|
||||||
<object ID="BLME" template="Script/BloomEffect.xml"/>
|
<object ID="BLME" template="Script/BloomEffect.xml"/>
|
||||||
<object ID="BLMV" template="Script/BloomVolume.xml"/>
|
<object ID="BLMV" template="Script/BloomVolume.xml"/>
|
||||||
|
<object ID="BLUR" template="Script/CameraBlurKeyframe.xml"/>
|
||||||
<object ID="BONU" template="Script/Bonus.xml"/>
|
<object ID="BONU" template="Script/Bonus.xml"/>
|
||||||
<object ID="BTYR" template="Script/BouncyTire.xml"/>
|
<object ID="BTYR" template="Script/BouncyTire.xml"/>
|
||||||
|
<object ID="BUHA" template="Script/BeatUpHandler.xml"/>
|
||||||
<object ID="CABL" template="Script/Cable.xml"/>
|
<object ID="CABL" template="Script/Cable.xml"/>
|
||||||
<object ID="BLUR" template="Script/CameraBlurKeyframe.xml"/>
|
|
||||||
<object ID="FILT" template="Script/CameraFilterKeyframe.xml"/>
|
|
||||||
<object ID="CAMH" template="Script/CameraHint.xml"/>
|
<object ID="CAMH" template="Script/CameraHint.xml"/>
|
||||||
<object ID="CMAN" template="Script/CameraManager.xml"/>
|
|
||||||
<object ID="CMOD" template="Script/CameraModifier.xml"/>
|
|
||||||
<object ID="CAMS" template="Script/CameraShaker.xml"/>
|
<object ID="CAMS" template="Script/CameraShaker.xml"/>
|
||||||
<object ID="CKPT" template="Script/Checkpoint.xml"/>
|
<object ID="CART" template="Script/MineCart.xml"/>
|
||||||
<object ID="CINE" template="Script/CinematicCamera.xml"/>
|
<object ID="CINE" template="Script/CinematicCamera.xml"/>
|
||||||
|
<object ID="CKPT" template="Script/Checkpoint.xml"/>
|
||||||
<object ID="CLPC" template="Script/ClingPathControl.xml"/>
|
<object ID="CLPC" template="Script/ClingPathControl.xml"/>
|
||||||
<object ID="CLRM" template="Script/ColorModulate.xml"/>
|
<object ID="CLRM" template="Script/ColorModulate.xml"/>
|
||||||
<object ID="CRLY" template="Script/ConditionalRelay.xml"/>
|
<object ID="CMAN" template="Script/CameraManager.xml"/>
|
||||||
|
<object ID="CMGR" template="Script/PirateCrabManager.xml"/>
|
||||||
|
<object ID="CMOD" template="Script/CameraModifier.xml"/>
|
||||||
<object ID="CNTA" template="Script/ControllerAction.xml"/>
|
<object ID="CNTA" template="Script/ControllerAction.xml"/>
|
||||||
<object ID="CNTR" template="Script/Counter.xml"/>
|
<object ID="CNTR" template="Script/Counter.xml"/>
|
||||||
|
<object ID="CRAB" template="Script/PirateCrab.xml"/>
|
||||||
<object ID="CRED" template="Script/Credits.xml"/>
|
<object ID="CRED" template="Script/Credits.xml"/>
|
||||||
|
<object ID="CRLY" template="Script/ConditionalRelay.xml"/>
|
||||||
|
<object ID="CSGO" template="Script/GameOver.xml"/>
|
||||||
<object ID="CSTI" template="Script/CSTI.xml"/>
|
<object ID="CSTI" template="Script/CSTI.xml"/>
|
||||||
<object ID="DMGA" template="Script/DamageArea.xml"/>
|
|
||||||
<object ID="DMGE" template="Script/DamageEffect.xml"/>
|
|
||||||
<object ID="DTRG" template="Script/DamageableTrigger.xml"/>
|
|
||||||
<object ID="DTRO" template="Script/DamageableTriggerOrientated.xml"/>
|
|
||||||
<object ID="DEBR" template="Script/Debris.xml"/>
|
<object ID="DEBR" template="Script/Debris.xml"/>
|
||||||
<object ID="DOFT" template="Script/DepthOfFieldTuner.xml"/>
|
|
||||||
<object ID="DFOG" template="Script/DistanceFog.xml"/>
|
<object ID="DFOG" template="Script/DistanceFog.xml"/>
|
||||||
<object ID="DLHT" template="Script/DynamicLight.xml"/>
|
<object ID="DLHT" template="Script/DynamicLight.xml"/>
|
||||||
|
<object ID="DMGA" template="Script/DamageArea.xml"/>
|
||||||
|
<object ID="DMGE" template="Script/DamageEffect.xml"/>
|
||||||
|
<object ID="DOFT" template="Script/DepthOfFieldTuner.xml"/>
|
||||||
|
<object ID="DTRG" template="Script/DamageableTrigger.xml"/>
|
||||||
|
<object ID="DTRO" template="Script/DamageableTriggerOrientated.xml"/>
|
||||||
<object ID="EFCT" template="Script/Effect.xml"/>
|
<object ID="EFCT" template="Script/Effect.xml"/>
|
||||||
<object ID="EOLD" template="Script/EOLDisplay.xml"/>
|
<object ID="EOLD" template="Script/EOLDisplay.xml"/>
|
||||||
<object ID="FXDC" template="Script/EnvFxDensityController.xml"/>
|
<object ID="FILT" template="Script/CameraFilterKeyframe.xml"/>
|
||||||
<object ID="FSWC" template="Script/FactorySwitch.xml"/>
|
|
||||||
<object ID="FLPS" template="Script/FalsePerspective.xml"/>
|
<object ID="FLPS" template="Script/FalsePerspective.xml"/>
|
||||||
|
<object ID="FOBS" template="Script/ForestBoss.xml"/>
|
||||||
<object ID="FOGO" template="Script/FogOverlay.xml"/>
|
<object ID="FOGO" template="Script/FogOverlay.xml"/>
|
||||||
<object ID="FOGV" template="Script/FogVolume.xml"/>
|
<object ID="FOGV" template="Script/FogVolume.xml"/>
|
||||||
<object ID="FOBS" template="Script/ForestBoss.xml"/>
|
<object ID="FSWC" template="Script/FactorySwitch.xml"/>
|
||||||
<object ID="GMGR" template="Script/GameManager.xml"/>
|
<object ID="FXDC" template="Script/EnvFxDensityController.xml"/>
|
||||||
<object ID="CSGO" template="Script/GameOver.xml"/>
|
|
||||||
<object ID="GOBD" template="Script/GeneratedObjectDeleter.xml"/>
|
|
||||||
<object ID="GENR" template="Script/Generator.xml"/>
|
|
||||||
<object ID="GCTR" template="Script/GenericCreature.xml"/>
|
|
||||||
<object ID="GCGP" template="Script/GenericCreatureGroup.xml"/>
|
<object ID="GCGP" template="Script/GenericCreatureGroup.xml"/>
|
||||||
<object ID="GPDT" template="Script/GroundPoundDetector.xml"/>
|
<object ID="GCTR" template="Script/GenericCreature.xml"/>
|
||||||
<object ID="GUCH" template="Script/GuiCharacter.xml"/>
|
<object ID="GENR" template="Script/Generator.xml"/>
|
||||||
|
<object ID="GMGR" template="Script/GameManager.xml"/>
|
||||||
<object ID="GMNU" template="Script/GuiMenu.xml"/>
|
<object ID="GMNU" template="Script/GuiMenu.xml"/>
|
||||||
|
<object ID="GOBD" template="Script/GeneratedObjectDeleter.xml"/>
|
||||||
|
<object ID="GPDT" template="Script/GroundPoundDetector.xml"/>
|
||||||
<object ID="GPTR" template="Script/GPTR.xml"/>
|
<object ID="GPTR" template="Script/GPTR.xml"/>
|
||||||
<object ID="GSLD" template="Script/GuiSlider.xml"/>
|
<object ID="GSLD" template="Script/GuiSlider.xml"/>
|
||||||
|
<object ID="GUCH" template="Script/GuiCharacter.xml"/>
|
||||||
<object ID="GWIG" template="Script/GuiWidget.xml"/>
|
<object ID="GWIG" template="Script/GuiWidget.xml"/>
|
||||||
|
<object ID="HINT" template="Script/PlayerHint.xml"/>
|
||||||
<object ID="HUDD" template="Script/HUD.xml"/>
|
<object ID="HUDD" template="Script/HUD.xml"/>
|
||||||
<object ID="HUDP" template="Script/HUDProxy.xml"/>
|
<object ID="HUDP" template="Script/HUDProxy.xml"/>
|
||||||
<object ID="IHUD" template="Script/IslandHUD.xml"/>
|
<object ID="IHUD" template="Script/IslandHUD.xml"/>
|
||||||
<object ID="ISAR" template="Script/IslandArea.xml"/>
|
<object ID="ISAR" template="Script/IslandArea.xml"/>
|
||||||
<object ID="JB01" template="Script/JungleBoss1.xml"/>
|
<object ID="JB01" template="Script/JungleBoss1.xml"/>
|
||||||
<object ID="KONG" template="Script/Kong.xml"/>
|
|
||||||
<object ID="KNGP" template="Script/KongProxy.xml"/>
|
<object ID="KNGP" template="Script/KongProxy.xml"/>
|
||||||
<object ID="LVLD" template="Script/LevelDarkener.xml"/>
|
<object ID="KONG" template="Script/Kong.xml"/>
|
||||||
<object ID="LODC" template="Script/LODController.xml"/>
|
<object ID="LODC" template="Script/LODController.xml"/>
|
||||||
|
<object ID="LVLD" template="Script/LevelDarkener.xml"/>
|
||||||
<object ID="LVOL" template="Script/LightVolume.xml"/>
|
<object ID="LVOL" template="Script/LightVolume.xml"/>
|
||||||
<object ID="MNPL" template="Script/MotionPlatform.xml"/>
|
|
||||||
<object ID="MEAT" template="Script/MEAT.xml"/>
|
<object ID="MEAT" template="Script/MEAT.xml"/>
|
||||||
<object ID="MRLY" template="Script/MemoryRelay.xml"/>
|
|
||||||
<object ID="CART" template="Script/MineCart.xml"/>
|
|
||||||
<object ID="MOLC" template="Script/MoleCart.xml"/>
|
|
||||||
<object ID="MOLM" template="Script/MoleTrainManager.xml"/>
|
|
||||||
<object ID="MOLE" template="Script/Mole.xml"/>
|
|
||||||
<object ID="MMDL" template="Script/MultiModelActor.xml"/>
|
<object ID="MMDL" template="Script/MultiModelActor.xml"/>
|
||||||
|
<object ID="MNPL" template="Script/MotionPlatform.xml"/>
|
||||||
|
<object ID="MOLC" template="Script/MoleCart.xml"/>
|
||||||
|
<object ID="MOLE" template="Script/Mole.xml"/>
|
||||||
|
<object ID="MOLM" template="Script/MoleTrainManager.xml"/>
|
||||||
|
<object ID="MOVI" template="Script/StreamedMovie.xml"/>
|
||||||
<object ID="MPSR" template="Script/MultiplayerSyncRelay.xml"/>
|
<object ID="MPSR" template="Script/MultiplayerSyncRelay.xml"/>
|
||||||
|
<object ID="MRLY" template="Script/MemoryRelay.xml"/>
|
||||||
<object ID="MUMA" template="Script/MusicMaster.xml"/>
|
<object ID="MUMA" template="Script/MusicMaster.xml"/>
|
||||||
<object ID="SAMD" template="Script/StreamedAudioModifier.xml"/>
|
|
||||||
<object ID="MUTR" template="Script/MusicTrack.xml"/>
|
<object ID="MUTR" template="Script/MusicTrack.xml"/>
|
||||||
<object ID="OBRG" template="Script/OceanBridge.xml"/>
|
<object ID="OBRG" template="Script/OceanBridge.xml"/>
|
||||||
<object ID="WAVE" template="Script/OceanWave.xml"/>
|
|
||||||
<object ID="OPAA" template="Script/OptionalAreaAsset.xml"/>
|
<object ID="OPAA" template="Script/OptionalAreaAsset.xml"/>
|
||||||
<object ID="PCTL" template="Script/PathControl.xml"/>
|
|
||||||
<object ID="PNUT" template="Script/Peanut.xml"/>
|
|
||||||
<object ID="PCKP" template="Script/Pickup.xml"/>
|
|
||||||
<object ID="PCHK" template="Script/PilotChicken.xml"/>
|
<object ID="PCHK" template="Script/PilotChicken.xml"/>
|
||||||
<object ID="CRAB" template="Script/PirateCrab.xml"/>
|
<object ID="PCKP" template="Script/Pickup.xml"/>
|
||||||
<object ID="CMGR" template="Script/PirateCrabManager.xml"/>
|
<object ID="PCTL" template="Script/PathControl.xml"/>
|
||||||
<object ID="PLAT" template="Script/Platform.xml"/>
|
|
||||||
<object ID="HINT" template="Script/PlayerHint.xml"/>
|
|
||||||
<object ID="PLAC" template="Script/PlayerActor.xml"/>
|
<object ID="PLAC" template="Script/PlayerActor.xml"/>
|
||||||
<object ID="PRSP" template="Script/PlayerRespawn.xml"/>
|
<object ID="PLAT" template="Script/Platform.xml"/>
|
||||||
<object ID="PTOK" template="Script/PlayerToken.xml"/>
|
<object ID="PNUT" template="Script/Peanut.xml"/>
|
||||||
<object ID="POIO" template="Script/PoiObject.xml"/>
|
<object ID="POIO" template="Script/PoiObject.xml"/>
|
||||||
<object ID="SPRL" template="Script/PositionRelay.xml"/>
|
|
||||||
<object ID="PRLA" template="Script/PickupRelay.xml"/>
|
<object ID="PRLA" template="Script/PickupRelay.xml"/>
|
||||||
<object ID="PROJ" template="Script/Projectile.xml"/>
|
<object ID="PROJ" template="Script/Projectile.xml"/>
|
||||||
<object ID="RADD" template="Script/RadialDamage.xml"/>
|
<object ID="PRSP" template="Script/PlayerRespawn.xml"/>
|
||||||
<object ID="RMBI" template="Script/Rambi.xml"/>
|
<object ID="PTOK" template="Script/PlayerToken.xml"/>
|
||||||
<object ID="RACR" template="Script/RambiCrate.xml"/>
|
<object ID="RACR" template="Script/RambiCrate.xml"/>
|
||||||
<object ID="REAC" template="Script/ReactiveObject.xml"/>
|
<object ID="RADD" template="Script/RadialDamage.xml"/>
|
||||||
<object ID="RSCL" template="Script/RSCL.xml"/>
|
<object ID="RBRL" template="Script/RocketBarrel.xml"/>
|
||||||
<object ID="SRLY" template="Script/Relay.xml"/>
|
|
||||||
<object ID="RRLY" template="Script/RandomRelay.xml"/>
|
|
||||||
<object ID="RSBL" template="Script/RespawnBalloon.xml"/>
|
|
||||||
<object ID="RTNM" template="Script/Retronome.xml"/>
|
|
||||||
<object ID="RCTL" template="Script/ReviewControl.xml"/>
|
|
||||||
<object ID="RCHK" template="Script/RobotChicken.xml"/>
|
<object ID="RCHK" template="Script/RobotChicken.xml"/>
|
||||||
<object ID="RCKF" template="Script/RobotChickenFlyer.xml"/>
|
<object ID="RCKF" template="Script/RobotChickenFlyer.xml"/>
|
||||||
<object ID="RBRL" template="Script/RocketBarrel.xml"/>
|
<object ID="RCTL" template="Script/ReviewControl.xml"/>
|
||||||
|
<object ID="REAA" template="Script/AreaAttributes.xml"/>
|
||||||
|
<object ID="REAC" template="Script/ReactiveObject.xml"/>
|
||||||
|
<object ID="RMBI" template="Script/Rambi.xml"/>
|
||||||
|
<object ID="ROPE" template="Script/SwingRope.xml"/>
|
||||||
|
<object ID="RRLY" template="Script/RandomRelay.xml"/>
|
||||||
|
<object ID="RSBL" template="Script/RespawnBalloon.xml"/>
|
||||||
|
<object ID="RSCL" template="Script/RSCL.xml"/>
|
||||||
|
<object ID="RTNM" template="Script/Retronome.xml"/>
|
||||||
<object ID="RUMB" template="Script/RumbleEffect.xml"/>
|
<object ID="RUMB" template="Script/RumbleEffect.xml"/>
|
||||||
<object ID="SLCT" template="Script/ScriptLayerController.xml"/>
|
<object ID="SAMD" template="Script/StreamedAudioModifier.xml"/>
|
||||||
<object ID="SQTR" template="Script/SequenceTimer.xml"/>
|
|
||||||
<object ID="SHDW" template="Script/ShadowProjector.xml"/>
|
|
||||||
<object ID="SBMI" template="Script/SkyboxModInca.xml"/>
|
<object ID="SBMI" template="Script/SkyboxModInca.xml"/>
|
||||||
<object ID="SOND" template="Script/Sound.xml"/>
|
<object ID="SCTL" template="Script/SurfaceControl.xml"/>
|
||||||
|
<object ID="SHDW" template="Script/ShadowProjector.xml"/>
|
||||||
|
<object ID="SLCT" template="Script/ScriptLayerController.xml"/>
|
||||||
<object ID="SNDM" template="Script/SoundModifier.xml"/>
|
<object ID="SNDM" template="Script/SoundModifier.xml"/>
|
||||||
<object ID="SNMD" template="Script/SoundModifierData.xml"/>
|
<object ID="SNMD" template="Script/SoundModifierData.xml"/>
|
||||||
<object ID="SPWN" template="Script/SpawnPoint.xml"/>
|
<object ID="SOND" template="Script/Sound.xml"/>
|
||||||
<object ID="SPFN" template="Script/SpecialFunction.xml"/>
|
<object ID="SPFN" template="Script/SpecialFunction.xml"/>
|
||||||
<object ID="SPIN" template="Script/Spinner.xml"/>
|
<object ID="SPIN" template="Script/Spinner.xml"/>
|
||||||
<object ID="SVOL" template="Script/SplineModifierVolume.xml"/>
|
|
||||||
<object ID="SPPA" template="Script/SplinePath.xml"/>
|
|
||||||
<object ID="SPNW" template="Script/SplinePathNetwork.xml"/>
|
<object ID="SPNW" template="Script/SplinePathNetwork.xml"/>
|
||||||
<object ID="SWKP" template="Script/SquawkPuzzleAlert.xml"/>
|
<object ID="SPPA" template="Script/SplinePath.xml"/>
|
||||||
|
<object ID="SPRL" template="Script/PositionRelay.xml"/>
|
||||||
|
<object ID="SPWN" template="Script/SpawnPoint.xml"/>
|
||||||
|
<object ID="SQTR" template="Script/SequenceTimer.xml"/>
|
||||||
|
<object ID="SRLY" template="Script/Relay.xml"/>
|
||||||
<object ID="STAU" template="Script/StreamedAudio.xml"/>
|
<object ID="STAU" template="Script/StreamedAudio.xml"/>
|
||||||
<object ID="MOVI" template="Script/StreamedMovie.xml"/>
|
|
||||||
<object ID="SUBT" template="Script/Subtitles.xml"/>
|
<object ID="SUBT" template="Script/Subtitles.xml"/>
|
||||||
<object ID="SCTL" template="Script/SurfaceControl.xml"/>
|
|
||||||
<object ID="SUSP" template="Script/SuspensionBridge.xml"/>
|
<object ID="SUSP" template="Script/SuspensionBridge.xml"/>
|
||||||
<object ID="ROPE" template="Script/SwingRope.xml"/>
|
<object ID="SVOL" template="Script/SplineModifierVolume.xml"/>
|
||||||
|
<object ID="SWKP" template="Script/SquawkPuzzleAlert.xml"/>
|
||||||
<object ID="SWTC" template="Script/Switch.xml"/>
|
<object ID="SWTC" template="Script/Switch.xml"/>
|
||||||
<object ID="TARP" template="Script/TarPit.xml"/>
|
<object ID="TARP" template="Script/TarPit.xml"/>
|
||||||
<object ID="TXPN" template="Script/TextPane.xml"/>
|
|
||||||
<object ID="TIDE" template="Script/TidalWave.xml"/>
|
|
||||||
<object ID="TEOL" template="Script/TimeAttackEOLDisplay.xml"/>
|
<object ID="TEOL" template="Script/TimeAttackEOLDisplay.xml"/>
|
||||||
<object ID="TKEY" template="Script/TimeKeyframe.xml"/>
|
<object ID="TIDE" template="Script/TidalWave.xml"/>
|
||||||
<object ID="TIMR" template="Script/Timer.xml"/>
|
<object ID="TIMR" template="Script/Timer.xml"/>
|
||||||
<object ID="TIPI" template="Script/TippyPlatform.xml"/>
|
<object ID="TIPI" template="Script/TippyPlatform.xml"/>
|
||||||
<object ID="TPND" template="Script/TPND.xml"/>
|
<object ID="TKEY" template="Script/TimeKeyframe.xml"/>
|
||||||
<object ID="TMGR" template="Script/TrainTrackManager.xml"/>
|
<object ID="TMGR" template="Script/TrainTrackManager.xml"/>
|
||||||
<object ID="TSEQ" template="Script/TrainSequence.xml"/>
|
<object ID="TPND" template="Script/TPND.xml"/>
|
||||||
<object ID="TRSC" template="Script/TransitionScreen.xml"/>
|
|
||||||
<object ID="TRGR" template="Script/Trigger.xml"/>
|
<object ID="TRGR" template="Script/Trigger.xml"/>
|
||||||
|
<object ID="TRSC" template="Script/TransitionScreen.xml"/>
|
||||||
|
<object ID="TSEQ" template="Script/TrainSequence.xml"/>
|
||||||
<object ID="TUTR" template="Script/Tutorial.xml"/>
|
<object ID="TUTR" template="Script/Tutorial.xml"/>
|
||||||
<object ID="VRBR" template="Script/VerticalRocketBarrel.xml"/>
|
<object ID="TXPN" template="Script/TextPane.xml"/>
|
||||||
<object ID="VBPT" template="Script/VolcanoBossBodyPart.xml"/>
|
<object ID="VBPT" template="Script/VolcanoBossBodyPart.xml"/>
|
||||||
<object ID="VOLG" template="Script/VolGroup.xml"/>
|
<object ID="VOLG" template="Script/VolGroup.xml"/>
|
||||||
|
<object ID="VRBR" template="Script/VerticalRocketBarrel.xml"/>
|
||||||
|
<object ID="WAVE" template="Script/OceanWave.xml"/>
|
||||||
<object ID="WAYP" template="Script/Waypoint.xml"/>
|
<object ID="WAYP" template="Script/Waypoint.xml"/>
|
||||||
<object ID="WLDA" template="Script/WorldAttributes.xml"/>
|
<object ID="WLDA" template="Script/WorldAttributes.xml"/>
|
||||||
<object ID="WLIT" template="Script/WorldLightFader.xml"/>
|
<object ID="WLIT" template="Script/WorldLightFader.xml"/>
|
||||||
|
|
|
@ -4,19 +4,26 @@
|
||||||
<properties>
|
<properties>
|
||||||
<struct ID="0x255A4580" template="Structs/EditorProperties.xml"/>
|
<struct ID="0x255A4580" template="Structs/EditorProperties.xml"/>
|
||||||
<array ID="0xEF5C94E9">
|
<array ID="0xEF5C94E9">
|
||||||
<default>0</default>
|
|
||||||
<element_name>Connection</element_name>
|
<element_name>Connection</element_name>
|
||||||
<properties>
|
<properties>
|
||||||
<property ID="0x00" name="Connection Index" type="short" />
|
<property ID="0x00" name="Connection Index" type="short">
|
||||||
|
<default>0</default>
|
||||||
|
</property>
|
||||||
<array ID="0x01" name="Activation Times">
|
<array ID="0x01" name="Activation Times">
|
||||||
<element_name>Activation Time</element_name>
|
<element_name>Activation Time</element_name>
|
||||||
<properties>
|
<properties>
|
||||||
<property ID="0x00" name="Time" type="float" />
|
<property ID="0x00" name="Time" type="float">
|
||||||
|
<default>0.0</default>
|
||||||
|
</property>
|
||||||
<property ID="0x01" name="Unknown 1" type="long">
|
<property ID="0x01" name="Unknown 1" type="long">
|
||||||
|
<default>0</default>
|
||||||
<description>Always 0</description>
|
<description>Always 0</description>
|
||||||
</property>
|
</property>
|
||||||
<property ID="0x02" name="Unknown 2" type="long"/>
|
<property ID="0x02" name="Unknown 2" type="long">
|
||||||
|
<default>0</default>
|
||||||
|
</property>
|
||||||
<property ID="0x03" name="Unknown 3" type="long">
|
<property ID="0x03" name="Unknown 3" type="long">
|
||||||
|
<default>0</default>
|
||||||
<description>Always 0</description>
|
<description>Always 0</description>
|
||||||
</property>
|
</property>
|
||||||
</properties>
|
</properties>
|
||||||
|
|
|
@ -8,7 +8,7 @@
|
||||||
</property>
|
</property>
|
||||||
<struct ID="0x20091B54" template="Structs/SplineType.xml"/>
|
<struct ID="0x20091B54" template="Structs/SplineType.xml"/>
|
||||||
<property ID="0x00DD86E2" type="color">
|
<property ID="0x00DD86E2" type="color">
|
||||||
<default>1,0,1,1</default>
|
<default>1.0, 0.0, 1.0, 1.0</default>
|
||||||
</property>
|
</property>
|
||||||
</properties>
|
</properties>
|
||||||
<states/>
|
<states/>
|
||||||
|
|
|
@ -1,9 +1,17 @@
|
||||||
<?xml version="1.0" encoding="UTF-8"?>
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
<struct name="LayerID" type="single">
|
<struct name="LayerID" type="single">
|
||||||
<properties>
|
<properties>
|
||||||
<property ID="0x00" type="long" name="Layer ID Part 1"/>
|
<property ID="0x00" name="Layer ID Part 1" type="long">
|
||||||
<property ID="0x01" type="long" name="Layer ID Part 2"/>
|
<default>0</default>
|
||||||
<property ID="0x02" type="long" name="Layer ID Part 3"/>
|
</property>
|
||||||
<property ID="0x03" type="long" name="Layer ID Part 4"/>
|
<property ID="0x01" name="Layer ID Part 2" type="long">
|
||||||
|
<default>0</default>
|
||||||
|
</property>
|
||||||
|
<property ID="0x02" name="Layer ID Part 3" type="long">
|
||||||
|
<default>0</default>
|
||||||
|
</property>
|
||||||
|
<property ID="0x03" name="Layer ID Part 4" type="long">
|
||||||
|
<default>0</default>
|
||||||
|
</property>
|
||||||
</properties>
|
</properties>
|
||||||
</struct>
|
</struct>
|
||||||
|
|
|
@ -1,7 +1,9 @@
|
||||||
<?xml version="1.0" encoding="UTF-8"?>
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
<struct name="LayerSwitch" type="single">
|
<struct name="LayerSwitch" type="single">
|
||||||
<properties>
|
<properties>
|
||||||
<property ID="0x00" name="Area ID" type="file" ext="NULL"/>
|
<property ID="0x00" name="Area ID" type="file" extensions="UNKN"/>
|
||||||
<property ID="0x01" name="Layer #" type="long"/>
|
<property ID="0x01" name="Layer #" type="long">
|
||||||
|
<default>0</default>
|
||||||
|
</property>
|
||||||
</properties>
|
</properties>
|
||||||
</struct>
|
</struct>
|
||||||
|
|
|
@ -5,7 +5,7 @@
|
||||||
<default>1.0, 1.0, 1.0, 1.0</default>
|
<default>1.0, 1.0, 1.0, 1.0</default>
|
||||||
</property>
|
</property>
|
||||||
<enum ID="0x6B5E7509">
|
<enum ID="0x6B5E7509">
|
||||||
<default>1</default>
|
<default>0x01</default>
|
||||||
<enumerators>
|
<enumerators>
|
||||||
<enumerator ID="0x00" name="Unknown 1"/>
|
<enumerator ID="0x00" name="Unknown 1"/>
|
||||||
<enumerator ID="0x01" name="Normal World Lighting"/>
|
<enumerator ID="0x01" name="Normal World Lighting"/>
|
||||||
|
|
|
@ -2,13 +2,13 @@
|
||||||
<struct name="Transform" type="single">
|
<struct name="Transform" type="single">
|
||||||
<properties>
|
<properties>
|
||||||
<property ID="0x00" name="Position" type="vector3f">
|
<property ID="0x00" name="Position" type="vector3f">
|
||||||
<default>0,0,0</default>
|
<default>0.0, 0.0, 0.0</default>
|
||||||
</property>
|
</property>
|
||||||
<property ID="0x01" name="Rotation" type="vector3f">
|
<property ID="0x01" name="Rotation" type="vector3f">
|
||||||
<default>0,0,0</default>
|
<default>0.0, 0.0, 0.0</default>
|
||||||
</property>
|
</property>
|
||||||
<property ID="0x02" name="Scale" type="vector3f">
|
<property ID="0x02" name="Scale" type="vector3f">
|
||||||
<default>1,1,1</default>
|
<default>1.0, 1.0, 1.0</default>
|
||||||
</property>
|
</property>
|
||||||
</properties>
|
</properties>
|
||||||
</struct>
|
</struct>
|
||||||
|
|
|
@ -1,21 +1,21 @@
|
||||||
<?xml version="1.0" ?>
|
<?xml version="1.0" ?>
|
||||||
<enum name="ControllerButton">
|
<enum name="ControllerButton">
|
||||||
<enumerator ID="0x0" name="None" />
|
<enumerator ID="0x00" name="None" />
|
||||||
<enumerator ID="0x1" name="Left Stick Up" />
|
<enumerator ID="0x01" name="Left Stick Up" />
|
||||||
<enumerator ID="0x2" name="Left Stick Down" />
|
<enumerator ID="0x02" name="Left Stick Down" />
|
||||||
<enumerator ID="0x3" name="Left Stick Left" />
|
<enumerator ID="0x03" name="Left Stick Left" />
|
||||||
<enumerator ID="0x4" name="Left Stick Right" />
|
<enumerator ID="0x04" name="Left Stick Right" />
|
||||||
<enumerator ID="0x5" name="Right Stick Up" />
|
<enumerator ID="0x05" name="Right Stick Up" />
|
||||||
<enumerator ID="0x6" name="Right Stick Down" />
|
<enumerator ID="0x06" name="Right Stick Down" />
|
||||||
<enumerator ID="0x7" name="Right Stick Left" />
|
<enumerator ID="0x07" name="Right Stick Left" />
|
||||||
<enumerator ID="0x8" name="Right Stick Right" />
|
<enumerator ID="0x08" name="Right Stick Right" />
|
||||||
<enumerator ID="0x9" name="Left Trigger" />
|
<enumerator ID="0x09" name="Left Trigger" />
|
||||||
<enumerator ID="0xA" name="Right Trigger" />
|
<enumerator ID="0x0A" name="Right Trigger" />
|
||||||
<enumerator ID="0xB" name="D-Pad Up" />
|
<enumerator ID="0x0B" name="D-Pad Up" />
|
||||||
<enumerator ID="0xC" name="D-Pad Down" />
|
<enumerator ID="0x0C" name="D-Pad Down" />
|
||||||
<enumerator ID="0xD" name="D-Pad Left" />
|
<enumerator ID="0x0D" name="D-Pad Left" />
|
||||||
<enumerator ID="0xE" name="D-Pad Right" />
|
<enumerator ID="0x0E" name="D-Pad Right" />
|
||||||
<enumerator ID="0xF" name="A Button" />
|
<enumerator ID="0x0F" name="A Button" />
|
||||||
<enumerator ID="0x10" name="B Button" />
|
<enumerator ID="0x10" name="B Button" />
|
||||||
<enumerator ID="0x11" name="X Button" />
|
<enumerator ID="0x11" name="X Button" />
|
||||||
<enumerator ID="0x12" name="Y Button" />
|
<enumerator ID="0x12" name="Y Button" />
|
||||||
|
|
|
@ -1,22 +1,22 @@
|
||||||
<?xml version="1.0" encoding="UTF-8"?>
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
<enum name="InventorySlot">
|
<enum name="InventorySlot">
|
||||||
<enumerators>
|
<enumerators>
|
||||||
<enumerator ID="0x0" name="Power Beam"/>
|
<enumerator ID="0x00" name="Power Beam"/>
|
||||||
<enumerator ID="0x1" name="Ice Beam"/>
|
<enumerator ID="0x01" name="Ice Beam"/>
|
||||||
<enumerator ID="0x2" name="Wave Beam"/>
|
<enumerator ID="0x02" name="Wave Beam"/>
|
||||||
<enumerator ID="0x3" name="Plasma Beam"/>
|
<enumerator ID="0x03" name="Plasma Beam"/>
|
||||||
<enumerator ID="0x4" name="Missile"/>
|
<enumerator ID="0x04" name="Missile"/>
|
||||||
<enumerator ID="0x5" name="Scan Visor"/>
|
<enumerator ID="0x05" name="Scan Visor"/>
|
||||||
<enumerator ID="0x6" name="Morph Ball Bomb"/>
|
<enumerator ID="0x06" name="Morph Ball Bomb"/>
|
||||||
<enumerator ID="0x7" name="Power Bomb"/>
|
<enumerator ID="0x07" name="Power Bomb"/>
|
||||||
<enumerator ID="0x8" name="Flamethrower"/>
|
<enumerator ID="0x08" name="Flamethrower"/>
|
||||||
<enumerator ID="0x9" name="Thermal Visor"/>
|
<enumerator ID="0x09" name="Thermal Visor"/>
|
||||||
<enumerator ID="0xA" name="Charge Beam"/>
|
<enumerator ID="0x0A" name="Charge Beam"/>
|
||||||
<enumerator ID="0xB" name="Super Missile"/>
|
<enumerator ID="0x0B" name="Super Missile"/>
|
||||||
<enumerator ID="0xC" name="Grapple Beam"/>
|
<enumerator ID="0x0C" name="Grapple Beam"/>
|
||||||
<enumerator ID="0xD" name="X-Ray Visor"/>
|
<enumerator ID="0x0D" name="X-Ray Visor"/>
|
||||||
<enumerator ID="0xE" name="Ice Spreader"/>
|
<enumerator ID="0x0E" name="Ice Spreader"/>
|
||||||
<enumerator ID="0xF" name="Space Jump Boots"/>
|
<enumerator ID="0x0F" name="Space Jump Boots"/>
|
||||||
<enumerator ID="0x10" name="Morph Ball"/>
|
<enumerator ID="0x10" name="Morph Ball"/>
|
||||||
<enumerator ID="0x11" name="Combat Visor"/>
|
<enumerator ID="0x11" name="Combat Visor"/>
|
||||||
<enumerator ID="0x12" name="Boost Ball"/>
|
<enumerator ID="0x12" name="Boost Ball"/>
|
||||||
|
|
|
@ -1,21 +1,21 @@
|
||||||
<?xml version="1.0" ?>
|
<?xml version="1.0" ?>
|
||||||
<enum name="PlayerAction">
|
<enum name="PlayerAction">
|
||||||
<enumerator ID="0x0" name="Forward" />
|
<enumerator ID="0x00" name="Forward" />
|
||||||
<enumerator ID="0x1" name="Backward" />
|
<enumerator ID="0x01" name="Backward" />
|
||||||
<enumerator ID="0x2" name="Turn Left" />
|
<enumerator ID="0x02" name="Turn Left" />
|
||||||
<enumerator ID="0x3" name="Turn Right" />
|
<enumerator ID="0x03" name="Turn Right" />
|
||||||
<enumerator ID="0x4" name="Strafe Left" />
|
<enumerator ID="0x04" name="Strafe Left" />
|
||||||
<enumerator ID="0x5" name="Strafe Right" />
|
<enumerator ID="0x05" name="Strafe Right" />
|
||||||
<enumerator ID="0x6" name="Look Left" />
|
<enumerator ID="0x06" name="Look Left" />
|
||||||
<enumerator ID="0x7" name="Look Right" />
|
<enumerator ID="0x07" name="Look Right" />
|
||||||
<enumerator ID="0x8" name="Look Up" />
|
<enumerator ID="0x08" name="Look Up" />
|
||||||
<enumerator ID="0x9" name="Look Down" />
|
<enumerator ID="0x09" name="Look Down" />
|
||||||
<enumerator ID="0xA" name="Jump/Boost" />
|
<enumerator ID="0x0A" name="Jump/Boost" />
|
||||||
<enumerator ID="0xB" name="Fire/Bomb" />
|
<enumerator ID="0x0B" name="Fire/Bomb" />
|
||||||
<enumerator ID="0xC" name="Missile/PowerBomb" />
|
<enumerator ID="0x0C" name="Missile/PowerBomb" />
|
||||||
<enumerator ID="0xD" name="Morph" />
|
<enumerator ID="0x0D" name="Morph" />
|
||||||
<enumerator ID="0xE" name="Aim Up" />
|
<enumerator ID="0x0E" name="Aim Up" />
|
||||||
<enumerator ID="0xF" ame="Aim Down" />
|
<enumerator ID="0x0F" ame="Aim Down" />
|
||||||
<enumerator ID="0x10" name="Cycle Beam Up" />
|
<enumerator ID="0x10" name="Cycle Beam Up" />
|
||||||
<enumerator ID="0x11" name="Cycle Beam Down" />
|
<enumerator ID="0x11" name="Cycle Beam Down" />
|
||||||
<enumerator ID="0x12" name="Cycle Item" />
|
<enumerator ID="0x12" name="Cycle Item" />
|
||||||
|
|
|
@ -1,22 +1,22 @@
|
||||||
<?xml version="1.0" encoding="UTF-8"?>
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
<enum name="SpecialFunctionType">
|
<enum name="SpecialFunctionType">
|
||||||
<enumerators>
|
<enumerators>
|
||||||
<enumerator ID="0x0" name="What"/>
|
<enumerator ID="0x00" name="What"/>
|
||||||
<enumerator ID="0x1" name="Player Follow Locator"/>
|
<enumerator ID="0x01" name="Player Follow Locator"/>
|
||||||
<enumerator ID="0x2" name="Spinner Controller"/>
|
<enumerator ID="0x02" name="Spinner Controller"/>
|
||||||
<enumerator ID="0x3" name="Object Follow Locator"/>
|
<enumerator ID="0x03" name="Object Follow Locator"/>
|
||||||
<enumerator ID="0x4" name="Function 4"/>
|
<enumerator ID="0x04" name="Function 4"/>
|
||||||
<enumerator ID="0x5" name="Inventory Activator"/>
|
<enumerator ID="0x05" name="Inventory Activator"/>
|
||||||
<enumerator ID="0x6" name="Map Station"/>
|
<enumerator ID="0x06" name="Map Station"/>
|
||||||
<enumerator ID="0x7" name="Save Station"/>
|
<enumerator ID="0x07" name="Save Station"/>
|
||||||
<enumerator ID="0x8" name="Intro Boss Ring Controller"/>
|
<enumerator ID="0x08" name="Intro Boss Ring Controller"/>
|
||||||
<enumerator ID="0x9" name="View Frustum Tester (Unused)"/>
|
<enumerator ID="0x09" name="View Frustum Tester (Unused)"/>
|
||||||
<enumerator ID="0xA" name="Shot Spinner Controller"/>
|
<enumerator ID="0x0A" name="Shot Spinner Controller"/>
|
||||||
<enumerator ID="0xB" name="Escape Sequence"/>
|
<enumerator ID="0x0B" name="Escape Sequence"/>
|
||||||
<enumerator ID="0xC" name="Boss Energy Bar"/>
|
<enumerator ID="0x0C" name="Boss Energy Bar"/>
|
||||||
<enumerator ID="0xD" name="End Game"/>
|
<enumerator ID="0x0D" name="End Game"/>
|
||||||
<enumerator ID="0xE" name="HUD Fade In"/>
|
<enumerator ID="0x0E" name="HUD Fade In"/>
|
||||||
<enumerator ID="0xF" name="Cinematic Skip"/>
|
<enumerator ID="0x0F" name="Cinematic Skip"/>
|
||||||
<enumerator ID="0x10" name="Script Layer Controller"/>
|
<enumerator ID="0x10" name="Script Layer Controller"/>
|
||||||
<enumerator ID="0x11" name="Rain Simulator"/>
|
<enumerator ID="0x11" name="Rain Simulator"/>
|
||||||
<enumerator ID="0x12" name="Area Damage"/>
|
<enumerator ID="0x12" name="Area Damage"/>
|
||||||
|
|
|
@ -1,12 +1,12 @@
|
||||||
<?xml version="1.0" encoding="UTF-8"?>
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
<enum name="VulnerabilityType">
|
<enum name="VulnerabilityType">
|
||||||
<enumerators>
|
<enumerators>
|
||||||
<enumerator ID="0x0" name="Double Damage"/>
|
<enumerator ID="0x00" name="Double Damage"/>
|
||||||
<enumerator ID="0x1" name="Normal"/>
|
<enumerator ID="0x01" name="Normal"/>
|
||||||
<enumerator ID="0x2" name="Reflect"/>
|
<enumerator ID="0x02" name="Reflect"/>
|
||||||
<enumerator ID="0x3" name="Immune"/>
|
<enumerator ID="0x03" name="Immune"/>
|
||||||
<enumerator ID="0x4" name="Pass Through"/>
|
<enumerator ID="0x04" name="Pass Through"/>
|
||||||
<enumerator ID="0x5" name="Direct/Double"/>
|
<enumerator ID="0x05" name="Direct/Double"/>
|
||||||
<enumerator ID="0x6" name="Direct"/>
|
<enumerator ID="0x06" name="Direct"/>
|
||||||
</enumerators>
|
</enumerators>
|
||||||
</enum>
|
</enum>
|
||||||
|
|
|
@ -1,20 +1,20 @@
|
||||||
<?xml version="1.0" encoding="UTF-8"?>
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
<enum name="WeaponType">
|
<enum name="WeaponType">
|
||||||
<enumerators>
|
<enumerators>
|
||||||
<enumerator ID="0x0" name="Power"/>
|
<enumerator ID="0x00" name="Power"/>
|
||||||
<enumerator ID="0x1" name="Ice"/>
|
<enumerator ID="0x01" name="Ice"/>
|
||||||
<enumerator ID="0x2" name="Wave"/>
|
<enumerator ID="0x02" name="Wave"/>
|
||||||
<enumerator ID="0x3" name="Plasma"/>
|
<enumerator ID="0x03" name="Plasma"/>
|
||||||
<enumerator ID="0x4" name="Bomb"/>
|
<enumerator ID="0x04" name="Bomb"/>
|
||||||
<enumerator ID="0x5" name="Power Bomb"/>
|
<enumerator ID="0x05" name="Power Bomb"/>
|
||||||
<enumerator ID="0x6" name="Missile"/>
|
<enumerator ID="0x06" name="Missile"/>
|
||||||
<enumerator ID="0x7" name="Boost Ball"/>
|
<enumerator ID="0x07" name="Boost Ball"/>
|
||||||
<enumerator ID="0x8" name="Phazon"/>
|
<enumerator ID="0x08" name="Phazon"/>
|
||||||
<enumerator ID="0x9" name="Enemy Weapon 1"/>
|
<enumerator ID="0x09" name="Enemy Weapon 1"/>
|
||||||
<enumerator ID="0xA" name="Enemy Weapon 2 (Poison)"/>
|
<enumerator ID="0x0A" name="Enemy Weapon 2 (Poison)"/>
|
||||||
<enumerator ID="0xB" name="Enemy Weapon 3 (Lava)"/>
|
<enumerator ID="0x0B" name="Enemy Weapon 3 (Lava)"/>
|
||||||
<enumerator ID="0xC" name="Enemy Weapon 4"/>
|
<enumerator ID="0x0C" name="Enemy Weapon 4"/>
|
||||||
<enumerator ID="0xD" name="Unknown Weapon 1"/>
|
<enumerator ID="0x0D" name="Unknown Weapon 1"/>
|
||||||
<enumerator ID="0xE" name="Unknown Weapon 2"/>
|
<enumerator ID="0x0E" name="Unknown Weapon 2"/>
|
||||||
</enumerators>
|
</enumerators>
|
||||||
</enum>
|
</enum>
|
||||||
|
|
|
@ -8,6 +8,8 @@
|
||||||
<property ID="0x03" name="Active" type="bool"/>
|
<property ID="0x03" name="Active" type="bool"/>
|
||||||
<property ID="0x04" name="Unknown 1" type="float"/>
|
<property ID="0x04" name="Unknown 1" type="float"/>
|
||||||
</properties>
|
</properties>
|
||||||
|
<states/>
|
||||||
|
<messages/>
|
||||||
<editor>
|
<editor>
|
||||||
<properties>
|
<properties>
|
||||||
<property name="InstanceName" ID="0x00"/>
|
<property name="InstanceName" ID="0x00"/>
|
||||||
|
|
|
@ -10,6 +10,8 @@
|
||||||
<property ID="0x05" name="Unknown 5" type="long"/>
|
<property ID="0x05" name="Unknown 5" type="long"/>
|
||||||
<property ID="0x06" name="Unknown 6" type="float"/>
|
<property ID="0x06" name="Unknown 6" type="float"/>
|
||||||
</properties>
|
</properties>
|
||||||
|
<states/>
|
||||||
|
<messages/>
|
||||||
<editor>
|
<editor>
|
||||||
<properties>
|
<properties>
|
||||||
<property name="InstanceName" ID="0x00"/>
|
<property name="InstanceName" ID="0x00"/>
|
||||||
|
|
|
@ -27,6 +27,8 @@
|
||||||
<property ID="0x16" name="Unknown 13" type="bool"/>
|
<property ID="0x16" name="Unknown 13" type="bool"/>
|
||||||
<property ID="0x17" name="Unknown 14" type="bool"/>
|
<property ID="0x17" name="Unknown 14" type="bool"/>
|
||||||
</properties>
|
</properties>
|
||||||
|
<states/>
|
||||||
|
<messages/>
|
||||||
<editor>
|
<editor>
|
||||||
<properties>
|
<properties>
|
||||||
<property name="InstanceName" ID="0x00"/>
|
<property name="InstanceName" ID="0x00"/>
|
||||||
|
|
|
@ -18,6 +18,8 @@
|
||||||
<struct ID="0x0D" name="DamageInfo" template="Structs/DamageInfo.xml"/>
|
<struct ID="0x0D" name="DamageInfo" template="Structs/DamageInfo.xml"/>
|
||||||
<property ID="0x0E" name="Unknown 4" type="bool"/>
|
<property ID="0x0E" name="Unknown 4" type="bool"/>
|
||||||
</properties>
|
</properties>
|
||||||
|
<states/>
|
||||||
|
<messages/>
|
||||||
<editor>
|
<editor>
|
||||||
<properties>
|
<properties>
|
||||||
<property name="InstanceName" ID="0x00"/>
|
<property name="InstanceName" ID="0x00"/>
|
||||||
|
|
|
@ -10,6 +10,8 @@
|
||||||
<property ID="0x05" name="Unknown 5" type="long"/>
|
<property ID="0x05" name="Unknown 5" type="long"/>
|
||||||
<property ID="0x06" name="Unknown 6" type="float"/>
|
<property ID="0x06" name="Unknown 6" type="float"/>
|
||||||
</properties>
|
</properties>
|
||||||
|
<states/>
|
||||||
|
<messages/>
|
||||||
<editor>
|
<editor>
|
||||||
<properties>
|
<properties>
|
||||||
<property name="InstanceName" ID="0x00"/>
|
<property name="InstanceName" ID="0x00"/>
|
||||||
|
|
|
@ -9,6 +9,8 @@
|
||||||
<property ID="0x04" name="Unknown 2" type="bool"/>
|
<property ID="0x04" name="Unknown 2" type="bool"/>
|
||||||
<property ID="0x05" name="Active" type="bool"/>
|
<property ID="0x05" name="Active" type="bool"/>
|
||||||
</properties>
|
</properties>
|
||||||
|
<states/>
|
||||||
|
<messages/>
|
||||||
<editor>
|
<editor>
|
||||||
<properties>
|
<properties>
|
||||||
<property name="InstanceName" ID="0x00"/>
|
<property name="InstanceName" ID="0x00"/>
|
||||||
|
|
|
@ -19,6 +19,8 @@
|
||||||
<property ID="0x0E" name="Unknown 6" type="long"/>
|
<property ID="0x0E" name="Unknown 6" type="long"/>
|
||||||
<property ID="0x0F" name="Unknown 7" type="bool"/>
|
<property ID="0x0F" name="Unknown 7" type="bool"/>
|
||||||
</properties>
|
</properties>
|
||||||
|
<states/>
|
||||||
|
<messages/>
|
||||||
<editor>
|
<editor>
|
||||||
<properties>
|
<properties>
|
||||||
<property name="InstanceName" ID="0x00"/>
|
<property name="InstanceName" ID="0x00"/>
|
||||||
|
|
|
@ -12,6 +12,8 @@
|
||||||
<property ID="0x07" name="Skybox Model" type="file" extensions="CMDL"/>
|
<property ID="0x07" name="Skybox Model" type="file" extensions="CMDL"/>
|
||||||
<property ID="0x08" name="Unknown 7" type="long"/>
|
<property ID="0x08" name="Unknown 7" type="long"/>
|
||||||
</properties>
|
</properties>
|
||||||
|
<states/>
|
||||||
|
<messages/>
|
||||||
<editor>
|
<editor>
|
||||||
<properties/>
|
<properties/>
|
||||||
<assets>
|
<assets>
|
||||||
|
|
|
@ -17,6 +17,8 @@
|
||||||
<property ID="0x0C" name="Unknown 4" type="bool"/>
|
<property ID="0x0C" name="Unknown 4" type="bool"/>
|
||||||
<property ID="0x0D" name="Unknown 5" type="bool"/>
|
<property ID="0x0D" name="Unknown 5" type="bool"/>
|
||||||
</properties>
|
</properties>
|
||||||
|
<states/>
|
||||||
|
<messages/>
|
||||||
<editor>
|
<editor>
|
||||||
<properties>
|
<properties>
|
||||||
<property name="InstanceName" ID="0x00"/>
|
<property name="InstanceName" ID="0x00"/>
|
||||||
|
|
|
@ -24,6 +24,8 @@
|
||||||
<property ID="0x13" name="Unknown 9" type="long"/>
|
<property ID="0x13" name="Unknown 9" type="long"/>
|
||||||
<property ID="0x14" name="Unknown 10" type="float"/>
|
<property ID="0x14" name="Unknown 10" type="float"/>
|
||||||
</properties>
|
</properties>
|
||||||
|
<states/>
|
||||||
|
<messages/>
|
||||||
<editor>
|
<editor>
|
||||||
<properties>
|
<properties>
|
||||||
<property name="InstanceName" ID="0x00"/>
|
<property name="InstanceName" ID="0x00"/>
|
||||||
|
|
|
@ -36,6 +36,8 @@
|
||||||
<property ID="0x1F" name="Unknown 11" type="long"/>
|
<property ID="0x1F" name="Unknown 11" type="long"/>
|
||||||
<property ID="0x20" name="Particle 6" type="file" extensions="PART"/>
|
<property ID="0x20" name="Particle 6" type="file" extensions="PART"/>
|
||||||
</properties>
|
</properties>
|
||||||
|
<states/>
|
||||||
|
<messages/>
|
||||||
<editor>
|
<editor>
|
||||||
<properties>
|
<properties>
|
||||||
<property name="InstanceName" ID="0x00"/>
|
<property name="InstanceName" ID="0x00"/>
|
||||||
|
|
|
@ -12,6 +12,8 @@
|
||||||
<property ID="0x07" name="Unknown 5" type="vector3f"/>
|
<property ID="0x07" name="Unknown 5" type="vector3f"/>
|
||||||
<property ID="0x08" name="Unknown 6" type="bool"/>
|
<property ID="0x08" name="Unknown 6" type="bool"/>
|
||||||
</properties>
|
</properties>
|
||||||
|
<states/>
|
||||||
|
<messages/>
|
||||||
<editor>
|
<editor>
|
||||||
<properties>
|
<properties>
|
||||||
<property name="InstanceName" ID="0x00"/>
|
<property name="InstanceName" ID="0x00"/>
|
||||||
|
|
|
@ -19,6 +19,8 @@
|
||||||
<property ID="0x0E" name="Unknown 5" type="float"/>
|
<property ID="0x0E" name="Unknown 5" type="float"/>
|
||||||
<property ID="0x0F" name="Unknown 6" type="float"/>
|
<property ID="0x0F" name="Unknown 6" type="float"/>
|
||||||
</properties>
|
</properties>
|
||||||
|
<states/>
|
||||||
|
<messages/>
|
||||||
<editor>
|
<editor>
|
||||||
<properties>
|
<properties>
|
||||||
<property name="InstanceName" ID="0x00"/>
|
<property name="InstanceName" ID="0x00"/>
|
||||||
|
|
|
@ -21,6 +21,8 @@
|
||||||
<property ID="0x10" name="Particle 5" type="file" extensions="PART"/>
|
<property ID="0x10" name="Particle 5" type="file" extensions="PART"/>
|
||||||
<property ID="0x11" name="Unknown 2" type="long"/>
|
<property ID="0x11" name="Unknown 2" type="long"/>
|
||||||
</properties>
|
</properties>
|
||||||
|
<states/>
|
||||||
|
<messages/>
|
||||||
<editor>
|
<editor>
|
||||||
<properties>
|
<properties>
|
||||||
<property name="InstanceName" ID="0x00"/>
|
<property name="InstanceName" ID="0x00"/>
|
||||||
|
|
|
@ -16,6 +16,8 @@
|
||||||
<property ID="0x0B" name="Always FFFFFFFF" type="long"/>
|
<property ID="0x0B" name="Always FFFFFFFF" type="long"/>
|
||||||
<property ID="0x0C" name="Particle 4" type="file" extensions="PART"/>
|
<property ID="0x0C" name="Particle 4" type="file" extensions="PART"/>
|
||||||
</properties>
|
</properties>
|
||||||
|
<states/>
|
||||||
|
<messages/>
|
||||||
<editor>
|
<editor>
|
||||||
<properties>
|
<properties>
|
||||||
<property name="InstanceName" ID="0x00"/>
|
<property name="InstanceName" ID="0x00"/>
|
||||||
|
|
|
@ -18,6 +18,8 @@
|
||||||
<property ID="0x0D" name="Unknown 11" type="bool"/>
|
<property ID="0x0D" name="Unknown 11" type="bool"/>
|
||||||
<property ID="0x0E" name="Unknown 12" type="bool"/>
|
<property ID="0x0E" name="Unknown 12" type="bool"/>
|
||||||
</properties>
|
</properties>
|
||||||
|
<states/>
|
||||||
|
<messages/>
|
||||||
<editor>
|
<editor>
|
||||||
<properties>
|
<properties>
|
||||||
<property name="InstanceName" ID="0x00"/>
|
<property name="InstanceName" ID="0x00"/>
|
||||||
|
|
|
@ -10,6 +10,8 @@
|
||||||
<property ID="0x05" name="Unknown 5" type="float"/>
|
<property ID="0x05" name="Unknown 5" type="float"/>
|
||||||
<property ID="0x06" name="Unknown 6" type="float"/>
|
<property ID="0x06" name="Unknown 6" type="float"/>
|
||||||
</properties>
|
</properties>
|
||||||
|
<states/>
|
||||||
|
<messages/>
|
||||||
<editor>
|
<editor>
|
||||||
<properties>
|
<properties>
|
||||||
<property name="InstanceName" ID="0x00"/>
|
<property name="InstanceName" ID="0x00"/>
|
||||||
|
|
|
@ -13,6 +13,8 @@
|
||||||
<property ID="0x08" name="Unknown 8" type="float"/>
|
<property ID="0x08" name="Unknown 8" type="float"/>
|
||||||
<property ID="0x09" name="Texture" type="file" extensions="TXTR"/>
|
<property ID="0x09" name="Texture" type="file" extensions="TXTR"/>
|
||||||
</properties>
|
</properties>
|
||||||
|
<states/>
|
||||||
|
<messages/>
|
||||||
<editor>
|
<editor>
|
||||||
<properties>
|
<properties>
|
||||||
<property name="InstanceName" ID="0x00"/>
|
<property name="InstanceName" ID="0x00"/>
|
||||||
|
|
|
@ -101,6 +101,8 @@
|
||||||
<property ID="0x15" name="Unknown 50" type="float"/>
|
<property ID="0x15" name="Unknown 50" type="float"/>
|
||||||
<property ID="0x16" name="Unknown 51" type="float"/>
|
<property ID="0x16" name="Unknown 51" type="float"/>
|
||||||
</properties>
|
</properties>
|
||||||
|
<states/>
|
||||||
|
<messages/>
|
||||||
<editor>
|
<editor>
|
||||||
<properties>
|
<properties>
|
||||||
<property name="InstanceName" ID="0x00"/>
|
<property name="InstanceName" ID="0x00"/>
|
||||||
|
|
|
@ -10,6 +10,8 @@
|
||||||
<property ID="0x05" name="Unknown 2" type="bool"/>
|
<property ID="0x05" name="Unknown 2" type="bool"/>
|
||||||
<property ID="0x06" name="Unknown 3" type="bool"/>
|
<property ID="0x06" name="Unknown 3" type="bool"/>
|
||||||
</properties>
|
</properties>
|
||||||
|
<states/>
|
||||||
|
<messages/>
|
||||||
<editor>
|
<editor>
|
||||||
<properties>
|
<properties>
|
||||||
<property name="InstanceName" ID="0x00"/>
|
<property name="InstanceName" ID="0x00"/>
|
||||||
|
|
|
@ -11,6 +11,8 @@
|
||||||
<property ID="0x06" name="Unknown 3" type="float"/>
|
<property ID="0x06" name="Unknown 3" type="float"/>
|
||||||
<property ID="0x07" name="Unknown 4" type="float"/>
|
<property ID="0x07" name="Unknown 4" type="float"/>
|
||||||
</properties>
|
</properties>
|
||||||
|
<states/>
|
||||||
|
<messages/>
|
||||||
<editor>
|
<editor>
|
||||||
<properties>
|
<properties>
|
||||||
<property name="InstanceName" ID="0x00"/>
|
<property name="InstanceName" ID="0x00"/>
|
||||||
|
|
|
@ -12,6 +12,8 @@
|
||||||
<property ID="0x07" name="Unknown 7" type="float"/>
|
<property ID="0x07" name="Unknown 7" type="float"/>
|
||||||
<property ID="0x08" name="Unknown 8" type="bool"/>
|
<property ID="0x08" name="Unknown 8" type="bool"/>
|
||||||
</properties>
|
</properties>
|
||||||
|
<states/>
|
||||||
|
<messages/>
|
||||||
<editor>
|
<editor>
|
||||||
<properties>
|
<properties>
|
||||||
<property name="InstanceName" ID="0x00"/>
|
<property name="InstanceName" ID="0x00"/>
|
||||||
|
|
|
@ -9,6 +9,8 @@
|
||||||
<property ID="0x04" name="Unknown 2" type="float"/>
|
<property ID="0x04" name="Unknown 2" type="float"/>
|
||||||
<property ID="0x05" name="Unknown 3" type="long"/>
|
<property ID="0x05" name="Unknown 3" type="long"/>
|
||||||
</properties>
|
</properties>
|
||||||
|
<states/>
|
||||||
|
<messages/>
|
||||||
<editor>
|
<editor>
|
||||||
<properties>
|
<properties>
|
||||||
<property name="InstanceName" ID="0x00"/>
|
<property name="InstanceName" ID="0x00"/>
|
||||||
|
|
|
@ -34,6 +34,8 @@
|
||||||
<property ID="0x1D" name="Unknown 12" type="long"/>
|
<property ID="0x1D" name="Unknown 12" type="long"/>
|
||||||
<property ID="0x1E" name="Unknown 13" type="long"/>
|
<property ID="0x1E" name="Unknown 13" type="long"/>
|
||||||
</properties>
|
</properties>
|
||||||
|
<states/>
|
||||||
|
<messages/>
|
||||||
<editor>
|
<editor>
|
||||||
<properties>
|
<properties>
|
||||||
<property name="InstanceName" ID="0x00"/>
|
<property name="InstanceName" ID="0x00"/>
|
||||||
|
|
|
@ -15,6 +15,8 @@
|
||||||
<property ID="0x0A" name="Unknown 10" type="bool"/>
|
<property ID="0x0A" name="Unknown 10" type="bool"/>
|
||||||
<property ID="0x0B" name="Unknown 11" type="bool"/>
|
<property ID="0x0B" name="Unknown 11" type="bool"/>
|
||||||
</properties>
|
</properties>
|
||||||
|
<states/>
|
||||||
|
<messages/>
|
||||||
<editor>
|
<editor>
|
||||||
<properties>
|
<properties>
|
||||||
<property name="InstanceName" ID="0x00"/>
|
<property name="InstanceName" ID="0x00"/>
|
||||||
|
|
|
@ -7,6 +7,8 @@
|
||||||
<property ID="0x02" name="Unknown 2" type="long"/>
|
<property ID="0x02" name="Unknown 2" type="long"/>
|
||||||
<property ID="0x03" name="Unknown 3" type="bool"/>
|
<property ID="0x03" name="Unknown 3" type="bool"/>
|
||||||
</properties>
|
</properties>
|
||||||
|
<states/>
|
||||||
|
<messages/>
|
||||||
<editor>
|
<editor>
|
||||||
<properties>
|
<properties>
|
||||||
<property name="InstanceName" ID="0x00"/>
|
<property name="InstanceName" ID="0x00"/>
|
||||||
|
|
|
@ -8,6 +8,8 @@
|
||||||
<property ID="0x03" name="Unknown 1" type="bool"/>
|
<property ID="0x03" name="Unknown 1" type="bool"/>
|
||||||
<property ID="0x04" name="Unknown 2" type="bool"/>
|
<property ID="0x04" name="Unknown 2" type="bool"/>
|
||||||
</properties>
|
</properties>
|
||||||
|
<states/>
|
||||||
|
<messages/>
|
||||||
<editor>
|
<editor>
|
||||||
<properties>
|
<properties>
|
||||||
<property name="InstanceName" ID="0x00"/>
|
<property name="InstanceName" ID="0x00"/>
|
||||||
|
|
|
@ -12,6 +12,8 @@
|
||||||
<property ID="0x07" name="Unknown 5" type="float"/>
|
<property ID="0x07" name="Unknown 5" type="float"/>
|
||||||
<property ID="0x08" name="Unknown 6" type="float"/>
|
<property ID="0x08" name="Unknown 6" type="float"/>
|
||||||
</properties>
|
</properties>
|
||||||
|
<states/>
|
||||||
|
<messages/>
|
||||||
<editor>
|
<editor>
|
||||||
<properties>
|
<properties>
|
||||||
<property name="InstanceName" ID="0x00"/>
|
<property name="InstanceName" ID="0x00"/>
|
||||||
|
|
|
@ -9,11 +9,11 @@
|
||||||
<struct ID="0x04" name="DamageVulnerability" template="Structs/DamageVulnerability.xml"/>
|
<struct ID="0x04" name="DamageVulnerability" template="Structs/DamageVulnerability.xml"/>
|
||||||
<enum ID="0x05" name="Render Side">
|
<enum ID="0x05" name="Render Side">
|
||||||
<enumerators>
|
<enumerators>
|
||||||
<enumerator ID="0x0" name="Don't Render"/>
|
<enumerator ID="0x00" name="Don't Render"/>
|
||||||
<enumerator ID="0x1" name="North"/>
|
<enumerator ID="0x01" name="North"/>
|
||||||
<enumerator ID="0x2" name="South"/>
|
<enumerator ID="0x02" name="South"/>
|
||||||
<enumerator ID="0x4" name="West"/>
|
<enumerator ID="0x04" name="West"/>
|
||||||
<enumerator ID="0x8" name="East"/>
|
<enumerator ID="0x08" name="East"/>
|
||||||
<enumerator ID="0x10" name="Top"/>
|
<enumerator ID="0x10" name="Top"/>
|
||||||
<enumerator ID="0x20" name="Bottom"/>
|
<enumerator ID="0x20" name="Bottom"/>
|
||||||
</enumerators>
|
</enumerators>
|
||||||
|
@ -25,6 +25,8 @@
|
||||||
<property ID="0x0A" name="Active" type="bool"/>
|
<property ID="0x0A" name="Active" type="bool"/>
|
||||||
<struct ID="0x0B" name="VisorParameters" template="Structs/VisorParameters.xml"/>
|
<struct ID="0x0B" name="VisorParameters" template="Structs/VisorParameters.xml"/>
|
||||||
</properties>
|
</properties>
|
||||||
|
<states/>
|
||||||
|
<messages/>
|
||||||
<editor>
|
<editor>
|
||||||
<properties>
|
<properties>
|
||||||
<property name="InstanceName" ID="0x00"/>
|
<property name="InstanceName" ID="0x00"/>
|
||||||
|
|
|
@ -21,6 +21,8 @@
|
||||||
<property ID="0x10" name="Unknown 10" type="bool"/>
|
<property ID="0x10" name="Unknown 10" type="bool"/>
|
||||||
<property ID="0x11" name="Unknown 11" type="bool"/>
|
<property ID="0x11" name="Unknown 11" type="bool"/>
|
||||||
</properties>
|
</properties>
|
||||||
|
<states/>
|
||||||
|
<messages/>
|
||||||
<editor>
|
<editor>
|
||||||
<properties>
|
<properties>
|
||||||
<property name="InstanceName" ID="0x00"/>
|
<property name="InstanceName" ID="0x00"/>
|
||||||
|
|
|
@ -42,6 +42,8 @@
|
||||||
<property ID="0x25" name="Unknown 29" type="bool"/>
|
<property ID="0x25" name="Unknown 29" type="bool"/>
|
||||||
<property ID="0x26" name="Unknown 30" type="bool"/>
|
<property ID="0x26" name="Unknown 30" type="bool"/>
|
||||||
</properties>
|
</properties>
|
||||||
|
<states/>
|
||||||
|
<messages/>
|
||||||
<editor>
|
<editor>
|
||||||
<properties>
|
<properties>
|
||||||
<property name="InstanceName" ID="0x00"/>
|
<property name="InstanceName" ID="0x00"/>
|
||||||
|
|
|
@ -7,6 +7,8 @@
|
||||||
<property ID="0x02" name="Rotation" type="vector3f"/>
|
<property ID="0x02" name="Rotation" type="vector3f"/>
|
||||||
<property ID="0x03" name="Unknown 1" type="long"/>
|
<property ID="0x03" name="Unknown 1" type="long"/>
|
||||||
</properties>
|
</properties>
|
||||||
|
<states/>
|
||||||
|
<messages/>
|
||||||
<editor>
|
<editor>
|
||||||
<properties>
|
<properties>
|
||||||
<property name="InstanceName" ID="0x00"/>
|
<property name="InstanceName" ID="0x00"/>
|
||||||
|
|
|
@ -21,6 +21,8 @@
|
||||||
<property ID="0x06" name="Unknown 8" type="bool"/>
|
<property ID="0x06" name="Unknown 8" type="bool"/>
|
||||||
<property ID="0x07" name="Unknown 9" type="bool"/>
|
<property ID="0x07" name="Unknown 9" type="bool"/>
|
||||||
</properties>
|
</properties>
|
||||||
|
<states/>
|
||||||
|
<messages/>
|
||||||
<editor>
|
<editor>
|
||||||
<properties>
|
<properties>
|
||||||
<property name="InstanceName" ID="0x00"/>
|
<property name="InstanceName" ID="0x00"/>
|
||||||
|
|
|
@ -10,6 +10,8 @@
|
||||||
<property ID="0x05" name="Room Number" type="long"/>
|
<property ID="0x05" name="Room Number" type="long"/>
|
||||||
<property ID="0x06" name="Load Automatically?" type="bool"/>
|
<property ID="0x06" name="Load Automatically?" type="bool"/>
|
||||||
</properties>
|
</properties>
|
||||||
|
<states/>
|
||||||
|
<messages/>
|
||||||
<editor>
|
<editor>
|
||||||
<properties>
|
<properties>
|
||||||
<property name="InstanceName" ID="0x00"/>
|
<property name="InstanceName" ID="0x00"/>
|
||||||
|
|
|
@ -6,6 +6,8 @@
|
||||||
<property ID="0x01" name="Unknown 1" type="long"/>
|
<property ID="0x01" name="Unknown 1" type="long"/>
|
||||||
<property ID="0x02" name="Unknown 2" type="bool"/>
|
<property ID="0x02" name="Unknown 2" type="bool"/>
|
||||||
</properties>
|
</properties>
|
||||||
|
<states/>
|
||||||
|
<messages/>
|
||||||
<editor>
|
<editor>
|
||||||
<properties>
|
<properties>
|
||||||
<property name="InstanceName" ID="0x00"/>
|
<property name="InstanceName" ID="0x00"/>
|
||||||
|
|
|
@ -17,6 +17,8 @@
|
||||||
<property ID="0x0C" name="Unknown 7" type="float"/>
|
<property ID="0x0C" name="Unknown 7" type="float"/>
|
||||||
<property ID="0x0D" name="Unknown 8" type="bool"/>
|
<property ID="0x0D" name="Unknown 8" type="bool"/>
|
||||||
</properties>
|
</properties>
|
||||||
|
<states/>
|
||||||
|
<messages/>
|
||||||
<editor>
|
<editor>
|
||||||
<properties>
|
<properties>
|
||||||
<property name="InstanceName" ID="0x00"/>
|
<property name="InstanceName" ID="0x00"/>
|
||||||
|
|
|
@ -48,6 +48,8 @@
|
||||||
<property ID="0x2B" name="Sound?" type="long"/>
|
<property ID="0x2B" name="Sound?" type="long"/>
|
||||||
<property ID="0x2C" name="Unknown 30" type="bool"/>
|
<property ID="0x2C" name="Unknown 30" type="bool"/>
|
||||||
</properties>
|
</properties>
|
||||||
|
<states/>
|
||||||
|
<messages/>
|
||||||
<editor>
|
<editor>
|
||||||
<properties>
|
<properties>
|
||||||
<property name="InstanceName" ID="0x00"/>
|
<property name="InstanceName" ID="0x00"/>
|
||||||
|
|
|
@ -27,6 +27,8 @@
|
||||||
<property ID="0x16" name="Unknown 17" type="bool"/>
|
<property ID="0x16" name="Unknown 17" type="bool"/>
|
||||||
<struct ID="0x17" name="LightParameters" template="Structs/LightParameters.xml"/>
|
<struct ID="0x17" name="LightParameters" template="Structs/LightParameters.xml"/>
|
||||||
</properties>
|
</properties>
|
||||||
|
<states/>
|
||||||
|
<messages/>
|
||||||
<editor>
|
<editor>
|
||||||
<properties>
|
<properties>
|
||||||
<property name="InstanceName" ID="0x00"/>
|
<property name="InstanceName" ID="0x00"/>
|
||||||
|
|
|
@ -15,6 +15,8 @@
|
||||||
<property ID="0x0A" name="Unknown 8" type="float"/>
|
<property ID="0x0A" name="Unknown 8" type="float"/>
|
||||||
<property ID="0x0B" name="Particle" type="file" extensions="PART"/>
|
<property ID="0x0B" name="Particle" type="file" extensions="PART"/>
|
||||||
</properties>
|
</properties>
|
||||||
|
<states/>
|
||||||
|
<messages/>
|
||||||
<editor>
|
<editor>
|
||||||
<properties>
|
<properties>
|
||||||
<property name="InstanceName" ID="0x00"/>
|
<property name="InstanceName" ID="0x00"/>
|
||||||
|
|
|
@ -45,6 +45,8 @@
|
||||||
<property ID="0x28" name="Unknown 17" type="bool"/>
|
<property ID="0x28" name="Unknown 17" type="bool"/>
|
||||||
<property ID="0x29" name="Unknown 18" type="bool"/>
|
<property ID="0x29" name="Unknown 18" type="bool"/>
|
||||||
</properties>
|
</properties>
|
||||||
|
<states/>
|
||||||
|
<messages/>
|
||||||
<editor>
|
<editor>
|
||||||
<properties>
|
<properties>
|
||||||
<property name="InstanceName" ID="0x00"/>
|
<property name="InstanceName" ID="0x00"/>
|
||||||
|
|
|
@ -23,6 +23,8 @@
|
||||||
<struct ID="0x12" name="DamageInfo 2" template="Structs/DamageInfo.xml"/>
|
<struct ID="0x12" name="DamageInfo 2" template="Structs/DamageInfo.xml"/>
|
||||||
<property ID="0x13" name="Unknown 6" type="float"/>
|
<property ID="0x13" name="Unknown 6" type="float"/>
|
||||||
</properties>
|
</properties>
|
||||||
|
<states/>
|
||||||
|
<messages/>
|
||||||
<editor>
|
<editor>
|
||||||
<properties>
|
<properties>
|
||||||
<property name="InstanceName" ID="0x00"/>
|
<property name="InstanceName" ID="0x00"/>
|
||||||
|
|
|
@ -7,6 +7,8 @@
|
||||||
<property ID="0x02" name="Unknown 2" type="float"/>
|
<property ID="0x02" name="Unknown 2" type="float"/>
|
||||||
<property ID="0x03" name="Unknown 3" type="long"/>
|
<property ID="0x03" name="Unknown 3" type="long"/>
|
||||||
</properties>
|
</properties>
|
||||||
|
<states/>
|
||||||
|
<messages/>
|
||||||
<editor>
|
<editor>
|
||||||
<properties>
|
<properties>
|
||||||
<property name="InstanceName" ID="0x00"/>
|
<property name="InstanceName" ID="0x00"/>
|
||||||
|
|
|
@ -24,6 +24,8 @@
|
||||||
<property ID="0x13" name="Unknown 5" type="long"/>
|
<property ID="0x13" name="Unknown 5" type="long"/>
|
||||||
<property ID="0x14" name="Unknown 6" type="bool"/>
|
<property ID="0x14" name="Unknown 6" type="bool"/>
|
||||||
</properties>
|
</properties>
|
||||||
|
<states/>
|
||||||
|
<messages/>
|
||||||
<editor>
|
<editor>
|
||||||
<properties>
|
<properties>
|
||||||
<property name="InstanceName" ID="0x00"/>
|
<property name="InstanceName" ID="0x00"/>
|
||||||
|
|
|
@ -12,6 +12,8 @@
|
||||||
<property ID="0x07" name="Unknown 2" type="bool"/>
|
<property ID="0x07" name="Unknown 2" type="bool"/>
|
||||||
<property ID="0x08" name="Unknown 3" type="float"/>
|
<property ID="0x08" name="Unknown 3" type="float"/>
|
||||||
</properties>
|
</properties>
|
||||||
|
<states/>
|
||||||
|
<messages/>
|
||||||
<editor>
|
<editor>
|
||||||
<properties>
|
<properties>
|
||||||
<property name="InstanceName" ID="0x00"/>
|
<property name="InstanceName" ID="0x00"/>
|
||||||
|
|
|
@ -39,6 +39,8 @@
|
||||||
<property ID="0x22" name="Unknown 29" type="bool"/>
|
<property ID="0x22" name="Unknown 29" type="bool"/>
|
||||||
<property ID="0x23" name="Unknown 30" type="bool"/>
|
<property ID="0x23" name="Unknown 30" type="bool"/>
|
||||||
</properties>
|
</properties>
|
||||||
|
<states/>
|
||||||
|
<messages/>
|
||||||
<editor>
|
<editor>
|
||||||
<properties>
|
<properties>
|
||||||
<property name="InstanceName" ID="0x00"/>
|
<property name="InstanceName" ID="0x00"/>
|
||||||
|
|
|
@ -10,6 +10,8 @@
|
||||||
<property ID="0x05" name="Unknown 4" type="float"/>
|
<property ID="0x05" name="Unknown 4" type="float"/>
|
||||||
<property ID="0x06" name="Unknown 5" type="float"/>
|
<property ID="0x06" name="Unknown 5" type="float"/>
|
||||||
</properties>
|
</properties>
|
||||||
|
<states/>
|
||||||
|
<messages/>
|
||||||
<editor>
|
<editor>
|
||||||
<properties>
|
<properties>
|
||||||
<property name="InstanceName" ID="0x00"/>
|
<property name="InstanceName" ID="0x00"/>
|
||||||
|
|
|
@ -26,6 +26,8 @@
|
||||||
<property ID="0x15" name="AnimationParameters" type="character"/>
|
<property ID="0x15" name="AnimationParameters" type="character"/>
|
||||||
<property ID="0x16" name="DGRP" type="file" extensions="DGRP"/>
|
<property ID="0x16" name="DGRP" type="file" extensions="DGRP"/>
|
||||||
</properties>
|
</properties>
|
||||||
|
<states/>
|
||||||
|
<messages/>
|
||||||
<editor>
|
<editor>
|
||||||
<properties>
|
<properties>
|
||||||
<property name="InstanceName" ID="0x00"/>
|
<property name="InstanceName" ID="0x00"/>
|
||||||
|
|
|
@ -9,6 +9,8 @@
|
||||||
<struct ID="0x04" name="PatternedInfo" template="Structs/PatternedInfo.xml"/>
|
<struct ID="0x04" name="PatternedInfo" template="Structs/PatternedInfo.xml"/>
|
||||||
<struct ID="0x05" name="ActorParameters" template="Structs/ActorParameters.xml"/>
|
<struct ID="0x05" name="ActorParameters" template="Structs/ActorParameters.xml"/>
|
||||||
</properties>
|
</properties>
|
||||||
|
<states/>
|
||||||
|
<messages/>
|
||||||
<editor>
|
<editor>
|
||||||
<properties>
|
<properties>
|
||||||
<property name="InstanceName" ID="0x00"/>
|
<property name="InstanceName" ID="0x00"/>
|
||||||
|
|
|
@ -13,6 +13,8 @@
|
||||||
<property ID="0x08" name="Unknown 3" type="bool"/>
|
<property ID="0x08" name="Unknown 3" type="bool"/>
|
||||||
<property ID="0x09" name="Unknown 4" type="bool"/>
|
<property ID="0x09" name="Unknown 4" type="bool"/>
|
||||||
</properties>
|
</properties>
|
||||||
|
<states/>
|
||||||
|
<messages/>
|
||||||
<editor>
|
<editor>
|
||||||
<properties>
|
<properties>
|
||||||
<property name="InstanceName" ID="0x00"/>
|
<property name="InstanceName" ID="0x00"/>
|
||||||
|
|
|
@ -39,6 +39,8 @@
|
||||||
<property ID="0x22" name="Unknown 19" type="float"/>
|
<property ID="0x22" name="Unknown 19" type="float"/>
|
||||||
<property ID="0x23" name="Unknown 20" type="float"/>
|
<property ID="0x23" name="Unknown 20" type="float"/>
|
||||||
</properties>
|
</properties>
|
||||||
|
<states/>
|
||||||
|
<messages/>
|
||||||
<editor>
|
<editor>
|
||||||
<properties>
|
<properties>
|
||||||
<property name="InstanceName" ID="0x00"/>
|
<property name="InstanceName" ID="0x00"/>
|
||||||
|
|
|
@ -10,6 +10,8 @@
|
||||||
<property ID="0x05" name="Unknown 3" type="color"/>
|
<property ID="0x05" name="Unknown 3" type="color"/>
|
||||||
<property ID="0x06" name="Unknown 4" type="bool"/>
|
<property ID="0x06" name="Unknown 4" type="bool"/>
|
||||||
</properties>
|
</properties>
|
||||||
|
<states/>
|
||||||
|
<messages/>
|
||||||
<editor>
|
<editor>
|
||||||
<properties>
|
<properties>
|
||||||
<property name="InstanceName" ID="0x00"/>
|
<property name="InstanceName" ID="0x00"/>
|
||||||
|
|
|
@ -19,6 +19,8 @@
|
||||||
<property ID="0x0E" name="Unknown 9" type="long"/>
|
<property ID="0x0E" name="Unknown 9" type="long"/>
|
||||||
<property ID="0x0F" name="Unknown 10" type="long"/>
|
<property ID="0x0F" name="Unknown 10" type="long"/>
|
||||||
</properties>
|
</properties>
|
||||||
|
<states/>
|
||||||
|
<messages/>
|
||||||
<editor>
|
<editor>
|
||||||
<properties>
|
<properties>
|
||||||
<property name="InstanceName" ID="0x00"/>
|
<property name="InstanceName" ID="0x00"/>
|
||||||
|
|
|
@ -11,6 +11,8 @@
|
||||||
<property ID="0x06" name="Unknown 6" type="float"/>
|
<property ID="0x06" name="Unknown 6" type="float"/>
|
||||||
<property ID="0x07" name="Unknown 7" type="float"/>
|
<property ID="0x07" name="Unknown 7" type="float"/>
|
||||||
</properties>
|
</properties>
|
||||||
|
<states/>
|
||||||
|
<messages/>
|
||||||
<editor>
|
<editor>
|
||||||
<properties>
|
<properties>
|
||||||
<property name="InstanceName" ID="0x00"/>
|
<property name="InstanceName" ID="0x00"/>
|
||||||
|
|
|
@ -8,6 +8,8 @@
|
||||||
<property ID="0x03" name="Active" type="bool"/>
|
<property ID="0x03" name="Active" type="bool"/>
|
||||||
<struct ID="0x04" name="GrappleParameters" template="Structs/GrappleParameters.xml"/>
|
<struct ID="0x04" name="GrappleParameters" template="Structs/GrappleParameters.xml"/>
|
||||||
</properties>
|
</properties>
|
||||||
|
<states/>
|
||||||
|
<messages/>
|
||||||
<editor>
|
<editor>
|
||||||
<properties>
|
<properties>
|
||||||
<property name="InstanceName" ID="0x00"/>
|
<property name="InstanceName" ID="0x00"/>
|
||||||
|
|
|
@ -51,6 +51,8 @@
|
||||||
<property ID="0x2E" name="Unknown 29" type="float"/>
|
<property ID="0x2E" name="Unknown 29" type="float"/>
|
||||||
<property ID="0x2F" name="Unknown 30" type="bool"/>
|
<property ID="0x2F" name="Unknown 30" type="bool"/>
|
||||||
</properties>
|
</properties>
|
||||||
|
<states/>
|
||||||
|
<messages/>
|
||||||
<editor>
|
<editor>
|
||||||
<properties>
|
<properties>
|
||||||
<property name="InstanceName" ID="0x00"/>
|
<property name="InstanceName" ID="0x00"/>
|
||||||
|
|
|
@ -7,13 +7,15 @@
|
||||||
<property ID="0x02" name="Unknown 1" type="bool"/>
|
<property ID="0x02" name="Unknown 1" type="bool"/>
|
||||||
<enum ID="0x03" name="Memo Type">
|
<enum ID="0x03" name="Memo Type">
|
||||||
<enumerators>
|
<enumerators>
|
||||||
<enumerator ID="0x00000000" name="Status Message"/>
|
<enumerator ID="0x00" name="Status Message"/>
|
||||||
<enumerator ID="0x00000001" name="Message Box"/>
|
<enumerator ID="0x01" name="Message Box"/>
|
||||||
</enumerators>
|
</enumerators>
|
||||||
</enum>
|
</enum>
|
||||||
<property ID="0x04" name="STRG" type="file" extensions="STRG"/>
|
<property ID="0x04" name="STRG" type="file" extensions="STRG"/>
|
||||||
<property ID="0x05" name="Active" type="bool"/>
|
<property ID="0x05" name="Active" type="bool"/>
|
||||||
</properties>
|
</properties>
|
||||||
|
<states/>
|
||||||
|
<messages/>
|
||||||
<editor>
|
<editor>
|
||||||
<properties>
|
<properties>
|
||||||
<property name="InstanceName" ID="0x00"/>
|
<property name="InstanceName" ID="0x00"/>
|
||||||
|
|
|
@ -40,6 +40,8 @@
|
||||||
<property ID="0x23" name="Unknown 12" type="bool"/>
|
<property ID="0x23" name="Unknown 12" type="bool"/>
|
||||||
<property ID="0x24" name="Unknown 13" type="bool"/>
|
<property ID="0x24" name="Unknown 13" type="bool"/>
|
||||||
</properties>
|
</properties>
|
||||||
|
<states/>
|
||||||
|
<messages/>
|
||||||
<editor>
|
<editor>
|
||||||
<properties>
|
<properties>
|
||||||
<property name="InstanceName" ID="0x00"/>
|
<property name="InstanceName" ID="0x00"/>
|
||||||
|
|
|
@ -19,6 +19,8 @@
|
||||||
<struct ID="0x0E" name="DamageVulnerability" template="Structs/DamageVulnerability.xml"/>
|
<struct ID="0x0E" name="DamageVulnerability" template="Structs/DamageVulnerability.xml"/>
|
||||||
<property ID="0x0F" name="Unknown 9" type="float"/>
|
<property ID="0x0F" name="Unknown 9" type="float"/>
|
||||||
</properties>
|
</properties>
|
||||||
|
<states/>
|
||||||
|
<messages/>
|
||||||
<editor>
|
<editor>
|
||||||
<properties>
|
<properties>
|
||||||
<property name="InstanceName" ID="0x00"/>
|
<property name="InstanceName" ID="0x00"/>
|
||||||
|
|
|
@ -23,6 +23,8 @@
|
||||||
<property ID="0x12" name="Unknown 12" type="float"/>
|
<property ID="0x12" name="Unknown 12" type="float"/>
|
||||||
<property ID="0x13" name="Unknown 13" type="bool"/>
|
<property ID="0x13" name="Unknown 13" type="bool"/>
|
||||||
</properties>
|
</properties>
|
||||||
|
<states/>
|
||||||
|
<messages/>
|
||||||
<editor>
|
<editor>
|
||||||
<properties>
|
<properties>
|
||||||
<property name="InstanceName" ID="0x00"/>
|
<property name="InstanceName" ID="0x00"/>
|
||||||
|
|
|
@ -34,6 +34,8 @@
|
||||||
<property ID="0x14" name="Unknown 13" type="float"/>
|
<property ID="0x14" name="Unknown 13" type="float"/>
|
||||||
<property ID="0x15" name="Unknown 14" type="float"/>
|
<property ID="0x15" name="Unknown 14" type="float"/>
|
||||||
</properties>
|
</properties>
|
||||||
|
<states/>
|
||||||
|
<messages/>
|
||||||
<editor>
|
<editor>
|
||||||
<properties>
|
<properties>
|
||||||
<property name="InstanceName" ID="0x00"/>
|
<property name="InstanceName" ID="0x00"/>
|
||||||
|
|
|
@ -13,6 +13,8 @@
|
||||||
<property ID="0x08" name="Unknown 6" type="vector3f"/>
|
<property ID="0x08" name="Unknown 6" type="vector3f"/>
|
||||||
<property ID="0x09" name="Unknown 7" type="vector3f"/>
|
<property ID="0x09" name="Unknown 7" type="vector3f"/>
|
||||||
</properties>
|
</properties>
|
||||||
|
<states/>
|
||||||
|
<messages/>
|
||||||
<editor>
|
<editor>
|
||||||
<properties>
|
<properties>
|
||||||
<property name="InstanceName" ID="0x00"/>
|
<property name="InstanceName" ID="0x00"/>
|
||||||
|
|
|
@ -6,6 +6,8 @@
|
||||||
<property ID="0x01" name="Unknown 1" type="bool"/>
|
<property ID="0x01" name="Unknown 1" type="bool"/>
|
||||||
<property ID="0x02" name="Active" type="bool"/>
|
<property ID="0x02" name="Active" type="bool"/>
|
||||||
</properties>
|
</properties>
|
||||||
|
<states/>
|
||||||
|
<messages/>
|
||||||
<editor>
|
<editor>
|
||||||
<properties>
|
<properties>
|
||||||
<property name="InstanceName" ID="0x00"/>
|
<property name="InstanceName" ID="0x00"/>
|
||||||
|
|
|
@ -15,6 +15,8 @@
|
||||||
<property ID="0x0A" name="Unknown 4" type="float"/>
|
<property ID="0x0A" name="Unknown 4" type="float"/>
|
||||||
<property ID="0x0B" name="Unknown 5" type="float"/>
|
<property ID="0x0B" name="Unknown 5" type="float"/>
|
||||||
</properties>
|
</properties>
|
||||||
|
<states/>
|
||||||
|
<messages/>
|
||||||
<editor>
|
<editor>
|
||||||
<properties>
|
<properties>
|
||||||
<property name="InstanceName" ID="0x00"/>
|
<property name="InstanceName" ID="0x00"/>
|
||||||
|
|
|
@ -23,6 +23,8 @@
|
||||||
<property ID="0x12" name="AnimationParameters 4" type="character"/>
|
<property ID="0x12" name="AnimationParameters 4" type="character"/>
|
||||||
<property ID="0x13" name="Unknown 8" type="bool"/>
|
<property ID="0x13" name="Unknown 8" type="bool"/>
|
||||||
</properties>
|
</properties>
|
||||||
|
<states/>
|
||||||
|
<messages/>
|
||||||
<editor>
|
<editor>
|
||||||
<properties>
|
<properties>
|
||||||
<property name="InstanceName" ID="0x00"/>
|
<property name="InstanceName" ID="0x00"/>
|
||||||
|
|
|
@ -26,6 +26,8 @@
|
||||||
<property ID="0x15" name="Particle 4" type="file" extensions="PART"/>
|
<property ID="0x15" name="Particle 4" type="file" extensions="PART"/>
|
||||||
<property ID="0x16" name="Unknown 10" type="bool"/>
|
<property ID="0x16" name="Unknown 10" type="bool"/>
|
||||||
</properties>
|
</properties>
|
||||||
|
<states/>
|
||||||
|
<messages/>
|
||||||
<editor>
|
<editor>
|
||||||
<properties>
|
<properties>
|
||||||
<property name="InstanceName" ID="0x00"/>
|
<property name="InstanceName" ID="0x00"/>
|
||||||
|
|
|
@ -77,6 +77,8 @@
|
||||||
</properties>
|
</properties>
|
||||||
</struct>
|
</struct>
|
||||||
</properties>
|
</properties>
|
||||||
|
<states/>
|
||||||
|
<messages/>
|
||||||
<editor>
|
<editor>
|
||||||
<properties>
|
<properties>
|
||||||
<property name="InstanceName" ID="0x01"/>
|
<property name="InstanceName" ID="0x01"/>
|
||||||
|
|
|
@ -14,6 +14,8 @@
|
||||||
<property ID="0x09" name="Unknown 1" type="long"/>
|
<property ID="0x09" name="Unknown 1" type="long"/>
|
||||||
<property ID="0x0A" name="Particle 2" type="file" extensions="PART"/>
|
<property ID="0x0A" name="Particle 2" type="file" extensions="PART"/>
|
||||||
</properties>
|
</properties>
|
||||||
|
<states/>
|
||||||
|
<messages/>
|
||||||
<editor>
|
<editor>
|
||||||
<properties>
|
<properties>
|
||||||
<property name="InstanceName" ID="0x00"/>
|
<property name="InstanceName" ID="0x00"/>
|
||||||
|
|
|
@ -9,6 +9,8 @@
|
||||||
<property ID="0x04" name="Unknown 3" type="float"/>
|
<property ID="0x04" name="Unknown 3" type="float"/>
|
||||||
<property ID="0x05" name="Unknown 4" type="long"/>
|
<property ID="0x05" name="Unknown 4" type="long"/>
|
||||||
</properties>
|
</properties>
|
||||||
|
<states/>
|
||||||
|
<messages/>
|
||||||
<editor>
|
<editor>
|
||||||
<properties>
|
<properties>
|
||||||
<property name="InstanceName" ID="0x00"/>
|
<property name="InstanceName" ID="0x00"/>
|
||||||
|
|
|
@ -72,6 +72,8 @@
|
||||||
</properties>
|
</properties>
|
||||||
</struct>
|
</struct>
|
||||||
</properties>
|
</properties>
|
||||||
|
<states/>
|
||||||
|
<messages/>
|
||||||
<editor>
|
<editor>
|
||||||
<properties>
|
<properties>
|
||||||
<property name="InstanceName" ID="0x00"/>
|
<property name="InstanceName" ID="0x00"/>
|
||||||
|
|
|
@ -16,6 +16,8 @@
|
||||||
<property ID="0x0B" name="Texture 1" type="file" extensions="TXTR"/>
|
<property ID="0x0B" name="Texture 1" type="file" extensions="TXTR"/>
|
||||||
<property ID="0x0C" name="Texture 2" type="file" extensions="TXTR"/>
|
<property ID="0x0C" name="Texture 2" type="file" extensions="TXTR"/>
|
||||||
</properties>
|
</properties>
|
||||||
|
<states/>
|
||||||
|
<messages/>
|
||||||
<editor>
|
<editor>
|
||||||
<properties>
|
<properties>
|
||||||
<property name="InstanceName" ID="0x00"/>
|
<property name="InstanceName" ID="0x00"/>
|
||||||
|
|
|
@ -18,6 +18,8 @@
|
||||||
<property ID="0x0D" name="Unknown 7" type="float"/>
|
<property ID="0x0D" name="Unknown 7" type="float"/>
|
||||||
<struct ID="0x0E" name="DamageInfo" template="Structs/DamageInfo.xml"/>
|
<struct ID="0x0E" name="DamageInfo" template="Structs/DamageInfo.xml"/>
|
||||||
</properties>
|
</properties>
|
||||||
|
<states/>
|
||||||
|
<messages/>
|
||||||
<editor>
|
<editor>
|
||||||
<properties>
|
<properties>
|
||||||
<property name="InstanceName" ID="0x00"/>
|
<property name="InstanceName" ID="0x00"/>
|
||||||
|
|
|
@ -48,6 +48,8 @@
|
||||||
<property ID="0x2B" name="CSKR" type="file" extensions="CSKR"/>
|
<property ID="0x2B" name="CSKR" type="file" extensions="CSKR"/>
|
||||||
<property ID="0x2C" name="CINF" type="file" extensions="CINF"/>
|
<property ID="0x2C" name="CINF" type="file" extensions="CINF"/>
|
||||||
</properties>
|
</properties>
|
||||||
|
<states/>
|
||||||
|
<messages/>
|
||||||
<editor>
|
<editor>
|
||||||
<properties>
|
<properties>
|
||||||
<property name="InstanceName" ID="0x00"/>
|
<property name="InstanceName" ID="0x00"/>
|
||||||
|
|
|
@ -28,6 +28,8 @@
|
||||||
<property ID="0x17" name="Unknown 18" type="float"/>
|
<property ID="0x17" name="Unknown 18" type="float"/>
|
||||||
<property ID="0x18" name="Unknown 19" type="bool"/>
|
<property ID="0x18" name="Unknown 19" type="bool"/>
|
||||||
</properties>
|
</properties>
|
||||||
|
<states/>
|
||||||
|
<messages/>
|
||||||
<editor>
|
<editor>
|
||||||
<properties>
|
<properties>
|
||||||
<property name="InstanceName" ID="0x00"/>
|
<property name="InstanceName" ID="0x00"/>
|
||||||
|
|
|
@ -23,6 +23,8 @@
|
||||||
<property ID="0x09" name="Unknown 12" type="float"/>
|
<property ID="0x09" name="Unknown 12" type="float"/>
|
||||||
<property ID="0x0A" name="Unknown 13" type="float"/>
|
<property ID="0x0A" name="Unknown 13" type="float"/>
|
||||||
</properties>
|
</properties>
|
||||||
|
<states/>
|
||||||
|
<messages/>
|
||||||
<editor>
|
<editor>
|
||||||
<properties>
|
<properties>
|
||||||
<property name="InstanceName" ID="0x00"/>
|
<property name="InstanceName" ID="0x00"/>
|
||||||
|
|
|
@ -12,6 +12,8 @@
|
||||||
<property ID="0x07" name="ELSC" type="file" extensions="ELSC"/>
|
<property ID="0x07" name="ELSC" type="file" extensions="ELSC"/>
|
||||||
<property ID="0x08" name="Unknown 2" type="string"/>
|
<property ID="0x08" name="Unknown 2" type="string"/>
|
||||||
</properties>
|
</properties>
|
||||||
|
<states/>
|
||||||
|
<messages/>
|
||||||
<editor>
|
<editor>
|
||||||
<properties>
|
<properties>
|
||||||
<property name="InstanceName" ID="0x00"/>
|
<property name="InstanceName" ID="0x00"/>
|
||||||
|
|
|
@ -21,6 +21,8 @@
|
||||||
<property ID="0x10" name="Unknown 8" type="bool"/>
|
<property ID="0x10" name="Unknown 8" type="bool"/>
|
||||||
<property ID="0x11" name="Unknown 9" type="float"/>
|
<property ID="0x11" name="Unknown 9" type="float"/>
|
||||||
</properties>
|
</properties>
|
||||||
|
<states/>
|
||||||
|
<messages/>
|
||||||
<editor>
|
<editor>
|
||||||
<properties>
|
<properties>
|
||||||
<property name="InstanceName" ID="0x00"/>
|
<property name="InstanceName" ID="0x00"/>
|
||||||
|
|
|
@ -21,6 +21,8 @@
|
||||||
<property ID="0x10" name="Unknown 1" type="float"/>
|
<property ID="0x10" name="Unknown 1" type="float"/>
|
||||||
<property ID="0x11" name="Particle" type="file" extensions="PART"/>
|
<property ID="0x11" name="Particle" type="file" extensions="PART"/>
|
||||||
</properties>
|
</properties>
|
||||||
|
<states/>
|
||||||
|
<messages/>
|
||||||
<editor>
|
<editor>
|
||||||
<properties>
|
<properties>
|
||||||
<property name="InstanceName" ID="0x00"/>
|
<property name="InstanceName" ID="0x00"/>
|
||||||
|
|
|
@ -7,6 +7,8 @@
|
||||||
<property ID="0x02" name="Active" type="bool"/>
|
<property ID="0x02" name="Active" type="bool"/>
|
||||||
<property ID="0x03" name="Frequency" type="float"/>
|
<property ID="0x03" name="Frequency" type="float"/>
|
||||||
</properties>
|
</properties>
|
||||||
|
<states/>
|
||||||
|
<messages/>
|
||||||
<editor>
|
<editor>
|
||||||
<properties>
|
<properties>
|
||||||
<property name="InstanceName" ID="0x00"/>
|
<property name="InstanceName" ID="0x00"/>
|
||||||
|
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue