//Original: AetSet.bt Version: 5.0 by samyuu using KKdBaseLib; using KKdBaseLib.Auth2D; using KKdMainLib.IO; namespace KKdMainLib { public struct Aet : System.IDisposable { private int i, i0, i1, i2; private Stream s; private const string x00 = "\0"; public Header AET; public void AETReader(string file) { AET = default; s = File.OpenReader(file + ".bin", true); int i = 0; int Pos = -1; while (true) { Pos = s.RI32(); if (Pos != 0 && Pos < s.L) i++; else break; } s.P = 0; AET.Scenes = new Pointer[i]; for (i = 0; i < AET.Scenes.Length; i++) AET.Scenes[i] = s.RP(); for (i = 0; i < AET.Scenes.Length; i++) AETReader(ref AET.Scenes[i]); s.C(); } public void AETWriter(string file) { if (AET.Scenes == null || AET.Scenes.Length == 0) return; s = File.OpenWriter(); for (int i = 0; i < AET.Scenes.Length; i++) { s.P = s.L + 0x20; AETWriter(ref AET.Scenes[i]); } s.P = 0; for (int i = 0; i < AET.Scenes.Length; i++) if (AET.Scenes[i].O > 0) s.W(AET.Scenes[i].O); byte[] data = s.ToArray(); s.Dispose(); using (s = File.OpenWriter(file + ".bin", true)) s.W(data); data = null; } private void AETReader(ref Pointer aetData) { s.P = aetData.O; ref Scene aet = ref aetData.V; aet.Name = s.RPS(); aet.StartFrame = s.RF32(); aet.EndFrame = s.RF32(); aet.FrameRate = s.RF32(); aet.BackColor = s.RU32(); aet.Width = s.RU32(); aet.Height = s.RU32(); aet.Camera = s.RP>>(); aet.Composition = s.RCP(); aet.Video = s.RCP