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,60 +200,81 @@ IPropertyTemplate* CTemplateLoader::CreateProperty(u32 ID, EPropertyType Type, c
|
||||||
|
|
||||||
void CTemplateLoader::LoadStructTemplate(const TString& rkTemplateFileName, CStructTemplate *pStruct)
|
void CTemplateLoader::LoadStructTemplate(const TString& rkTemplateFileName, CStructTemplate *pStruct)
|
||||||
{
|
{
|
||||||
XMLDocument Doc;
|
// Check whether this struct has already been read
|
||||||
OpenXML(mMasterDir + rkTemplateFileName, Doc);
|
auto it = mpMaster->mStructTemplates.find(rkTemplateFileName);
|
||||||
|
CStructTemplate *pSource = (it == mpMaster->mStructTemplates.end() ? nullptr : it->second);
|
||||||
|
|
||||||
if (!Doc.Error())
|
// If the source hasn't been read yet, then we read it and add it to master's list
|
||||||
|
if (!pSource)
|
||||||
{
|
{
|
||||||
XMLElement *pRootElem;
|
XMLDocument Doc;
|
||||||
|
OpenXML(mskTemplatesDir + mMasterDir + rkTemplateFileName, Doc);
|
||||||
|
|
||||||
if (pStruct->Type() == eStructProperty)
|
if (!Doc.Error())
|
||||||
{
|
{
|
||||||
pRootElem = Doc.FirstChildElement("struct");
|
XMLElement *pRootElem;
|
||||||
|
|
||||||
if (!pRootElem)
|
if (pStruct->Type() == eStructProperty)
|
||||||
{
|
{
|
||||||
Log::Error("Error reading struct template " + rkTemplateFileName + ": there is no root \"struct\" element");
|
pSource = new CStructTemplate(-1, nullptr);
|
||||||
return;
|
pRootElem = Doc.FirstChildElement("struct");
|
||||||
|
|
||||||
|
if (!pRootElem)
|
||||||
|
{
|
||||||
|
Log::Error(rkTemplateFileName + ": There is no root \"struct\" element");
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
TString TypeAttr = TString(pRootElem->Attribute("type")).ToLower();
|
||||||
|
|
||||||
|
if (TypeAttr.IsEmpty())
|
||||||
|
{
|
||||||
|
Log::Error(rkTemplateFileName + ": There is no struct type specified");
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
pSource->mIsSingleProperty = (TypeAttr == "single" ? true : false);
|
||||||
}
|
}
|
||||||
|
|
||||||
TString TypeAttr = TString(pRootElem->Attribute("type")).ToLower();
|
else if (pStruct->Type() == eArrayProperty)
|
||||||
|
|
||||||
if (TypeAttr.IsEmpty())
|
|
||||||
{
|
{
|
||||||
Log::Error("Error reading struct template " + rkTemplateFileName + "; there is no struct type specified");
|
pRootElem = Doc.FirstChildElement("array");
|
||||||
return;
|
|
||||||
|
if (!pRootElem)
|
||||||
|
{
|
||||||
|
Log::Error(rkTemplateFileName + ": There is no root \"array\" element");
|
||||||
|
return;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
pStruct->mIsSingleProperty = (TypeAttr == "single" ? true : false);
|
// Read sub-properties
|
||||||
}
|
XMLElement *pSubPropsElem = pRootElem->FirstChildElement("properties");
|
||||||
|
|
||||||
else if (pStruct->Type() == eArrayProperty)
|
if (pSubPropsElem)
|
||||||
{
|
|
||||||
pRootElem = Doc.FirstChildElement("array");
|
|
||||||
|
|
||||||
if (!pRootElem)
|
|
||||||
{
|
{
|
||||||
Log::Error("Error reading array template " + rkTemplateFileName + "; there is no root \"array\" element");
|
LoadProperties(pSubPropsElem, pSource, rkTemplateFileName);
|
||||||
return;
|
mpMaster->mStructTemplates[rkTemplateFileName] = pSource;
|
||||||
|
pSource->mSourceFile = rkTemplateFileName;
|
||||||
|
}
|
||||||
|
|
||||||
|
else
|
||||||
|
{
|
||||||
|
Log::Error(rkTemplateFileName + ": There is no \"properties\" block element");
|
||||||
|
delete pSource;
|
||||||
|
pSource = nullptr;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// Read sub-properties
|
|
||||||
XMLElement *pSubPropsElem = pRootElem->FirstChildElement("properties");
|
|
||||||
|
|
||||||
if (pSubPropsElem)
|
|
||||||
LoadProperties(pSubPropsElem, pStruct, rkTemplateFileName);
|
|
||||||
|
|
||||||
else
|
|
||||||
Log::Error("Error reading " + TString(pStruct->Type() == eStructProperty ? "struct" : "array") + " template " + rkTemplateFileName + "; there's no \"properties\" block element");
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// 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,17 +695,14 @@ 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()));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -781,27 +805,27 @@ TString CTemplateLoader::ErrorName(XMLError Error)
|
||||||
{
|
{
|
||||||
switch (Error)
|
switch (Error)
|
||||||
{
|
{
|
||||||
case XML_SUCCESS: return "Success";
|
case XML_SUCCESS: return "Success";
|
||||||
case XML_NO_ATTRIBUTE: return "No attribute";
|
case XML_NO_ATTRIBUTE: return "No attribute";
|
||||||
case XML_WRONG_ATTRIBUTE_TYPE: return "Wrong attribute type";
|
case XML_WRONG_ATTRIBUTE_TYPE: return "Wrong attribute type";
|
||||||
case XML_ERROR_FILE_NOT_FOUND: return "File not found";
|
case XML_ERROR_FILE_NOT_FOUND: return "File not found";
|
||||||
case XML_ERROR_FILE_COULD_NOT_BE_OPENED: return "File could not be opened";
|
case XML_ERROR_FILE_COULD_NOT_BE_OPENED: return "File could not be opened";
|
||||||
case XML_ERROR_FILE_READ_ERROR: return "File read error";
|
case XML_ERROR_FILE_READ_ERROR: return "File read error";
|
||||||
case XML_ERROR_ELEMENT_MISMATCH: return "Element mismatch";
|
case XML_ERROR_ELEMENT_MISMATCH: return "Element mismatch";
|
||||||
case XML_ERROR_PARSING_ELEMENT: return "Parsing element";
|
case XML_ERROR_PARSING_ELEMENT: return "Parsing element";
|
||||||
case XML_ERROR_PARSING_ATTRIBUTE: return "Parsing attribute";
|
case XML_ERROR_PARSING_ATTRIBUTE: return "Parsing attribute";
|
||||||
case XML_ERROR_IDENTIFYING_TAG: return "Identifying tag";
|
case XML_ERROR_IDENTIFYING_TAG: return "Identifying tag";
|
||||||
case XML_ERROR_PARSING_TEXT: return "Parsing text";
|
case XML_ERROR_PARSING_TEXT: return "Parsing text";
|
||||||
case XML_ERROR_PARSING_CDATA: return "Parsing CData";
|
case XML_ERROR_PARSING_CDATA: return "Parsing CData";
|
||||||
case XML_ERROR_PARSING_COMMENT: return "Parsing comment";
|
case XML_ERROR_PARSING_COMMENT: return "Parsing comment";
|
||||||
case XML_ERROR_PARSING_DECLARATION: return "Parsing declaration";
|
case XML_ERROR_PARSING_DECLARATION: return "Parsing declaration";
|
||||||
case XML_ERROR_PARSING_UNKNOWN: return "Parsing unknown";
|
case XML_ERROR_PARSING_UNKNOWN: return "Parsing unknown";
|
||||||
case XML_ERROR_EMPTY_DOCUMENT: return "Empty document";
|
case XML_ERROR_EMPTY_DOCUMENT: return "Empty document";
|
||||||
case XML_ERROR_MISMATCHED_ELEMENT: return "Mismatched element";
|
case XML_ERROR_MISMATCHED_ELEMENT: return "Mismatched element";
|
||||||
case XML_ERROR_PARSING: return "Parsing";
|
case XML_ERROR_PARSING: return "Parsing";
|
||||||
case XML_CAN_NOT_CONVERT_TEXT: return "Cannot convert text";
|
case XML_CAN_NOT_CONVERT_TEXT: return "Cannot convert text";
|
||||||
case XML_NO_TEXT_NODE: return "No text node";
|
case XML_NO_TEXT_NODE: return "No text node";
|
||||||
default: return "Unknown error";
|
default: return "Unknown error";
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -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;
|
||||||
|
@ -146,9 +146,9 @@ public:
|
||||||
TTypedPropertyTemplate(u32 ID, const TString& rkName, ECookPreference CookPreference, CStructTemplate *pParent = 0)
|
TTypedPropertyTemplate(u32 ID, const TString& rkName, ECookPreference CookPreference, CStructTemplate *pParent = 0)
|
||||||
: 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,6 +1,6 @@
|
||||||
<?xml version="1.0" encoding="UTF-8"?>
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
<GameList version="4">
|
<GameList version="4">
|
||||||
<properties>Properties.xml</properties>
|
<properties>Properties.xml</properties>
|
||||||
<game>
|
<game>
|
||||||
<name>Metroid Prime</name>
|
<name>Metroid Prime</name>
|
||||||
<mrea>0x0F</mrea>
|
<mrea>0x0F</mrea>
|
||||||
|
|
|
@ -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"/>
|
||||||
|
@ -11491,4 +11491,4 @@
|
||||||
<property ID="0xFFEBA1F2" name="Unknown"/>
|
<property ID="0xFFEBA1F2" name="Unknown"/>
|
||||||
<property ID="0xFFEEBC46" name="Unknown"/>
|
<property ID="0xFFEEBC46" name="Unknown"/>
|
||||||
<property ID="0xFFFFFFFF" name="Properties"/>
|
<property ID="0xFFFFFFFF" name="Properties"/>
|
||||||
</Properties>
|
</Properties>
|
||||||
|
|
|
@ -1,8 +1,8 @@
|
||||||
<?xml version="1.0" encoding="UTF-8"?>
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
<enum name="AnimEnum">
|
<enum name="AnimEnum">
|
||||||
<enumerators>
|
<enumerators>
|
||||||
<enumerator ID="0x8B3D86DC" name="Unknown 1"/>
|
<enumerator ID="0x8B3D86DC" name="Unknown 1"/>
|
||||||
<enumerator ID="0xF095D135" name="Unknown 2"/>
|
<enumerator ID="0xF095D135" name="Unknown 2"/>
|
||||||
<enumerator ID="0xEF006D07" name="Unknown 3"/>
|
<enumerator ID="0xEF006D07" name="Unknown 3"/>
|
||||||
</enumerators>
|
</enumerators>
|
||||||
</enum>
|
</enum>
|
||||||
|
|
|
@ -1,9 +1,9 @@
|
||||||
<?xml version="1.0" encoding="UTF-8"?>
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
<enum name="BarrelCannonEnum">
|
<enum name="BarrelCannonEnum">
|
||||||
<enumerators>
|
<enumerators>
|
||||||
<enumerator ID="0x1923DFB0" name="Unknown 1"/>
|
<enumerator ID="0x1923DFB0" name="Unknown 1"/>
|
||||||
<enumerator ID="0xA61445EB" name="Unknown 2"/>
|
<enumerator ID="0xA61445EB" name="Unknown 2"/>
|
||||||
<enumerator ID="0x1CD43817" name="Unknown 3"/>
|
<enumerator ID="0x1CD43817" name="Unknown 3"/>
|
||||||
<enumerator ID="0x0009FA85" name="Unknown 4"/>
|
<enumerator ID="0x0009FA85" name="Unknown 4"/>
|
||||||
</enumerators>
|
</enumerators>
|
||||||
</enum>
|
</enum>
|
||||||
|
|
|
@ -1,8 +1,8 @@
|
||||||
<?xml version="1.0" encoding="UTF-8"?>
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
<enum name="CableEnum">
|
<enum name="CableEnum">
|
||||||
<enumerators>
|
<enumerators>
|
||||||
<enumerator ID="0x80DD21B4" name="Unknown 1"/>
|
<enumerator ID="0x80DD21B4" name="Unknown 1"/>
|
||||||
<enumerator ID="0x24CF38F1" name="Unknown 2"/>
|
<enumerator ID="0x24CF38F1" name="Unknown 2"/>
|
||||||
<enumerator ID="0x23363FD3" name="Unknown 3"/>
|
<enumerator ID="0x23363FD3" name="Unknown 3"/>
|
||||||
</enumerators>
|
</enumerators>
|
||||||
</enum>
|
</enum>
|
||||||
|
|
|
@ -1,9 +1,9 @@
|
||||||
<?xml version="1.0" encoding="UTF-8"?>
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
<enum name="DamageableTriggerEnum">
|
<enum name="DamageableTriggerEnum">
|
||||||
<enumerators>
|
<enumerators>
|
||||||
<enumerator ID="0x1DB35D5F" name="Unknown 1"/>
|
<enumerator ID="0x1DB35D5F" name="Unknown 1"/>
|
||||||
<enumerator ID="0x61939D58" name="Unknown 2"/>
|
<enumerator ID="0x61939D58" name="Unknown 2"/>
|
||||||
<enumerator ID="0x385E6442" name="Unknown 3"/>
|
<enumerator ID="0x385E6442" name="Unknown 3"/>
|
||||||
<enumerator ID="0x0C91B7E6" name="Unknown 4"/>
|
<enumerator ID="0x0C91B7E6" name="Unknown 4"/>
|
||||||
</enumerators>
|
</enumerators>
|
||||||
</enum>
|
</enum>
|
||||||
|
|
|
@ -1,50 +1,50 @@
|
||||||
<?xml version="1.0" encoding="UTF-8"?>
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
<enum name="InventorySlot">
|
<enum name="InventorySlot">
|
||||||
<enumerators>
|
<enumerators>
|
||||||
<enumerator ID="0xB22FD89B" name="Unknown 1"/>
|
<enumerator ID="0xB22FD89B" name="Unknown 1"/>
|
||||||
<enumerator ID="0x0AB70F9F" name="Unknown 2"/>
|
<enumerator ID="0x0AB70F9F" name="Unknown 2"/>
|
||||||
<enumerator ID="0x7EC6E111" name="Unknown 3"/>
|
<enumerator ID="0x7EC6E111" name="Unknown 3"/>
|
||||||
<enumerator ID="0x556483BA" name="Unknown 4"/>
|
<enumerator ID="0x556483BA" name="Unknown 4"/>
|
||||||
<enumerator ID="0x28B8C79F" name="Unknown 5"/>
|
<enumerator ID="0x28B8C79F" name="Unknown 5"/>
|
||||||
<enumerator ID="0x288E1995" name="Unknown 6"/>
|
<enumerator ID="0x288E1995" name="Unknown 6"/>
|
||||||
<enumerator ID="0x20452B38" name="Unknown 7"/>
|
<enumerator ID="0x20452B38" name="Unknown 7"/>
|
||||||
<enumerator ID="0xA08E45BD" name="Unknown 8"/>
|
<enumerator ID="0xA08E45BD" name="Unknown 8"/>
|
||||||
<enumerator ID="0x9302608B" name="Unknown 9"/>
|
<enumerator ID="0x9302608B" name="Unknown 9"/>
|
||||||
<enumerator ID="0x6242D55B" name="Unknown 10"/>
|
<enumerator ID="0x6242D55B" name="Unknown 10"/>
|
||||||
<enumerator ID="0x652F1142" name="Unknown 11"/>
|
<enumerator ID="0x652F1142" name="Unknown 11"/>
|
||||||
<enumerator ID="0x122821D4" name="Unknown 12"/>
|
<enumerator ID="0x122821D4" name="Unknown 12"/>
|
||||||
<enumerator ID="0x6BF49970" name="Unknown 13"/>
|
<enumerator ID="0x6BF49970" name="Unknown 13"/>
|
||||||
<enumerator ID="0x67AD9570" name="Unknown 14"/>
|
<enumerator ID="0x67AD9570" name="Unknown 14"/>
|
||||||
<enumerator ID="0xAF376DBC" name="Unknown 15"/>
|
<enumerator ID="0xAF376DBC" name="Unknown 15"/>
|
||||||
<enumerator ID="0xC2614252" name="Unknown 16"/>
|
<enumerator ID="0xC2614252" name="Unknown 16"/>
|
||||||
<enumerator ID="0xE6880EBF" name="Unknown 17"/>
|
<enumerator ID="0xE6880EBF" name="Unknown 17"/>
|
||||||
<enumerator ID="0x4CE83DAB" name="Unknown 18"/>
|
<enumerator ID="0x4CE83DAB" name="Unknown 18"/>
|
||||||
<enumerator ID="0x3132788C" name="Unknown 19"/>
|
<enumerator ID="0x3132788C" name="Unknown 19"/>
|
||||||
<enumerator ID="0x13F9BA3C" name="Unknown 20"/>
|
<enumerator ID="0x13F9BA3C" name="Unknown 20"/>
|
||||||
<enumerator ID="0x0B678DCF" name="Unknown 21"/>
|
<enumerator ID="0x0B678DCF" name="Unknown 21"/>
|
||||||
<enumerator ID="0x926EDC75" name="Unknown 22"/>
|
<enumerator ID="0x926EDC75" name="Unknown 22"/>
|
||||||
<enumerator ID="0xE569ECE3" name="Unknown 23"/>
|
<enumerator ID="0xE569ECE3" name="Unknown 23"/>
|
||||||
<enumerator ID="0x7B0D7940" name="Unknown 24"/>
|
<enumerator ID="0x7B0D7940" name="Unknown 24"/>
|
||||||
<enumerator ID="0x0C0A49D6" name="Unknown 25"/>
|
<enumerator ID="0x0C0A49D6" name="Unknown 25"/>
|
||||||
<enumerator ID="0x9503186C" name="Unknown 26"/>
|
<enumerator ID="0x9503186C" name="Unknown 26"/>
|
||||||
<enumerator ID="0xE20428FA" name="Unknown 27"/>
|
<enumerator ID="0xE20428FA" name="Unknown 27"/>
|
||||||
<enumerator ID="0x72BB356B" name="Unknown 28"/>
|
<enumerator ID="0x72BB356B" name="Unknown 28"/>
|
||||||
<enumerator ID="0x58839E3B" name="Unknown 29"/>
|
<enumerator ID="0x58839E3B" name="Unknown 29"/>
|
||||||
<enumerator ID="0xC18ACF81" name="Unknown 30"/>
|
<enumerator ID="0xC18ACF81" name="Unknown 30"/>
|
||||||
<enumerator ID="0xB68DFF17" name="Unknown 31"/>
|
<enumerator ID="0xB68DFF17" name="Unknown 31"/>
|
||||||
<enumerator ID="0x5D1C98AE" name="Unknown 32"/>
|
<enumerator ID="0x5D1C98AE" name="Unknown 32"/>
|
||||||
<enumerator ID="0xC415C914" name="Unknown 33"/>
|
<enumerator ID="0xC415C914" name="Unknown 33"/>
|
||||||
<enumerator ID="0xB312F982" name="Unknown 34"/>
|
<enumerator ID="0xB312F982" name="Unknown 34"/>
|
||||||
<enumerator ID="0x2D766C21" name="Unknown 35"/>
|
<enumerator ID="0x2D766C21" name="Unknown 35"/>
|
||||||
<enumerator ID="0x5A715CB7" name="Unknown 36"/>
|
<enumerator ID="0x5A715CB7" name="Unknown 36"/>
|
||||||
<enumerator ID="0xC3780D0D" name="Unknown 37"/>
|
<enumerator ID="0xC3780D0D" name="Unknown 37"/>
|
||||||
<enumerator ID="0xB47F3D9B" name="Unknown 38"/>
|
<enumerator ID="0xB47F3D9B" name="Unknown 38"/>
|
||||||
<enumerator ID="0x24C0200A" name="Unknown 39"/>
|
<enumerator ID="0x24C0200A" name="Unknown 39"/>
|
||||||
<enumerator ID="0xF1925BC3" name="Unknown 40"/>
|
<enumerator ID="0xF1925BC3" name="Unknown 40"/>
|
||||||
<enumerator ID="0xB82D38C0" name="Unknown 41"/>
|
<enumerator ID="0xB82D38C0" name="Unknown 41"/>
|
||||||
<enumerator ID="0x00F1201C" name="Unknown 42"/>
|
<enumerator ID="0x00F1201C" name="Unknown 42"/>
|
||||||
<enumerator ID="0xE3006233" name="Unknown 43"/>
|
<enumerator ID="0xE3006233" name="Unknown 43"/>
|
||||||
<enumerator ID="0xBCF65B69" name="Unknown 44"/>
|
<enumerator ID="0xBCF65B69" name="Unknown 44"/>
|
||||||
<enumerator ID="0x7F7E9C47" name="Unknown 45"/>
|
<enumerator ID="0x7F7E9C47" name="Unknown 45"/>
|
||||||
</enumerators>
|
</enumerators>
|
||||||
</enum>
|
</enum>
|
||||||
|
|
|
@ -1,8 +1,8 @@
|
||||||
<?xml version="1.0" encoding="UTF-8"?>
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
<enum name="MusicEnumA">
|
<enum name="MusicEnumA">
|
||||||
<enumerators>
|
<enumerators>
|
||||||
<enumerator ID="0x9EFE0717" name="Unknown 1"/>
|
<enumerator ID="0x9EFE0717" name="Unknown 1"/>
|
||||||
<enumerator ID="0x28D5A7D7" name="Unknown 2"/>
|
<enumerator ID="0x28D5A7D7" name="Unknown 2"/>
|
||||||
<enumerator ID="0xD6A26606" name="Unknown 3"/>
|
<enumerator ID="0xD6A26606" name="Unknown 3"/>
|
||||||
</enumerators>
|
</enumerators>
|
||||||
</enum>
|
</enum>
|
||||||
|
|
|
@ -1,15 +1,15 @@
|
||||||
<?xml version="1.0" encoding="UTF-8"?>
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
<enum name="MusicEnumB">
|
<enum name="MusicEnumB">
|
||||||
<enumerators>
|
<enumerators>
|
||||||
<enumerator ID="0xCBF698CA" name="Unknown 1"/>
|
<enumerator ID="0xCBF698CA" name="Unknown 1"/>
|
||||||
<enumerator ID="0xBCF1A85C" name="Unknown 2"/>
|
<enumerator ID="0xBCF1A85C" name="Unknown 2"/>
|
||||||
<enumerator ID="0x25F8F9E6" name="Unknown 3"/>
|
<enumerator ID="0x25F8F9E6" name="Unknown 3"/>
|
||||||
<enumerator ID="0x52FFC970" name="Unknown 4"/>
|
<enumerator ID="0x52FFC970" name="Unknown 4"/>
|
||||||
<enumerator ID="0xCC9B5CD3" name="Unknown 5"/>
|
<enumerator ID="0xCC9B5CD3" name="Unknown 5"/>
|
||||||
<enumerator ID="0xBB9C6C45" name="Unknown 6"/>
|
<enumerator ID="0xBB9C6C45" name="Unknown 6"/>
|
||||||
<enumerator ID="0x22953DFF" name="Unknown 7"/>
|
<enumerator ID="0x22953DFF" name="Unknown 7"/>
|
||||||
<enumerator ID="0x55920D69" name="Unknown 8"/>
|
<enumerator ID="0x55920D69" name="Unknown 8"/>
|
||||||
<enumerator ID="0xC52D10F8" name="Unknown 9"/>
|
<enumerator ID="0xC52D10F8" name="Unknown 9"/>
|
||||||
<enumerator ID="0xB22A206E" name="Unknown 10"/>
|
<enumerator ID="0xB22A206E" name="Unknown 10"/>
|
||||||
</enumerators>
|
</enumerators>
|
||||||
</enum>
|
</enum>
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
<?xml version="1.0" encoding="UTF-8"?>
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
<enum name="RobotChickenEnum">
|
<enum name="RobotChickenEnum">
|
||||||
<enumerators>
|
<enumerators>
|
||||||
<enumerator ID="0x8C665F9A" name="Unknown 1"/>
|
<enumerator ID="0x8C665F9A" name="Unknown 1"/>
|
||||||
<enumerator ID="0x5E7931A4" name="Unknown 2"/>
|
<enumerator ID="0x5E7931A4" name="Unknown 2"/>
|
||||||
</enumerators>
|
</enumerators>
|
||||||
</enum>
|
</enum>
|
||||||
|
|
|
@ -1,9 +1,9 @@
|
||||||
<?xml version="1.0" encoding="UTF-8"?>
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
<enum name="Shape">
|
<enum name="Shape">
|
||||||
<enumerators>
|
<enumerators>
|
||||||
<enumerator ID="0x482B22F1" name="Box"/>
|
<enumerator ID="0x482B22F1" name="Box"/>
|
||||||
<enumerator ID="0x779DB545" name="Box"/>
|
<enumerator ID="0x779DB545" name="Box"/>
|
||||||
<enumerator ID="0x8392F5E4" name="Ellipsoid"/>
|
<enumerator ID="0x8392F5E4" name="Ellipsoid"/>
|
||||||
<enumerator ID="0x39ED7B8E" name="Cylinder"/>
|
<enumerator ID="0x39ED7B8E" name="Cylinder"/>
|
||||||
</enumerators>
|
</enumerators>
|
||||||
</enum>
|
</enum>
|
||||||
|
|
|
@ -1,58 +1,58 @@
|
||||||
<?xml version="1.0" encoding="UTF-8"?>
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
<enum name="UnknownEnum1">
|
<enum name="UnknownEnum1">
|
||||||
<enumerators>
|
<enumerators>
|
||||||
<enumerator ID="0xD086634A" name="Unknown 1"/>
|
<enumerator ID="0xD086634A" name="Unknown 1"/>
|
||||||
<enumerator ID="0x9EFEC452" name="Unknown 2"/>
|
<enumerator ID="0x9EFEC452" name="Unknown 2"/>
|
||||||
<enumerator ID="0x7A08E735" name="Unknown 3"/>
|
<enumerator ID="0x7A08E735" name="Unknown 3"/>
|
||||||
<enumerator ID="0x50C802D9" name="Unknown 4"/>
|
<enumerator ID="0x50C802D9" name="Unknown 4"/>
|
||||||
<enumerator ID="0xF0F41378" name="Unknown 5"/>
|
<enumerator ID="0xF0F41378" name="Unknown 5"/>
|
||||||
<enumerator ID="0x85CC49A7" name="Unknown 6"/>
|
<enumerator ID="0x85CC49A7" name="Unknown 6"/>
|
||||||
<enumerator ID="0xF3FA81F9" name="Unknown 7"/>
|
<enumerator ID="0xF3FA81F9" name="Unknown 7"/>
|
||||||
<enumerator ID="0x12D7814B" name="Unknown 8"/>
|
<enumerator ID="0x12D7814B" name="Unknown 8"/>
|
||||||
<enumerator ID="0x3ED0780A" name="Unknown 9"/>
|
<enumerator ID="0x3ED0780A" name="Unknown 9"/>
|
||||||
<enumerator ID="0xD30DC76F" name="Unknown 10"/>
|
<enumerator ID="0xD30DC76F" name="Unknown 10"/>
|
||||||
<enumerator ID="0xAF419B49" name="Unknown 11"/>
|
<enumerator ID="0xAF419B49" name="Unknown 11"/>
|
||||||
<enumerator ID="0xA3CA9851" name="Unknown 12"/>
|
<enumerator ID="0xA3CA9851" name="Unknown 12"/>
|
||||||
<enumerator ID="0x841A1F8E" name="Unknown 13"/>
|
<enumerator ID="0x841A1F8E" name="Unknown 13"/>
|
||||||
<enumerator ID="0xDE847FAF" name="Unknown 14"/>
|
<enumerator ID="0xDE847FAF" name="Unknown 14"/>
|
||||||
<enumerator ID="0xA1933C0A" name="Unknown 15"/>
|
<enumerator ID="0xA1933C0A" name="Unknown 15"/>
|
||||||
<enumerator ID="0x2B471C09" name="Unknown 16"/>
|
<enumerator ID="0x2B471C09" name="Unknown 16"/>
|
||||||
<enumerator ID="0xB24E4DB3" name="Unknown 17"/>
|
<enumerator ID="0xB24E4DB3" name="Unknown 17"/>
|
||||||
<enumerator ID="0xABEC556C" name="Unknown 18"/>
|
<enumerator ID="0xABEC556C" name="Unknown 18"/>
|
||||||
<enumerator ID="0x8B3230C7" name="Unknown 19"/>
|
<enumerator ID="0x8B3230C7" name="Unknown 19"/>
|
||||||
<enumerator ID="0xAED13BCA" name="Unknown 20"/>
|
<enumerator ID="0xAED13BCA" name="Unknown 20"/>
|
||||||
<enumerator ID="0x3EEF8753" name="Unknown 21"/>
|
<enumerator ID="0x3EEF8753" name="Unknown 21"/>
|
||||||
<enumerator ID="0xB3FB5FA4" name="Unknown 22"/>
|
<enumerator ID="0xB3FB5FA4" name="Unknown 22"/>
|
||||||
<enumerator ID="0xC547BF6B" name="Unknown 23"/>
|
<enumerator ID="0xC547BF6B" name="Unknown 23"/>
|
||||||
<enumerator ID="0x11F351AB" name="Unknown 24"/>
|
<enumerator ID="0x11F351AB" name="Unknown 24"/>
|
||||||
<enumerator ID="0x3498471C" name="Unknown 25"/>
|
<enumerator ID="0x3498471C" name="Unknown 25"/>
|
||||||
<enumerator ID="0xC466996F" name="Unknown 26"/>
|
<enumerator ID="0xC466996F" name="Unknown 26"/>
|
||||||
<enumerator ID="0xFA2C9120" name="Unknown 27"/>
|
<enumerator ID="0xFA2C9120" name="Unknown 27"/>
|
||||||
<enumerator ID="0x5178A767" name="Unknown 28"/>
|
<enumerator ID="0x5178A767" name="Unknown 28"/>
|
||||||
<enumerator ID="0x0709C8FC" name="Unknown 29"/>
|
<enumerator ID="0x0709C8FC" name="Unknown 29"/>
|
||||||
<enumerator ID="0x21695AC9" name="Unknown 30"/>
|
<enumerator ID="0x21695AC9" name="Unknown 30"/>
|
||||||
<enumerator ID="0xC25A07B4" name="Unknown 31"/>
|
<enumerator ID="0xC25A07B4" name="Unknown 31"/>
|
||||||
<enumerator ID="0x84ED6FA3" name="Unknown 32"/>
|
<enumerator ID="0x84ED6FA3" name="Unknown 32"/>
|
||||||
<enumerator ID="0x0D7E08B3" name="Unknown 33"/>
|
<enumerator ID="0x0D7E08B3" name="Unknown 33"/>
|
||||||
<enumerator ID="0x88667A15" name="Unknown 34"/>
|
<enumerator ID="0x88667A15" name="Unknown 34"/>
|
||||||
<enumerator ID="0x0E2A6D5C" name="Unknown 35"/>
|
<enumerator ID="0x0E2A6D5C" name="Unknown 35"/>
|
||||||
<enumerator ID="0xB480D1C5" name="Unknown 36"/>
|
<enumerator ID="0xB480D1C5" name="Unknown 36"/>
|
||||||
<enumerator ID="0x57B38CB8" name="Unknown 37"/>
|
<enumerator ID="0x57B38CB8" name="Unknown 37"/>
|
||||||
<enumerator ID="0xD22CE16B" name="Unknown 38"/>
|
<enumerator ID="0xD22CE16B" name="Unknown 38"/>
|
||||||
<enumerator ID="0x045DAD13" name="Unknown 39"/>
|
<enumerator ID="0x045DAD13" name="Unknown 39"/>
|
||||||
<enumerator ID="0x6CB4849F" name="Unknown 40"/>
|
<enumerator ID="0x6CB4849F" name="Unknown 40"/>
|
||||||
<enumerator ID="0x0A30916F" name="Unknown 41"/>
|
<enumerator ID="0x0A30916F" name="Unknown 41"/>
|
||||||
<enumerator ID="0x006A8C25" name="Unknown 42"/>
|
<enumerator ID="0x006A8C25" name="Unknown 42"/>
|
||||||
<enumerator ID="0x2FE99ACD" name="Unknown 43"/>
|
<enumerator ID="0x2FE99ACD" name="Unknown 43"/>
|
||||||
<enumerator ID="0xCCDAC7B0" name="Unknown 44"/>
|
<enumerator ID="0xCCDAC7B0" name="Unknown 44"/>
|
||||||
<enumerator ID="0xDFA559AB" name="Unknown 45"/>
|
<enumerator ID="0xDFA559AB" name="Unknown 45"/>
|
||||||
<enumerator ID="0x0A1D4C6A" name="Unknown 46"/>
|
<enumerator ID="0x0A1D4C6A" name="Unknown 46"/>
|
||||||
<enumerator ID="0x11FA9AD3" name="Unknown 47"/>
|
<enumerator ID="0x11FA9AD3" name="Unknown 47"/>
|
||||||
<enumerator ID="0x7527D2CA" name="Unknown 48"/>
|
<enumerator ID="0x7527D2CA" name="Unknown 48"/>
|
||||||
<enumerator ID="0x3CCFABB4" name="Unknown 49"/>
|
<enumerator ID="0x3CCFABB4" name="Unknown 49"/>
|
||||||
<enumerator ID="0x892ADAE9" name="Unknown 50"/>
|
<enumerator ID="0x892ADAE9" name="Unknown 50"/>
|
||||||
<enumerator ID="0x6A198794" name="Unknown 51"/>
|
<enumerator ID="0x6A198794" name="Unknown 51"/>
|
||||||
<enumerator ID="0xA0B21A0E" name="Unknown 52"/>
|
<enumerator ID="0xA0B21A0E" name="Unknown 52"/>
|
||||||
<enumerator ID="0x36B86BFB" name="Unknown 53"/>
|
<enumerator ID="0x36B86BFB" name="Unknown 53"/>
|
||||||
</enumerators>
|
</enumerators>
|
||||||
</enum>
|
</enum>
|
||||||
|
|
|
@ -1,11 +1,11 @@
|
||||||
<?xml version="1.0" encoding="UTF-8"?>
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
<enum name="UnknownEnum2">
|
<enum name="UnknownEnum2">
|
||||||
<enumerators>
|
<enumerators>
|
||||||
<enumerator ID="0xF7A83E59" name="Unknown 1"/>
|
<enumerator ID="0xF7A83E59" name="Unknown 1"/>
|
||||||
<enumerator ID="0x0291D74B" name="Unknown 2"/>
|
<enumerator ID="0x0291D74B" name="Unknown 2"/>
|
||||||
<enumerator ID="0x3BB45C07" name="Unknown 3"/>
|
<enumerator ID="0x3BB45C07" name="Unknown 3"/>
|
||||||
<enumerator ID="0x7EAFB026" name="Unknown 4"/>
|
<enumerator ID="0x7EAFB026" name="Unknown 4"/>
|
||||||
<enumerator ID="0x69069679" name="Unknown 5"/>
|
<enumerator ID="0x69069679" name="Unknown 5"/>
|
||||||
<enumerator ID="0x1837C775" name="Unknown 6"/>
|
<enumerator ID="0x1837C775" name="Unknown 6"/>
|
||||||
</enumerators>
|
</enumerators>
|
||||||
</enum>
|
</enum>
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
<?xml version="1.0" encoding="UTF-8"?>
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
<enum name="UnknownEnum3">
|
<enum name="UnknownEnum3">
|
||||||
<enumerators>
|
<enumerators>
|
||||||
<enumerator ID="0x82B6A62A" name="Unknown 1"/>
|
<enumerator ID="0x82B6A62A" name="Unknown 1"/>
|
||||||
<enumerator ID="0xCE9CA7B2" name="Unknown 2"/>
|
<enumerator ID="0xCE9CA7B2" name="Unknown 2"/>
|
||||||
</enumerators>
|
</enumerators>
|
||||||
</enum>
|
</enum>
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
<?xml version="1.0" encoding="UTF-8"?>
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
<enum name="UnknownEnum4">
|
<enum name="UnknownEnum4">
|
||||||
<enumerators>
|
<enumerators>
|
||||||
<enumerator ID="0x25234BDB" name="Unknown 1"/>
|
<enumerator ID="0x25234BDB" name="Unknown 1"/>
|
||||||
<enumerator ID="0xBC2A1A61" name="Unknown 2"/>
|
<enumerator ID="0xBC2A1A61" name="Unknown 2"/>
|
||||||
</enumerators>
|
</enumerators>
|
||||||
</enum>
|
</enum>
|
||||||
|
|
|
@ -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"/>
|
||||||
|
|
|
@ -39,7 +39,7 @@
|
||||||
<property name="Active" ID="0x255A4580:0x41435456"/>
|
<property name="Active" ID="0x255A4580:0x41435456"/>
|
||||||
</properties>
|
</properties>
|
||||||
<assets/>
|
<assets/>
|
||||||
<preview_scale>0.5</preview_scale>
|
<preview_scale>0.5</preview_scale>
|
||||||
<rotation_type>enabled</rotation_type>
|
<rotation_type>enabled</rotation_type>
|
||||||
<scale_type>enabled</scale_type>
|
<scale_type>enabled</scale_type>
|
||||||
</editor>
|
</editor>
|
||||||
|
|
|
@ -17,7 +17,7 @@
|
||||||
<property name="Active" ID="0x255A4580:0x41435456"/>
|
<property name="Active" ID="0x255A4580:0x41435456"/>
|
||||||
</properties>
|
</properties>
|
||||||
<assets/>
|
<assets/>
|
||||||
<preview_scale>0.5</preview_scale>
|
<preview_scale>0.5</preview_scale>
|
||||||
<rotation_type>enabled</rotation_type>
|
<rotation_type>enabled</rotation_type>
|
||||||
<scale_type>enabled</scale_type>
|
<scale_type>enabled</scale_type>
|
||||||
</editor>
|
</editor>
|
||||||
|
|
|
@ -150,9 +150,9 @@
|
||||||
<property name="Active" ID="0x255A4580:0x41435456"/>
|
<property name="Active" ID="0x255A4580:0x41435456"/>
|
||||||
</properties>
|
</properties>
|
||||||
<assets/>
|
<assets/>
|
||||||
<preview_scale>0.5</preview_scale>
|
<preview_scale>0.5</preview_scale>
|
||||||
<rotation_type>enabled</rotation_type>
|
<rotation_type>enabled</rotation_type>
|
||||||
<scale_type>volume</scale_type>
|
<scale_type>volume</scale_type>
|
||||||
<preview_volume shape="Box"/>
|
<preview_volume shape="Box"/>
|
||||||
</editor>
|
</editor>
|
||||||
</ScriptTemplate>
|
</ScriptTemplate>
|
||||||
|
|
|
@ -104,7 +104,7 @@
|
||||||
<model source="property">0x6C75E2EA:0xDAA9D4BE:0x5405F708</model>
|
<model source="property">0x6C75E2EA:0xDAA9D4BE:0x5405F708</model>
|
||||||
<model source="property">0x6C75E2EA:0xF361604C:0x5405F708</model>
|
<model source="property">0x6C75E2EA:0xF361604C:0x5405F708</model>
|
||||||
<model source="property">0x6C75E2EA:0x5D09F1DD:0x5405F708</model>
|
<model source="property">0x6C75E2EA:0x5D09F1DD:0x5405F708</model>
|
||||||
<collision source="property">0x0FC966DC</collision>
|
<collision source="property">0x0FC966DC</collision>
|
||||||
</assets>
|
</assets>
|
||||||
<rotation_type>enabled</rotation_type>
|
<rotation_type>enabled</rotation_type>
|
||||||
<scale_type>enabled</scale_type>
|
<scale_type>enabled</scale_type>
|
||||||
|
|
|
@ -39,7 +39,7 @@
|
||||||
<property name="Active" ID="0x255A4580:0x41435456"/>
|
<property name="Active" ID="0x255A4580:0x41435456"/>
|
||||||
</properties>
|
</properties>
|
||||||
<assets/>
|
<assets/>
|
||||||
<preview_scale>0.5</preview_scale>
|
<preview_scale>0.5</preview_scale>
|
||||||
<rotation_type>enabled</rotation_type>
|
<rotation_type>enabled</rotation_type>
|
||||||
<scale_type>enabled</scale_type>
|
<scale_type>enabled</scale_type>
|
||||||
</editor>
|
</editor>
|
||||||
|
|
|
@ -45,7 +45,7 @@
|
||||||
<property name="Active" ID="0x255A4580:0x41435456"/>
|
<property name="Active" ID="0x255A4580:0x41435456"/>
|
||||||
</properties>
|
</properties>
|
||||||
<assets/>
|
<assets/>
|
||||||
<preview_scale>0.5</preview_scale>
|
<preview_scale>0.5</preview_scale>
|
||||||
<rotation_type>enabled</rotation_type>
|
<rotation_type>enabled</rotation_type>
|
||||||
<scale_type>enabled</scale_type>
|
<scale_type>enabled</scale_type>
|
||||||
</editor>
|
</editor>
|
||||||
|
|
|
@ -28,7 +28,7 @@
|
||||||
<property name="Active" ID="0x255A4580:0x41435456"/>
|
<property name="Active" ID="0x255A4580:0x41435456"/>
|
||||||
</properties>
|
</properties>
|
||||||
<assets/>
|
<assets/>
|
||||||
<preview_scale>0.5</preview_scale>
|
<preview_scale>0.5</preview_scale>
|
||||||
<rotation_type>enabled</rotation_type>
|
<rotation_type>enabled</rotation_type>
|
||||||
<scale_type>enabled</scale_type>
|
<scale_type>enabled</scale_type>
|
||||||
</editor>
|
</editor>
|
||||||
|
|
|
@ -16,7 +16,7 @@
|
||||||
<property name="Active" ID="0x255A4580:0x41435456"/>
|
<property name="Active" ID="0x255A4580:0x41435456"/>
|
||||||
</properties>
|
</properties>
|
||||||
<assets/>
|
<assets/>
|
||||||
<preview_scale>0.5</preview_scale>
|
<preview_scale>0.5</preview_scale>
|
||||||
<rotation_type>enabled</rotation_type>
|
<rotation_type>enabled</rotation_type>
|
||||||
<scale_type>enabled</scale_type>
|
<scale_type>enabled</scale_type>
|
||||||
</editor>
|
</editor>
|
||||||
|
|
|
@ -31,9 +31,9 @@
|
||||||
<property name="Active" ID="0x255A4580:0x41435456"/>
|
<property name="Active" ID="0x255A4580:0x41435456"/>
|
||||||
</properties>
|
</properties>
|
||||||
<assets>
|
<assets>
|
||||||
<billboard source="file">script/common/AreaAttributes.txtr</billboard>
|
<billboard source="file">script/common/AreaAttributes.txtr</billboard>
|
||||||
</assets>
|
</assets>
|
||||||
<preview_scale>0.5</preview_scale>
|
<preview_scale>0.5</preview_scale>
|
||||||
<rotation_type>enabled</rotation_type>
|
<rotation_type>enabled</rotation_type>
|
||||||
<scale_type>enabled</scale_type>
|
<scale_type>enabled</scale_type>
|
||||||
</editor>
|
</editor>
|
||||||
|
|
|
@ -32,7 +32,7 @@
|
||||||
<property name="Active" ID="0x255A4580:0x41435456"/>
|
<property name="Active" ID="0x255A4580:0x41435456"/>
|
||||||
</properties>
|
</properties>
|
||||||
<assets/>
|
<assets/>
|
||||||
<preview_scale>0.5</preview_scale>
|
<preview_scale>0.5</preview_scale>
|
||||||
<rotation_type>enabled</rotation_type>
|
<rotation_type>enabled</rotation_type>
|
||||||
<scale_type>enabled</scale_type>
|
<scale_type>enabled</scale_type>
|
||||||
</editor>
|
</editor>
|
||||||
|
|
|
@ -54,7 +54,7 @@
|
||||||
<property name="Active" ID="0x255A4580:0x41435456"/>
|
<property name="Active" ID="0x255A4580:0x41435456"/>
|
||||||
</properties>
|
</properties>
|
||||||
<assets/>
|
<assets/>
|
||||||
<preview_scale>0.5</preview_scale>
|
<preview_scale>0.5</preview_scale>
|
||||||
<rotation_type>enabled</rotation_type>
|
<rotation_type>enabled</rotation_type>
|
||||||
<scale_type>enabled</scale_type>
|
<scale_type>enabled</scale_type>
|
||||||
</editor>
|
</editor>
|
||||||
|
|
|
@ -21,7 +21,7 @@
|
||||||
<property name="Active" ID="0x255A4580:0x41435456"/>
|
<property name="Active" ID="0x255A4580:0x41435456"/>
|
||||||
</properties>
|
</properties>
|
||||||
<assets/>
|
<assets/>
|
||||||
<preview_scale>0.5</preview_scale>
|
<preview_scale>0.5</preview_scale>
|
||||||
<rotation_type>enabled</rotation_type>
|
<rotation_type>enabled</rotation_type>
|
||||||
<scale_type>enabled</scale_type>
|
<scale_type>enabled</scale_type>
|
||||||
</editor>
|
</editor>
|
||||||
|
|
|
@ -61,7 +61,7 @@
|
||||||
<property name="Active" ID="0x255A4580:0x41435456"/>
|
<property name="Active" ID="0x255A4580:0x41435456"/>
|
||||||
</properties>
|
</properties>
|
||||||
<assets/>
|
<assets/>
|
||||||
<preview_scale>0.5</preview_scale>
|
<preview_scale>0.5</preview_scale>
|
||||||
<rotation_type>enabled</rotation_type>
|
<rotation_type>enabled</rotation_type>
|
||||||
<scale_type>enabled</scale_type>
|
<scale_type>enabled</scale_type>
|
||||||
</editor>
|
</editor>
|
||||||
|
|
|
@ -27,7 +27,7 @@
|
||||||
<property name="Active" ID="0x255A4580:0x41435456"/>
|
<property name="Active" ID="0x255A4580:0x41435456"/>
|
||||||
</properties>
|
</properties>
|
||||||
<assets/>
|
<assets/>
|
||||||
<preview_scale>0.5</preview_scale>
|
<preview_scale>0.5</preview_scale>
|
||||||
<rotation_type>enabled</rotation_type>
|
<rotation_type>enabled</rotation_type>
|
||||||
<scale_type>enabled</scale_type>
|
<scale_type>enabled</scale_type>
|
||||||
</editor>
|
</editor>
|
||||||
|
|
|
@ -27,7 +27,7 @@
|
||||||
<property name="Active" ID="0x255A4580:0x41435456"/>
|
<property name="Active" ID="0x255A4580:0x41435456"/>
|
||||||
</properties>
|
</properties>
|
||||||
<assets/>
|
<assets/>
|
||||||
<preview_scale>0.5</preview_scale>
|
<preview_scale>0.5</preview_scale>
|
||||||
<rotation_type>enabled</rotation_type>
|
<rotation_type>enabled</rotation_type>
|
||||||
<scale_type>enabled</scale_type>
|
<scale_type>enabled</scale_type>
|
||||||
</editor>
|
</editor>
|
||||||
|
|
|
@ -27,7 +27,7 @@
|
||||||
<property name="Active" ID="0x255A4580:0x41435456"/>
|
<property name="Active" ID="0x255A4580:0x41435456"/>
|
||||||
</properties>
|
</properties>
|
||||||
<assets/>
|
<assets/>
|
||||||
<preview_scale>0.5</preview_scale>
|
<preview_scale>0.5</preview_scale>
|
||||||
<rotation_type>enabled</rotation_type>
|
<rotation_type>enabled</rotation_type>
|
||||||
<scale_type>enabled</scale_type>
|
<scale_type>enabled</scale_type>
|
||||||
</editor>
|
</editor>
|
||||||
|
|
|
@ -30,7 +30,7 @@
|
||||||
<property name="Active" ID="0x255A4580:0x41435456"/>
|
<property name="Active" ID="0x255A4580:0x41435456"/>
|
||||||
</properties>
|
</properties>
|
||||||
<assets/>
|
<assets/>
|
||||||
<preview_scale>0.5</preview_scale>
|
<preview_scale>0.5</preview_scale>
|
||||||
<rotation_type>enabled</rotation_type>
|
<rotation_type>enabled</rotation_type>
|
||||||
<scale_type>enabled</scale_type>
|
<scale_type>enabled</scale_type>
|
||||||
</editor>
|
</editor>
|
||||||
|
|
|
@ -41,7 +41,7 @@
|
||||||
<property name="Active" ID="0x255A4580:0x41435456"/>
|
<property name="Active" ID="0x255A4580:0x41435456"/>
|
||||||
</properties>
|
</properties>
|
||||||
<assets/>
|
<assets/>
|
||||||
<preview_scale>0.5</preview_scale>
|
<preview_scale>0.5</preview_scale>
|
||||||
<rotation_type>enabled</rotation_type>
|
<rotation_type>enabled</rotation_type>
|
||||||
<scale_type>enabled</scale_type>
|
<scale_type>enabled</scale_type>
|
||||||
</editor>
|
</editor>
|
||||||
|
|
|
@ -243,7 +243,7 @@
|
||||||
<property name="Active" ID="0x255A4580:0x41435456"/>
|
<property name="Active" ID="0x255A4580:0x41435456"/>
|
||||||
</properties>
|
</properties>
|
||||||
<assets/>
|
<assets/>
|
||||||
<preview_scale>0.5</preview_scale>
|
<preview_scale>0.5</preview_scale>
|
||||||
<rotation_type>enabled</rotation_type>
|
<rotation_type>enabled</rotation_type>
|
||||||
<scale_type>enabled</scale_type>
|
<scale_type>enabled</scale_type>
|
||||||
</editor>
|
</editor>
|
||||||
|
|
|
@ -22,7 +22,7 @@
|
||||||
<property name="Active" ID="0x255A4580:0x41435456"/>
|
<property name="Active" ID="0x255A4580:0x41435456"/>
|
||||||
</properties>
|
</properties>
|
||||||
<assets/>
|
<assets/>
|
||||||
<preview_scale>0.5</preview_scale>
|
<preview_scale>0.5</preview_scale>
|
||||||
<rotation_type>enabled</rotation_type>
|
<rotation_type>enabled</rotation_type>
|
||||||
<scale_type>enabled</scale_type>
|
<scale_type>enabled</scale_type>
|
||||||
</editor>
|
</editor>
|
||||||
|
|
|
@ -33,7 +33,7 @@
|
||||||
<property name="Active" ID="0x255A4580:0x41435456"/>
|
<property name="Active" ID="0x255A4580:0x41435456"/>
|
||||||
</properties>
|
</properties>
|
||||||
<assets/>
|
<assets/>
|
||||||
<preview_scale>0.5</preview_scale>
|
<preview_scale>0.5</preview_scale>
|
||||||
<rotation_type>enabled</rotation_type>
|
<rotation_type>enabled</rotation_type>
|
||||||
<scale_type>enabled</scale_type>
|
<scale_type>enabled</scale_type>
|
||||||
</editor>
|
</editor>
|
||||||
|
|
|
@ -38,7 +38,7 @@
|
||||||
<property name="Active" ID="0x255A4580:0x41435456"/>
|
<property name="Active" ID="0x255A4580:0x41435456"/>
|
||||||
</properties>
|
</properties>
|
||||||
<assets/>
|
<assets/>
|
||||||
<preview_scale>0.5</preview_scale>
|
<preview_scale>0.5</preview_scale>
|
||||||
<rotation_type>enabled</rotation_type>
|
<rotation_type>enabled</rotation_type>
|
||||||
<scale_type>enabled</scale_type>
|
<scale_type>enabled</scale_type>
|
||||||
</editor>
|
</editor>
|
||||||
|
|
|
@ -35,7 +35,7 @@
|
||||||
<property name="Active" ID="0x255A4580:0x41435456"/>
|
<property name="Active" ID="0x255A4580:0x41435456"/>
|
||||||
</properties>
|
</properties>
|
||||||
<assets/>
|
<assets/>
|
||||||
<preview_scale>0.5</preview_scale>
|
<preview_scale>0.5</preview_scale>
|
||||||
<rotation_type>enabled</rotation_type>
|
<rotation_type>enabled</rotation_type>
|
||||||
<scale_type>enabled</scale_type>
|
<scale_type>enabled</scale_type>
|
||||||
</editor>
|
</editor>
|
||||||
|
|
|
@ -44,7 +44,7 @@
|
||||||
<property name="Active" ID="0x255A4580:0x41435456"/>
|
<property name="Active" ID="0x255A4580:0x41435456"/>
|
||||||
</properties>
|
</properties>
|
||||||
<assets/>
|
<assets/>
|
||||||
<preview_scale>0.5</preview_scale>
|
<preview_scale>0.5</preview_scale>
|
||||||
<rotation_type>enabled</rotation_type>
|
<rotation_type>enabled</rotation_type>
|
||||||
<scale_type>enabled</scale_type>
|
<scale_type>enabled</scale_type>
|
||||||
</editor>
|
</editor>
|
||||||
|
|
|
@ -75,7 +75,7 @@
|
||||||
<assets>
|
<assets>
|
||||||
<billboard source="file">script/common/ColorModulate.txtr</billboard>
|
<billboard source="file">script/common/ColorModulate.txtr</billboard>
|
||||||
</assets>
|
</assets>
|
||||||
<preview_scale>0.5</preview_scale>
|
<preview_scale>0.5</preview_scale>
|
||||||
<rotation_type>enabled</rotation_type>
|
<rotation_type>enabled</rotation_type>
|
||||||
<scale_type>enabled</scale_type>
|
<scale_type>enabled</scale_type>
|
||||||
</editor>
|
</editor>
|
||||||
|
|
|
@ -40,9 +40,9 @@
|
||||||
<property name="Active" ID="0x255A4580:0x41435456"/>
|
<property name="Active" ID="0x255A4580:0x41435456"/>
|
||||||
</properties>
|
</properties>
|
||||||
<assets>
|
<assets>
|
||||||
<billboard source="file">script/common/ConditionalRelay.txtr</billboard>
|
<billboard source="file">script/common/ConditionalRelay.txtr</billboard>
|
||||||
</assets>
|
</assets>
|
||||||
<preview_scale>0.5</preview_scale>
|
<preview_scale>0.5</preview_scale>
|
||||||
<rotation_type>enabled</rotation_type>
|
<rotation_type>enabled</rotation_type>
|
||||||
<scale_type>enabled</scale_type>
|
<scale_type>enabled</scale_type>
|
||||||
</editor>
|
</editor>
|
||||||
|
|
|
@ -29,7 +29,7 @@
|
||||||
<property name="Active" ID="0x255A4580:0x41435456"/>
|
<property name="Active" ID="0x255A4580:0x41435456"/>
|
||||||
</properties>
|
</properties>
|
||||||
<assets/>
|
<assets/>
|
||||||
<preview_scale>0.5</preview_scale>
|
<preview_scale>0.5</preview_scale>
|
||||||
<rotation_type>enabled</rotation_type>
|
<rotation_type>enabled</rotation_type>
|
||||||
<scale_type>enabled</scale_type>
|
<scale_type>enabled</scale_type>
|
||||||
</editor>
|
</editor>
|
||||||
|
|
|
@ -61,9 +61,9 @@
|
||||||
<property name="Active" ID="0x255A4580:0x41435456"/>
|
<property name="Active" ID="0x255A4580:0x41435456"/>
|
||||||
</properties>
|
</properties>
|
||||||
<assets>
|
<assets>
|
||||||
<billboard source="file">script/common/Counter.txtr</billboard>
|
<billboard source="file">script/common/Counter.txtr</billboard>
|
||||||
</assets>
|
</assets>
|
||||||
<preview_scale>0.5</preview_scale>
|
<preview_scale>0.5</preview_scale>
|
||||||
<rotation_type>enabled</rotation_type>
|
<rotation_type>enabled</rotation_type>
|
||||||
<scale_type>enabled</scale_type>
|
<scale_type>enabled</scale_type>
|
||||||
</editor>
|
</editor>
|
||||||
|
|
|
@ -76,7 +76,7 @@
|
||||||
<property name="Active" ID="0x255A4580:0x41435456"/>
|
<property name="Active" ID="0x255A4580:0x41435456"/>
|
||||||
</properties>
|
</properties>
|
||||||
<assets/>
|
<assets/>
|
||||||
<preview_scale>0.5</preview_scale>
|
<preview_scale>0.5</preview_scale>
|
||||||
<rotation_type>enabled</rotation_type>
|
<rotation_type>enabled</rotation_type>
|
||||||
<scale_type>enabled</scale_type>
|
<scale_type>enabled</scale_type>
|
||||||
</editor>
|
</editor>
|
||||||
|
|
|
@ -16,7 +16,7 @@
|
||||||
<property name="Active" ID="0x255A4580:0x41435456"/>
|
<property name="Active" ID="0x255A4580:0x41435456"/>
|
||||||
</properties>
|
</properties>
|
||||||
<assets/>
|
<assets/>
|
||||||
<preview_scale>0.5</preview_scale>
|
<preview_scale>0.5</preview_scale>
|
||||||
<rotation_type>enabled</rotation_type>
|
<rotation_type>enabled</rotation_type>
|
||||||
<scale_type>enabled</scale_type>
|
<scale_type>enabled</scale_type>
|
||||||
</editor>
|
</editor>
|
||||||
|
|
|
@ -16,7 +16,7 @@
|
||||||
<property name="Active" ID="0x255A4580:0x41435456"/>
|
<property name="Active" ID="0x255A4580:0x41435456"/>
|
||||||
</properties>
|
</properties>
|
||||||
<assets/>
|
<assets/>
|
||||||
<preview_scale>0.5</preview_scale>
|
<preview_scale>0.5</preview_scale>
|
||||||
<rotation_type>enabled</rotation_type>
|
<rotation_type>enabled</rotation_type>
|
||||||
<scale_type>enabled</scale_type>
|
<scale_type>enabled</scale_type>
|
||||||
</editor>
|
</editor>
|
||||||
|
|
|
@ -26,10 +26,10 @@
|
||||||
<property name="Active" ID="0x255A4580:0x41435456"/>
|
<property name="Active" ID="0x255A4580:0x41435456"/>
|
||||||
</properties>
|
</properties>
|
||||||
<assets>
|
<assets>
|
||||||
<billboard source="file">script/common/DamageableTrigger.txtr</billboard>
|
<billboard source="file">script/common/DamageableTrigger.txtr</billboard>
|
||||||
</assets>
|
</assets>
|
||||||
<rotation_type>enabled</rotation_type>
|
<rotation_type>enabled</rotation_type>
|
||||||
<scale_type>volume</scale_type>
|
<scale_type>volume</scale_type>
|
||||||
<preview_volume shape="AxisAlignedBox"/>
|
<preview_volume shape="AxisAlignedBox"/>
|
||||||
</editor>
|
</editor>
|
||||||
</ScriptTemplate>
|
</ScriptTemplate>
|
||||||
|
|
|
@ -26,6 +26,6 @@
|
||||||
<assets/>
|
<assets/>
|
||||||
<rotation_type>enabled</rotation_type>
|
<rotation_type>enabled</rotation_type>
|
||||||
<scale_type>volume</scale_type>
|
<scale_type>volume</scale_type>
|
||||||
<preview_volume shape="Box"/>
|
<preview_volume shape="Box"/>
|
||||||
</editor>
|
</editor>
|
||||||
</ScriptTemplate>
|
</ScriptTemplate>
|
||||||
|
|
|
@ -45,7 +45,7 @@
|
||||||
<property name="Active" ID="0x255A4580:0x41435456"/>
|
<property name="Active" ID="0x255A4580:0x41435456"/>
|
||||||
</properties>
|
</properties>
|
||||||
<assets/>
|
<assets/>
|
||||||
<preview_scale>0.5</preview_scale>
|
<preview_scale>0.5</preview_scale>
|
||||||
<rotation_type>enabled</rotation_type>
|
<rotation_type>enabled</rotation_type>
|
||||||
<scale_type>enabled</scale_type>
|
<scale_type>enabled</scale_type>
|
||||||
</editor>
|
</editor>
|
||||||
|
|
|
@ -62,9 +62,9 @@
|
||||||
<property name="Active" ID="0x255A4580:0x41435456"/>
|
<property name="Active" ID="0x255A4580:0x41435456"/>
|
||||||
</properties>
|
</properties>
|
||||||
<assets>
|
<assets>
|
||||||
<billboard source="file">script/common/DistanceFog.txtr</billboard>
|
<billboard source="file">script/common/DistanceFog.txtr</billboard>
|
||||||
</assets>
|
</assets>
|
||||||
<preview_scale>0.5</preview_scale>
|
<preview_scale>0.5</preview_scale>
|
||||||
<rotation_type>enabled</rotation_type>
|
<rotation_type>enabled</rotation_type>
|
||||||
<scale_type>enabled</scale_type>
|
<scale_type>enabled</scale_type>
|
||||||
</editor>
|
</editor>
|
||||||
|
|
|
@ -124,7 +124,7 @@
|
||||||
<property name="Active" ID="0x255A4580:0x41435456"/>
|
<property name="Active" ID="0x255A4580:0x41435456"/>
|
||||||
</properties>
|
</properties>
|
||||||
<assets/>
|
<assets/>
|
||||||
<preview_scale>0.5</preview_scale>
|
<preview_scale>0.5</preview_scale>
|
||||||
<rotation_type>enabled</rotation_type>
|
<rotation_type>enabled</rotation_type>
|
||||||
<scale_type>enabled</scale_type>
|
<scale_type>enabled</scale_type>
|
||||||
</editor>
|
</editor>
|
||||||
|
|
|
@ -21,7 +21,7 @@
|
||||||
<property name="Active" ID="0x255A4580:0x41435456"/>
|
<property name="Active" ID="0x255A4580:0x41435456"/>
|
||||||
</properties>
|
</properties>
|
||||||
<assets/>
|
<assets/>
|
||||||
<preview_scale>0.5</preview_scale>
|
<preview_scale>0.5</preview_scale>
|
||||||
<rotation_type>enabled</rotation_type>
|
<rotation_type>enabled</rotation_type>
|
||||||
<scale_type>enabled</scale_type>
|
<scale_type>enabled</scale_type>
|
||||||
</editor>
|
</editor>
|
||||||
|
|
|
@ -79,7 +79,7 @@
|
||||||
</properties>
|
</properties>
|
||||||
<assets>
|
<assets>
|
||||||
<billboard source="file">script/common/Effect.txtr</billboard>
|
<billboard source="file">script/common/Effect.txtr</billboard>
|
||||||
</assets>
|
</assets>
|
||||||
<rotation_type>enabled</rotation_type>
|
<rotation_type>enabled</rotation_type>
|
||||||
<scale_type>enabled</scale_type>
|
<scale_type>enabled</scale_type>
|
||||||
</editor>
|
</editor>
|
||||||
|
|
|
@ -21,7 +21,7 @@
|
||||||
<property name="Active" ID="0x255A4580:0x41435456"/>
|
<property name="Active" ID="0x255A4580:0x41435456"/>
|
||||||
</properties>
|
</properties>
|
||||||
<assets/>
|
<assets/>
|
||||||
<preview_scale>0.5</preview_scale>
|
<preview_scale>0.5</preview_scale>
|
||||||
<rotation_type>enabled</rotation_type>
|
<rotation_type>enabled</rotation_type>
|
||||||
<scale_type>enabled</scale_type>
|
<scale_type>enabled</scale_type>
|
||||||
</editor>
|
</editor>
|
||||||
|
|
|
@ -27,7 +27,7 @@
|
||||||
<property name="Active" ID="0x255A4580:0x41435456"/>
|
<property name="Active" ID="0x255A4580:0x41435456"/>
|
||||||
</properties>
|
</properties>
|
||||||
<assets/>
|
<assets/>
|
||||||
<preview_scale>0.5</preview_scale>
|
<preview_scale>0.5</preview_scale>
|
||||||
<rotation_type>enabled</rotation_type>
|
<rotation_type>enabled</rotation_type>
|
||||||
<scale_type>enabled</scale_type>
|
<scale_type>enabled</scale_type>
|
||||||
</editor>
|
</editor>
|
||||||
|
|
|
@ -60,7 +60,7 @@
|
||||||
<property name="Active" ID="0x255A4580:0x41435456"/>
|
<property name="Active" ID="0x255A4580:0x41435456"/>
|
||||||
</properties>
|
</properties>
|
||||||
<assets/>
|
<assets/>
|
||||||
<preview_scale>0.5</preview_scale>
|
<preview_scale>0.5</preview_scale>
|
||||||
<rotation_type>enabled</rotation_type>
|
<rotation_type>enabled</rotation_type>
|
||||||
<scale_type>enabled</scale_type>
|
<scale_type>enabled</scale_type>
|
||||||
</editor>
|
</editor>
|
||||||
|
|
|
@ -15,7 +15,7 @@
|
||||||
<property name="Active" ID="0x255A4580:0x41435456"/>
|
<property name="Active" ID="0x255A4580:0x41435456"/>
|
||||||
</properties>
|
</properties>
|
||||||
<assets/>
|
<assets/>
|
||||||
<preview_scale>0.5</preview_scale>
|
<preview_scale>0.5</preview_scale>
|
||||||
<rotation_type>enabled</rotation_type>
|
<rotation_type>enabled</rotation_type>
|
||||||
<scale_type>enabled</scale_type>
|
<scale_type>enabled</scale_type>
|
||||||
</editor>
|
</editor>
|
||||||
|
|
|
@ -29,7 +29,7 @@
|
||||||
<property name="Active" ID="0x255A4580:0x41435456"/>
|
<property name="Active" ID="0x255A4580:0x41435456"/>
|
||||||
</properties>
|
</properties>
|
||||||
<assets/>
|
<assets/>
|
||||||
<preview_scale>0.5</preview_scale>
|
<preview_scale>0.5</preview_scale>
|
||||||
<rotation_type>enabled</rotation_type>
|
<rotation_type>enabled</rotation_type>
|
||||||
<scale_type>enabled</scale_type>
|
<scale_type>enabled</scale_type>
|
||||||
</editor>
|
</editor>
|
||||||
|
|
|
@ -15,7 +15,7 @@
|
||||||
<property name="Active" ID="0x255A4580:0x41435456"/>
|
<property name="Active" ID="0x255A4580:0x41435456"/>
|
||||||
</properties>
|
</properties>
|
||||||
<assets/>
|
<assets/>
|
||||||
<preview_scale>0.5</preview_scale>
|
<preview_scale>0.5</preview_scale>
|
||||||
<rotation_type>enabled</rotation_type>
|
<rotation_type>enabled</rotation_type>
|
||||||
<scale_type>enabled</scale_type>
|
<scale_type>enabled</scale_type>
|
||||||
</editor>
|
</editor>
|
||||||
|
|
|
@ -28,7 +28,7 @@
|
||||||
<property name="Active" ID="0x255A4580:0x41435456"/>
|
<property name="Active" ID="0x255A4580:0x41435456"/>
|
||||||
</properties>
|
</properties>
|
||||||
<assets/>
|
<assets/>
|
||||||
<preview_scale>0.5</preview_scale>
|
<preview_scale>0.5</preview_scale>
|
||||||
<rotation_type>enabled</rotation_type>
|
<rotation_type>enabled</rotation_type>
|
||||||
<scale_type>enabled</scale_type>
|
<scale_type>enabled</scale_type>
|
||||||
</editor>
|
</editor>
|
||||||
|
|
|
@ -56,7 +56,7 @@
|
||||||
<assets>
|
<assets>
|
||||||
<billboard source="file">script/common/Generator.txtr</billboard>
|
<billboard source="file">script/common/Generator.txtr</billboard>
|
||||||
</assets>
|
</assets>
|
||||||
<preview_scale>0.5</preview_scale>
|
<preview_scale>0.5</preview_scale>
|
||||||
<rotation_type>enabled</rotation_type>
|
<rotation_type>enabled</rotation_type>
|
||||||
<scale_type>enabled</scale_type>
|
<scale_type>enabled</scale_type>
|
||||||
</editor>
|
</editor>
|
||||||
|
|
|
@ -25,7 +25,7 @@
|
||||||
<property name="Active" ID="0x255A4580:0x41435456"/>
|
<property name="Active" ID="0x255A4580:0x41435456"/>
|
||||||
</properties>
|
</properties>
|
||||||
<assets/>
|
<assets/>
|
||||||
<preview_scale>0.5</preview_scale>
|
<preview_scale>0.5</preview_scale>
|
||||||
<rotation_type>enabled</rotation_type>
|
<rotation_type>enabled</rotation_type>
|
||||||
<scale_type>enabled</scale_type>
|
<scale_type>enabled</scale_type>
|
||||||
</editor>
|
</editor>
|
||||||
|
|
|
@ -349,7 +349,7 @@
|
||||||
<property name="Active" ID="0x255A4580:0x41435456"/>
|
<property name="Active" ID="0x255A4580:0x41435456"/>
|
||||||
</properties>
|
</properties>
|
||||||
<assets/>
|
<assets/>
|
||||||
<preview_scale>0.5</preview_scale>
|
<preview_scale>0.5</preview_scale>
|
||||||
<rotation_type>enabled</rotation_type>
|
<rotation_type>enabled</rotation_type>
|
||||||
<scale_type>enabled</scale_type>
|
<scale_type>enabled</scale_type>
|
||||||
</editor>
|
</editor>
|
||||||
|
|
|
@ -15,7 +15,7 @@
|
||||||
<property name="Active" ID="0x255A4580:0x41435456"/>
|
<property name="Active" ID="0x255A4580:0x41435456"/>
|
||||||
</properties>
|
</properties>
|
||||||
<assets/>
|
<assets/>
|
||||||
<preview_scale>0.5</preview_scale>
|
<preview_scale>0.5</preview_scale>
|
||||||
<rotation_type>enabled</rotation_type>
|
<rotation_type>enabled</rotation_type>
|
||||||
<scale_type>enabled</scale_type>
|
<scale_type>enabled</scale_type>
|
||||||
</editor>
|
</editor>
|
||||||
|
|
|
@ -56,7 +56,7 @@
|
||||||
<property name="Active" ID="0x255A4580:0x41435456"/>
|
<property name="Active" ID="0x255A4580:0x41435456"/>
|
||||||
</properties>
|
</properties>
|
||||||
<assets/>
|
<assets/>
|
||||||
<preview_scale>0.5</preview_scale>
|
<preview_scale>0.5</preview_scale>
|
||||||
<rotation_type>enabled</rotation_type>
|
<rotation_type>enabled</rotation_type>
|
||||||
<scale_type>enabled</scale_type>
|
<scale_type>enabled</scale_type>
|
||||||
</editor>
|
</editor>
|
||||||
|
|
|
@ -61,7 +61,7 @@
|
||||||
<property name="Active" ID="0x255A4580:0x41435456"/>
|
<property name="Active" ID="0x255A4580:0x41435456"/>
|
||||||
</properties>
|
</properties>
|
||||||
<assets/>
|
<assets/>
|
||||||
<preview_scale>0.5</preview_scale>
|
<preview_scale>0.5</preview_scale>
|
||||||
<rotation_type>enabled</rotation_type>
|
<rotation_type>enabled</rotation_type>
|
||||||
<scale_type>enabled</scale_type>
|
<scale_type>enabled</scale_type>
|
||||||
</editor>
|
</editor>
|
||||||
|
|
|
@ -24,7 +24,7 @@
|
||||||
<property name="Active" ID="0x255A4580:0x41435456"/>
|
<property name="Active" ID="0x255A4580:0x41435456"/>
|
||||||
</properties>
|
</properties>
|
||||||
<assets/>
|
<assets/>
|
||||||
<preview_scale>0.5</preview_scale>
|
<preview_scale>0.5</preview_scale>
|
||||||
<rotation_type>enabled</rotation_type>
|
<rotation_type>enabled</rotation_type>
|
||||||
<scale_type>enabled</scale_type>
|
<scale_type>enabled</scale_type>
|
||||||
</editor>
|
</editor>
|
||||||
|
|
|
@ -24,7 +24,7 @@
|
||||||
<property name="Active" ID="0x255A4580:0x41435456"/>
|
<property name="Active" ID="0x255A4580:0x41435456"/>
|
||||||
</properties>
|
</properties>
|
||||||
<assets/>
|
<assets/>
|
||||||
<preview_scale>0.5</preview_scale>
|
<preview_scale>0.5</preview_scale>
|
||||||
<rotation_type>enabled</rotation_type>
|
<rotation_type>enabled</rotation_type>
|
||||||
<scale_type>enabled</scale_type>
|
<scale_type>enabled</scale_type>
|
||||||
</editor>
|
</editor>
|
||||||
|
|
|
@ -23,8 +23,8 @@
|
||||||
</properties>
|
</properties>
|
||||||
<assets>
|
<assets>
|
||||||
<billboard source="file">script/common/MemoryRelay.txtr</billboard>
|
<billboard source="file">script/common/MemoryRelay.txtr</billboard>
|
||||||
</assets>
|
</assets>
|
||||||
<preview_scale>0.5</preview_scale>
|
<preview_scale>0.5</preview_scale>
|
||||||
<rotation_type>enabled</rotation_type>
|
<rotation_type>enabled</rotation_type>
|
||||||
<scale_type>enabled</scale_type>
|
<scale_type>enabled</scale_type>
|
||||||
</editor>
|
</editor>
|
||||||
|
|
|
@ -111,7 +111,7 @@
|
||||||
<property name="Active" ID="0x255A4580:0x41435456"/>
|
<property name="Active" ID="0x255A4580:0x41435456"/>
|
||||||
</properties>
|
</properties>
|
||||||
<assets/>
|
<assets/>
|
||||||
<preview_scale>0.5</preview_scale>
|
<preview_scale>0.5</preview_scale>
|
||||||
<rotation_type>enabled</rotation_type>
|
<rotation_type>enabled</rotation_type>
|
||||||
<scale_type>enabled</scale_type>
|
<scale_type>enabled</scale_type>
|
||||||
</editor>
|
</editor>
|
||||||
|
|
|
@ -42,7 +42,7 @@
|
||||||
<property name="Active" ID="0x255A4580:0x41435456"/>
|
<property name="Active" ID="0x255A4580:0x41435456"/>
|
||||||
</properties>
|
</properties>
|
||||||
<assets/>
|
<assets/>
|
||||||
<preview_scale>0.5</preview_scale>
|
<preview_scale>0.5</preview_scale>
|
||||||
<rotation_type>enabled</rotation_type>
|
<rotation_type>enabled</rotation_type>
|
||||||
<scale_type>enabled</scale_type>
|
<scale_type>enabled</scale_type>
|
||||||
</editor>
|
</editor>
|
||||||
|
|
|
@ -18,7 +18,7 @@
|
||||||
<property name="Active" ID="0x255A4580:0x41435456"/>
|
<property name="Active" ID="0x255A4580:0x41435456"/>
|
||||||
</properties>
|
</properties>
|
||||||
<assets/>
|
<assets/>
|
||||||
<preview_scale>0.5</preview_scale>
|
<preview_scale>0.5</preview_scale>
|
||||||
<rotation_type>enabled</rotation_type>
|
<rotation_type>enabled</rotation_type>
|
||||||
<scale_type>enabled</scale_type>
|
<scale_type>enabled</scale_type>
|
||||||
</editor>
|
</editor>
|
||||||
|
|
|
@ -52,7 +52,7 @@
|
||||||
<property name="Active" ID="0x255A4580:0x41435456"/>
|
<property name="Active" ID="0x255A4580:0x41435456"/>
|
||||||
</properties>
|
</properties>
|
||||||
<assets/>
|
<assets/>
|
||||||
<preview_scale>0.5</preview_scale>
|
<preview_scale>0.5</preview_scale>
|
||||||
<rotation_type>enabled</rotation_type>
|
<rotation_type>enabled</rotation_type>
|
||||||
<scale_type>enabled</scale_type>
|
<scale_type>enabled</scale_type>
|
||||||
</editor>
|
</editor>
|
||||||
|
|
|
@ -58,7 +58,7 @@
|
||||||
<property name="Active" ID="0x255A4580:0x41435456"/>
|
<property name="Active" ID="0x255A4580:0x41435456"/>
|
||||||
</properties>
|
</properties>
|
||||||
<assets/>
|
<assets/>
|
||||||
<preview_scale>0.5</preview_scale>
|
<preview_scale>0.5</preview_scale>
|
||||||
<rotation_type>enabled</rotation_type>
|
<rotation_type>enabled</rotation_type>
|
||||||
<scale_type>enabled</scale_type>
|
<scale_type>enabled</scale_type>
|
||||||
</editor>
|
</editor>
|
||||||
|
|
|
@ -19,7 +19,7 @@
|
||||||
<property name="Active" ID="0x255A4580:0x41435456"/>
|
<property name="Active" ID="0x255A4580:0x41435456"/>
|
||||||
</properties>
|
</properties>
|
||||||
<assets/>
|
<assets/>
|
||||||
<preview_scale>0.5</preview_scale>
|
<preview_scale>0.5</preview_scale>
|
||||||
<rotation_type>enabled</rotation_type>
|
<rotation_type>enabled</rotation_type>
|
||||||
<scale_type>enabled</scale_type>
|
<scale_type>enabled</scale_type>
|
||||||
</editor>
|
</editor>
|
||||||
|
|
|
@ -19,7 +19,7 @@
|
||||||
<property name="Active" ID="0x255A4580:0x41435456"/>
|
<property name="Active" ID="0x255A4580:0x41435456"/>
|
||||||
</properties>
|
</properties>
|
||||||
<assets/>
|
<assets/>
|
||||||
<preview_scale>0.5</preview_scale>
|
<preview_scale>0.5</preview_scale>
|
||||||
<rotation_type>enabled</rotation_type>
|
<rotation_type>enabled</rotation_type>
|
||||||
<scale_type>enabled</scale_type>
|
<scale_type>enabled</scale_type>
|
||||||
</editor>
|
</editor>
|
||||||
|
|
|
@ -35,7 +35,7 @@
|
||||||
<property name="Active" ID="0x255A4580:0x41435456"/>
|
<property name="Active" ID="0x255A4580:0x41435456"/>
|
||||||
</properties>
|
</properties>
|
||||||
<assets/>
|
<assets/>
|
||||||
<preview_scale>0.5</preview_scale>
|
<preview_scale>0.5</preview_scale>
|
||||||
<rotation_type>enabled</rotation_type>
|
<rotation_type>enabled</rotation_type>
|
||||||
<scale_type>enabled</scale_type>
|
<scale_type>enabled</scale_type>
|
||||||
</editor>
|
</editor>
|
||||||
|
|
|
@ -111,7 +111,7 @@
|
||||||
<assets>
|
<assets>
|
||||||
<animparams source="property">0xA3D63F44</animparams>
|
<animparams source="property">0xA3D63F44</animparams>
|
||||||
<model source="property">0xC27FFA8F</model>
|
<model source="property">0xC27FFA8F</model>
|
||||||
<collision source="property">0x0FC966DC</collision>
|
<collision source="property">0x0FC966DC</collision>
|
||||||
</assets>
|
</assets>
|
||||||
<rotation_type>enabled</rotation_type>
|
<rotation_type>enabled</rotation_type>
|
||||||
<scale_type>enabled</scale_type>
|
<scale_type>enabled</scale_type>
|
||||||
|
|
|
@ -69,7 +69,7 @@
|
||||||
<property name="Active" ID="0x255A4580:0x41435456"/>
|
<property name="Active" ID="0x255A4580:0x41435456"/>
|
||||||
</properties>
|
</properties>
|
||||||
<assets/>
|
<assets/>
|
||||||
<preview_scale>0.5</preview_scale>
|
<preview_scale>0.5</preview_scale>
|
||||||
<rotation_type>enabled</rotation_type>
|
<rotation_type>enabled</rotation_type>
|
||||||
<scale_type>enabled</scale_type>
|
<scale_type>enabled</scale_type>
|
||||||
</editor>
|
</editor>
|
||||||
|
|
|
@ -50,7 +50,7 @@
|
||||||
<property name="Active" ID="0x255A4580:0x41435456"/>
|
<property name="Active" ID="0x255A4580:0x41435456"/>
|
||||||
</properties>
|
</properties>
|
||||||
<assets/>
|
<assets/>
|
||||||
<preview_scale>0.5</preview_scale>
|
<preview_scale>0.5</preview_scale>
|
||||||
<rotation_type>enabled</rotation_type>
|
<rotation_type>enabled</rotation_type>
|
||||||
<scale_type>enabled</scale_type>
|
<scale_type>enabled</scale_type>
|
||||||
</editor>
|
</editor>
|
||||||
|
|
|
@ -18,7 +18,7 @@
|
||||||
<property name="Active" ID="0x255A4580:0x41435456"/>
|
<property name="Active" ID="0x255A4580:0x41435456"/>
|
||||||
</properties>
|
</properties>
|
||||||
<assets/>
|
<assets/>
|
||||||
<preview_scale>0.5</preview_scale>
|
<preview_scale>0.5</preview_scale>
|
||||||
<rotation_type>enabled</rotation_type>
|
<rotation_type>enabled</rotation_type>
|
||||||
<scale_type>enabled</scale_type>
|
<scale_type>enabled</scale_type>
|
||||||
</editor>
|
</editor>
|
||||||
|
|
|
@ -60,7 +60,7 @@
|
||||||
<property name="Active" ID="0x255A4580:0x41435456"/>
|
<property name="Active" ID="0x255A4580:0x41435456"/>
|
||||||
</properties>
|
</properties>
|
||||||
<assets/>
|
<assets/>
|
||||||
<preview_scale>0.5</preview_scale>
|
<preview_scale>0.5</preview_scale>
|
||||||
<rotation_type>enabled</rotation_type>
|
<rotation_type>enabled</rotation_type>
|
||||||
<scale_type>enabled</scale_type>
|
<scale_type>enabled</scale_type>
|
||||||
</editor>
|
</editor>
|
||||||
|
|
|
@ -28,7 +28,7 @@
|
||||||
<property name="Active" ID="0x255A4580:0x41435456"/>
|
<property name="Active" ID="0x255A4580:0x41435456"/>
|
||||||
</properties>
|
</properties>
|
||||||
<assets/>
|
<assets/>
|
||||||
<preview_scale>0.5</preview_scale>
|
<preview_scale>0.5</preview_scale>
|
||||||
<rotation_type>enabled</rotation_type>
|
<rotation_type>enabled</rotation_type>
|
||||||
<scale_type>enabled</scale_type>
|
<scale_type>enabled</scale_type>
|
||||||
</editor>
|
</editor>
|
||||||
|
|
|
@ -44,8 +44,8 @@
|
||||||
</properties>
|
</properties>
|
||||||
<assets>
|
<assets>
|
||||||
<billboard source="file">script/common/RandomRelay.txtr</billboard>
|
<billboard source="file">script/common/RandomRelay.txtr</billboard>
|
||||||
</assets>
|
</assets>
|
||||||
<preview_scale>0.5</preview_scale>
|
<preview_scale>0.5</preview_scale>
|
||||||
<rotation_type>enabled</rotation_type>
|
<rotation_type>enabled</rotation_type>
|
||||||
<scale_type>enabled</scale_type>
|
<scale_type>enabled</scale_type>
|
||||||
</editor>
|
</editor>
|
||||||
|
|
|
@ -19,8 +19,8 @@
|
||||||
</properties>
|
</properties>
|
||||||
<assets>
|
<assets>
|
||||||
<billboard source="file">script/common/Relay.txtr</billboard>
|
<billboard source="file">script/common/Relay.txtr</billboard>
|
||||||
</assets>
|
</assets>
|
||||||
<preview_scale>0.5</preview_scale>
|
<preview_scale>0.5</preview_scale>
|
||||||
<rotation_type>enabled</rotation_type>
|
<rotation_type>enabled</rotation_type>
|
||||||
<scale_type>enabled</scale_type>
|
<scale_type>enabled</scale_type>
|
||||||
</editor>
|
</editor>
|
||||||
|
|
|
@ -33,7 +33,7 @@
|
||||||
<property name="Active" ID="0x255A4580:0x41435456"/>
|
<property name="Active" ID="0x255A4580:0x41435456"/>
|
||||||
</properties>
|
</properties>
|
||||||
<assets/>
|
<assets/>
|
||||||
<preview_scale>0.5</preview_scale>
|
<preview_scale>0.5</preview_scale>
|
||||||
<rotation_type>enabled</rotation_type>
|
<rotation_type>enabled</rotation_type>
|
||||||
<scale_type>enabled</scale_type>
|
<scale_type>enabled</scale_type>
|
||||||
</editor>
|
</editor>
|
||||||
|
|
|
@ -23,7 +23,7 @@
|
||||||
<property name="Active" ID="0x255A4580:0x41435456"/>
|
<property name="Active" ID="0x255A4580:0x41435456"/>
|
||||||
</properties>
|
</properties>
|
||||||
<assets/>
|
<assets/>
|
||||||
<preview_scale>0.5</preview_scale>
|
<preview_scale>0.5</preview_scale>
|
||||||
<rotation_type>enabled</rotation_type>
|
<rotation_type>enabled</rotation_type>
|
||||||
<scale_type>enabled</scale_type>
|
<scale_type>enabled</scale_type>
|
||||||
</editor>
|
</editor>
|
||||||
|
|
|
@ -59,7 +59,7 @@
|
||||||
<property name="Active" ID="0x255A4580:0x41435456"/>
|
<property name="Active" ID="0x255A4580:0x41435456"/>
|
||||||
</properties>
|
</properties>
|
||||||
<assets/>
|
<assets/>
|
||||||
<preview_scale>0.5</preview_scale>
|
<preview_scale>0.5</preview_scale>
|
||||||
<rotation_type>enabled</rotation_type>
|
<rotation_type>enabled</rotation_type>
|
||||||
<scale_type>enabled</scale_type>
|
<scale_type>enabled</scale_type>
|
||||||
</editor>
|
</editor>
|
||||||
|
|
|
@ -19,7 +19,7 @@
|
||||||
<property name="Active" ID="0x255A4580:0x41435456"/>
|
<property name="Active" ID="0x255A4580:0x41435456"/>
|
||||||
</properties>
|
</properties>
|
||||||
<assets/>
|
<assets/>
|
||||||
<preview_scale>0.5</preview_scale>
|
<preview_scale>0.5</preview_scale>
|
||||||
<rotation_type>enabled</rotation_type>
|
<rotation_type>enabled</rotation_type>
|
||||||
<scale_type>enabled</scale_type>
|
<scale_type>enabled</scale_type>
|
||||||
</editor>
|
</editor>
|
||||||
|
|
|
@ -4,25 +4,32 @@
|
||||||
<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">
|
||||||
<array ID="0x01" name="Activation Times">
|
<default>0</default>
|
||||||
<element_name>Activation Time</element_name>
|
</property>
|
||||||
<properties>
|
<array ID="0x01" name="Activation Times">
|
||||||
<property ID="0x00" name="Time" type="float" />
|
<element_name>Activation Time</element_name>
|
||||||
<property ID="0x01" name="Unknown 1" type="long">
|
<properties>
|
||||||
<description>Always 0</description>
|
<property ID="0x00" name="Time" type="float">
|
||||||
</property>
|
<default>0.0</default>
|
||||||
<property ID="0x02" name="Unknown 2" type="long"/>
|
</property>
|
||||||
<property ID="0x03" name="Unknown 3" type="long">
|
<property ID="0x01" name="Unknown 1" type="long">
|
||||||
<description>Always 0</description>
|
<default>0</default>
|
||||||
</property>
|
<description>Always 0</description>
|
||||||
</properties>
|
</property>
|
||||||
</array>
|
<property ID="0x02" name="Unknown 2" type="long">
|
||||||
|
<default>0</default>
|
||||||
|
</property>
|
||||||
|
<property ID="0x03" name="Unknown 3" type="long">
|
||||||
|
<default>0</default>
|
||||||
|
<description>Always 0</description>
|
||||||
|
</property>
|
||||||
|
</properties>
|
||||||
|
</array>
|
||||||
</properties>
|
</properties>
|
||||||
</array>
|
</array>
|
||||||
<property ID="0xB8BD2175" type="float">
|
<property ID="0xB8BD2175" type="float">
|
||||||
<default>0.0</default>
|
<default>0.0</default>
|
||||||
</property>
|
</property>
|
||||||
|
@ -55,7 +62,7 @@
|
||||||
<assets>
|
<assets>
|
||||||
<billboard source="file">script/common/SequenceTimer.txtr</billboard>
|
<billboard source="file">script/common/SequenceTimer.txtr</billboard>
|
||||||
</assets>
|
</assets>
|
||||||
<preview_scale>0.5</preview_scale>
|
<preview_scale>0.5</preview_scale>
|
||||||
<rotation_type>enabled</rotation_type>
|
<rotation_type>enabled</rotation_type>
|
||||||
<scale_type>enabled</scale_type>
|
<scale_type>enabled</scale_type>
|
||||||
</editor>
|
</editor>
|
||||||
|
|
|
@ -19,7 +19,7 @@
|
||||||
<property name="Active" ID="0x255A4580:0x41435456"/>
|
<property name="Active" ID="0x255A4580:0x41435456"/>
|
||||||
</properties>
|
</properties>
|
||||||
<assets/>
|
<assets/>
|
||||||
<preview_scale>0.5</preview_scale>
|
<preview_scale>0.5</preview_scale>
|
||||||
<rotation_type>enabled</rotation_type>
|
<rotation_type>enabled</rotation_type>
|
||||||
<scale_type>enabled</scale_type>
|
<scale_type>enabled</scale_type>
|
||||||
</editor>
|
</editor>
|
||||||
|
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue