Beispiel #1
0
 /// <summary>
 /// Returns a hash code for this instance.
 /// </summary>
 /// <returns>
 /// A hash code for this instance, suitable for use in hashing algorithms and data structures like a hash table.
 /// </returns>
 public override int GetHashCode()
 {
     return(Timestamp.GetHashCode()
            ^ Second.GetHashCode()
            ^ DistanceMiles.GetHashCode()
            ^ WorkoutTime.GetHashCode()
            ^ SpeedMph.GetHashCode()
            ^ RotationsPerMinute.GetHashCode()
            ^ Unknown1.GetHashCode()
            ^ SpeedValue.GetHashCode()
            ^ Unknown2.GetHashCode()
            ^ Unknown3.GetHashCode());
 }
Beispiel #2
0
            public override ListViewItem GetListViewItem()
            {
                ListViewItem m = new ListViewItem("");

                m.SubItems.Add(Position.X.ToString());
                m.SubItems.Add(Position.Y.ToString());
                m.SubItems.Add(Position.Z.ToString());

                m.SubItems.Add(Unknown1.ToString());
                m.SubItems.Add(HexUtil.GetHexReverse(Unknown2));
                m.SubItems.Add(HexUtil.GetHexReverse(Unknown3));
                return(m);
            }
Beispiel #3
0
        public void ReadData(string filename)
        {
            using (FileStream file = new FileStream(filename, FileMode.Open, FileAccess.Read))
            {
                var blocks = new List <DataBlock>();

                for (int i = 1; i <= 32; i++)
                {
                    file.Position = 8 * i;
                    uint blockStart = file.ReadUInt();
                    uint blockSize  = file.ReadUInt();
                    blocks.Add(new DataBlock {
                        BlockStart = blockStart, BlockSize = blockSize
                    });
                }

                BrakeParts.Read(file, blocks[0].BlockStart, blocks[0].BlockSize);
                BrakeControllerParts.Read(file, blocks[1].BlockStart, blocks[1].BlockSize);
                SteerParts.Read(file, blocks[2].BlockStart, blocks[2].BlockSize);
                ChassisParts.Read(file, blocks[3].BlockStart, blocks[3].BlockSize);
                LightweightParts.Read(file, blocks[4].BlockStart, blocks[4].BlockSize);
                RacingModifyParts.Read(file, blocks[5].BlockStart, blocks[5].BlockSize);
                EngineParts.Read(file, blocks[6].BlockStart, blocks[6].BlockSize);
                PortPolishParts.Read(file, blocks[7].BlockStart, blocks[7].BlockSize);
                EngineBalanceParts.Read(file, blocks[8].BlockStart, blocks[8].BlockSize);
                DisplacementParts.Read(file, blocks[9].BlockStart, blocks[9].BlockSize);
                ComputerParts.Read(file, blocks[10].BlockStart, blocks[10].BlockSize);
                NATuneParts.Read(file, blocks[11].BlockStart, blocks[11].BlockSize);
                TurbineKitParts.Read(file, blocks[12].BlockStart, blocks[12].BlockSize);
                DrivetrainParts.Read(file, blocks[13].BlockStart, blocks[13].BlockSize);
                FlywheelParts.Read(file, blocks[14].BlockStart, blocks[14].BlockSize);
                ClutchParts.Read(file, blocks[15].BlockStart, blocks[15].BlockSize);
                PropellerShaftParts.Read(file, blocks[16].BlockStart, blocks[16].BlockSize);
                GearParts.Read(file, blocks[17].BlockStart, blocks[17].BlockSize);
                SuspensionParts.Read(file, blocks[18].BlockStart, blocks[18].BlockSize);
                IntercoolerParts.Read(file, blocks[19].BlockStart, blocks[19].BlockSize);
                MufflerParts.Read(file, blocks[20].BlockStart, blocks[20].BlockSize);
                LSDParts.Read(file, blocks[21].BlockStart, blocks[21].BlockSize);
                TiresFrontParts.Read(file, blocks[22].BlockStart, blocks[22].BlockSize);
                TiresRearParts.Read(file, blocks[23].BlockStart, blocks[23].BlockSize);
                Unknown1.Read(file, blocks[24].BlockStart, blocks[24].BlockSize);
                Unknown2.Read(file, blocks[25].BlockStart, blocks[25].BlockSize);
                Unknown3.Read(file, blocks[26].BlockStart, blocks[26].BlockSize);
                Unknown4.Read(file, blocks[27].BlockStart, blocks[27].BlockSize);
                Unknown5.Read(file, blocks[28].BlockStart, blocks[28].BlockSize);
                Unknown6.Read(file, blocks[29].BlockStart, blocks[29].BlockSize);
                Unknown7.Read(file, blocks[30].BlockStart, blocks[30].BlockSize);
                Cars.Read(file, blocks[31].BlockStart, blocks[31].BlockSize);
            }
        }
