コード例 #1
0
ファイル: 345-REGN.Region.cs プロジェクト: libcs/game-estates
 public RDATField(BinaryFileReader r, int dataSize)
 {
     Type     = r.ReadUInt32();
     Flags    = (REGNType)r.ReadByte();
     Priority = r.ReadByte();
     r.Skip(2); // Unused
 }
コード例 #2
0
 public BYDTField(BinaryFileReader r, int dataSize)
 {
     Part     = r.ReadByte();
     Vampire  = r.ReadByte();
     Flags    = r.ReadByte();
     PartType = r.ReadByte();
 }
コード例 #3
0
            public int    Parameter2; // Parameter #2

            public CTDAField(BinaryFileReader r, int dataSize, GameFormat format)
            {
                if (format == GameFormat.TES3)
                {
                    Index           = r.ReadByte();
                    Type            = r.ReadByte();
                    FunctionId      = r.ReadASCIIString(2);
                    CompareOp       = (byte)(r.ReadByte() << 1);
                    Name            = r.ReadASCIIString(dataSize - 5);
                    ComparisonValue = Parameter1 = Parameter2 = 0;
                    return;
                }
                CompareOp = r.ReadByte();
                r.Skip(3); // Unused
                ComparisonValue = r.ReadSingle();
                FunctionId      = r.ReadASCIIString(4);
                Parameter1      = r.ReadInt32();
                Parameter2      = r.ReadInt32();
                if (dataSize != 24)
                {
                    r.Skip(4); // Unused
                }
                Index = Type = 0;
                Name  = null;
            }
コード例 #4
0
 public AI_WField(BinaryFileReader r, int dataSize)
 {
     Distance  = r.ReadInt16();
     Duration  = r.ReadInt16();
     TimeOfDay = r.ReadByte();
     Idle      = r.ReadBytes(8);
     Unknown   = r.ReadByte();
 }
コード例 #5
0
 public PSDTField(BinaryFileReader r, int dataSize)
 {
     Month     = r.ReadByte();
     DayOfWeek = r.ReadByte();
     Date      = r.ReadByte();
     Time      = (sbyte)r.ReadByte();
     Duration  = r.ReadInt32();
 }
コード例 #6
0
 public DATA3Field(BinaryFileReader r, int dataSize)
 {
     Unknown1    = r.ReadInt32();
     Disposition = r.ReadInt32();
     Rank        = r.ReadByte();
     Gender      = r.ReadByte();
     PCRank      = r.ReadByte();
     Unknown2    = r.ReadByte();
 }
コード例 #7
0
 public ENAMField(BinaryFileReader r, int dataSize)
 {
     EffectId    = r.ReadInt16();
     SkillId     = r.ReadByte();
     AttributeId = r.ReadByte();
     Unknown1    = r.ReadInt32();
     Unknown2    = r.ReadInt32();
     Duration    = r.ReadInt32();
     Magnitude   = r.ReadInt32();
     Unknown4    = r.ReadInt32();
 }
コード例 #8
0
 public XLOCField(BinaryFileReader r, int dataSize)
 {
     LockLevel = r.ReadByte();
     r.Skip(3); // Unused
     Key = new FormId <KEYMRecord>(r.ReadUInt32());
     if (dataSize == 16)
     {
         r.Skip(4); // Unused
     }
     Flags = r.ReadByte();
     r.Skip(3); // Unused
 }
コード例 #9
0
 public DATAField(BinaryFileReader r, int dataSize)
 {
     Density  = r.ReadByte();
     MinSlope = r.ReadByte();
     MaxSlope = r.ReadByte();
     r.ReadByte();
     UnitFromWaterAmount = r.ReadUInt16();
     r.Skip(2);
     UnitFromWaterType = r.ReadUInt32();
     PositionRange     = r.ReadSingle();
     HeightRange       = r.ReadSingle();
     ColorRange        = r.ReadSingle();
     WavePeriod        = r.ReadSingle();
     Flags             = r.ReadByte();
     r.Skip(3);
 }
