|
@@ -217,11 +217,6 @@ ImplementEnumType(_TamlFormatMode,
|
|
|
|
|
|
FileStream stream;
|
|
FileStream stream;
|
|
|
|
|
|
- if (StringTable->insert("c://.asset.taml") == StringTable->insert(mFilePathBuffer))
|
|
|
|
- {
|
|
|
|
- bool asdfasdf = true;
|
|
|
|
- }
|
|
|
|
-
|
|
|
|
// File opened?
|
|
// File opened?
|
|
if (!stream.open(mFilePathBuffer, Torque::FS::File::Write))
|
|
if (!stream.open(mFilePathBuffer, Torque::FS::File::Write))
|
|
{
|
|
{
|
|
@@ -643,6 +638,19 @@ ImplementEnumType(_TamlFormatMode,
|
|
// Fetch field count.
|
|
// Fetch field count.
|
|
const U32 fieldCount = fieldList.size();
|
|
const U32 fieldCount = fieldList.size();
|
|
|
|
|
|
|
|
+ ConsoleObject* defaultConObject;
|
|
|
|
+ SimObject* defaultObject;
|
|
|
|
+ if (!getWriteDefaults())
|
|
|
|
+ {
|
|
|
|
+ // Create a default object of the same type
|
|
|
|
+ defaultConObject = ConsoleObject::create(pSimObject->getClassName());
|
|
|
|
+ defaultObject = dynamic_cast<SimObject*>(defaultConObject);
|
|
|
|
+
|
|
|
|
+ // ***Really*** shouldn't happen
|
|
|
|
+ if (!defaultObject)
|
|
|
|
+ return;
|
|
|
|
+ }
|
|
|
|
+
|
|
// Iterate fields.
|
|
// Iterate fields.
|
|
U8 arrayDepth = 0;
|
|
U8 arrayDepth = 0;
|
|
TamlCustomNode* currentArrayNode = NULL;
|
|
TamlCustomNode* currentArrayNode = NULL;
|
|
@@ -709,9 +717,6 @@ ImplementEnumType(_TamlFormatMode,
|
|
if (!pFieldValue)
|
|
if (!pFieldValue)
|
|
pFieldValue = StringTable->EmptyString();
|
|
pFieldValue = StringTable->EmptyString();
|
|
|
|
|
|
- if (pField->type == TypeBool)
|
|
|
|
- pFieldValue = dAtob(pFieldValue) ? "true" : "false";
|
|
|
|
-
|
|
|
|
U32 nBufferSize = dStrlen(pFieldValue) + 1;
|
|
U32 nBufferSize = dStrlen(pFieldValue) + 1;
|
|
FrameTemp<char> valueCopy(nBufferSize);
|
|
FrameTemp<char> valueCopy(nBufferSize);
|
|
dStrcpy((char *)valueCopy, pFieldValue, nBufferSize);
|
|
dStrcpy((char *)valueCopy, pFieldValue, nBufferSize);
|
|
@@ -720,9 +725,19 @@ ImplementEnumType(_TamlFormatMode,
|
|
if (!pSimObject->writeField(fieldName, valueCopy))
|
|
if (!pSimObject->writeField(fieldName, valueCopy))
|
|
continue;
|
|
continue;
|
|
|
|
|
|
|
|
+ if (!getWriteDefaults())
|
|
|
|
+ {
|
|
|
|
+ //If the field hasn't been changed from the default value, then don't bother writing it out
|
|
|
|
+ if (dStricmp(defaultObject->getDataField(fieldName, indexBuffer), pFieldValue) == 0)
|
|
|
|
+ continue;
|
|
|
|
+ }
|
|
|
|
+
|
|
// Reassign field value.
|
|
// Reassign field value.
|
|
pFieldValue = valueCopy;
|
|
pFieldValue = valueCopy;
|
|
|
|
|
|
|
|
+ if (pField->type == TypeBool)
|
|
|
|
+ pFieldValue = dAtob(pFieldValue) ? "true" : "false";
|
|
|
|
+
|
|
// Detect and collapse relative path information
|
|
// Detect and collapse relative path information
|
|
char fnBuf[1024];
|
|
char fnBuf[1024];
|
|
if ((S32)pField->type == TypeFilename)
|
|
if ((S32)pField->type == TypeFilename)
|
|
@@ -741,6 +756,12 @@ ImplementEnumType(_TamlFormatMode,
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
+
|
|
|
|
+ if (!getWriteDefaults())
|
|
|
|
+ {
|
|
|
|
+ // Cleanup our created default object
|
|
|
|
+ delete defaultConObject;
|
|
|
|
+ }
|
|
}
|
|
}
|
|
|
|
|
|
//-----------------------------------------------------------------------------
|
|
//-----------------------------------------------------------------------------
|