Beispiel #4
0
                public override int GetHashCode()
                {
                    var hash = 1;

                    if (Unknown1 != 0)
                    {
                        hash ^= Unknown1.GetHashCode();
                    }
                    if (unknown2_ != null)
                    {
                        hash ^= Unknown2.GetHashCode();
                    }
                    return(hash);
                }
        public PlayerShip(byte[] byteArray, int startIndex)
        {
            if (byteArray != null)
            {
                if (_log.IsInfoEnabled)
                {
                    _log.InfoFormat("{0}--bytes in: {1}", MethodBase.GetCurrentMethod().ToString(), Utility.BytesToDebugString(byteArray));
                }


                Unknown0 = BitConverter.ToInt32(byteArray, startIndex);
                if (_log.IsInfoEnabled)
                {
                    _log.InfoFormat("Unknown0={0}", Unknown0.ToString());
                }
                Unknown1 = BitConverter.ToInt32(byteArray, startIndex + 4);
                if (_log.IsInfoEnabled)
                {
                    _log.InfoFormat("Unknown1={0}", Unknown1.ToString());
                }

                Unknown2 = BitConverter.ToInt32(byteArray, startIndex + 8);
                if (_log.IsInfoEnabled)
                {
                    _log.InfoFormat("Unknown2={0}", Unknown2.ToString());
                }
                Name = new ArtemisString(byteArray, startIndex + 12);



                if (_log.IsInfoEnabled)
                {
                    _log.InfoFormat("Name={0}", Name.ToString());
                }



                Length = 16 + Name.Length * 2;
                if (_log.IsInfoEnabled)
                {
                    _log.InfoFormat("Length={0}", Length.ToString());
                }
                if (_log.IsInfoEnabled)
                {
                    _log.InfoFormat("{0}--Result bytes: {1}", MethodBase.GetCurrentMethod().ToString(), Utility.BytesToDebugString(this.GetBytes()));
                }
            }
        }
Beispiel #6
0
        public bool Equals(PedType other)
        {
            if (other == null)
            {
                return(false);
            }

            return(Flag.Equals(other.Flag) &&
                   Unknown0.Equals(other.Unknown0) &&
                   Unknown1.Equals(other.Unknown1) &&
                   Unknown2.Equals(other.Unknown2) &&
                   Unknown3.Equals(other.Unknown3) &&
                   Unknown4.Equals(other.Unknown4) &&
                   Threats.Equals(other.Threats) &&
                   Avoid.Equals(other.Avoid));
        }
Beispiel #7
0
        public xxTexture Clone()
        {
            xxTexture tex = new xxTexture();

            tex.Name            = Name;
            tex.Unknown1        = (byte[])Unknown1.Clone();
            tex.Width           = Width;
            tex.Height          = Height;
            tex.Depth           = Depth;
            tex.MipLevels       = MipLevels;
            tex.Format          = Format;
            tex.ResourceType    = ResourceType;
            tex.ImageFileFormat = ImageFileFormat;
            tex.Checksum        = Checksum;
            tex.ImageData       = (byte[])ImageData.Clone();
            return(tex);
        }
Beispiel #8
0
        public string ToStruct()
        {
            StringBuilder result = new StringBuilder("{ ");

            result.Append(Unknown1.ToCHex());
            result.Append(", ");
            result.Append(Unknown2.ToC());
            result.Append(", ");
            result.Append(Unknown3.ToC());
            result.Append(", ");
            result.Append(Model != null ? "&" + Model.Name : "NULL");
            result.Append(", ");
            result.Append(Animation != null ? "&" + ActionName : "NULL");
            result.Append(", (NJS_TEXLIST *)");
            result.Append(Unknown4.ToCHex());
            result.Append(" }");
            return(result.ToString());
        }
Beispiel #9
0
 protected override void WriteData(ESPWriter writer)
 {
     Unknown1.WriteBinary(writer);
     writer.Write((Int32)Unknown2.Count);
     foreach (var temp in Unknown2)
     {
         temp.WriteBinary(writer);
     }
     writer.Write((Int32)Unknown3.Count);
     foreach (var temp in Unknown3)
     {
         temp.WriteBinary(writer);
     }
     writer.Write((Int32)Doors.Count);
     foreach (var temp in Doors)
     {
         temp.WriteBinary(writer);
     }
 }
Beispiel #10
0
        public bool Equals(NavigationMapInfo other)
        {
            if (System.Object.ReferenceEquals(this, other))
            {
                return(true);
            }

            if (((object)this == null) || ((object)other == null))
            {
                return(false);
            }

            return(Unknown1.SequenceEqual(other.Unknown1) &&
                   NavigationMesh == other.NavigationMesh &&
                   Location == other.Location &&
                   GridX == other.GridX &&
                   GridY == other.GridY &&
                   Unknown2.SequenceEqual(other.Unknown2));
        }
