Fixed enums not serializing default value in hex & support for saving property name map

This commit is contained in:
Aruki
2018-09-16 11:03:28 -07:00
parent 36926ca28e
commit 0afa16f3a0
3 changed files with 37 additions and 38 deletions

View File

@@ -1278,6 +1278,12 @@ void CTemplateLoader::SaveGameList()
Writer.ParamEnd();
}
// Write property list
{
CXMLWriter Writer(kTemplatesDir + "PropertyMap.xml", "PropertyMap");
Writer << SerialParameter("PropertyMap", CMasterTemplate::smPropertyNames, SH_HexDisplay);
}
// Write master templates
{
std::list<CMasterTemplate*> MasterList = CMasterTemplate::MasterList();

View File

@@ -54,8 +54,11 @@ public:
virtual void Serialize(IArchive& rArc)
{
TSerializeableTypedProperty::Serialize(rArc);
rArc << SerialParameter("Values", mValues);
// Skip TSerializeableTypedProperty, serialize default value ourselves so we can set SH_HexDisplay
TTypedPropertyNew::Serialize(rArc);
rArc << SerialParameter("DefaultValue", mDefaultValue, SH_HexDisplay | (Game() <= ePrime ? SH_Optional : 0))
<< SerialParameter("Values", mValues);
}
virtual void SerializeValue(void* pData, IArchive& Arc) const