コード例 #10
0
        public void ReadByteTest()
        {
            File file =
                new File(System.IO.Path.Combine(TestDirectory, "Test1.bin"));

            try
            {
                BinaryFileWriter target =
                    new BinaryFileWriter(file, Encoding.UTF32);

                byte b = 10;
                target.WriteByte(b);
                target.Close();

                BinaryFileReader r =
                    new BinaryFileReader(file);

                byte c = r.ReadByte();

                Assert.AreEqual(b, c, "Should be equal");

                r.Close();
            }
            catch (Exception e)
            {
                Assert.Fail(e.ToString());
            }
        }
コード例 #11
0
 public DATAField(BinaryFileReader r, int dataSize, GameFormat format)
 {
     if (format == GameFormat.TES3)
     {
         Weight     = r.ReadSingle();
         Value      = r.ReadInt32();
         Flags      = (byte)r.ReadInt32();
         Teaches    = (byte)r.ReadInt32();
         EnchantPts = r.ReadInt32();
         return;
     }
     Flags      = r.ReadByte();
     Teaches    = r.ReadByte();
     Value      = r.ReadInt32();
     Weight     = r.ReadSingle();
     EnchantPts = 0;
 }
コード例 #12
0
 public TRDTField(BinaryFileReader r, int dataSize)
 {
     EmotionType  = r.ReadUInt32();
     EmotionValue = r.ReadInt32();
     r.Skip(4); // Unused
     ResponseNumber = r.ReadByte();
     r.Skip(3); // Unused
 }
コード例 #13
0
 public XSEDField(BinaryFileReader r, int dataSize)
 {
     Seed = r.ReadByte();
     if (dataSize == 4)
     {
         r.Skip(3); // Unused
     }
 }
コード例 #14
0
 public DATAField(BinaryFileReader r, int dataSize, GameFormat format)
 {
     if (format == GameFormat.TES3)
     {
         Weight = r.ReadSingle();
         return;
     }
     Flags  = r.ReadByte();
     Weight = r.ReadSingle();
 }
コード例 #15
0
 public AIDTField(BinaryFileReader r, int dataSize)
 {
     Hello    = r.ReadByte();
     Unknown1 = r.ReadByte();
     Fight    = r.ReadByte();
     Flee     = r.ReadByte();
     Alarm    = r.ReadByte();
     Unknown2 = r.ReadByte();
     Unknown3 = r.ReadByte();
     Unknown4 = r.ReadByte();
     Flags    = r.ReadUInt32();
 }
コード例 #16
0
 public DATAField(BinaryFileReader r, int dataSize)
 {
     if (dataSize != 102 && dataSize != 86 && dataSize != 62 && dataSize != 42 && dataSize != 2)
     {
         WindVelocity = 1;
     }
     if (dataSize == 2)
     {
         Damage = r.ReadUInt16();
         return;
     }
     WindVelocity          = r.ReadSingle();
     WindDirection         = r.ReadSingle();
     WaveAmplitude         = r.ReadSingle();
     WaveFrequency         = r.ReadSingle();
     SunPower              = r.ReadSingle();
     ReflectivityAmount    = r.ReadSingle();
     FresnelAmount         = r.ReadSingle();
     ScrollXSpeed          = r.ReadSingle();
     ScrollYSpeed          = r.ReadSingle();
     FogDistance_NearPlane = r.ReadSingle();
     if (dataSize == 42)
     {
         Damage = r.ReadUInt16();
         return;
     }
     FogDistance_FarPlane = r.ReadSingle();
     ShallowColor         = r.ReadT <ColorRef4>(dataSize);
     DeepColor            = r.ReadT <ColorRef4>(dataSize);
     ReflectionColor      = r.ReadT <ColorRef4>(dataSize);
     TextureBlend         = r.ReadByte();
     r.Skip(3); // Unused
     if (dataSize == 62)
     {
         Damage = r.ReadUInt16();
         return;
     }
     RainSimulator_Force         = r.ReadSingle();
     RainSimulator_Velocity      = r.ReadSingle();
     RainSimulator_Falloff       = r.ReadSingle();
     RainSimulator_Dampner       = r.ReadSingle();
     RainSimulator_StartingSize  = r.ReadSingle();
     DisplacementSimulator_Force = r.ReadSingle();
     if (dataSize == 86)
     {
         //DisplacementSimulator_Velocity = DisplacementSimulator_Falloff = DisplacementSimulator_Dampner = DisplacementSimulator_StartingSize = 0F;
         Damage = r.ReadUInt16();
         return;
     }
     DisplacementSimulator_Velocity     = r.ReadSingle();
     DisplacementSimulator_Falloff      = r.ReadSingle();
     DisplacementSimulator_Dampner      = r.ReadSingle();
     DisplacementSimulator_StartingSize = r.ReadSingle();
     Damage = r.ReadUInt16();
 }
