Esempio n. 1
0
    public override FeatureBase clone()
    {
        IntPtr    cPtr = libtischPINVOKE.BlobGroup_clone(swigCPtr);
        BlobGroup ret  = (cPtr == IntPtr.Zero) ? null : new BlobGroup(cPtr, false);

        if (libtischPINVOKE.SWIGPendingException.Pending)
        {
            throw libtischPINVOKE.SWIGPendingException.Retrieve();
        }
        return(ret);
    }
Esempio n. 2
0
    public new static BlobGroup dynamic_cast(FeatureBase arg0)
    {
        IntPtr    cPtr = libtischPINVOKE.BlobGroup_dynamic_cast(FeatureBase.getCPtr(arg0));
        BlobGroup ret  = (cPtr == IntPtr.Zero) ? null : new BlobGroup(cPtr, false);

        if (libtischPINVOKE.SWIGPendingException.Pending)
        {
            throw libtischPINVOKE.SWIGPendingException.Retrieve();
        }
        return(ret);
    }
Esempio n. 3
0
        internal void Initialize(BlobSystem system, Engine.BlamEngineTargetHandle gameTarget,
                                 BlobGroup blobGroup, int version)
        {
            SystemGroup = blobGroup;
            GameTarget  = gameTarget;
            Version     = version;

            BlobGroupVersionAndBuildInfo info_for_version;

            if (SystemGroup.VersionAndBuildMap.TryGetValue(Version, out info_for_version))
            {
                SystemGroupVersionInfo = info_for_version;
            }
            else
            {
                throw new KSoft.Debug.UnreachableException();
            }

            InitializeExplicitlyForGame(gameTarget);
        }
Esempio n. 4
0
        BlobObject EnumerateChunksReadObject(BlobSystem blobSystem, BlobGroup blobGroup, BlobGroupVersionAndBuildInfo infoForVersion,
                                             BlobChunkHeader header, byte[] data)
        {
            Contract.Requires <InvalidOperationException>(!GameTarget.IsNone);

            var obj = blobSystem.CreateObject(GameTarget, blobGroup, header.Version, header.Size);

            var byte_order = UnderlyingStream.ByteOrder;

            if (infoForVersion.ForceLittleEndian)
            {
                byte_order = Shell.EndianFormat.Little;
            }

            using (var ms = new System.IO.MemoryStream(data))
                using (var es = new IO.EndianStream(ms, byte_order, this, blobGroup.GroupTag.Name, FileAccess.Read))
                {
                    es.StreamMode = FileAccess.Read;

                    obj.Serialize(es);
                }

            return(obj);
        }
Esempio n. 5
0
        void EnumerateChunksReadObjectFoundBuildIncompatibility(BlobSystem blobSystem,
                                                                BlobChunkHeader header, BlobGroup blobGroup,
                                                                Engine.EngineBuildHandle buildForBlobVersion, Engine.EngineBuildHandle actualBuild)
        {
            Util.MarkUnusedVariable(ref blobSystem);

            throw new InvalidOperationException(string.Format(Util.InvariantCultureInfo,
                                                              "Build incompatibility for chunk {0} v{1} sizeof({2}) which uses build={3} " +
                                                              "but we're using build={4} for {5}",
                                                              blobGroup.GroupTag.TagString, header.Version, header.DataSize, buildForBlobVersion.ToDisplayString(),
                                                              actualBuild.ToDisplayString(), UnderlyingStream.StreamName));
        }
Esempio n. 6
0
 internal static HandleRef getCPtr(BlobGroup obj)
 {
     return((obj == null) ? new HandleRef(null, IntPtr.Zero) : obj.swigCPtr);
 }