示例#1
0
        public JournalManager Read(DAIIO io)
        {
            xLength = io.ReadBit2(LengthBits);
            Version = io.ReadInt16();
            if (Version > 0)
            {
                ActiveJournalCount = io.ReadInt16();
                ActiveJournals     = new int[ActiveJournalCount];
                for (int i = 0; i < ActiveJournalCount; i++)
                {
                    ActiveJournals[i] = io.ReadInt32();
                }

                ReadJournalCount = io.ReadInt16();
                ReadJournals     = new int[ReadJournalCount];
                for (int i = 0; i < ReadJournalCount; i++)
                {
                    ReadJournals[i] = io.ReadInt32();
                }
            }
            if (Version > 1)
            {
                RewardedJournalCount = io.ReadInt16();
                RewardedJournals     = new int[RewardedJournalCount];
                for (int i = 0; i < RewardedJournalCount; i++)
                {
                    RewardedJournals[i] = io.ReadInt32();
                }
            }
            return(this);
        }
示例#2
0
        public PartyData Read(DAIIO io)
        {
            xLength        = io.ReadBit2(LengthBits);
            ArcheTypeCount = io.ReadInt16();
            ArcheTypes     = new ArcheType[ArcheTypeCount];
            for (int i = 0; i < ArcheTypeCount; i++)
            {
                ArcheTypes[i] = new ArcheType().Read(io);
            }
            DesiredPartyMemberIDCount = io.ReadInt16();
            DesiredPartyMemberIDs     = new int[DesiredPartyMemberIDCount];
            for (int i = 0; i < DesiredPartyMemberIDCount; i++)
            {
                DesiredPartyMemberIDs[i] = io.ReadInt32();
            }
            OverridePartyMemberIDCount = io.ReadInt16();
            OverridePartyMemberIDs     = new int[OverridePartyMemberIDCount];
            for (int i = 0; i < OverridePartyMemberIDCount; i++)
            {
                OverridePartyMemberIDs[i] = io.ReadInt32();
            }

            PartyMemberCount = io.ReadInt16();
            PartyMembers     = new PartyMember[PartyMemberCount];
            for (int i = 0; i < PartyMemberCount; i++)
            {
                PartyMembers[i] = new PartyMember().Read(io);
            }
            return(this);
        }
 public StoreItemEntry Read(DAIIO io)
 {
     xLength  = io.ReadBit2(LengthBits);
     NameHash = io.ReadInt32();
     Quantity = io.ReadInt32();
     return(this);
 }
示例#4
0
 public PartyMemberDataCache Read(DAIIO io)
 {
     PartyMemberID = io.ReadInt32();
     BufferSize    = io.ReadInt32();
     Buffer        = new byte[BufferSize];
     io.Read(Buffer, 0, BufferSize);
     return(this);
 }
示例#5
0
 public PartyMember Read(DAIIO io)
 {
     xLength       = io.ReadBit2(LengthBits);
     PartyMemberID = io.ReadInt32();
     FixedIndex    = (byte)io.ReadBit2(8);
     Player        = io.ReadInt32();
     IsLeader      = io.ReadBoolean();
     IsUnspawned   = io.ReadBoolean();
     return(this);
 }
