FExportObjectInnerContext::FExportObjectInnerContext(TArray<UObject*>& ObjsToIgnore) { // For each object . . . for (UObject* InnerObj : TObjectRange<UObject>(RF_ClassDefaultObject | RF_PendingKill)) { if (!ObjsToIgnore.Contains(InnerObj)) { UObject* OuterObj = InnerObj->GetOuter(); if (OuterObj && !OuterObj->IsPendingKill()) { InnerList* Inners = ObjectToInnerMap.Find(OuterObj); if (Inners) { // Add object to existing inner list. Inners->Add(InnerObj); } else { // Create a new inner list for the outer object. InnerList& InnersForOuterObject = ObjectToInnerMap.Add(OuterObj, InnerList()); InnersForOuterObject.Add(InnerObj); } } } } }
FExportObjectInnerContext::FExportObjectInnerContext(TArray<UObject*>& ObjsToIgnore) { // For each object . . . for ( TObjectIterator<UObject> It ; It ; ++It ) { UObject* InnerObj = *It; if ( !InnerObj->IsPendingKill() ) { if ( !ObjsToIgnore.Contains(InnerObj) ) { UObject* OuterObj = InnerObj->GetOuter(); if ( OuterObj && !OuterObj->IsPendingKill() ) { InnerList* Inners = ObjectToInnerMap.Find( OuterObj ); if ( Inners ) { // Add object to existing inner list. Inners->Add( InnerObj ); } else { // Create a new inner list for the outer object. InnerList& InnersForOuterObject = ObjectToInnerMap.Add( OuterObj, InnerList() ); InnersForOuterObject.Add( InnerObj ); } } } } } }
FExportObjectInnerContext::FExportObjectInnerContext() { // For each object . . . for (UObject* InnerObj : TObjectRange<UObject>(RF_ClassDefaultObject, true, EInternalObjectFlags::PendingKill)) { UObject* OuterObj = InnerObj->GetOuter(); if ( OuterObj ) { InnerList* Inners = ObjectToInnerMap.Find( OuterObj ); if ( Inners ) { // Add object to existing inner list. Inners->Add( InnerObj ); } else { // Create a new inner list for the outer object. InnerList& InnersForOuterObject = ObjectToInnerMap.Add( OuterObj, InnerList() ); InnersForOuterObject.Add( InnerObj ); } } } }
FExportObjectInnerContext::FExportObjectInnerContext() { // For each object . . . for ( TObjectIterator<UObject> It ; It ; ++It ) { UObject* InnerObj = *It; UObject* OuterObj = InnerObj->GetOuter(); if ( OuterObj ) { InnerList* Inners = ObjectToInnerMap.Find( OuterObj ); if ( Inners ) { // Add object to existing inner list. Inners->Add( InnerObj ); } else { // Create a new inner list for the outer object. InnerList& InnersForOuterObject = ObjectToInnerMap.Add( OuterObj, InnerList() ); InnersForOuterObject.Add( InnerObj ); } } } }