Exemplo n.º 1
0
        /// <summary>
        /// Initalize the Class
        /// </summary>
        /// <param name="fileStream">Stream of the STFS Container</param>
        private void Initalize(Stream fileStream)
        {
            _stfsStream = new EndianStream(fileStream, Endian.BigEndian);

            LoadHeader();
            LoadMetaData();
            LoadFileListing();
            LoadEmbeddedFilesFromFileListing();
            LoadBlockTable();
        }
Exemplo n.º 2
0
        public override void Read(EndianStream stream)
        {
            base.Read(stream);

            LocalRotation.Read(stream);
            LocalPosition.Read(stream);
            LocalScale.Read(stream);
            m_children = stream.ReadArray(() => new PPtr <Transform>(AssetsFile));
            Father.Read(stream);
        }
Exemplo n.º 3
0
 public void Update(EndianStream stream)
 {
     stream.SeekTo(Offset);
     stream.WriteInt32(Ident);
     stream.WriteByte(RunTimeMinimium);
     stream.WriteByte(RunTimeMaximium);
     stream.WriteByte(CountOnMap);
     stream.WriteByte(DesignTimeMaximium);
     stream.WriteFloat(Cost);
 }
Exemplo n.º 4
0
        public void Read(EndianStream stream)
        {
            ID     = stream.ReadUInt32();
            TypeID = stream.ReadUInt32();
            if (IsReadType)
            {
                Type = stream.ReadUInt32();
            }

            Index = stream.ReadUInt32();
        }
Exemplo n.º 5
0
        public override void Read(EndianStream stream)
        {
            base.Read(stream);

            Components = stream.ReadArray(() => new ComponentPair(AssetsFile));

            Layer    = stream.ReadInt32();
            Name     = stream.ReadStringAligned();
            Tag      = stream.ReadUInt16();
            IsActive = stream.ReadBoolean();
        }
Exemplo n.º 6
0
 public void Read(EndianStream stream)
 {
     m_weight[0]    = stream.ReadSingle();
     m_weight[1]    = stream.ReadSingle();
     m_weight[2]    = stream.ReadSingle();
     m_weight[3]    = stream.ReadSingle();
     m_boneIndex[0] = stream.ReadInt32();
     m_boneIndex[1] = stream.ReadInt32();
     m_boneIndex[2] = stream.ReadInt32();
     m_boneIndex[3] = stream.ReadInt32();
 }
Exemplo n.º 7
0
 private void ParseBundleStreaming(EndianStream stream)
 {
     if (IsBundleFormat6)
     {
         ParseBundleFormat6(stream, false);
     }
     else
     {
         throw new NotImplementedException($"Streaming asset bundle with format {Format}");
     }
 }
Exemplo n.º 8
0
 public void Load(EndianStream stream, MapMetaData mapMetaData)
 {
     Offset             = stream.Position;
     Ident              = stream.ReadInt32();
     Tag                = mapMetaData.GetTag(Ident);
     RunTimeMinimium    = stream.ReadByte();
     RunTimeMaximium    = stream.ReadByte();
     CountOnMap         = stream.ReadByte();
     DesignTimeMaximium = stream.ReadByte();
     Cost               = stream.ReadFloat();
 }
Exemplo n.º 9
0
 public void Read(EndianStream stream)
 {
     NameIndex      = stream.ReadInt32();
     m_matrixParams = stream.ReadArray <MatrixParameter>();
     m_vectorParams = stream.ReadArray <VectorParameter>();
     if (IsReadStructParams)
     {
         m_structParams = stream.ReadArray <StructParameter>();
     }
     Size = stream.ReadInt32();
 }
Exemplo n.º 10
0
        private void Initalize(Stream blfStream)
        {
            _blfStream = new EndianStream(blfStream, Endian.BigEndian);

            if (!isValidBLF())
            {
                throw new Exception("Invalid BLF Container!");
            }

            LoadChunkTable();
        }
Exemplo n.º 11
0
        public void Read(EndianStream stream)
        {
            Name      = stream.ReadStringAligned();
            ParamType = (ShaderParamType)stream.ReadInt32();
            Rows      = stream.ReadInt32();
            Dimension = stream.ReadInt32();
            IsMatrix  = stream.ReadInt32() > 0;
            int unknown = stream.ReadInt32();

            Index = stream.ReadInt32();
        }
Exemplo n.º 12
0
 public void Read(EndianStream stream)
 {
     PropInfo.Read(stream);
     m_subShaders               = stream.ReadArray <SerializedSubShader>();
     Name                       = stream.ReadStringAligned();
     CustomEditorName           = stream.ReadStringAligned();
     FallbackName               = stream.ReadStringAligned();
     m_dependencies             = stream.ReadArray <SerializedShaderDependency>();
     DisableNoSubshadersMessage = stream.ReadBoolean();
     stream.AlignStream(AlignType.Align4);
 }