Beispiel #11
0
        public xxSubmesh Clone()
        {
            xxSubmesh submesh = new xxSubmesh();

            submesh.Unknown1      = (byte[])Unknown1.Clone();
            submesh.MaterialIndex = MaterialIndex;
            submesh.FaceList      = new List <xxFace>(FaceList.Count);
            for (int i = 0; i < FaceList.Count; i++)
            {
                submesh.FaceList.Add(FaceList[i].Clone());
            }
            submesh.VertexList = new List <xxVertex>(VertexList.Count);
            for (int i = 0; i < VertexList.Count; i++)
            {
                submesh.VertexList.Add(VertexList[i].Clone());
            }

            submesh.Unknown2 = Unknown2.CloneIfNotNull();

            if (Vector2Lists != null)
            {
                submesh.Vector2Lists = new List <List <Vector2> >(Vector2Lists.Count);
                for (int i = 0; i < Vector2Lists.Count; i++)
                {
                    List <Vector2> vectorList = new List <Vector2>(Vector2Lists[i].Count);
                    submesh.Vector2Lists.Add(vectorList);
                    for (int j = 0; j < Vector2Lists[i].Count; j++)
                    {
                        vectorList.Add(Vector2Lists[i][j]);
                    }
                }
            }

            submesh.Unknown3 = Unknown3.CloneIfNotNull();
            submesh.Unknown4 = Unknown4.CloneIfNotNull();
            submesh.Unknown5 = Unknown5.CloneIfNotNull();
            submesh.Unknown6 = Unknown6.CloneIfNotNull();

            return(submesh);
        }
Beispiel #12
0
        protected override void ReadData(ESPReader reader)
        {
            using (MemoryStream stream = new MemoryStream(reader.ReadBytes(size)))
                using (ESPReader subReader = new ESPReader(stream, reader.Plugin))
                {
                    try
                    {
                        Unknown1.ReadBinary(subReader);
                        Int32 Unknown2Count = subReader.ReadInt32();

                        for (int i = 0; i < Unknown2Count; i++)
                        {
                            var temp = new FormID();
                            temp.ReadBinary(subReader);
                            Unknown2.Add(temp);
                        }
                        Int32 Unknown3Count = subReader.ReadInt32();

                        for (int i = 0; i < Unknown3Count; i++)
                        {
                            var temp = new FormID();
                            temp.ReadBinary(subReader);
                            Unknown3.Add(temp);
                        }
                        Int32 DoorsCount = subReader.ReadInt32();

                        for (int i = 0; i < DoorsCount; i++)
                        {
                            var temp = new FormID();
                            temp.ReadBinary(subReader);
                            Doors.Add(temp);
                        }
                    }
                    catch
                    {
                        return;
                    }
                }
        }
Beispiel #13
0
        protected override void WriteDataXML(XElement ele, ElderScrollsPlugin master)
        {
            XElement subEle;

            ele.TryPathTo("Unknown1", true, out subEle);
            subEle.Value = Unknown1.ToHex();

            ele.TryPathTo("NavigationMesh", true, out subEle);
            NavigationMesh.WriteXML(subEle, master);

            ele.TryPathTo("Location", true, out subEle);
            Location.WriteXML(subEle, master);

            ele.TryPathTo("Grid/X", true, out subEle);
            subEle.Value = GridX.ToString();

            ele.TryPathTo("Grid/Y", true, out subEle);
            subEle.Value = GridY.ToString();

            ele.TryPathTo("Unknown2", true, out subEle);
            subEle.Value = Unknown2.ToHex();
        }
Beispiel #14
0
        protected override void ReadDataXML(XElement ele, ElderScrollsPlugin master)
        {
            XElement subEle;

            if (ele.TryPathTo("Unknown1", false, out subEle))
            {
                Unknown1.ReadXML(subEle, master);
            }

            if (ele.TryPathTo("Unknown2", false, out subEle))
            {
                foreach (XElement e in subEle.Elements())
                {
                    var temp = new FormID();
                    temp.ReadXML(e, master);
                    Unknown2.Add(temp);
                }
            }

            if (ele.TryPathTo("Unknown3", false, out subEle))
            {
                foreach (XElement e in subEle.Elements())
                {
                    var temp = new FormID();
                    temp.ReadXML(e, master);
                    Unknown3.Add(temp);
                }
            }

            if (ele.TryPathTo("Doors", false, out subEle))
            {
                foreach (XElement e in subEle.Elements())
                {
                    var temp = new FormID();
                    temp.ReadXML(e, master);
                    Doors.Add(temp);
                }
            }
        }
