Пример #1
0
 protected override void ReadData(ESPReader reader)
 {
     using (MemoryStream stream = new MemoryStream(reader.ReadBytes(size)))
         using (ESPReader subReader = new ESPReader(stream, reader.Plugin))
         {
             try
             {
                 MinAttenuationDistance        = subReader.ReadByte();
                 MaxAttenuationDistance        = subReader.ReadByte();
                 FrequencyAdjustmentPercentage = subReader.ReadSByte();
                 Unused                   = subReader.ReadByte();
                 SoundDataFlags           = subReader.ReadEnum <SoundDataFlags>();
                 StaticAttenuationcdB     = subReader.ReadInt16();
                 StopTime                 = subReader.ReadByte();
                 StartTime                = subReader.ReadByte();
                 AttenuationCurvePoint1   = subReader.ReadInt16();
                 AttenuationCurvePoint2   = subReader.ReadInt16();
                 AttenuationCurvePoint3   = subReader.ReadInt16();
                 AttenuationCurvePoint4   = subReader.ReadInt16();
                 AttenuationCurvePoint5   = subReader.ReadInt16();
                 ReverbAttenuationControl = subReader.ReadInt16();
                 Priority                 = subReader.ReadInt32();
                 Unknown                  = subReader.ReadBytes(8);
             }
             catch
             {
                 return;
             }
         }
 }
Пример #2
0
 protected override void ReadData(ESPReader reader)
 {
     using (MemoryStream stream = new MemoryStream(reader.ReadBytes(size)))
         using (ESPReader subReader = new ESPReader(stream, reader.Plugin))
         {
             try
             {
                 Aggression          = subReader.ReadEnum <AggressionType>();
                 Confidence          = subReader.ReadEnum <ConfidenceType>();
                 EnergyLevel         = subReader.ReadByte();
                 Responsibility      = subReader.ReadByte();
                 Mood                = subReader.ReadEnum <MoodType>();
                 Unused              = subReader.ReadBytes(3);
                 Services            = subReader.ReadEnum <ServicesFlag>();
                 Teaches             = subReader.ReadEnum <Skills>();
                 MaxTrainingLevel    = subReader.ReadByte();
                 Assistance          = subReader.ReadEnum <AssistanceType>();
                 AggroRadiusBehavior = subReader.ReadEnum <AggroRadiusBehaviorFlags>();
                 AggroRadius         = subReader.ReadInt32();
             }
             catch
             {
                 return;
             }
         }
 }
Пример #3
0
 protected override void ReadData(ESPReader reader)
 {
     using (MemoryStream stream = new MemoryStream(reader.ReadBytes(size)))
         using (ESPReader subReader = new ESPReader(stream, reader.Plugin))
         {
             try
             {
                 X             = subReader.ReadInt32();
                 Y             = subReader.ReadInt32();
                 ForceHideLand = subReader.ReadEnum <ForceHideLandFlags>();
             }
             catch
             {
                 return;
             }
         }
 }
Пример #4
0
 protected override void ReadData(ESPReader reader)
 {
     using (MemoryStream stream = new MemoryStream(reader.ReadBytes(size)))
         using (ESPReader subReader = new ESPReader(stream, reader.Plugin))
         {
             try
             {
                 Value        = subReader.ReadInt32();
                 MaxCondition = subReader.ReadInt32();
                 Weight       = subReader.ReadSingle();
             }
             catch
             {
                 return;
             }
         }
 }
Пример #5
0
 protected override void ReadData(ESPReader reader)
 {
     using (MemoryStream stream = new MemoryStream(reader.ReadBytes(size)))
         using (ESPReader subReader = new ESPReader(stream, reader.Plugin))
         {
             try
             {
                 Value      = subReader.ReadInt32();
                 Health     = subReader.ReadInt32();
                 Weight     = subReader.ReadSingle();
                 BaseDamage = subReader.ReadInt16();
                 ClipSize   = subReader.ReadByte();
             }
             catch
             {
                 return;
             }
         }
 }
