/// <summary> /// Process the struct field from a cache file /// </summary> /// <param name="c">Cache file</param> /// <param name="iop">Processing method</param> public void Read(BlamLib.Blam.CacheFile c, IOProcess iop) { VersionCtorAttribute upgrade_parameters; if (c.EngineVersion == BlamVersion.Halo2_Alpha || c.EngineVersion == BlamVersion.Halo2_Epsilon || c.EngineVersion == BlamVersion.Halo3_Beta) { if ((upgrade_parameters = kState.VersionForEngine(c.EngineVersion)) != null) { // It is ASSUMED that the group tag won't ever be needed for version construction Value = (T)kState.NewInstance(this, upgrade_parameters.Major, upgrade_parameters.Minor); NeedsUpgrading = true; } else { NeedsUpgrading = false; } } Value.Read(c, iop); if (NeedsUpgrading) #if DEBUG { Debug.Assert.If(Value.Upgrade(), "Failed to upgrade struct. {0} {1}", typeof(T).Name, Value.ToVersionString()); } #else { Value.Upgrade(); } #endif }
public static byte[] GetInput(TypeOfInput type, string input) { IOProcess inp = new IOProcess(); byte[] res = new byte[1 << 10]; if (type == TypeOfInput.Arr) { string t = input; int n = inp.NextInt(); string a = inp.NextLine(); res = Encoding.ASCII.GetBytes(t + "|" + n + " " + a); } else if (type == TypeOfInput.Matrix) { string t = input; int n = inp.NextInt(); int m = inp.NextInt(); StringBuilder builder = new StringBuilder(); builder.Append(t + " " + n + " " + m + "|"); //builder.Append(inp.NextLine()); for (int i = 0; i < n; i++) { builder.Append(inp.NextLine() + ","); } res = Encoding.ASCII.GetBytes(builder.ToString()); } inp.Dispose(); return(res); }
public EntityConverterForm() { InitializeComponent(); InitializeOpenFileDialog(); InitializeDataGridProperites(); this.MinimumSize = new Size(350, 350); iOProcess = Program.container.GetInstance <IOProcess>(); }
/// <summary> /// Process the struct field from a tag stream /// </summary> /// <param name="ts"></param> /// <param name="iop">Processing method</param> public void Read(IO.ITagStream ts, IOProcess iop) { Value.Read(ts, iop); if (NeedsUpgrading) { if (Value.VersionImplicitUpgradeIsActive) { Value.VersionImplicitUpgradeEnd(); } else { #if DEBUG if (!Value.Upgrade()) { Debug.Assert.If(false, "Failed to upgrade struct. {0} {1} in {2} @{3:X8}", DefinitionType.Name, Value.ToVersionString(), ts.GetExceptionDescription(), base.relativeOffset); } #else Value.Upgrade(); #endif } } }
/// <summary> /// Process the struct field to a stream /// </summary> /// <param name="output">Stream</param> /// <param name="iop">Processing method</param> public void Write(IO.EndianWriter output, IOProcess iop) { Value.Write(output, iop); }
/// <summary> /// Process the struct field from a stream /// </summary> /// <param name="s"></param> /// <param name="iop">Processing method</param> public void Read(IO.EndianReader s, IOProcess iop) { Value.Read(s, iop); }
/// <summary> /// Process the struct field to a tag stream /// </summary> /// <param name="ts"></param> /// <param name="iop">Processing method</param> public void Write(IO.ITagStream ts, IOProcess iop) { Value.Write(ts, iop); }
/// <summary> /// Process the struct field to a cache file /// </summary> /// <param name="c">Cache file</param> /// <param name="iop">Processing method</param> public void Write(BlamLib.Blam.CacheFile c, IOProcess iop) { Value.Write(c, iop); }