Beispiel #15
0
            public override ListViewItem GetListViewItem()
            {
                ListViewItem m = new ListViewItem("");

                m.SubItems.Add(Type.ToString());
                m.SubItems.Add(Next.ToString());
                m.SubItems.Add(Unknown1.ToString());
                m.SubItems.Add(RouteID.ToString());

                m.SubItems.Add(RouteSpeed.ToString());
                m.SubItems.Add(FOVSpeed.ToString());
                m.SubItems.Add(ViewpointSpeed.ToString());

                m.SubItems.Add(Unknown2.ToString());
                m.SubItems.Add(Unknown3.ToString());

                m.SubItems.Add(Position.X.ToString());
                m.SubItems.Add(Position.Y.ToString());
                m.SubItems.Add(Position.Z.ToString());

                m.SubItems.Add(Rotation.X.ToString());
                m.SubItems.Add(Rotation.Y.ToString());
                m.SubItems.Add(Rotation.Z.ToString());

                m.SubItems.Add(FOVBegin.ToString());
                m.SubItems.Add(FOVEnd.ToString());

                m.SubItems.Add(Viewpoint1.X.ToString());
                m.SubItems.Add(Viewpoint1.Y.ToString());
                m.SubItems.Add(Viewpoint1.Z.ToString());

                m.SubItems.Add(Viewpoint2.X.ToString());
                m.SubItems.Add(Viewpoint2.Y.ToString());
                m.SubItems.Add(Viewpoint2.Z.ToString());

                m.SubItems.Add(Duration.ToString());
                return(m);
            }
Beispiel #16
0
        public xxFrame Clone(bool mesh, bool childFrames, int[] matTranslations)
        {
            xxFrame frame = new xxFrame();

            frame.InitChildren(children.Count);
            frame.Name     = Name;
            frame.Matrix   = Matrix;
            frame.Unknown1 = (byte[])Unknown1.Clone();
            frame.Bounds   = Bounds;
            frame.Unknown2 = (byte[])Unknown2.Clone();
            if (Name2 != null)
            {
                frame.Name2 = Name2;
            }

            if (mesh && (Mesh != null))
            {
                frame.Mesh = Mesh.Clone(true, true, true);
                if (matTranslations != null)
                {
                    foreach (xxSubmesh submesh in frame.Mesh.SubmeshList)
                    {
                        if (submesh.MaterialIndex >= 0)
                        {
                            submesh.MaterialIndex = matTranslations[submesh.MaterialIndex];
                        }
                    }
                }
            }
            if (childFrames)
            {
                for (int i = 0; i < children.Count; i++)
                {
                    frame.AddChild(children[i].Clone(mesh, true, matTranslations));
                }
            }
            return(frame);
        }
Beispiel #17
0
        public override int GetHashCode()
        {
            int hash = 1;

            if (Category != 0)
            {
                hash ^= Category.GetHashCode();
            }
            if (Type != 0)
            {
                hash ^= Type.GetHashCode();
            }
            if (Bitrate != 0)
            {
                hash ^= Bitrate.GetHashCode();
            }
            if (Fps != 0)
            {
                hash ^= Fps.GetHashCode();
            }
            if (Unknown1 != 0)
            {
                hash ^= Unknown1.GetHashCode();
            }
            if (Unknown2 != 0)
            {
                hash ^= Unknown2.GetHashCode();
            }
            if (Unknown3 != 0)
            {
                hash ^= Unknown3.GetHashCode();
            }
            if (_unknownFields != null)
            {
                hash ^= _unknownFields.GetHashCode();
            }
            return(hash);
        }
Beispiel #18
0
        public override int Serialize(byte[] codeplugContents, int address)
        {
            var contents    = new byte[CONTENTS_LENGTH].AsSpan();
            var nextAddress = address + CONTENTS_LENGTH + BlockSizeAdjustment;

            contents[EXTERNAL_CODEPLUG_VECTOR]     = (byte)(ExternalCodeplugVector / 0x100);
            contents[EXTERNAL_CODEPLUG_VECTOR + 1] = (byte)(ExternalCodeplugVector % 0x100);
            Encoding.ASCII.GetBytes(Serial).AsSpan().CopyTo(contents.Slice(SERIAL, 10));
            Encoding.ASCII.GetBytes(Model).AsSpan().CopyTo(contents.Slice(MODEL, 16));
            contents[CODEPLUG_VERSION]           = (byte)(InternalCodeplugVersion / 0x100);
            contents[CODEPLUG_VERSION + 1]       = (byte)(InternalCodeplugVersion % 0x100);
            contents[INTERNAL_CODEPLUG_SIZE]     = (byte)(InternalCodeplugSize / 0x100);
            contents[INTERNAL_CODEPLUG_SIZE + 1] = (byte)(InternalCodeplugSize % 0x100);
            Unknown1.AsSpan().CopyTo(contents.Slice(UNKNOWN1));
            nextAddress = SerializeChild(Block02, BLOCK_02_VECTOR, codeplugContents, nextAddress, contents);
            nextAddress = SerializeChild(Block56, BLOCK_56_VECTOR, codeplugContents, nextAddress, contents);
            Unknown2.AsSpan().CopyTo(contents.Slice(UNKNOWN2));
            nextAddress = SerializeChild(Block10, BLOCK_10_VECTOR, codeplugContents, nextAddress, contents);
            Unknown3.AsSpan().CopyTo(contents.Slice(UNKNOWN3));
            AuthCode.AsSpan().CopyTo(contents.Slice(AUTH_CODE));
            Serializer(codeplugContents, address, contents);
            return(nextAddress);
        }