Пример #6
0
 protected override void ReadData(ESPReader reader)
 {
     using (MemoryStream stream = new MemoryStream(reader.ReadBytes(size)))
         using (ESPReader subReader = new ESPReader(stream, reader.Plugin))
         {
             try
             {
                 UsableXSize = subReader.ReadInt32();
                 UsableYSize = subReader.ReadInt32();
                 MinX        = subReader.ReadInt16();
                 MinY        = subReader.ReadInt16();
                 MaxX        = subReader.ReadInt16();
                 MaxY        = subReader.ReadInt16();
             }
             catch
             {
                 return;
             }
         }
 }
        protected override void ReadData(ESPReader reader)
        {
            using (MemoryStream stream = new MemoryStream(reader.ReadBytes(size)))
                using (ESPReader subReader = new ESPReader(stream, reader.Plugin))
                {
                    try
                    {
                        Type = subReader.ReadEnum <PackageLocationType>();

                        switch (Type)
                        {
                        case PackageLocationType.NearReference:
                            Location = new FormID(subReader.ReadUInt32());
                            break;

                        case PackageLocationType.InCell:
                            Location = new FormID(subReader.ReadUInt32());
                            break;

                        case PackageLocationType.NearCurrentLocation:
                            Location = subReader.ReadBytes(4);
                            break;

                        case PackageLocationType.NearEditorLocation:
                            Location = subReader.ReadBytes(4);
                            break;

                        case PackageLocationType.ObjectID:
                            Location = new FormID(subReader.ReadUInt32());
                            break;

                        case PackageLocationType.ObjectType:
                            Location = (ObjectType)subReader.ReadUInt32();
                            break;

                        case PackageLocationType.NearLinkedReference:
                            Location = subReader.ReadBytes(4);
                            break;

                        case PackageLocationType.AtPackageLocation:
                            Location = subReader.ReadBytes(4);
                            break;
                        }

                        Radius = subReader.ReadInt32();
                    }
                    catch
                    {
                        return;
                    }
                }
        }
Пример #8
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;
                    }
                }
        }
 protected override void ReadData(ESPReader reader)
 {
     using (MemoryStream stream = new MemoryStream(reader.ReadBytes(size)))
         using (ESPReader subReader = new ESPReader(stream, reader.Plugin))
         {
             try
             {
                 HealthPercentage    = subReader.ReadByte();
                 Index               = subReader.ReadByte();
                 Stage               = subReader.ReadByte();
                 Flags               = subReader.ReadEnum <DestructionStageFlags>();
                 SelfDamagePerSecond = subReader.ReadInt32();
                 Explosion.ReadBinary(subReader);
                 Debris.ReadBinary(subReader);
                 DebrisCount = subReader.ReadInt32();
             }
             catch
             {
                 return;
             }
         }
 }
Пример #10
0
 public void ReadBinary(ESPReader reader)
 {
     try
     {
         ReadNameBinary(reader);
         TextureSet.ReadBinary(reader);
         Index = reader.ReadInt32();
     }
     catch
     {
         return;
     }
 }
Пример #11
0
 public void ReadBinary(ESPReader reader)
 {
     try
     {
         Weather.ReadBinary(reader);
         Chance = reader.ReadInt32();
         Global.ReadBinary(reader);
     }
     catch
     {
         return;
     }
 }
Пример #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
             {
                 ColorAmbient.ReadBinary(subReader);
                 ColorDirectional.ReadBinary(subReader);
                 FogColor.ReadBinary(subReader);
                 FogNear = subReader.ReadSingle();
                 FogFar  = subReader.ReadSingle();
                 DirectionalRotationXY = subReader.ReadInt32();
                 DirectionalRotationZ  = subReader.ReadInt32();
                 DirectionalFade       = subReader.ReadSingle();
                 FogClipDistance       = subReader.ReadSingle();
                 FogPower = subReader.ReadSingle();
             }
             catch
             {
                 return;
             }
         }
 }
 protected override void ReadData(ESPReader reader)
 {
     using (MemoryStream stream = new MemoryStream(reader.ReadBytes(size)))
         using (ESPReader subReader = new ESPReader(stream, reader.Plugin))
         {
             try
             {
                 Item.ReadBinary(subReader);
                 Count = subReader.ReadInt32();
             }
             catch
             {
                 return;
             }
         }
 }
Пример #14
0
 protected override void ReadData(ESPReader reader)
 {
     using (MemoryStream stream = new MemoryStream(reader.ReadBytes(size)))
         using (ESPReader subReader = new ESPReader(stream, reader.Plugin))
         {
             try
             {
                 Faction.ReadBinary(subReader);
                 Modifier       = subReader.ReadInt32();
                 CombatReaction = subReader.ReadEnum <RelationshipCombatReaction>();
             }
             catch
             {
                 return;
             }
         }
 }
