Esempio n. 1
0
 public void Add(BCAMEntry entry) => Entries.Add(entry.ToClipboard());
Esempio n. 2
0
        public void LoadCompressedLegacyFile(Stream FS)
        {
            byte[] Read         = new byte[4];
            int    stringlength = FS.ReadByte();

            Read = new byte[stringlength];
            FS.Read(Read, 0, stringlength);
            Name = Program.StringEncoder.GetString(Read);

            stringlength = FS.ReadByte();
            Read         = new byte[stringlength];
            FS.Read(Read, 0, stringlength);
            Creator = Program.StringEncoder.GetString(Read);

            Read = new byte[4];
            FS.Read(Read, 0, 4);
            Array.Reverse(Read);
            int CameraCount = BitConverter.ToInt32(Read, 0);

            FS.Read(Read, 0, 4);
            Array.Reverse(Read);
            long Offset = BitConverter.ToInt32(Read, 0);

            for (int i = 0; i < CameraCount; i++)
            {
                BCAMEntry Added = new BCAMEntry()
                {
                    Version                   = (int)FindNumber(FS, Offset),
                    Identification            = FindString(FS, Offset),
                    Type                      = FindString(FS, Offset),
                    RotationX                 = FindNumber(FS, Offset),
                    RotationY                 = FindNumber(FS, Offset),
                    RotationZ                 = FindNumber(FS, Offset),
                    Zoom                      = FindNumber(FS, Offset),
                    FieldOfView               = FindNumber(FS, Offset),
                    TransitionTime            = (int)FindNumber(FS, Offset),
                    TransitionEndTime         = (int)FindNumber(FS, Offset),
                    TransitionGroundTime      = (int)FindNumber(FS, Offset),
                    Num1                      = (int)FindNumber(FS, Offset),
                    Num2                      = (int)FindNumber(FS, Offset),
                    MaxY                      = FindNumber(FS, Offset),
                    MinY                      = FindNumber(FS, Offset),
                    GroundMoveDelay           = (int)FindNumber(FS, Offset),
                    AirMoveDelay              = (int)FindNumber(FS, Offset),
                    UDown                     = (int)FindNumber(FS, Offset),
                    LookOffset                = FindNumber(FS, Offset),
                    LookOffsetVertical        = FindNumber(FS, Offset),
                    UpperBorder               = FindNumber(FS, Offset),
                    LowerBorder               = FindNumber(FS, Offset),
                    EventFrames               = (int)FindNumber(FS, Offset),
                    EventPriority             = (int)FindNumber(FS, Offset),
                    FixPointOffset            = new Vector3 <float>(FindNumber(FS, Offset), FindNumber(FS, Offset), FindNumber(FS, Offset)),
                    WorldPointOffset          = new Vector3 <float>(FindNumber(FS, Offset), FindNumber(FS, Offset), FindNumber(FS, Offset)),
                    PlayerOffset              = new Vector3 <float>(FindNumber(FS, Offset), FindNumber(FS, Offset), FindNumber(FS, Offset)),
                    VerticalPanAxis           = new Vector3 <float>(FindNumber(FS, Offset), FindNumber(FS, Offset), FindNumber(FS, Offset)),
                    UpAxis                    = new Vector3 <float>(FindNumber(FS, Offset), FindNumber(FS, Offset), FindNumber(FS, Offset)),
                    DisableReset              = FindBoolean(FS, Offset),
                    StaticLookOffset          = FindBoolean(FS, Offset),
                    DisableAntiBlur           = FindBoolean(FS, Offset),
                    DisableCollision          = FindBoolean(FS, Offset),
                    DisableFirstPerson        = FindBoolean(FS, Offset),
                    GFlagEndErpFrame          = FindBoolean(FS, Offset),
                    GFlagThrough              = FindBoolean(FS, Offset),
                    GFlagEndTime              = FindBoolean(FS, Offset) ? 1 : 0,
                    EnableVerticalPanAxis     = FindBoolean(FS, Offset),
                    EventUseTransitionEndTime = FindBoolean(FS, Offset),
                    EventUseTransitionTime    = FindBoolean(FS, Offset),
                };
                Entries.Add(Added.ToClipboard());
            }
        }
