fix multi mesh models

This commit is contained in:
Robin Appelman 2022-03-12 17:36:14 +01:00
commit 3aa5c8751b
8 changed files with 224 additions and 26 deletions

View file

@ -186,7 +186,7 @@ impl StripGroup {
Ok(reader.read_le()?)
})
.collect::<Result<_>>()?,
flags: dbg!(header).flags,
flags: header.flags,
})
}
}
@ -204,7 +204,7 @@ impl Strip {
Ok(Strip {
vertices: header.vertex_indexes(),
indices: header.index_indexes(),
flags: dbg!(header).flags,
flags: header.flags,
})
}

View file

@ -36,6 +36,8 @@ pub struct BodyPartHeader {
model_offset: i32,
}
static_assertions::const_assert_eq!(size_of::<BodyPartHeader>(), 8);
impl BodyPartHeader {
pub fn model_indexes(&self) -> impl Iterator<Item = usize> {
index_range(
@ -52,6 +54,8 @@ pub struct ModelHeader {
lod_offset: i32,
}
static_assertions::const_assert_eq!(size_of::<ModelHeader>(), 8);
impl ModelHeader {
pub fn lod_indexes(&self) -> impl Iterator<Item = usize> {
index_range(self.lod_offset, self.lod_count, size_of::<ModelLodHeader>())
@ -81,6 +85,8 @@ pub struct MeshHeader {
pub flags: MeshFlags,
}
static_assertions::const_assert_eq!(size_of::<MeshHeader>(), 9);
impl MeshHeader {
pub fn strip_group_indexes(&self) -> impl Iterator<Item = usize> {
index_range(