示例#6
0
        public CharacterCustomizationManager Read(DAIIO io)
        {
            xLength      = io.ReadBit2(LengthBits);
            Version      = io.ReadInt32();
            ClassId      = io.ReadInt32();
            BackgroundId = io.ReadInt32();
            GenderId     = io.ReadInt32();
            RaceId       = io.ReadInt32();
            var x = io.ReadInt16();

            CharacterName    = io.ReadString(x);
            VoiceVariationID = io.ReadInt32();
            DifficultyModeID = io.ReadInt32();
            if (Version > 9)
            {
                LowestDifficultyModeID = io.ReadInt32();
            }
            CharacterSubclassID = io.ReadInt32();
            if (Version >= 8)
            {
                CharacterID = new byte[0x10];
                io.Read(CharacterID, 0, 0x10);
            }
            if (Version >= 0xD)
            {
                AgeInRealTimeSeconds = io.ReadSingle();
            }
            return(this);
        }
        public ItemStatsInstance Read(DAIIO io)
        {
            xLength   = io.ReadBit2(LengthBits);
            Offset    = io.Position;
            Version   = io.ReadInt16();
            StatsData = new ItemAsset().Read(io);
            if (Version < 8)
            {
                Uid = io.ReadInt32();
            }
            IsForSale = io.ReadBoolean();
            IsNew     = io.ReadBoolean();
            IsCrafted = io.ReadBoolean();
            StringId  = io.ReadInt32();
            if (xLength > 0x8a)
            {
                StatsInstance = new ItemStatInstance(this, IsCrafted).Read(io);
                if ((io.Position - Offset) < xLength)
                {
                    Upgrades = new ItemUpgrades().Read(io);
                    SuppressClassRestriction = io.ReadBoolean();
                    if (Version > 6)
                    {
                        IsPlaceHolder = io.ReadBoolean();
                    }
                    if (Version > 0xA)
                    {
                        HasSoundActionsReference = io.ReadBoolean();
                        if (HasSoundActionsReference)
                        {
                            SoundActionsReference = new ItemAsset().Read(io);
                        }
                    }
                }
            }

            if ((io.Position - Offset) + 8 <= xLength)
            {
                StackSize = (byte)io.ReadBit2(0x8);
            }
            else
            {
                StackSize = 0xff;
            }
            if (Version >= 9 && ((io.Position - Offset) + 8 <= xLength))
            {
                MaxStackSize = (byte)io.ReadBit2(0x8);
            }
            else
            {
                MaxStackSize = 0xff;
            }
            return(this);
        }
示例#8
0
 public SpawnerControllable Read(DAIIO io)
 {
     xLength     = (short)io.ReadBit2(LengthBits);
     IsInVehicle = io.ReadBoolean();
     if (IsInVehicle)
     {
         InVehicleControllable = new InVehicleControllable
         {
             ID      = io.ReadInt32(),
             EntryID = io.ReadInt32()
         };
     }
     return(this);
 }
示例#9
0
 public Map Read(DAIIO io)
 {
     xLength          = io.ReadBit2(LengthBits);
     MapID            = io.ReadInt32();
     IsPersistent     = io.ReadBoolean();
     UncompressedSize = io.ReadInt32();
     IsCompressed     = io.ReadBoolean();
     Size             = io.ReadInt32();
     Blob             = new byte[Size];
     for (int i = 0; i < Size; i++)
     {
         Blob[i] = (byte)io.ReadBit(0x8);
     }
     return(this);
 }
 public ItemMaterial Read(DAIIO io)
 {
     xLength = io.ReadBit2(LengthBits);
     Index   = io.ReadInt32();
     Asset   = new ItemAsset().Read(io);
     return(this);
 }
示例#11
0
 public AgentEntry Read(DAIIO io)
 {
     NameHash = io.ReadInt32();
     Index    = (short)io.ReadBit2(0x8);
     Entry    = (short)io.ReadBit2(0x10);
     return(this);
 }
 public ArcheType Read(DAIIO io)
 {
     xLength     = io.ReadBit2(LengthBits);
     ArcheTypeID = io.ReadInt32();
     Enabled     = io.ReadBoolean();
     Unlocked    = io.ReadBoolean();
     return(this);
 }
示例#13
0
 public ValueFlag Read(DAIIO io)
 {
     Guid = new byte[0x10];
     for (int j = 0; j < 0x10; j++)
     {
         Guid[j] = (byte)io.ReadBit(0x8);
     }
     Value = io.ReadInt32();
     return(this);
 }
 public CompositionDisplay Read(DAIIO io)
 {
     StringIdCount = io.ReadInt16();
     StringIds     = new int[StringIdCount];
     for (int i = 0; i < StringIdCount; i++)
     {
         StringIds[i] = io.ReadInt32();
     }
     return(this);
 }
 public BluePrint Read(DAIIO io)
 {
     IsNull = io.ReadBoolean();
     if (!IsNull)
     {
         Value1  = io.ReadInt32();
         Value2  = io.ReadInt32();
         IsEmpty = io.ReadBoolean();
         if (!IsEmpty)
         {
             DataBytes = new byte[0x10];
             for (int i = 0; i < 0x10; i++)
             {
                 DataBytes[i] = (byte)io.ReadByte();
             }
         }
     }
     return(this);
 }
