diff --git a/src/DotTiled/Serialization/Tmx/TmxReaderBase.ObjectLayer.cs b/src/DotTiled/Serialization/Tmx/TmxReaderBase.ObjectLayer.cs index 5e70f5e..15839f3 100644 --- a/src/DotTiled/Serialization/Tmx/TmxReaderBase.ObjectLayer.cs +++ b/src/DotTiled/Serialization/Tmx/TmxReaderBase.ObjectLayer.cs @@ -242,15 +242,15 @@ public abstract partial class TmxReaderBase internal TextObject ReadTextObject() { // Attributes - var fontFamily = _reader.GetOptionalAttribute("fontfamily") ?? "sans-serif"; - var pixelSize = _reader.GetOptionalAttributeParseable("pixelsize") ?? 16; - var wrap = _reader.GetOptionalAttributeParseable("wrap") ?? false; - var color = _reader.GetOptionalAttributeClass("color") ?? TiledColor.Parse("#000000", CultureInfo.InvariantCulture); - var bold = _reader.GetOptionalAttributeParseable("bold") ?? false; - var italic = _reader.GetOptionalAttributeParseable("italic") ?? false; - var underline = _reader.GetOptionalAttributeParseable("underline") ?? false; - var strikeout = _reader.GetOptionalAttributeParseable("strikeout") ?? false; - var kerning = _reader.GetOptionalAttributeParseable("kerning") ?? true; + var fontFamily = _reader.GetOptionalAttribute("fontfamily").GetValueOr("sans-serif"); + var pixelSize = _reader.GetOptionalAttributeParseable("pixelsize").GetValueOr(16); + var wrap = _reader.GetOptionalAttributeParseable("wrap").GetValueOr(0) == 1; + var color = _reader.GetOptionalAttributeClass("color").GetValueOr(TiledColor.Parse("#000000", CultureInfo.InvariantCulture)); + var bold = _reader.GetOptionalAttributeParseable("bold").GetValueOr(0) == 1; + var italic = _reader.GetOptionalAttributeParseable("italic").GetValueOr(0) == 1; + var underline = _reader.GetOptionalAttributeParseable("underline").GetValueOr(0) == 1; + var strikeout = _reader.GetOptionalAttributeParseable("strikeout").GetValueOr(0) == 1; + var kerning = _reader.GetOptionalAttributeParseable("kerning").GetValueOr(1) == 1; var hAlign = _reader.GetOptionalAttributeEnum("halign", s => s switch { "left" => TextHorizontalAlignment.Left, @@ -258,14 +258,14 @@ public abstract partial class TmxReaderBase "right" => TextHorizontalAlignment.Right, "justify" => TextHorizontalAlignment.Justify, _ => throw new InvalidOperationException($"Unknown horizontal alignment '{s}'") - }) ?? TextHorizontalAlignment.Left; + }).GetValueOr(TextHorizontalAlignment.Left); var vAlign = _reader.GetOptionalAttributeEnum("valign", s => s switch { "top" => TextVerticalAlignment.Top, "center" => TextVerticalAlignment.Center, "bottom" => TextVerticalAlignment.Bottom, _ => throw new InvalidOperationException($"Unknown vertical alignment '{s}'") - }) ?? TextVerticalAlignment.Top; + }).GetValueOr(TextVerticalAlignment.Top); // Elements var text = _reader.ReadElementContentAsString("text", "");