예제 #1
0
 public void ReadFromFile(BinaryReader reader)
 {
     SlotType  = (ESlotType)reader.ReadUInt32();
     SDSName   = XBinCoreUtils.ReadStringPtrWithOffset(reader);
     QuotaID   = XBinCoreUtils.ReadStringPtrWithOffset(reader);
     LoadFlags = reader.ReadUInt32();
 }
예제 #2
0
 public void ReadFromFile(BinaryReader reader)
 {
     Position.ReadFromFile(reader);
     Direction.ReadFromFile(reader);
     EntityName = XBinCoreUtils.ReadStringPtrWithOffset(reader);
     LoadFlags  = reader.ReadUInt32();
 }
예제 #3
0
        }                                             // Not implemented in game.

        public void ReadFromFile(BinaryReader reader)
        {
            AIWeaponPtr      = reader.ReadUInt32();
            AnimParticlesPtr = reader.ReadUInt32();
            AttackParamsPtr  = reader.ReadUInt32();

            long currentPosition = reader.BaseStream.Position + 4;

            XBinCoreUtils.GotoPtrWithOffset(reader);
            CarColours = new CarColoursTable();
            CarColours.ReadFromFile(reader);

            reader.BaseStream.Seek(currentPosition, SeekOrigin.Begin);
            currentPosition = reader.BaseStream.Position + 4;
            XBinCoreUtils.GotoPtrWithOffset(reader);
            CarWindowTints = new CarWindowTintTable();
            CarWindowTints.ReadFromFile(reader);

            reader.BaseStream.Seek(currentPosition, SeekOrigin.Begin);
            CarInteriorColorsTableMPPtr = reader.ReadUInt32();
            CarGearboxesTableMPPtr      = reader.ReadUInt32();

            currentPosition = reader.BaseStream.Position + 4;
            XBinCoreUtils.GotoPtrWithOffset(reader);
            CarMtrStuff = new CarMtrStuffTable();
            CarMtrStuff.ReadFromFile(reader);

            reader.BaseStream.Seek(currentPosition, SeekOrigin.Begin);
            currentPosition = reader.BaseStream.Position + 4;
            XBinCoreUtils.GotoPtrWithOffset(reader);
            CarSkidmarks = new CarSkidmarksTable();
            CarSkidmarks.ReadFromFile(reader);

            reader.BaseStream.Seek(currentPosition, SeekOrigin.Begin);
            currentPosition = reader.BaseStream.Position + 4;
            XBinCoreUtils.GotoPtrWithOffset(reader);
            CarTuningItems = new CarTuningItemTable();
            CarTuningItems.ReadFromFile(reader);

            CarTuningModificatorsTableMPPtr = reader.ReadUInt32();
            CombinableCharactersTableMPPtr  = reader.ReadUInt32();
            CrashObjectTablePtr             = reader.ReadUInt32();
            CubeMapsTablePtr          = reader.ReadUInt32();
            DamageMultiplierTablePtr  = reader.ReadUInt32();
            FamilyAlbumExtrasTablePtr = reader.ReadUInt32();
            FamilyAlbumTablePtr       = reader.ReadUInt32();

            reader.BaseStream.Seek(currentPosition, SeekOrigin.Begin);
            currentPosition = reader.BaseStream.Position + 4;
            XBinCoreUtils.GotoPtrWithOffset(reader);
        }
예제 #4
0
        public void ReadFromFile(BinaryReader reader)
        {
            uint VehicleOffset = reader.ReadUInt32();
            uint NumInstances0 = reader.ReadUInt32();
            uint NumInstances1 = reader.ReadUInt32();

            Debug.Assert(NumInstances0 == NumInstances1, "Number of instances is incorrect!");

            SlotType = (ESlotType)reader.ReadUInt32();
            SDSName  = XBinCoreUtils.ReadStringPtrWithOffset(reader);
            QuotaID  = XBinCoreUtils.ReadStringPtrWithOffset(reader);
            GUID     = reader.ReadUInt32();
            SlotID   = reader.ReadUInt32();

            Instances = new VehicleInstance[NumInstances0];
            for (int i = 0; i < Instances.Length; i++)
            {
                VehicleInstance Instance = new VehicleInstance();
                Instance.ReadFromFile(reader);
                Instances[i] = Instance;
            }
        }
예제 #5
0
 public void ReadFromFile(BinaryReader reader)
 {
     SDSName = XBinCoreUtils.ReadStringPtrWithOffset(reader);
 }
