Fixed a few encoding errors.

This commit is contained in:
Max 2021-05-03 17:26:55 -05:00
parent 81b28a2d63
commit 2050723dbd
3 changed files with 24 additions and 12 deletions

Binary file not shown.

View File

@ -91,13 +91,12 @@ namespace RobloxFiles
{
get
{
string fullString = string.Join("\0", Tags.ToArray());
if (Tags.Count == 0)
return null;
byte[] buffer = fullString.ToCharArray()
.Select(ch => (byte)ch)
.ToArray();
return buffer;
string fullString = string.Join("\0", Tags);
char[] buffer = fullString.ToCharArray();
return Encoding.UTF8.GetBytes(buffer);
}
set
{
@ -587,11 +586,7 @@ namespace RobloxFiles
string fieldName = field.Name;
Type fieldType = field.FieldType;
if (field.GetCustomAttribute<ObsoleteAttribute>() != null)
continue;
// A few specific edge case hacks. I wish these didn't need to exist :(
if (fieldName == "Archivable" || fieldName.EndsWith("k__BackingField"))
continue;
else if (fieldName == "Bevel_Roundness")

View File

@ -68,25 +68,42 @@ namespace RobloxFiles.XmlFormat
{
case PropertyType.CFrame:
case PropertyType.Quaternion:
{
propType = "CoordinateFrame";
break;
}
case PropertyType.Enum:
{
propType = "token";
break;
}
case PropertyType.Rect:
{
propType = "Rect2D";
break;
}
case PropertyType.Int:
case PropertyType.Bool:
case PropertyType.Float:
case PropertyType.Int64:
case PropertyType.Double:
{
propType = propType.ToLower(CultureInfo.InvariantCulture);
break;
}
case PropertyType.String:
propType = (prop.HasRawBuffer ? "BinaryString" : "string");
{
if (prop.Value is Content)
propType = "Content";
else if (prop.Value is ProtectedString)
propType = "ProtectedString";
else if (prop.Value is byte[])
propType = "BinaryString";
else
propType = "string";
break;
default: break;
}
}
}