Пример #15
0
 protected override void ReadData(ESPReader reader)
 {
     using (MemoryStream stream = new MemoryStream(reader.ReadBytes(size)))
         using (ESPReader subReader = new ESPReader(stream, reader.Plugin))
         {
             try
             {
                 Value  = subReader.ReadInt32();
                 Flags  = subReader.ReadEnum <IngredientFlags>();
                 Unused = subReader.ReadBytes(3);
             }
             catch
             {
                 return;
             }
         }
 }
 protected override void ReadData(ESPReader reader)
 {
     using (MemoryStream stream = new MemoryStream(reader.ReadBytes(size)))
         using (ESPReader subReader = new ESPReader(stream, reader.Plugin))
         {
             try
             {
                 Health  = subReader.ReadInt32();
                 Count   = subReader.ReadByte();
                 Flags   = subReader.ReadEnum <DestructableFlags>();
                 Unknown = subReader.ReadBytes(2);
             }
             catch
             {
                 return;
             }
         }
 }
Пример #17
0
 protected override void ReadData(ESPReader reader)
 {
     using (MemoryStream stream = new MemoryStream(reader.ReadBytes(size)))
         using (ESPReader subReader = new ESPReader(stream, reader.Plugin))
         {
             try
             {
                 Flags  = subReader.ReadEnum <BookFlags>();
                 Skill  = subReader.ReadEnum <ActorValuesByte>();
                 Value  = subReader.ReadInt32();
                 Weight = subReader.ReadSingle();
             }
             catch
             {
                 return;
             }
         }
 }
Пример #18
0
 protected override void ReadData(ESPReader reader)
 {
     using (MemoryStream stream = new MemoryStream(reader.ReadBytes(size)))
         using (ESPReader subReader = new ESPReader(stream, reader.Plugin))
         {
             try
             {
                 Speed      = subReader.ReadSingle();
                 Flags      = subReader.ReadEnum <WeaponFlags>();
                 Unused     = subReader.ReadBytes(3);
                 Value      = subReader.ReadInt32();
                 ClipRounds = subReader.ReadByte();
             }
             catch
             {
                 return;
             }
         }
 }
 protected override void ReadData(ESPReader reader)
 {
     using (MemoryStream stream = new MemoryStream(reader.ReadBytes(size)))
         using (ESPReader subReader = new ESPReader(stream, reader.Plugin))
         {
             try
             {
                 Month     = subReader.ReadSByte();
                 DayOfWeek = subReader.ReadEnum <PackageScheduleDays>();
                 Date      = subReader.ReadByte();
                 Time      = subReader.ReadSByte();
                 Duration  = subReader.ReadInt32();
             }
             catch
             {
                 return;
             }
         }
 }
Пример #20
0
 protected override void ReadData(ESPReader reader)
 {
     using (MemoryStream stream = new MemoryStream(reader.ReadBytes(size)))
         using (ESPReader subReader = new ESPReader(stream, reader.Plugin))
         {
             try
             {
                 DamageMultiplier     = subReader.ReadSingle();
                 Flags                = subReader.ReadEnum <BodyPartDataFlags>();
                 Type                 = subReader.ReadEnum <BodyPartType>();
                 HealthPercent        = subReader.ReadByte();
                 ActorValue           = subReader.ReadEnum <ActorValuesByte>();
                 ToHitChance          = subReader.ReadByte();
                 ExplosionChance      = subReader.ReadByte();
                 ExplosionDebrisCount = subReader.ReadUInt16();
                 ExplosionDebris.ReadBinary(subReader);
                 Explosion.ReadBinary(subReader);
                 TrackingMaxAngle     = subReader.ReadSingle();
                 ExplosionDebrisScale = subReader.ReadSingle();
                 SeverableDebrisCount = subReader.ReadInt32();
                 SeverableDebris.ReadBinary(subReader);
                 SeverableExplosion.ReadBinary(subReader);
                 SeverableDebrisScale  = subReader.ReadSingle();
                 GoreEffectsTranslateX = subReader.ReadSingle();
                 GoreEffectsTranslateY = subReader.ReadSingle();
                 GoreEffectsTranslateZ = subReader.ReadSingle();
                 GoreEffectsRotationX  = subReader.ReadSingle();
                 GoreEffectsRotationY  = subReader.ReadSingle();
                 GoreEffectsRotationZ  = subReader.ReadSingle();
                 SeverableImpactDataSet.ReadBinary(subReader);
                 ExplosionImpactDataSet.ReadBinary(subReader);
                 SeverableDecalCount = subReader.ReadByte();
                 ExplosionDecalCount = subReader.ReadByte();
                 Unused = subReader.ReadBytes(2);
                 LimbReplacementScale = subReader.ReadSingle();
             }
             catch
             {
                 return;
             }
         }
 }
