protected override void Deserialize() { base.Deserialize(); int classIndex = _Buffer.ReadObjectIndex(); ClassObject = (UClass)GetIndexObject( classIndex ); }
protected override void Deserialize() { base.Deserialize(); int classIndex = _Buffer.ReadObjectIndex(); ClassObject = (UClass)GetIndexObject(classIndex); }
protected override void Deserialize() { base.Deserialize(); int index = _Buffer.ReadObjectIndex(); InterfaceObject = (UClass)GetIndexObject( index ); //Index = _Buffer.ReadObjectIndex(); //_InterfaceType = (UInterfaceProperty)GetIndexObject( Index ); }
protected override void Deserialize() { base.Deserialize(); int index = _Buffer.ReadObjectIndex(); InterfaceObject = (UClass)GetIndexObject(index); //Index = _Buffer.ReadObjectIndex(); //_InterfaceType = (UInterfaceProperty)GetIndexObject( Index ); }
private string FormatFlags() { string output = string.Empty; if ((ClassFlags & (uint)Flags.ClassFlags.Abstract) != 0) { output += "\r\n\tabstract"; } if ((ClassFlags & (uint)Flags.ClassFlags.Transient) != 0) { output += "\r\n\ttransient"; } else { // Only do if parent had Transient UClass parentClass = (UClass)Super; if (parentClass != null && (parentClass.ClassFlags & (uint)Flags.ClassFlags.Transient) != 0) { output += "\r\n\tnotransient"; } } if (HasObjectFlag(Flags.ObjectFlagsLO.Native)) { output += "\r\n\t" + FormatNative(); if (NativeClassName.Length != 0) { output += "(" + NativeClassName + ")"; } } if (HasClassFlag(Flags.ClassFlags.NativeOnly)) { output += "\r\n\tnativeonly"; } if (HasClassFlag(Flags.ClassFlags.NativeReplication)) { output += "\r\n\tnativereplication"; } // BTClient.Menu.uc has Config(ClientBtimes) and this flag is not true??? if ((ClassFlags & (uint)Flags.ClassFlags.Config) != 0) { string inner = ConfigName; if (string.Compare(inner, "None", StringComparison.OrdinalIgnoreCase) == 0 || string.Compare(inner, "System", StringComparison.OrdinalIgnoreCase) == 0) { output += "\r\n\tconfig"; } else { output += "\r\n\tconfig(" + inner + ")"; } } if ((ClassFlags & (uint)Flags.ClassFlags.ParseConfig) != 0) { output += "\r\n\tparseconfig"; } if ((ClassFlags & (uint)Flags.ClassFlags.PerObjectConfig) != 0) { output += "\r\n\tperobjectconfig"; } else { // Only do if parent had PerObjectConfig UClass parentClass = (UClass)Super; if (parentClass != null && (parentClass.ClassFlags & (uint)Flags.ClassFlags.PerObjectConfig) != 0) { output += "\r\n\tnoperobjectconfig"; } } if ((ClassFlags & (uint)Flags.ClassFlags.EditInlineNew) != 0) { output += "\r\n\teditinlinenew"; } else { // Only do if parent had EditInlineNew UClass parentClass = (UClass)Super; if (parentClass != null && (parentClass.ClassFlags & (uint)Flags.ClassFlags.EditInlineNew) != 0) { output += "\r\n\tnoteditinlinenew"; } } if ((ClassFlags & (uint)Flags.ClassFlags.CollapseCategories) != 0) { output += "\r\n\tcollapsecategories"; } // TODO: Might indicate "Interface" in later versions if (HasClassFlag(Flags.ClassFlags.ExportStructs) && Package.Version < 300) { output += "\r\n\texportstructs"; } if ((ClassFlags & (uint)Flags.ClassFlags.NoExport) != 0) { output += "\r\n\tnoexport"; } if (Extends("Actor")) { if ((ClassFlags & (uint)Flags.ClassFlags.Placeable) != 0) { output += Package.Version >= PlaceableVersion ? "\r\n\tplaceable" : "\r\n\tusercreate"; } else { output += Package.Version >= PlaceableVersion ? "\r\n\tnotplaceable" : "\r\n\tnousercreate"; } } if ((ClassFlags & (uint)Flags.ClassFlags.SafeReplace) != 0) { output += "\r\n\tsafereplace"; } // Approx version if ((ClassFlags & (uint)Flags.ClassFlags.Instanced) != 0 && Package.Version < 150) { output += "\r\n\tinstanced"; } if ((ClassFlags & (uint)Flags.ClassFlags.HideDropDown) != 0) { output += "\r\n\thidedropdown"; } if (Package.Build == UnrealPackage.GameBuild.BuildName.UT2004) { if (HasClassFlag(Flags.ClassFlags.CacheExempt)) { output += "\r\n\tcacheexempt"; } } if (Package.Version >= 749 && Super != null) { if (ForceScriptOrder && !((UClass)Super).ForceScriptOrder) { output += "\r\n\tforcescriptorder(true)"; } else if (!ForceScriptOrder && ((UClass)Super).ForceScriptOrder) { output += "\r\n\tforcescriptorder(false)"; } } try { if (Package.Version >= UnrealPackage.VDLLBIND && string.Compare(DLLBindName, "None", StringComparison.OrdinalIgnoreCase) != 0) { output += "\r\n\tdllbind(" + DLLBindName + ")"; } } catch { output += "\r\n\t// Failed to decompile dllbind"; } if (ClassDependencies != null) { var dependsOn = new List <int>(); foreach (var dependency in ClassDependencies) { if (dependsOn.Exists(dep => dep == dependency.Class)) { continue; } var obj = (UClass)GetIndexObject(dependency.Class); // Only exports and those who are further than this class if (obj != null && (int)obj > (int)this) { output += "\r\n\tdependson(" + obj.Name + ")"; } dependsOn.Add(dependency.Class); } } output += FormatNameGroup("dontsortcategories", DontSortCategories); output += FormatNameGroup("hidecategories", HideCategories); output += FormatNameGroup("classgroup", ClassGroups); output += FormatNameGroup("autoexpandcategories", AutoExpandCategories); output += FormatNameGroup("autocollapsecategories", AutoCollapseCategories); output += FormatObjectGroup("implements", ImplementedInterfaces); return(output + ";\r\n"); }