示例#16
0
 public MapPins Read(DAIIO io)
 {
     PinIdCount = io.ReadInt16();
     PinIds     = new int[PinIdCount];
     for (int i = 0; i < PinIdCount; i++)
     {
         PinIds[i] = io.ReadInt32();
     }
     return(this);
 }
示例#17
0
 public MissionArray Read(DAIIO io)
 {
     xLength = io.ReadBit2(LengthBits);
     if (_isfirst)
     {
         Index = io.ReadInt32();
     }
     WarTableEntry = new WarTableEntry(SStructure, _isfirst).Read(io);
     return(this);
 }
 public ItemAsset Read(DAIIO io)
 {
     IsNull = io.ReadBoolean();
     if (!IsNull)
     {
         Value1     = io.ReadInt32();
         Value2     = io.ReadInt32();
         DataIsNull = io.ReadBoolean();
         if (!DataIsNull)
         {
             DataBytes = new byte[0x10];
             for (int i = 0; i < 0x10; i++)
             {
                 DataBytes[i] = (byte)io.ReadByte();
             }
         }
     }
     return(this);
 }
        public CallBackData Read(DAIIO io)
        {
            xLength              = io.ReadBit2(LengthBits);
            Id                   = io.ReadInt32();
            DestroyedPartsCount  = io.ReadInt32();
            KeepInfoOnUnregister = io.ReadBoolean();
            PartIdsCount         = io.ReadInt16();
            PartIds              = new int[PartIdsCount];
            for (int i = 0; i < PartIdsCount; i++)
            {
                PartIds[i] = io.ReadInt32();
            }
            BitCount = io.ReadInt32();
            int x = BitCount.NumberOfSetBits() << 2;

            BitArray = new byte[x];
            io.Read(BitArray, 0, x);
            return(this);
        }
 public ItemStatInstance Read(DAIIO io)
 {
     if (_info.Version > 1)
     {
         HasDynamicStats = io.ReadBoolean();
         if (HasDynamicStats)
         {
             DynamicStats = new ItemDynamicStats().Read(io);
         }
         else if (_info.Version > 3)
         {
             DynamicStats = new ItemDynamicStats().Read(io);
         }
     }
     else if (_iscrafted)
     {
         CraftedStatIntances = new CraftedStatIntances().Read(io);
     }
     if (_info.Version > 9)
     {
         ItemAbilities = new ItemAbilities().Read(io);
     }
     if (_info.Version < 3)
     {
         ItemTimelines = new ItemTimelines().Read(io);
     }
     ItemMaterials = new ItemMaterials().Read(io);
     if (_info.Version < 5)
     {
         CompositionDisplay = new CompositionDisplay().Read(io);
     }
     else
     {
         short count = io.ReadInt16();
         DisplayString = io.ReadString(count);
     }
     Level      = io.ReadInt32();
     DamageType = io.ReadInt32();
     Quality    = io.ReadInt32();
     return(this);
 }
示例#21
0
 public StoreInventory Read(DAIIO io)
 {
     xLength            = io.ReadBit2(LengthBits);
     storeEntitySaveUid = io.ReadInt32();
     ItemCount          = io.ReadInt16();
     Items = new StoreItemEntry[ItemCount];
     for (int i = 0; i < ItemCount; i++)
     {
         Items[i] = new StoreItemEntry().Read(io);
     }
     return(this);
 }
