private static void TestParseMapCustomTextTriggers(string mapCustomTextTriggersFilePath) { using var original = FileProvider.GetFile(mapCustomTextTriggersFilePath); using var recreated = new MemoryStream(); MapCustomTextTriggers.Parse(original, true).SerializeTo(recreated, true); StreamAssert.AreEqual(original, recreated, true); }
public static GamePatch GetMinimumPatch(this MapCustomTextTriggers mapCustomTextTriggers) { return(mapCustomTextTriggers.SubVersion.HasValue ? GamePatch.v1_31_0 : mapCustomTextTriggers.FormatVersion == MapCustomTextTriggersFormatVersion.Tft ? GamePatch.v1_07 : GamePatch.v1_00); }
public static void DowngradeOnce(this MapCustomTextTriggers mapCustomTextTriggers) { if (mapCustomTextTriggers.SubVersion.HasValue) { mapCustomTextTriggers.SubVersion = null; } else { throw new NotSupportedException(); } }
public static bool TryDowngrade(this MapCustomTextTriggers mapCustomTextTriggers, GamePatch targetPatch) { try { while (mapCustomTextTriggers.GetMinimumPatch() > targetPatch) { mapCustomTextTriggers.DowngradeOnce(); } return(true); } catch (NotSupportedException) { return(false); } catch { throw; } }
public static void Write(this BinaryWriter writer, MapCustomTextTriggers mapCustomTextTriggers, Encoding encoding) => mapCustomTextTriggers.WriteTo(writer, encoding);