示例#1
0
        public static void ReplaceAll(GpkExport source, GpkExport destination)
        {
            GpkPackage sourcePackage       = source.motherPackage;
            GpkPackage destinantionPackage = destination.motherPackage;

            //exclude: motherPackage, guid, uid, SerialOffset, SerialOffsetPosition, ObjectName, PackageName
            destination.ClassName = source.ClassName;
            destination.SuperName = source.SuperName;
            //destination.PackageName = source.PackageName;
            //destination.ObjectName = source.ObjectName;

            destination.Unk1 = source.Unk1;
            destination.Unk2 = source.Unk2;

            destination.SerialSize = source.SerialSize;

            destination.NetIndex     = source.NetIndex;
            destination.NetIndexName = source.NetIndexName;

            destination.Unk3           = source.Unk3;
            destination.UnkHeaderCount = source.UnkHeaderCount;
            destination.Unk4           = source.Unk4;
            destination.UnkExtraInts   = source.UnkExtraInts;

            destination.DependsTableData = source.DependsTableData;

            ReplaceProperties(source, destination);
            ReplaceData(source, destination);

            //regenerate uid
            destinantionPackage.GenerateUID(destination);

            //copy deps
            destinantionPackage.CopyObjectFromPackage(source.ClassName, sourcePackage, false);
            destinantionPackage.CopyObjectFromPackage(source.PackageName, sourcePackage, false);
            destinantionPackage.CopyObjectFromPackage(source.SuperName, sourcePackage, false);
            destinantionPackage.CopyObjectFromPackage(source.NetIndexName, sourcePackage, false);
        }