Exemplo n.º 13
0
        public void Read(EndianStream stream)
        {
            NumItems = stream.ReadUInt32();
            int size = stream.ReadInt32();

            m_data = new byte[size];
            stream.Read(m_data, 0, size);
            stream.AlignStream(AlignType.Align4);
            BitSize = stream.ReadByte();
            stream.AlignStream(AlignType.Align4);
        }
Exemplo n.º 14
0
        protected void ProcessMapHeader()
        {
            using (IReader reader = new EndianStream(new MemoryStream(MapHeader), Endian.LittleEndian))
            {
                reader.SeekTo(MapTypeOffset);
                MapType = (CacheFileType)reader.ReadInt32();

                reader.SeekTo(MapNameOffset);
                MapName = reader.ReadAscii();
            }
        }
Exemplo n.º 15
0
 public void Read(EndianStream stream)
 {
     NameIndex       = stream.ReadInt32();
     Index           = stream.ReadInt32();
     ArraySize       = stream.ReadInt32();
     StructSize      = stream.ReadInt32();
     m_vectorMembers = stream.ReadArray <VectorParameter>();
     stream.AlignStream(AlignType.Align4);
     m_matrixMembers = stream.ReadArray <MatrixParameter>();
     stream.AlignStream(AlignType.Align4);
 }
Exemplo n.º 16
0
        public void Read(Stream baseStream, Action <string> requestDependencyCallback)
        {
            using (EndianStream stream = new EndianStream(baseStream, baseStream.Position, EndianType.BigEndian))
            {
                long startPosition = baseStream.Position;
                Header.Read(stream);

                stream.EndianType = Header.Endianess ? EndianType.BigEndian : EndianType.LittleEndian;
                if (IsTableAtTheEnd(Header.Generation))
                {
                    stream.BaseStream.Position = startPosition + Header.FileSize - Header.MetadataSize;
                    stream.BaseStream.Position++;
                }

                using (SerializedFileStream fileStream = new SerializedFileStream(stream, Header.Generation))
                {
                    Metadata.Read(fileStream);
                }

                foreach (FileIdentifier dependency in Dependencies)
                {
                    requestDependencyCallback?.Invoke(dependency.FilePath);
                }

                if (RTTIClassHierarchyDescriptor.IsReadSignature(Header.Generation))
                {
                    ReadAssets(stream, startPosition);
                }
                else
                {
                    Logger.Log(LogType.Warning, LogCategory.Import, $"Can't determine file version for generation {Header.Generation} for file '{Name}'");
                    string[] versions = GetGenerationVersions(Header.Generation);
                    for (int i = 0; i < versions.Length; i++)
                    {
                        string version = versions[i];
                        Logger.Log(LogType.Debug, LogCategory.Import, $"Try parse {nameof(SerializedFile)} as {version} version");
                        Version.Parse(version);
                        try
                        {
                            ReadAssets(stream, startPosition);
                            break;
                        }
                        catch
                        {
                            Logger.Log(LogType.Debug, LogCategory.Import, "Faild");
                            if (i == versions.Length - 1)
                            {
                                throw;
                            }
                        }
                    }
                }
            }
        }
Exemplo n.º 17
0
        public void Read(EndianStream stream)
        {
            Time = stream.ReadSingle();

            FunctionName    = stream.ReadStringAligned();
            StringParameter = stream.ReadStringAligned();
            ObjectReferenceParameter.Read(stream);

            FloatParameter = stream.ReadSingle();
            IntParameter   = stream.ReadInt32();
            MessageOptions = stream.ReadInt32();
        }
Exemplo n.º 18
0
 public void Read(EndianStream stream)
 {
     X.Read(stream);
     Type        = stream.ReadUInt32();
     XMotionType = stream.ReadUInt32();
     YMotionType = stream.ReadUInt32();
     ZMotionType = stream.ReadUInt32();
     MinLimitX   = stream.ReadSingle();
     MaxLimitX   = stream.ReadSingle();
     MaxLimitY   = stream.ReadSingle();
     MaxLimitZ   = stream.ReadSingle();
 }
