- get by index for objectarray
- tassetptr type
- lowercase function parameters to avoid aliasing with type names
- filter out empty packages
- fix objectflags for ark/ue4.5
This commit is contained in:
Janis 2023-04-22 21:37:23 +02:00
parent 0987e57963
commit 813b0bdaf6
4 changed files with 14 additions and 5 deletions

View file

@ -144,6 +144,10 @@ impl<Object: Sized> ObjectArray<Object> {
self.inner.num_elements as usize
}
pub fn get(&self, i: usize) -> Option<&ObjectArrayItem<Object>> {
self.inner.get_index(i)
}
pub fn iter(&self) -> iter::ObjectArrayIterator<'_, Object> {
iter::ObjectArrayIterator::new(self)
}

View file

@ -19,6 +19,7 @@ pub struct TPersistentObjectPtr<T, P> {
}
pub type TLazyObjectPtr<T> = TPersistentObjectPtr<T, [u8; 0x10]>;
pub type TAssetPtr<T> = TPersistentObjectPtr<T, [u8; 0x10]>;
pub type TSoftObjectPtr<T> = TPersistentObjectPtr<T, FSoftObjectPath>;
#[repr(C)]

View file

@ -421,7 +421,8 @@ pub mod sdk {
let param = MethodParameter {
name: prop
.get_name()
.context("failed to get parameter name")?,
.context("failed to get parameter name")?
.to_lowercase(),
ty,
};
@ -561,6 +562,8 @@ pub mod sdk {
.into_par_iter()
.map(|pkg| pkg.process())
.map(|pkg| (pkg.package, pkg))
// filter out empty packages
.filter(|(_, pkg)| !pkg.types.is_empty())
.collect();
Self { packages }

View file

@ -128,13 +128,13 @@ bitflags! {
const ArchetypeObject = 0x00000020;
const Transient = 0x00000040;
const MarkAsRootSet = 0x00000080;
const TagGarbageTemp = 0x00000100;
const NeedInitialization = 0x00000200;
const Unreachable = 0x00000100;
const TagGarbageTemp = 0x00000200;
const NeedLoad = 0x00000400;
const KeepForCooker = 0x00000800;
const AsyncLoading = 0x00000800;
const NeedPostLoad = 0x00001000;
const NeedPostLoadSubobjects = 0x00002000;
const NewerVersionExists = 0x00004000;
const PendingKill = 0x00004000;
const BeginDestroyed = 0x00008000;
const FinishDestroyed = 0x00010000;
const BeingRegenerated = 0x00020000;
@ -142,6 +142,7 @@ bitflags! {
const WasLoaded = 0x00080000;
const TextExportTransient = 0x00100000;
const LoadCompleted = 0x00200000;
// not existant for 4.5.1 / ARK
const InheritableComponentTemplate = 0x00400000;
const DuplicateTransient = 0x00800000;
const StrongRefOnFrame = 0x01000000;