Beispiel #19
0
 public void DumpData()
 {
     BrakeParts.Dump();
     BrakeControllerParts.Dump();
     SteerParts.Dump();
     ChassisParts.Dump();
     LightweightParts.Dump();
     RacingModifyParts.Dump();
     EngineParts.Dump();
     PortPolishParts.Dump();
     EngineBalanceParts.Dump();
     DisplacementParts.Dump();
     ComputerParts.Dump();
     NATuneParts.Dump();
     TurbineKitParts.Dump();
     DrivetrainParts.Dump();
     FlywheelParts.Dump();
     ClutchParts.Dump();
     PropellerShaftParts.Dump();
     GearParts.Dump();
     SuspensionParts.Dump();
     IntercoolerParts.Dump();
     MufflerParts.Dump();
     LSDParts.Dump();
     TiresFrontParts.Dump();
     TiresRearParts.Dump();
     Unknown1.Dump();
     Unknown2.Dump();
     Unknown3.Dump();
     Unknown4.Dump();
     Unknown5.Dump();
     Unknown6.Dump();
     Events.Dump();
     EnemyCars.Dump();
     Cars.Dump();
     CarsSports.Dump();
 }
Beispiel #20
0
        public override string[] ToStringArray()
        {
            string[] a = new string[15];
            a[0] = ID.ToString();
            a[1] = Shape;
            //a[2] = Bytes[1].ToString();
            a[2]  = FloorTextureID.ToString();
            a[3]  = Unknown1.ToString();
            a[4]  = A.ToString();
            a[5]  = B.ToString();
            a[6]  = C.ToString();
            a[7]  = D.ToString();
            a[8]  = E.ToString();
            a[9]  = F.ToString();
            a[10] = G.ToString();
            a[11] = H.ToString();
            a[12] = Unknown2.ToString();
            a[13] = Unknown3.ToString();

            a[14] = Offset.ToString();
            //a[23] = GameType.ToString();

            return(a);
        }
Beispiel #21
0
 public override string ToString()
 {
     return($"{{{nameof(Offset)}={Offset.ToString("X")}, {nameof(Unknown0)}={Unknown0.ToString("X")}, {nameof(Unknown1)}={Unknown1.ToString("X")}, {nameof(Unknown2)}={Unknown2.ToString("X")}, {nameof(Unknown3)}={Unknown3.ToString("X")}, {nameof(Unknown4)}={Unknown4.ToString("X")}, {nameof(Unknown5)}={Unknown5.ToString("X")}, {nameof(Unknown6)}={Unknown6.ToString("X")}, {nameof(Unknown7)}={Unknown7.ToString("X")}}}");
 }
Beispiel #22
0
 /* Autogenerated by R# */
 public bool Equals(AdventurePhysics other) => HangTime == other.HangTime && FloorGrip.Equals(other.FloorGrip) && HorizontalSpeedCap.Equals(other.HorizontalSpeedCap) && VerticalSpeedCap.Equals(other.VerticalSpeedCap) && UnknownAccelRelated.Equals(other.UnknownAccelRelated) && Unknown1.Equals(other.Unknown1) && InitialJumpSpeed.Equals(other.InitialJumpSpeed) && SpringControl.Equals(other.SpringControl) && Unknown2.Equals(other.Unknown2) && RollingMinimumSpeed.Equals(other.RollingMinimumSpeed) && RollingEndSpeed.Equals(other.RollingEndSpeed) && Action1Speed.Equals(other.Action1Speed) && MinWallHitKnockbackSpeed.Equals(other.MinWallHitKnockbackSpeed) && Action2Speed.Equals(other.Action2Speed) && JumpHoldAddSpeed.Equals(other.JumpHoldAddSpeed) && GroundStartingAcceleration.Equals(other.GroundStartingAcceleration) && AirAcceleration.Equals(other.AirAcceleration) && GroundDeceleration.Equals(other.GroundDeceleration) && BrakeSpeed.Equals(other.BrakeSpeed) && AirBrakeSpeed.Equals(other.AirBrakeSpeed) && AirDeceleration.Equals(other.AirDeceleration) && RollingDeceleration.Equals(other.RollingDeceleration) && GravityOffsetSpeed.Equals(other.GravityOffsetSpeed) && MidAirSwerveAcceleration.Equals(other.MidAirSwerveAcceleration) && MinSpeedBeforeStopping.Equals(other.MinSpeedBeforeStopping) && ConstantSpeedOffset.Equals(other.ConstantSpeedOffset) && UnknownOffRoad.Equals(other.UnknownOffRoad) && Unknown3.Equals(other.Unknown3) && Unknown4.Equals(other.Unknown4) && CollisionSize.Equals(other.CollisionSize) && GravitationalPull.Equals(other.GravitationalPull) && YOffsetCamera.Equals(other.YOffsetCamera) && YOffset.Equals(other.YOffset);
