/// <summary> /// Generates a verbose dump of a cutscene, ordering intructions by start frame /// </summary> /// <returns>The output text</returns> public string PrintByTimeline() { short time = -1; StringBuilder sb = new StringBuilder(); CutsceneCommand lastRoot = null; foreach (IFrameData f in Commands.OfType <IFrameCollection>() .SelectMany(x => x.IFrameDataEnum) .OrderBy(x => x.StartFrame)) { if (f.StartFrame > time) { time = f.StartFrame; } if (lastRoot == null || f.RootCommand != lastRoot) { sb.AppendLine(); sb.AppendLine($"{time:X4} {0:X6}: {f.RootCommand}"); lastRoot = f.RootCommand; } if ((f != f.RootCommand)) { sb.AppendLine($"{time:X4} FFFFFF: {f}"); } } return(sb.ToString()); }
internal void Load(CutsceneCommand cmd, BinaryReader br) { /* 0x00 */ TextId = br.ReadBigUInt16(); /* 0x02 */ StartFrame = br.ReadBigInt16(); /* 0x04 */ EndFrame = br.ReadBigInt16(); /* 0x06 */ Option = br.ReadBigUInt16(); /* 0x08 */ TextIdChoiceA = br.ReadBigUInt16(); /* 0x0A */ TextIdChoiceB = br.ReadBigUInt16(); RootCommand = cmd; }
public ThisEntry(CutsceneCommand cmd, BinaryReader br) { RootCommand = cmd; int1 = br.ReadBigUInt16(); StartFrame = br.ReadBigInt16(); EndFrame = br.ReadBigInt16(); s4 = br.ReadBigUInt16(); s5 = br.ReadBigUInt16(); s6 = br.ReadBigUInt16(); }
public TimeEntry(CutsceneCommand root, BinaryReader br) { RootCommand = root; unk = br.ReadBigInt16(); StartFrame = br.ReadBigInt16(); EndFrame = br.ReadBigInt16(); hour = br.ReadByte(); min = br.ReadByte(); unk3 = br.ReadBigInt32(); }
public CameraCommandEntry(CutsceneCommand root, short startFrame, sbyte rotation, ushort frames, float angleofview, Vector3 <short> coordinates) { //IFrame data RootCommand = root; StartFrame = startFrame; EndFrame = (short)(startFrame + frames); Terminator = 0; Rotation = rotation; Frames = frames; AngleOfView = angleofview; Coordinates = coordinates; d = 0; }
internal void Load(CutsceneCommand cmd, BinaryReader br) { byte[] arr; arr = br.ReadBytes(sizeof(short) * 6); Endian.Convert(out TextId, arr, 0); Endian.Convert(out short startFrame, arr, 2); Endian.Convert(out short endFrame, arr, 4); Endian.Convert(out Option, arr, 6); Endian.Convert(out TextIdChoiceA, arr, 8); Endian.Convert(out TextIdChoiceB, arr, 10); RootCommand = cmd; StartFrame = startFrame; EndFrame = endFrame; }
public void Load(CutsceneCommand cmd, short startFrame, BinaryReader br) { byte[] arr; arr = br.ReadBytes(sizeof(uint) * 4); Terminator = arr[0]; Rotation = (sbyte)arr[1]; Endian.Convert(out Frames, arr, 2); Endian.Convert(out AngleOfView, arr, 4); Endian.Convert(Coordinates, arr, 8); Endian.Convert(out d, arr, 14); //IFrameData StartFrame = startFrame; EndFrame = (short)(startFrame + Frames); RootCommand = cmd; }
private void Load(CutsceneCommand cmd, BinaryReader br) { byte[] arr; short startFrame; short endFrame; arr = br.ReadBytes(LENGTH); Endian.Convert(out Action, arr, 0); Endian.Convert(out startFrame, arr, 2); Endian.Convert(out endFrame, arr, 4); Endian.Convert(out d, arr, 6); Endian.Convert(out e, arr, 8); Endian.Convert(out f, arr, 10); Endian.Convert(StartVertex, arr, 12); Endian.Convert(EndVertex, arr, 24); Endian.Convert(VertexNormal, arr, 36); RootCommand = cmd; StartFrame = startFrame; EndFrame = endFrame; }
public CameraCommandEntry(CutsceneCommand root) { RootCommand = root; }
public ActionEntry(CutsceneCommand cmd, BinaryReader br) { Load(cmd, br); }
public ActionEntry(CutsceneCommand cmd, BinaryReader br) { RootCommand = cmd; Load(br); }