Exemplo n.º 19
0
        public override void Read(EndianStream stream)
        {
            base.Read(stream);

            m_scenes = stream.ReadStringArray();
            if (IsReadPreloadPlugin)
            {
                m_preloadedPlugins = stream.ReadStringArray();
            }

            if (IsReadEnabledVRDevices)
            {
                m_enabledVRDevices = stream.ReadStringArray();
                if (IsReadBuildTags)
                {
                    m_buildTags = stream.ReadStringArray();
                    BuildGUID.Read(stream);
                }
            }

            // bool flags
            HasPROVersion      = stream.ReadBoolean();
            IsNoWatermarkBuild = stream.ReadBoolean();
            IsPrototypingBuild = stream.ReadBoolean();
            IsEducationalBuild = stream.ReadBoolean();
            if (IsReadBoolFlags)
            {
                IsEmbedded          = stream.ReadBoolean();
                HasPublishingRights = stream.ReadBoolean();
                HasShadows          = stream.ReadBoolean();
                HasSoftShadows      = stream.ReadBoolean();
            }
            if (IsReadMoreBoolFlags)
            {
                HasLocalLightShadows  = stream.ReadBoolean();
                HasAdvancedVersion    = stream.ReadBoolean();
                EnableDynamicBatching = stream.ReadBoolean();
                IsDebugBuild          = stream.ReadBoolean();
            }
            if (IsReadEvenMoreBoolFlags)
            {
                UsesOnMouseEvents   = stream.ReadBoolean();
                HasClusterRendering = stream.ReadBoolean();
                stream.AlignStream(AlignType.Align4);
            }

            BSVersion = stream.ReadStringAligned();
            AuthToken = stream.ReadStringAligned();

            m_runtimeClassHashes.Read(stream);
            m_scriptHashes.Read(stream);
            m_graphicsAPIs = stream.ReadInt32Array();
        }
Exemplo n.º 20
0
 private void ReadRawWeb(EndianStream stream)
 {
     if (Generation < BundleGeneration.BF_530_x)
     {
         ReadPre530Generation(stream);
     }
     else
     {
         Read530Generation(stream);
         stream.BaseStream.Position++;
     }
 }
Exemplo n.º 21
0
        public void Read(EndianStream stream)
        {
            m_stateConstantArray = stream.ReadArray(() => new OffsetPtr <StateConstant>(new StateConstant(m_assetsFile)));
            m_anyStateTransitionConstantArray = stream.ReadArray(() => new OffsetPtr <TransitionConstant>(new TransitionConstant(m_assetsFile)));
            if (IsReadConstantArray)
            {
                m_selectorStateConstantArray = stream.ReadArray(() => new OffsetPtr <SelectorStateConstant>(new SelectorStateConstant()));
            }

            DefaultState   = stream.ReadUInt32();
            MotionSetCount = stream.ReadUInt32();
        }
Exemplo n.º 22
0
 public TagEntry(EndianStream stream, Tag mapTags)
 {
     PlacedItems        = new List <ItemPlacementChunk>();
     Offset             = stream.Position;
     Ident              = stream.ReadInt32();
     Tag                = mapTags.SearchTags(Ident);
     RunTimeMinimium    = stream.ReadByte();
     RunTimeMaximium    = stream.ReadByte();
     CountOnMap         = stream.ReadByte();
     DesignTimeMaximium = stream.ReadByte();
     Cost               = stream.ReadFloat();
 }
Exemplo n.º 23
0
        public static bool IsBundleFile(Stream baseStream)
        {
            using (EndianStream stream = new EndianStream(baseStream, baseStream.Position, EndianType.BigEndian))
            {
                long   position  = stream.BaseStream.Position;
                string signature = stream.ReadStringZeroTerm();
                bool   isBundle  = BundleHeader.TryParseSignature(signature, out BundleType _);
                stream.BaseStream.Position = position;

                return(isBundle);
            }
        }
Exemplo n.º 24
0
        public override void Read(EndianStream stream)
        {
            base.Read(stream);

            if (IsSerialized)
            {
                SerializedShader.Read(stream);
            }
            else
            {
                Shader.Read(stream);
            }

            if (IsReadKeywords)
            {
                if (IsKeywordsArray)
                {
                    m_shaderKeywordsArray = stream.ReadStringArray();
                }
                else
                {
                    ShaderKeywords = stream.ReadStringAligned();
                }
            }

            if (IsReadLightmapFlags)
            {
                LightmapFlags = stream.ReadUInt32();
                if (IsReadOtherFlags)
                {
                    EnableInstancingVariants = stream.ReadBoolean();
                    DoubleSidedGI            = stream.ReadBoolean();
                    stream.AlignStream(AlignType.Align4);
                }
            }

            if (IsReadCustomRenderQueue)
            {
                CustomRenderQueue = stream.ReadInt32();
            }

            if (IsReadStringTagMap)
            {
                StringTagMap.Read(stream);
                if (IsReadDisabledShaderPasses)
                {
                    m_disabledShaderPasses = stream.ReadStringArray();
                }
            }

            SavedProperties.Read(stream);
        }
Exemplo n.º 25
0
 public void Read(EndianStream stream)
 {
     if (IsVector3)
     {
         Min3.Read(stream);
         Max3.Read(stream);
     }
     else
     {
         Min4.Read(stream);
         Max4.Read(stream);
     }
 }