Пример #21
0
 protected override void ReadData(ESPReader reader)
 {
     using (MemoryStream stream = new MemoryStream(reader.ReadBytes(size)))
         using (ESPReader subReader = new ESPReader(stream, reader.Plugin))
         {
             try
             {
                 Value  = subReader.ReadInt32();
                 Flags  = subReader.ReadEnum <IngestibleFlags>();
                 Unused = subReader.ReadBytes(3);
                 WithdrawalEffect.ReadBinary(subReader);
                 AddictionChance = subReader.ReadSingle();
                 SoundConsume.ReadBinary(subReader);
             }
             catch
             {
                 return;
             }
         }
 }
Пример #22
0
        protected override void ReadData(ESPReader reader)
        {
            int readSize = size;

            if (size == 0)
            {
                reader.BaseStream.Seek(-16, SeekOrigin.Current);
                if (reader.ReadTag() == "XXXX")
                {
                    Debug.Assert(reader.ReadUInt16() == 4);
                    readSize = reader.ReadInt32();
                    reader.BaseStream.Seek(6, SeekOrigin.Current);
                }
                else
                {
                    reader.BaseStream.Seek(12, SeekOrigin.Current);
                }
            }

            Data = reader.ReadBytes(readSize);
        }
Пример #23
0
 protected override void ReadData(ESPReader reader)
 {
     using (MemoryStream stream = new MemoryStream(reader.ReadBytes(size)))
         using (ESPReader subReader = new ESPReader(stream, reader.Plugin))
         {
             try
             {
                 LeafCurvature      = subReader.ReadSingle();
                 MinLeafAngle       = subReader.ReadSingle();
                 MaxLeafAngle       = subReader.ReadSingle();
                 BranchDimmingValue = subReader.ReadSingle();
                 LeafDimmingValue   = subReader.ReadSingle();
                 ShadowRadius       = subReader.ReadInt32();
                 RockSpeed          = subReader.ReadSingle();
                 RustleSpeed        = subReader.ReadSingle();
             }
             catch
             {
                 return;
             }
         }
 }
Пример #24
0
 protected override void ReadData(ESPReader reader)
 {
     using (MemoryStream stream = new MemoryStream(reader.ReadBytes(size)))
         using (ESPReader subReader = new ESPReader(stream, reader.Plugin))
         {
             try
             {
                 Emotion        = subReader.ReadEnum <EmotionType>();
                 EmotionValue   = subReader.ReadInt32();
                 Unused1        = subReader.ReadBytes(4);
                 ResponseNumber = subReader.ReadByte();
                 Unused2        = subReader.ReadBytes(3);
                 Sound.ReadBinary(subReader);
                 UseEmotionAnimation = subReader.ReadEnum <NoYesByte>();
                 Unused3             = subReader.ReadBytes(3);
             }
             catch
             {
                 return;
             }
         }
 }
Пример #25
0
 protected override void ReadData(ESPReader reader)
 {
     using (MemoryStream stream = new MemoryStream(reader.ReadBytes(size)))
         using (ESPReader subReader = new ESPReader(stream, reader.Plugin))
         {
             try
             {
                 Time   = subReader.ReadInt32();
                 Radius = subReader.ReadUInt32();
                 Color.ReadBinary(subReader);
                 Flags           = subReader.ReadEnum <LightFlags>();
                 FalloffExponent = subReader.ReadSingle();
                 FOV             = subReader.ReadSingle();
                 Value           = subReader.ReadUInt32();
                 Weight          = subReader.ReadSingle();
             }
             catch
             {
                 return;
             }
         }
 }