Beispiel #23
0
 public void AsText(StringBuilder b, int pad)
 {
     b.Append(' ', pad);
     b.AppendLine("SceneSpecification:");
     b.Append(' ', pad++);
     b.AppendLine("{");
     b.Append(' ', pad);
     b.AppendLine("CellZ: 0x" + CellZ.ToString("X8") + " (" + CellZ + ")");
     Cell.AsText(b, pad);
     b.Append(' ', pad);
     b.AppendLine("arSnoLevelAreas:");
     b.Append(' ', pad);
     b.AppendLine("{");
     for (int i = 0; i < SNOLevelAreas.Length;)
     {
         b.Append(' ', pad + 1);
         for (int j = 0; j < 8 && i < SNOLevelAreas.Length; j++, i++)
         {
             b.Append("0x" + SNOLevelAreas[i].ToString("X8") + ", ");
         }
         b.AppendLine();
     }
     b.Append(' ', pad);
     b.AppendLine("}");
     b.AppendLine();
     b.Append(' ', pad);
     b.AppendLine("snoPrevWorld: 0x" + SNOPrevWorld.ToString("X8"));
     b.Append(' ', pad);
     b.AppendLine("Unknown1: 0x" + Unknown1.ToString("X8") + " (" + Unknown1 + ")");
     b.Append(' ', pad);
     b.AppendLine("snoPrevLevelArea: 0x" + SNOPrevLevelArea.ToString("X8"));
     b.Append(' ', pad);
     b.AppendLine("snoNextWorld: 0x" + SNONextWorld.ToString("X8"));
     b.Append(' ', pad);
     b.AppendLine("Unknown2: 0x" + Unknown2.ToString("X8") + " (" + Unknown2 + ")");
     b.Append(' ', pad);
     b.AppendLine("snoNextLevelArea: 0x" + SNONextLevelArea.ToString("X8"));
     b.Append(' ', pad);
     b.AppendLine("snoMusic: 0x" + SNOMusic.ToString("X8"));
     b.Append(' ', pad);
     b.AppendLine("snoCombatMusic: 0x" + SNOCombatMusic.ToString("X8"));
     b.Append(' ', pad);
     b.AppendLine("snoAmbient: 0x" + SNOAmbient.ToString("X8"));
     b.Append(' ', pad);
     b.AppendLine("snoReverb: 0x" + SNOReverb.ToString("X8"));
     b.Append(' ', pad);
     b.AppendLine("snoWeather: 0x" + SNOWeather.ToString("X8"));
     b.Append(' ', pad);
     b.AppendLine("snoPresetWorld: 0x" + SNOPresetWorld.ToString("X8"));
     b.Append(' ', pad);
     b.AppendLine("Unknown3: 0x" + Unknown3.ToString("X8") + " (" + Unknown3 + ")");
     b.Append(' ', pad);
     b.AppendLine("Unknown4: 0x" + Unknown4.ToString("X8") + " (" + Unknown4 + ")");
     b.Append(' ', pad);
     b.AppendLine("Unknown5: 0x" + Unknown5.ToString("X8") + " (" + Unknown5 + ")");
     b.Append(' ', pad);
     b.AppendLine("ClusterId: 0x" + ClusterID.ToString("X8") + " (" + ClusterID + ")");
     SceneCachedValues.AsText(b, pad);
     b.Append(' ', --pad);
     b.AppendLine("}");
 }
 public override void UpdateData()
 {
     Data = Unknown1.ToString() + ", " + Unknown2.ToString() + ", " + Unknown3.ToString() + ", " + Unknown4.ToString() + ", " + Unknown5.ToString();
 }
        public void WriteXML(XElement ele, ElderScrollsPlugin master)
        {
            XElement subEle;

            ele.TryPathTo("Object", true, out subEle);
            Object.WriteXML(subEle, master);

            ele.TryPathTo("ParentIndex", true, out subEle);
            subEle.Value = ParentIndex.ToString();

            ele.TryPathTo("Unused", true, out subEle);
            subEle.Value = Unused.ToHex();

            ele.TryPathTo("Density", true, out subEle);
            subEle.Value = Density.ToString("G15");

            ele.TryPathTo("Clustering", true, out subEle);
            subEle.Value = Clustering.ToString();

            ele.TryPathTo("Slope/Min", true, out subEle);
            subEle.Value = MinSlope.ToString();

            ele.TryPathTo("Slope/Max", true, out subEle);
            subEle.Value = MaxSlope.ToString();

            ele.TryPathTo("Flags", true, out subEle);
            subEle.Value = Flags.ToString();

            ele.TryPathTo("RadiusWithRespectToParent", true, out subEle);
            subEle.Value = RadiusWithRespectToParent.ToString();

            ele.TryPathTo("Radius", true, out subEle);
            subEle.Value = Radius.ToString();

            ele.TryPathTo("Unknown1", true, out subEle);
            subEle.Value = Unknown1.ToHex();

            ele.TryPathTo("MaxHeight", true, out subEle);
            subEle.Value = MaxHeight.ToString("G15");

            ele.TryPathTo("Sink", true, out subEle);
            subEle.Value = Sink.ToString("G15");

            ele.TryPathTo("SinkVariance", true, out subEle);
            subEle.Value = SinkVariance.ToString("G15");

            ele.TryPathTo("SizeVariance", true, out subEle);
            subEle.Value = SizeVariance.ToString("G15");

            ele.TryPathTo("XAngleVariance", true, out subEle);
            subEle.Value = XAngleVariance.ToString();

            ele.TryPathTo("YAngleVariance", true, out subEle);
            subEle.Value = YAngleVariance.ToString();

            ele.TryPathTo("ZAngleVariance", true, out subEle);
            subEle.Value = ZAngleVariance.ToString();

            ele.TryPathTo("Unknown2", true, out subEle);
            subEle.Value = Unknown2.ToHex();
        }