示例#22
0
 public ImpactEntityDestructionComplex Read(DAIIO io)
 {
     xLength                  = io.ReadBit2(LengthBits);
     PositionPrecision        = (byte)io.ReadBit2(0x8);
     PositionCompressionArray = io.ReadInt16();
     PositionCompression      = new byte[PositionCompressionArray];
     for (int i = 0; i < PositionCompressionArray; i++)
     {
         PositionCompression[i] = (byte)io.ReadBit2(0x8);
     }
     ImpactPrecision = (byte)io.ReadBit2(8);
     ImpactScale     = io.ReadInt32();
     NextCallbackId  = io.ReadInt32();
     MasterInfoArray = new MasterInfo[NextCallbackId];
     for (int i = 0; i < NextCallbackId; i++)
     {
         MasterInfoArray[i] = new MasterInfo().Read(io);
     }
     LastDestructionId = io.ReadInt32();
     return(this);
 }
 public OwnerInfo Read(DAIIO io)
 {
     xLength       = io.ReadBit2(LengthBits);
     Id            = io.ReadInt32();
     CallbackCount = io.ReadInt16();
     Callbacks     = new CallBackData[CallbackCount];
     for (int i = 0; i < CallbackCount; i++)
     {
         Callbacks[i] = new CallBackData().Read(io);
     }
     return(this);
 }
 public WarTable Read(DAIIO io)
 {
     xLength   = io.ReadBit2(LengthBits);
     ID        = io.ReadInt32();
     HasNoGuid = io.ReadBoolean();
     if (!HasNoGuid)
     {
         Guid = new byte[0x10];
         io.Read(Guid, 0, 0x10);
     }
     return(this);
 }
示例#25
0
 public Spawner Read(DAIIO io)
 {
     xLength           = io.ReadBit2(LengthBits);
     ID                = io.ReadInt32();
     ControllableCount = (short)io.ReadBit2(0xA);
     Controllables     = new SpawnerControllable[ControllableCount];
     for (int i = 0; i < ControllableCount; i++)
     {
         Controllables[i] = new SpawnerControllable().Read(io);
     }
     return(this);
 }
 public StoreInventories Read(DAIIO io)
 {
     xLength        = io.ReadBit2(LengthBits);
     Version        = io.ReadInt32();
     InventoryCount = io.ReadInt16();
     Inventories    = new StoreInventory[InventoryCount];
     for (int i = 0; i < InventoryCount; i++)
     {
         Inventories[i] = new StoreInventory(SStructure).Read(io);
     }
     return(this);
 }
 public WarTableEntry Read(DAIIO io)
 {
     xLength = io.ReadBit2(LengthBits);
     IsEmpty = io.ReadBoolean();
     if (!IsEmpty)
     {
         WarTable = new WarTable().Read(io);
     }
     if (_isfirst)
     {
         ProgressTime = SStructure.ProjectVersion < 0x1A ? io.ReadInt32().ToUnixTime() : ((int)io.ReadInt64()).ToUnixTime();
     }
     return(this);
 }
 public Controllable Read(DAIIO io)
 {
     ShouldSave = io.ReadBoolean();
     if (ShouldSave)
     {
         IsHuman   = io.ReadBoolean();
         HasPlayer = io.ReadBoolean();
         if (HasPlayer)
         {
             PlayerID = io.ReadInt32();
         }
     }
     return(this);
 }
 public LootOwner Read(DAIIO io)
 {
     xLength             = io.ReadBit2(LengthBits);
     BluePrint           = new BluePrint().Read(io);
     IndexUsedByUniqueId = io.ReadInt32();
     TransForm           = new byte[4][];
     for (int i = 0; i < 4; i++)
     {
         TransForm[i] = new byte[0xc];
         for (int j = 0; j < 0xc; j++)
         {
             TransForm[i][j] = (byte)io.ReadByte();
         }
     }
     return(this);
 }
示例#30
0
 public BWMapManager Read(DAIIO io)
 {
     xLength = io.ReadBit2(LengthBits);
     //if(6 (<-????) > 5)
     //{
     UserWaypoint_MapId    = io.ReadInt32();
     UserWaypoint_WorldPos = new byte[8];
     for (int i = 0; i < 8; i++)
     {
         UserWaypoint_WorldPos[i] = (byte)io.ReadBit(0x8);
     }
     FogArchive      = new FogArchive().Read(io);
     DynamicPinsMaps = new DynamicPinsMaps().Read(io);
     DiscoveredPins  = new MapPins().Read(io);
     ExploredPins    = new MapPins().Read(io);
     //}
     return(this);
 }