Пример #26
0
        protected override void ReadData(ESPReader reader)
        {
            using (MemoryStream stream = new MemoryStream(reader.ReadBytes(size)))
                using (ESPReader subReader = new ESPReader(stream, reader.Plugin))
                {
                    try
                    {
                        Int32 TexturesCount = subReader.ReadInt32();

                        for (int i = 0; i < TexturesCount; i++)
                        {
                            var temp = new AlternateTexture();
                            temp.ReadBinary(subReader);
                            Textures.Add(temp);
                        }
                    }
                    catch
                    {
                        return;
                    }
                }
        }
Пример #27
0
 protected override void ReadData(ESPReader reader)
 {
     using (MemoryStream stream = new MemoryStream(reader.ReadBytes(size)))
         using (ESPReader subReader = new ESPReader(stream, reader.Plugin))
         {
             try
             {
                 BaseHealth   = subReader.ReadInt32();
                 Strength     = subReader.ReadByte();
                 Perception   = subReader.ReadByte();
                 Endurance    = subReader.ReadByte();
                 Charisma     = subReader.ReadByte();
                 Intelligence = subReader.ReadByte();
                 Agility      = subReader.ReadByte();
                 Luck         = subReader.ReadByte();
             }
             catch
             {
                 return;
             }
         }
 }
Пример #28
0
        protected override void ReadData(ESPReader reader)
        {
            using (MemoryStream stream = new MemoryStream(reader.ReadBytes(size)))
                using (ESPReader subReader = new ESPReader(stream, reader.Plugin))
                {
                    try
                    {
                        Type = subReader.ReadEnum <PackageTargetType>();

                        switch (Type)
                        {
                        case PackageTargetType.SpecificReference:
                            Target = new FormID(subReader.ReadUInt32());
                            break;

                        case PackageTargetType.ObjectID:
                            Target = new FormID(subReader.ReadUInt32());
                            break;

                        case PackageTargetType.ObjectType:
                            Target = (ObjectType)subReader.ReadUInt32();
                            break;

                        case PackageTargetType.LinkedReference:
                            Target = subReader.ReadBytes(4);
                            break;
                        }

                        Value   = subReader.ReadInt32();
                        Unknown = subReader.ReadSingle();
                    }
                    catch
                    {
                        return;
                    }
                }
        }