Beispiel #26
0
        public override void ReadBinary(ESPReader reader)
        {
            List <string> readTags = new List <string>();

            readTags.Add(reader.PeekTag());
            Marker.ReadBinary(reader);

            while (reader.BaseStream.Position < reader.BaseStream.Length)
            {
                string subTag = reader.PeekTag();

                switch (subTag)
                {
                case "FULL":
                    if (readTags.Contains("FULL"))
                    {
                        return;
                    }
                    if (Unknown1 == null)
                    {
                        Unknown1 = new SimpleSubrecord <Byte[]>();
                    }

                    Unknown1.ReadBinary(reader);
                    break;

                case "CNAM":
                    if (readTags.Contains("CNAM"))
                    {
                        return;
                    }
                    if (AudioLocation == null)
                    {
                        AudioLocation = new RecordReference();
                    }

                    AudioLocation.ReadBinary(reader);
                    break;

                case "BNAM":
                    if (readTags.Contains("BNAM"))
                    {
                        return;
                    }
                    if (Unknown2 == null)
                    {
                        Unknown2 = new SimpleSubrecord <Byte[]>();
                    }

                    Unknown2.ReadBinary(reader);
                    break;

                case "MNAM":
                    if (readTags.Contains("MNAM"))
                    {
                        return;
                    }
                    if (Unknown3 == null)
                    {
                        Unknown3 = new SimpleSubrecord <Single>();
                    }

                    Unknown3.ReadBinary(reader);
                    break;

                case "NNAM":
                    if (readTags.Contains("NNAM"))
                    {
                        return;
                    }
                    if (Unknown4 == null)
                    {
                        Unknown4 = new SimpleSubrecord <Single>();
                    }

                    Unknown4.ReadBinary(reader);
                    break;

                default:
                    return;
                }

                readTags.Add(subTag);
            }
        }
Beispiel #27
0
 public override string ToString()
 {
     return($"{{{nameof(Offset)}={Offset.ToString("X")}, {nameof(Unknown0)}={Unknown0.ToString("X")}, {nameof(Unknown1)}={Unknown1.ToString("X")}, {nameof(Pad0)}={Pad0.ToString("X")}, {nameof(Pad1)}={Pad1.ToString("X")}}}");
 }
Beispiel #28
0
 public override string ToString()
 {
     return($"{{{nameof(Offset)}={Offset.ToString("X")}, {nameof(Unknown0)}={Unknown0.ToString("X")}, {nameof(Unknown1)}={Unknown1.ToString("X")}, {nameof(Unknown2)}={Unknown2.ToString("X")}, {nameof(HorizontalBoost)}={HorizontalBoost.ToString("X")}, {nameof(HopsOffset)}={HopsOffset.ToString("X")}, {nameof(UnknownDatasOffset)}={UnknownDatasOffset.ToString("X")}, {nameof(TurnFrames)}={TurnFrames.ToString("X")}, {nameof(Hops)}={Hops}, {nameof(MultiJumpUnknown)}={MultiJumpUnknown}}}");
 }