예제 #6
0
 public void ReadFromFile(BinaryReader reader)
 {
     Variable = XBinCoreUtils.ReadStringPtrWithOffset(reader);
     Operator = (ECommandIfOperator)reader.ReadInt32();
     Value    = XBinCoreUtils.ReadStringPtrWithOffset(reader);
 }
예제 #7
0
        public void ReadFromFile(BinaryReader reader)
        {
            // NB: Only suitable for M3 for now.
            AIWeaponPtr      = reader.ReadUInt32();
            AnimParticlesPtr = reader.ReadUInt32();
            AttackParamsPtr  = reader.ReadUInt32();

            long currentPosition = reader.BaseStream.Position + 4;

            XBinCoreUtils.GotoPtrWithOffset(reader);
            CarColours = new CarColoursTable();
            CarColours.ReadFromFile(reader);

            reader.BaseStream.Seek(currentPosition, SeekOrigin.Begin);
            currentPosition = reader.BaseStream.Position + 4;
            XBinCoreUtils.GotoPtrWithOffset(reader);
            CarWindowTints = new CarWindowTintTable();
            CarWindowTints.ReadFromFile(reader);

            reader.BaseStream.Seek(currentPosition, SeekOrigin.Begin);
            CarInteriorColorsTableMPPtr = reader.ReadUInt32();
            CarGearboxesTableMPPtr      = reader.ReadUInt32();

            currentPosition = reader.BaseStream.Position + 4;
            XBinCoreUtils.GotoPtrWithOffset(reader);
            CarMtrStuff = new CarMtrStuffTable();
            CarMtrStuff.ReadFromFile(reader);

            reader.BaseStream.Seek(currentPosition, SeekOrigin.Begin);
            currentPosition = reader.BaseStream.Position + 4;
            XBinCoreUtils.GotoPtrWithOffset(reader);
            CarSkidmarks = new CarSkidmarksTable();
            CarSkidmarks.ReadFromFile(reader);

            reader.BaseStream.Seek(currentPosition, SeekOrigin.Begin);
            currentPosition = reader.BaseStream.Position + 4;
            XBinCoreUtils.GotoPtrWithOffset(reader);
            CarTuningItems = new CarTuningItemTable();
            CarTuningItems.ReadFromFile(reader);

            reader.BaseStream.Seek(currentPosition, SeekOrigin.Begin);
            CarTuningModificatorsTableMPPtr = reader.ReadUInt32();
            CombinableCharactersTableMPPtr  = reader.ReadUInt32();
            CrashObjectTablePtr             = reader.ReadUInt32();
            CubeMapsTablePtr          = reader.ReadUInt32();
            DamageMultiplierTablePtr  = reader.ReadUInt32();
            FamilyAlbumExtrasTablePtr = reader.ReadUInt32();
            FamilyAlbumTablePtr       = reader.ReadUInt32();
            currentPosition           = reader.BaseStream.Position;

            reader.BaseStream.Seek(currentPosition, SeekOrigin.Begin);
            currentPosition = reader.BaseStream.Position + 4;
            XBinCoreUtils.GotoPtrWithOffset(reader);
            HealthSystem = new HealthSystemTable();
            HealthSystem.ReadFromFile(reader);

            reader.BaseStream.Seek(currentPosition, SeekOrigin.Begin);
            currentPosition = reader.BaseStream.Position + 4;
            XBinCoreUtils.GotoPtrWithOffset(reader);
            HumanWeaponImpacts = new HumanWeaponImpactTable();
            HumanWeaponImpacts.ReadFromFile(reader);

            reader.BaseStream.Seek(currentPosition, SeekOrigin.Begin);
            currentPosition = reader.BaseStream.Position + 4;
            XBinCoreUtils.GotoPtrWithOffset(reader);
            HumanDamageZones = new HumanDamageZonesTable();
            HumanDamageZones.ReadFromFile(reader);

            reader.BaseStream.Seek(currentPosition, SeekOrigin.Begin);
            currentPosition = reader.BaseStream.Position + 4;
            XBinCoreUtils.GotoPtrWithOffset(reader);
            HumanMaterials = new HumanMaterialsTable();
            HumanMaterials.ReadFromFile(reader);

            // TODO: Everything in this function was always "temporary".
            // Maybe check the other table container files, see if they
            // are good enough. Otherwise I need to create a new solution
        }