Beispiel #1
0
        /// <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());
        }
Beispiel #2
0
 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;
 }
Beispiel #3
0
            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();
            }
Beispiel #4
0
            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();
            }
Beispiel #5
0
        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;
        }
Beispiel #6
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;
        }
Beispiel #7
0
        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;
        }
Beispiel #8
0
        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;
 }
Beispiel #10
0
 public ActionEntry(CutsceneCommand cmd, BinaryReader br)
 {
     Load(cmd, br);
 }
Beispiel #11
0
 public ActionEntry(CutsceneCommand cmd, BinaryReader br)
 {
     RootCommand = cmd;
     Load(br);
 }