コード例 #17
0
 public SkillBoost(BinaryFileReader r, int dataSize, GameFormat format)
 {
     if (format == GameFormat.TES3)
     {
         SkillId = (byte)r.ReadInt32();
         Bonus   = (sbyte)r.ReadInt32();
         return;
     }
     SkillId = r.ReadByte();
     Bonus   = r.ReadSByte();
 }
コード例 #18
0
ファイル: 345-REGN.Region.cs プロジェクト: libcs/game-estates
            public ColorRef4       VertexShading; // RGB + Shading radius (0 - 200) %

            public RDOTField(BinaryFileReader r, int dataSize)
            {
                Object    = new FormId <Record>(r.ReadUInt32());
                ParentIdx = r.ReadUInt16();
                r.Skip(2); // Unused
                Density         = r.ReadSingle();
                Clustering      = r.ReadByte();
                MinSlope        = r.ReadByte();
                MaxSlope        = r.ReadByte();
                Flags           = r.ReadByte();
                RadiusWrtParent = r.ReadUInt16();
                Radius          = r.ReadUInt16();
                MinHeight       = r.ReadSingle();
                MaxHeight       = r.ReadSingle();
                Sink            = r.ReadSingle();
                SinkVariance    = r.ReadSingle();
                SizeVariance    = r.ReadSingle();
                AngleVariance   = new Vector3Int(r.ReadUInt16(), r.ReadUInt16(), r.ReadUInt16());
                r.Skip(2); // Unused
                VertexShading = r.ReadT <ColorRef4>(dataSize);
            }
コード例 #19
0
 public EFITField(BinaryFileReader r, int dataSize, GameFormat format)
 {
     if (format == GameFormat.TES3)
     {
         EffectId     = r.ReadASCIIString(2);
         SkillId      = r.ReadByte();
         AttributeId  = r.ReadByte();
         Type         = r.ReadInt32();
         Area         = r.ReadInt32();
         Duration     = r.ReadInt32();
         MagnitudeMin = r.ReadInt32();
         MagnitudeMax = r.ReadInt32();
         return;
     }
     EffectId     = r.ReadASCIIString(4);
     MagnitudeMin = r.ReadInt32();
     Area         = r.ReadInt32();
     Duration     = r.ReadInt32();
     Type         = r.ReadInt32();
     ActorValue   = r.ReadInt32();
 }
コード例 #20
0
            public int    Flags; // 0 = ?, 1 = Ignore Normal Weapon Resistance?

            public DATAField(BinaryFileReader r, int dataSize, GameFormat format)
            {
                if (format == GameFormat.TES3)
                {
                    Weight    = r.ReadSingle();
                    Value     = r.ReadInt32();
                    Type      = r.ReadUInt16();
                    Health    = r.ReadInt16();
                    Speed     = r.ReadSingle();
                    Reach     = r.ReadSingle();
                    Damage    = r.ReadInt16();
                    ChopMin   = r.ReadByte();
                    ChopMax   = r.ReadByte();
                    SlashMin  = r.ReadByte();
                    SlashMax  = r.ReadByte();
                    ThrustMin = r.ReadByte();
                    ThrustMax = r.ReadByte();
                    Flags     = r.ReadInt32();
                    return;
                }
                Type    = (ushort)r.ReadUInt32();
                Speed   = r.ReadSingle();
                Reach   = r.ReadSingle();
                Flags   = r.ReadInt32();
                Value   = r.ReadInt32();
                Health  = (short)r.ReadInt32();
                Weight  = r.ReadSingle();
                Damage  = r.ReadInt16();
                ChopMin = ChopMax = SlashMin = SlashMax = ThrustMin = ThrustMax = 0;
            }