Exemplo n.º 26
0
 public void Read(EndianStream stream)
 {
     FirstVertex = stream.ReadUInt32();
     VertexCount = stream.ReadUInt32();
     if (IsReadAABB)
     {
         AabbMinDelta.Read(stream);
         AabbMaxDelta.Read(stream);
     }
     HasNormals  = stream.ReadBoolean();
     HasTangents = stream.ReadBoolean();
     stream.AlignStream(AlignType.Align4);
 }
Exemplo n.º 27
0
        private void Initalize(Stream shotStream)
        {
            _shotStream = new EndianStream(shotStream, Endian.BigEndian);
            if (!isValidScreen())
            {
                Close();
                throw new Exception("Invalid Halo Reach screenshot!");
            }

            // Load Screenshot Parts
            LoadHeader();
            LoadScreenshot();
        }
Exemplo n.º 28
0
        private void Initalize(Stream fileStream)
        {
            _gpdStream = new EndianStream(fileStream, Endian.BigEndian);

            if (!IsValidGPD())
            {
                Close();
                throw new Exception("Invalid Halo 3 GPD!");
            }

            LoadPlayerVisuals();
            LoadCampaignCompletion();
        }
Exemplo n.º 29
0
        public override void Read(EndianStream stream)
        {
            base.Read(stream);

            DefaultAnimation.Read(stream);
            m_animations      = stream.ReadArray(() => new PPtr <AnimationClip>(AssetsFile));
            WrapMode          = stream.ReadInt32();
            PlayAutomatically = stream.ReadBoolean();
            AnimatePhysics    = stream.ReadBoolean();
            stream.AlignStream(AlignType.Align4);

            CullingType = stream.ReadInt32();
        }
Exemplo n.º 30
0
 public void Read(EndianStream stream)
 {
     StateMachineIndex          = stream.ReadUInt32();
     StateMachineMotionSetIndex = stream.ReadUInt32();
     BodyMask.Read(stream);
     SkeletonMask.Read(stream);
     Binding                  = stream.ReadUInt32();
     LayerBlendingMode        = stream.ReadInt32();
     DefaultWeight            = stream.ReadSingle();
     IKPass                   = stream.ReadBoolean();
     SyncedLayerAffectsTiming = stream.ReadBoolean();
     stream.AlignStream(AlignType.Align4);
 }
Exemplo n.º 31
0
        public void PassBattle()
        {
            RelayConnector pRelayConnector = m_RpcConnector.GetRelayConnector();

            MessageMeta meta = new MessageMeta(
                (UInt32)MSGMETA_TYPE_LIB.MSGMETA_TYPE_LIB_PU_TOGLOBAL,
                (UInt32)mln.ROOM_HUB.MSG_ID.MSG_ID_PASS_BATTLE,
                m_RoomHubPU_PUUID,						// dadr
                pRelayConnector.ClientID	// sadr
            );

            // パケット内部情報セット
            EndianStream es = new EndianStream();
            es.put(m_RpcConnector.GetPUUID());
            meta.SetData(es.size(), es.getBuffer());

            // 送信
            pRelayConnector.Post(meta);
        }
Exemplo n.º 32
0
        protected override void ProcEvent(EVENT i_pEvent)
        {
            switch ((PU_EVENT)i_pEvent.type)
            {
                case PU_EVENT.PU_EVENT_NOTIFY_DEREG_GPU:
                    {			// 接続先の PU の切断通知
                        EndianStream es = new EndianStream();
                        es.write(i_pEvent.msg.data(), i_pEvent.msg.size());

                        PACKET_PNW_GPUINFO data = new PACKET_PNW_GPUINFO();
                        data.get(es);

                        OnDisconnectedRPC(data.gpuId, RPCBasePU.DISCONNECT_STATE.DISCONNECT_STATE_RPC);
                    } break;

                case PU_EVENT.PU_EVENT_NOTIFY_DISCONNECTED_SOCKET:
                    {	// クライアントの切断通知
                        EndianStream es = new EndianStream();
                        es.write(i_pEvent.msg.data(), i_pEvent.msg.size());

                        PACKET_CLC_CONDISCONNECTED data = new PACKET_CLC_CONDISCONNECTED();
                        data.get(es);

                        OnDisconnectedRPC(i_pEvent.msg.sadr, RPCBasePU.DISCONNECT_STATE.DISCONNECT_STATE_SOCKET);
                    } break;
            }
        }
Exemplo n.º 33
0
 /// EndianStream から入力する
 public void get(EndianStream es)
 {
     es.get(out puUid );
 }
Exemplo n.º 34
0
            PUUID puUid; // パッシング先のPUUID

            /// EndianStream に出力する
            public void put(EndianStream es)
            {
                es.put(puUid);
            }