Пример #29
0
        protected override void ReadData(ESPReader reader)
        {
            using (MemoryStream stream = new MemoryStream(reader.ReadBytes(size)))
                using (ESPReader subReader = new ESPReader(stream, reader.Plugin))
                {
                    try
                    {
                        Type      = subReader.ReadEnum <ChallengeType>();
                        Threshold = subReader.ReadUInt32();
                        Flags     = subReader.ReadEnum <ChallengeFlags>();
                        Interval  = subReader.ReadUInt32();

                        switch (Type)
                        {
                        case ChallengeType.KillFromAFormList:
                            Value1 = (ChallengeBodyPart)subReader.ReadInt16();
                            Value2 = (ActorValues)subReader.ReadInt16();
                            Value3 = (WeaponCategory)subReader.ReadInt32();
                            break;

                        case ChallengeType.KillASpecificFormID:
                            Value1 = (ChallengeBodyPart)subReader.ReadInt16();
                            Value2 = (ActorValues)subReader.ReadInt16();
                            Value3 = (WeaponCategory)subReader.ReadInt32();
                            break;

                        case ChallengeType.KillAnyInACategory:
                            Value1 = (ChallengeBodyPart)subReader.ReadInt16();
                            Value2 = (CreatureType)subReader.ReadInt16();
                            Value3 = (WeaponCategory)subReader.ReadInt32();
                            break;

                        case ChallengeType.HitAnEnemy:
                            Value1 = (ChallengeBodyPart)subReader.ReadInt16();
                            Value2 = (ChallengeHitType)subReader.ReadInt16();
                            Value3 = (WeaponCategory)subReader.ReadInt32();
                            break;

                        case ChallengeType.DiscoverAMapMarker:
                            Value1 = subReader.ReadBytes(2);
                            Value2 = subReader.ReadBytes(2);
                            Value3 = subReader.ReadBytes(4);
                            break;

                        case ChallengeType.UseAnItem:
                            Value1 = subReader.ReadBytes(2);
                            Value2 = subReader.ReadBytes(2);
                            Value3 = subReader.ReadBytes(4);
                            break;

                        case ChallengeType.AcquireAnItem:
                            Value1 = subReader.ReadBytes(2);
                            Value2 = subReader.ReadBytes(2);
                            Value3 = subReader.ReadBytes(4);
                            break;

                        case ChallengeType.UseASkill:
                            Value1 = (ChallengeSkillResult)subReader.ReadInt16();
                            Value2 = (SpeechChallengeType)subReader.ReadInt16();
                            Value3 = subReader.ReadBytes(4);
                            break;

                        case ChallengeType.DoDamage:
                            Value1 = (ChallengeBodyPart)subReader.ReadInt16();
                            Value2 = (ActorValues)subReader.ReadInt16();
                            Value3 = (WeaponCategory)subReader.ReadInt32();
                            break;

                        case ChallengeType.UseAnItemFromAList:
                            Value1 = subReader.ReadBytes(2);
                            Value2 = subReader.ReadBytes(2);
                            Value3 = subReader.ReadBytes(4);
                            break;

                        case ChallengeType.AcquireAnItemFromAList:
                            Value1 = subReader.ReadBytes(2);
                            Value2 = subReader.ReadBytes(2);
                            Value3 = subReader.ReadBytes(4);
                            break;

                        case ChallengeType.MiscellaneousStat:
                            Value1 = (MiscStat)subReader.ReadInt16();
                            Value2 = subReader.ReadBytes(2);
                            Value3 = (WeaponCategory)subReader.ReadInt32();
                            break;

                        case ChallengeType.CraftUsingAnItem:
                            Value1 = subReader.ReadBytes(2);
                            Value2 = subReader.ReadBytes(2);
                            Value3 = subReader.ReadBytes(4);
                            break;

                        case ChallengeType.ScriptedChallenge:
                            Value1 = subReader.ReadBytes(2);
                            Value2 = subReader.ReadBytes(2);
                            Value3 = subReader.ReadBytes(4);
                            break;
                        }
                    }
                    catch
                    {
                        return;
                    }
                }
        }
        protected override void ReadData(ESPReader reader)
        {
            Type tType    = typeof(T);
            Type readType = tType;

            if (tType.IsEnum)
            {
                readType = Enum.GetUnderlyingType(tType);
            }

            string typeName = readType.FullName;


            switch (typeName)
            {
            case "System.Byte":
                //Debug.Assert(size == 1);
                Value = (T)(object)reader.ReadByte();
                break;

            case "System.SByte":
                Debug.Assert(size == 1);
                Value = (T)(object)reader.ReadSByte();
                break;

            case "System.Char":
                Debug.Assert(size == 1);
                Value = (T)(object)reader.ReadChar();
                break;

            case "System.UInt16":
                Debug.Assert(size == 2);
                Value = (T)(object)reader.ReadUInt16();
                break;

            case "System.Int16":
                Debug.Assert(size == 2);
                Value = (T)(object)reader.ReadInt16();
                break;

            case "System.UInt32":
                Debug.Assert(size == 4);
                Value = (T)(object)reader.ReadUInt32();
                break;

            case "System.Int32":
                Debug.Assert(size == 4);
                Value = (T)(object)reader.ReadInt32();
                break;

            case "System.Single":
                Debug.Assert(size == 4);
                Value = (T)(object)reader.ReadSingle();
                break;

            case "System.UInt64":
                Debug.Assert(size == 8);
                Value = (T)(object)reader.ReadUInt64();
                break;

            case "System.Int64":
                Debug.Assert(size == 8);
                Value = (T)(object)reader.ReadInt64();
                break;

            case "System.Byte[]":
                Value = (T)(object)reader.ReadBytes(size);
                break;

            case "System.Char[]":
                string tempstring = new string(reader.ReadChars(size));
                tempstring = tempstring.Replace("\0", "");
                Value      = (T)(object)tempstring.ToCharArray();
                break;

            case "System.String":
                string outString = new String(reader.ReadChars(size - 1));
                reader.ReadByte();
                Value = (T)(object)(outString.Replace("\0", ""));
                break;

            case "ESPSharp.DataTypes.Color":
                var color = new DataTypes.Color();
                color.ReadBinary(reader);
                Value = (T)(object)color;
                break;

            case "ESPSharp.DataTypes.XYFloat":
                var temp = new DataTypes.XYFloat();
                temp.ReadBinary(reader);
                Value = (T)(object)temp;
                break;

            default:
                throw new NotImplementedException(typeName + " is not yet implemented.");
            }
        }