Beispiel #29
0
        public void ToStructVariables(TextWriter writer, LandTableFormat format, List <string> labels, string[] textures = null)
        {
            List <COL> cnk = new List <COL>();
            List <COL> bas = new List <COL>();

            foreach (COL item in COL)
            {
                if (item.Model.Attach is BasicAttach)
                {
                    bas.Add(item);
                }
                else
                {
                    cnk.Add(item);
                }
            }
            COL.Clear();
            COL.AddRange(cnk);
            COL.AddRange(bas);
            for (int i = 0; i < COL.Count; i++)
            {
                if (!labels.Contains(COL[i].Model.Name))
                {
                    labels.Add(COL[i].Model.Name);
                    COL[i].Model.ToStructVariables(writer, format == LandTableFormat.SADX, labels, textures);
                }
            }
            for (int i = 0; i < Anim.Count; i++)
            {
                string aniid = Anim[i].Animation.Name.MakeIdentifier();
                if (!labels.Contains(Anim[i].Model.Name))
                {
                    labels.Add(Anim[i].Model.Name);
                    Anim[i].Model.ToStructVariables(writer, format == LandTableFormat.SADX, labels, textures);
                }
                if (!labels.Contains(aniid))
                {
                    labels.Add(aniid);
                    Anim[i].Animation.ToStructVariables(writer);
                    writer.Write("NJS_ACTION action_");
                    writer.Write(aniid);
                    writer.Write(" = { &");
                    writer.Write(Anim[i].Model.Name);
                    writer.Write(", &");
                    writer.Write(aniid);
                    writer.WriteLine(" };");
                    writer.WriteLine();
                }
            }
            if (!labels.Contains(COLName))
            {
                labels.Add(COLName);
                writer.Write("COL ");
                writer.Write(COLName);
                writer.WriteLine("[] = {");
                List <string> lines = new List <string>(COL.Count);
                foreach (COL item in COL)
                {
                    lines.Add(item.ToStruct(format));
                }
                writer.WriteLine("\t" + string.Join("," + Environment.NewLine + "\t", lines.ToArray()));
                writer.WriteLine("};");
                writer.WriteLine();
            }
            if (Anim.Count > 0 && !labels.Contains(AnimName))
            {
                labels.Add(AnimName);
                writer.Write("GeoAnimData ");
                writer.Write(AnimName);
                writer.WriteLine("[] = {");
                List <string> lines = new List <string>(Anim.Count);
                foreach (GeoAnimData item in Anim)
                {
                    lines.Add(item.ToStruct());
                }
                writer.WriteLine("\t" + string.Join("," + Environment.NewLine + "\t", lines.ToArray()));
                writer.WriteLine("};");
                writer.WriteLine();
            }
            writer.Write("LandTable ");
            writer.Write(Name);
            writer.Write(" = { LengthOfArray<int16_t>(");
            writer.Write(COLName);
            writer.Write("), ");
            switch (format)
            {
            case LandTableFormat.SA1:
            case LandTableFormat.SADX:
                writer.Write(Anim.Count > 0 ? "LengthOfArray<int16_t>(" + AnimName + ")" : "0");
                writer.Write(", ");
                writer.Write(Flags.ToCHex());
                writer.Write(", ");
                writer.Write(Unknown1.ToC());
                writer.Write(", ");
                writer.Write(COLName);
                writer.Write(", ");
                writer.Write(Anim.Count > 0 ? AnimName : "NULL");
                writer.Write(", ");
                writer.Write(TextureFileName.ToC());
                writer.Write(", (NJS_TEXLIST *)");
                writer.Write(TextureList.ToCHex());
                writer.Write(", ");
                writer.Write(Unknown2.ToCHex());
                writer.Write(", ");
                writer.Write(Unknown3.ToCHex());
                break;

            case LandTableFormat.SA2:
                writer.Write(cnk.Count);
                writer.Write(", 0, 0, 0, 0, ");
                writer.Write(Unknown1.ToC());
                writer.Write(", ");
                writer.Write(COLName);
                writer.Write(", ");
                writer.Write(Anim.Count > 0 ? AnimName : "NULL");
                writer.Write(", ");
                writer.Write(TextureFileName.ToC());
                writer.Write(", (NJS_TEXLIST *)");
                writer.Write(TextureList.ToCHex());
                break;
            }
            writer.WriteLine(" };");
        }
        private void TestUnknown1(Header h)
        {
            Unknown1 msg = new Unknown1();

            msg.Deserialise(h, msg.CreatePacketType(h, Input, Input));
        }