コード例 #21
0
ファイル: 345-REGN.Region.cs プロジェクト: libcs/game-estates
 public RDSDField(BinaryFileReader r, int dataSize, GameFormat format)
 {
     if (format == GameFormat.TES3)
     {
         Sound  = new FormId <SOUNRecord>(r.ReadASCIIString(32, ASCIIFormat.ZeroPadded));
         Flags  = 0;
         Chance = r.ReadByte();
         return;
     }
     Sound  = new FormId <SOUNRecord>(r.ReadUInt32());
     Flags  = r.ReadUInt32();
     Chance = r.ReadUInt32(); //: float with TES5
 }
コード例 #22
0
ファイル: PlayerMacros.cs プロジェクト: uotools/JuicyUO
        private bool Unserialize(BinaryFileReader reader)
        {
            uint magic = reader.ReadUInt();

            if (magic != MAGIC)
            {
                return(false);
            }

            if (m_Macros == null)
            {
                m_Macros = new List <Action>();
            }
            m_Macros.Clear();

            int version = reader.ReadInt();
            int count   = reader.ReadInt();

            for (int i = 0; i < count; i++)
            {
                Action action = new Action();
                action.Keystroke = (WinKeys)reader.ReadUShort();
                action.Ctrl      = reader.ReadBool();
                action.Alt       = reader.ReadBool();
                action.Shift     = reader.ReadBool();
                reader.ReadBool(); // unused filler byte

                int macroCount = reader.ReadUShort();
                for (int j = 0; j < macroCount; j++)
                {
                    int type = reader.ReadInt();
                    Macro.ValueTypes valueType = (Macro.ValueTypes)reader.ReadByte();
                    if (valueType == Macro.ValueTypes.Integer)
                    {
                        action.Macros.Add(new Macro((MacroType)type, reader.ReadInt()));
                    }
                    else if (valueType == Macro.ValueTypes.String)
                    {
                        action.Macros.Add(new Macro((MacroType)type, reader.ReadString()));
                    }
                    else
                    {
                        action.Macros.Add(new Macro((MacroType)type));
                    }
                }

                m_Macros.Add(action);
            }

            return(true);
        }
コード例 #23
0
ファイル: 345-REGN.Region.cs プロジェクト: libcs/game-estates
 public WEATField(BinaryFileReader r, int dataSize)
 {
     Clear    = r.ReadByte();
     Cloudy   = r.ReadByte();
     Foggy    = r.ReadByte();
     Overcast = r.ReadByte();
     Rain     = r.ReadByte();
     Thunder  = r.ReadByte();
     Ash      = r.ReadByte();
     Blight   = r.ReadByte();
     // v1.3 ESM files add 2 bytes to WEAT subrecords.
     if (dataSize == 10)
     {
         r.Skip(2);
     }
 }
コード例 #24
0
 public TNAMField(BinaryFileReader r, int dataSize)
 {
     Sunrise_Begin    = r.ReadByte();
     Sunrise_End      = r.ReadByte();
     Sunset_Begin     = r.ReadByte();
     Sunset_End       = r.ReadByte();
     Volatility       = r.ReadByte();
     MoonsPhaseLength = r.ReadByte();
 }
コード例 #25
0
ファイル: PlayerMacros.cs プロジェクト: BclEx/object-assets
        private bool Unserialize(BinaryFileReader r)
        {
            var magic = r.ReadUInt();

            if (magic != MAGIC)
            {
                return(false);
            }

            if (_macros == null)
            {
                _macros = new List <Action>();
            }
            _macros.Clear();
            var version = r.ReadInt();
            var count   = r.ReadInt();

            for (var i = 0; i < count; i++)
            {
                var action = new Action();
                action.Keystroke = (WinKeys)r.ReadUShort();
                action.Ctrl      = r.ReadBool();
                action.Alt       = r.ReadBool();
                action.Shift     = r.ReadBool();
                r.ReadBool(); // unused filler byte

                var macroCount = r.ReadUShort();
                for (var j = 0; j < macroCount; j++)
                {
                    var type      = r.ReadInt();
                    var valueType = (Macro.ValueTypes)r.ReadByte();
                    if (valueType == Macro.ValueTypes.Integer)
                    {
                        action.Macros.Add(new Macro((MacroType)type, r.ReadInt()));
                    }
                    else if (valueType == Macro.ValueTypes.String)
                    {
                        action.Macros.Add(new Macro((MacroType)type, r.ReadString()));
                    }
                    else
                    {
                        action.Macros.Add(new Macro((MacroType)type));
                    }
                }
                _macros.Add(action);
            }

            return(true);
        }