Esempio n. 3
0
        /// <summary>
        /// LCPP Versions 0.1 and 0.2
        /// </summary>
        /// <param name="FS"></param>
        public void LoadLegacyFile(Stream FS)
        {
            byte[] ToRead = new byte[10]; //Version of LaunchCamPlus
            FS.Read(ToRead, 0, 10);
            string LCPVersion = Program.StringEncoder.GetString(ToRead);

            ToRead = new byte[49]; //Preset Name
            FS.Read(ToRead, 0, 48);
            string presetname = Program.StringEncoder.GetString(ToRead).Replace("\0", "");

            ToRead = new byte[49]; //Preset Creator
            FS.Read(ToRead, 0, 48);
            string creator = Program.StringEncoder.GetString(ToRead).Replace("\0", "");

            ToRead = new byte[4]; //Number of Cameras
            FS.Read(ToRead, 0, 4);
            int cameranum = Convert.ToInt32(ToRead[0] + ToRead[1] + ToRead[2] + ToRead[3]);

            ToRead = new byte[12]; //Padding
            FS.Read(ToRead, 0, 12);
            //<------------------------------------------------------------------------------------------>
            for (int i = 0; i < cameranum; i++)
            {
                ToRead = new byte[4];
                FS.Read(ToRead, 0, 4);
                Array.Reverse(ToRead);
                int nextoffset = BitConverter.ToInt32(ToRead, 0);
                ToRead = new byte[nextoffset];
                FS.Read(ToRead, 0, nextoffset);
                string CurrentString = Program.StringEncoder.GetString(ToRead);

                BCAMEntry Properties = new BCAMEntry();
                string[]  Props      = CurrentString.Split(',');

                string[]        P;
                Vector3 <float> FixPoint        = new Vector3 <float>();
                Vector3 <float> WorldPoint      = new Vector3 <float>();
                Vector3 <float> PlayerOffset    = new Vector3 <float>();
                Vector3 <float> VerticalPanAxis = new Vector3 <float>();
                Vector3 <float> UpAxis          = new Vector3 <float>();
                for (int j = 0; j < Props.Length; j++)
                {
                    P = Props[j].Split('=');
                    switch (P[0])
                    {
                    case "Version":
                    case "Num":
                        break;

                    case "Identification":
                        Properties.Identification = P[1].Replace("\"", "");
                        break;

                    case "Type":
                        Properties.Type = P[1].Replace("\"", "");
                        break;

                    case "RotationX":
                        P[1] = P[1].Replace("f", "");
                        Properties.RotationX = Convert.ToSingle(P[1]);
                        break;

                    case "RotationY":
                        P[1] = P[1].Replace("f", "");
                        Properties.RotationY = Convert.ToSingle(P[1]);
                        break;

                    case "RotationZ":
                        P[1] = P[1].Replace("f", "");
                        Properties.RotationZ = Convert.ToSingle(P[1]);
                        break;

                    case "Zoom":
                        P[1]            = P[1].Replace("f", "");
                        Properties.Zoom = Convert.ToSingle(P[1]);
                        break;

                    case "DPDRotation":
                        Properties.FieldOfView = Convert.ToSingle(P[1]);
                        break;

                    case "TransitionSpeed":
                        Properties.TransitionTime = Convert.ToInt32(P[1]);
                        break;

                    case "EndTransitionSpeed":
                        Properties.TransitionEndTime = Convert.ToInt32(P[1]);
                        break;

                    case "GroundMoveSpeed":
                        Properties.TransitionGroundTime = Convert.ToInt32(P[1]);
                        break;

                    case "UseDPAD":
                        Properties.Num1 = Convert.ToInt32(P[1]);
                        break;

                    case "UnknownNum2":
                        Properties.Num2 = Convert.ToInt32(P[1]);
                        break;

                    case "MaxY":
                        Properties.MaxY = Convert.ToSingle(P[1]);
                        break;

                    case "MinY":
                        Properties.MinY = Convert.ToSingle(P[1]);
                        break;

                    case "GroundStartMoveDelay":
                        Properties.GroundMoveDelay = Convert.ToInt32(P[1]);
                        break;

                    case "AirStartMoveDelay":
                        Properties.AirMoveDelay = Convert.ToInt32(P[1]);
                        break;

                    case "UnknownUDown":
                        Properties.UDown = Convert.ToInt32(P[1]);
                        break;

                    case "FrontZoom":
                        Properties.LookOffset = Convert.ToSingle(P[1]);
                        break;

                    case "HeightZoom":
                        Properties.LookOffsetVertical = Convert.ToSingle(P[1]);
                        break;

                    case "UpperBorder":
                        P[1] = P[1].Replace("f", "");
                        Properties.UpperBorder = Convert.ToSingle(P[1]);
                        break;

                    case "LowerBorder":
                        P[1] = P[1].Replace("f", "");
                        Properties.LowerBorder = Convert.ToSingle(P[1]);
                        break;

                    case "EventFrames":
                        Properties.EventFrames = Convert.ToInt32(P[1]);
                        break;

                    case "EventPriority":
                        Properties.EventPriority = Convert.ToInt32(P[1]);
                        break;

                    case "FixpointOffsetX":
                        FixPoint.XValue = Convert.ToSingle(P[1]);
                        break;

                    case "FixpointOffsetY":
                        FixPoint.YValue = Convert.ToSingle(P[1]);
                        break;

                    case "FixpointOffsetZ":
                        FixPoint.ZValue = Convert.ToSingle(P[1]);
                        break;

                    case "WorldPointX":
                        WorldPoint.XValue = Convert.ToSingle(P[1]);
                        break;

                    case "WorldPointY":
                        WorldPoint.YValue = Convert.ToSingle(P[1]);
                        break;

                    case "WorldPointZ":
                        WorldPoint.ZValue = Convert.ToSingle(P[1]);
                        break;

                    case "PlayerOffsetX":
                        PlayerOffset.XValue = Convert.ToSingle(P[1]);
                        break;

                    case "PlayerOffsetY":
                        PlayerOffset.YValue = Convert.ToSingle(P[1]);
                        break;

                    case "PlayerOffsetZ":
                        PlayerOffset.ZValue = Convert.ToSingle(P[1]);
                        break;

                    case "VPanAxisX":
                        VerticalPanAxis.XValue = Convert.ToSingle(P[1]);
                        break;

                    case "VPanAxisY":
                        VerticalPanAxis.YValue = Convert.ToSingle(P[1]);
                        break;

                    case "VPanAxisZ":
                        VerticalPanAxis.ZValue = Convert.ToSingle(P[1]);
                        break;

                    case "UnknownUpX":
                        UpAxis.XValue = Convert.ToSingle(P[1]);
                        break;

                    case "UnknownUpY":
                        UpAxis.YValue = Convert.ToSingle(P[1]);
                        break;

                    case "UnknownUpZ":
                        UpAxis.ZValue = Convert.ToSingle(P[1]);
                        break;

                    case "DisableReset":
                        Properties.DisableReset = P[1] == "true" ? true : false;
                        break;

                    case "DisableDPAD":
                        Properties.EnableFoV = P[1] == "true" ? true : false;
                        break;

                    case "SharpZoom":
                        Properties.StaticLookOffset = P[1] == "true" ? true : false;
                        break;

                    case "DisableAntiBlur":
                        Properties.DisableAntiBlur = P[1] == "true" ? true : false;
                        break;

                    case "DisableCollision":
                        Properties.DisableCollision = P[1] == "true" ? true : false;
                        break;

                    case "DisableFirstPerson":
                        Properties.DisableFirstPerson = P[1] == "true" ? true : false;
                        break;

                    case "GFlagEndErpFrame":
                        Properties.GFlagEndErpFrame = P[1] == "true" ? true : false;
                        break;

                    case "GFlagThrough":
                        Properties.GFlagThrough = P[1] == "true" ? true : false;
                        break;

                    case "GFlagEndTransitionSpeed":
                        Properties.GFlagEndTime = 0;
                        break;

                    case "VPanUse":
                        Properties.EnableVerticalPanAxis = P[1] == "true" ? true : false;
                        break;

                    case "EventUseEndTransition":
                        Properties.EventUseTransitionEndTime = P[1] == "true" ? true : false;
                        break;

                    case "EventUseTransition":
                        Properties.EventUseTransitionTime = P[1] == "true" ? true : false;
                        break;

                    default:
                        System.Windows.Forms.MessageBox.Show("Sorry, but this Preset file is corrupted or outdated", "LCPP Error");
                        return;
                    }
                }

                Properties.FixPointOffset   = FixPoint;
                Properties.WorldPointOffset = WorldPoint;
                Properties.PlayerOffset     = PlayerOffset;
                Properties.VerticalPanAxis  = VerticalPanAxis;
                Properties.UpAxis           = UpAxis;
                Entries.Add(Properties.ToClipboard());
            }

            Creator = creator;
            Name    = presetname;
        }