コード例 #26
0
 public DATAField(BinaryFileReader r, int dataSize, GameFormat format)
 {
     if (format == GameFormat.TES3)
     {
         Type    = (byte)r.ReadInt32();
         Quality = r.ReadSingle();
         Weight  = r.ReadSingle();
         Value   = r.ReadInt32();
         return;
     }
     Type    = r.ReadByte();
     Value   = r.ReadInt32();
     Weight  = r.ReadSingle();
     Quality = r.ReadSingle();
 }
コード例 #27
0
        public bool Unserialize(BinaryFileReader reader)
        {
            string id = reader.ReadString();

            if (id != c_SerializeIdentifier)
            {
                return(false);
            }
            int version = reader.ReadInt();

            if (version >= 0)
            {
                // version 0
                // 16 byte header
                m_PaletteZero = reader.ReadByte();
                for (int i = 0; i < 4; i++)
                {
                    m_Palettes[i] = reader.ReadByte();
                }
                for (int i = 0; i < 3; i++)
                {
                    reader.ReadByte();
                }

                m_Tilegfx.Reset();
                m_Tilegfx.NextIndex = reader.ReadInt();
                int count = reader.ReadInt();
                for (int i = 0; i < count; i++)
                {
                    int  index = reader.ReadInt();
                    byte tile  = reader.ReadByte();
                    byte page  = reader.ReadByte();
                    m_Tilegfx.AddIndexTilePage(index, tile, page);
                }

                for (int i = 0; i < TilesPerSet; i++)
                {
                    for (int j = 0; j < 4; j++)
                    {
                        m_Metatiles[i][j] = reader.ReadInt();
                    }
                    m_Bitfields[i]  = reader.ReadByte();
                    m_Attributes[i] = reader.ReadByte();
                }
            }
            return(true);
        }
コード例 #28
0
ファイル: Record+Fields.cs プロジェクト: libcs/game-estates
        public static INTVField ReadINTV(this BinaryFileReader r, int length)
        {
            switch (length)
            {
            case 1: return(new INTVField {
                    Value = r.ReadByte()
                });

            case 2: return(new INTVField {
                    Value = r.ReadInt16()
                });

            case 4: return(new INTVField {
                    Value = r.ReadInt32()
                });

            case 8: return(new INTVField {
                    Value = r.ReadInt64()
                });

            default: throw new NotImplementedException($"Tried to read an INTV subrecord with an unsupported size ({length})");
            }
        }
コード例 #29
0
            public byte StartTime;            // Start time

            public DATAField(BinaryFileReader r, int dataSize, GameFormat format)
            {
                Volume   = format == GameFormat.TES3 ? r.ReadByte() : (byte)0;
                MinRange = r.ReadByte();
                MaxRange = r.ReadByte();
                if (format == GameFormat.TES3)
                {
                    return;
                }
                FrequencyAdjustment = r.ReadSByte();
                r.ReadByte();   // Unused
                Flags = r.ReadUInt16();
                r.ReadUInt16(); // Unused
                if (dataSize == 8)
                {
                    return;
                }
                StaticAttenuation = r.ReadUInt16();
                StopTime          = r.ReadByte();
                StartTime         = r.ReadByte();
            }
コード例 #30
0
 public DATAField(BinaryFileReader r, int dataSize)
 {
     Uses   = r.ReadByte();
     Value  = r.ReadInt32();
     Weight = r.ReadSingle();
 }