1
Fork 0
mirror of https://github.com/redstrate/Physis.git synced 2025-04-20 11:47:46 +00:00

More small changes to the model module

* Removed unused import
* Used more result checks
* Removed unnecessary mutable variable
This commit is contained in:
Joshua Goins 2022-08-06 18:07:42 -04:00
parent c03c6495fc
commit 8b6b6b036c

View file

@ -1,5 +1,4 @@
use std::io::{Cursor, Seek, SeekFrom}; use std::io::{Cursor, Seek, SeekFrom};
use std::ops::Bound;
use binrw::binrw; use binrw::binrw;
use crate::gamedata::MemoryBuffer; use crate::gamedata::MemoryBuffer;
use binrw::BinRead; use binrw::BinRead;
@ -324,7 +323,7 @@ impl MDL {
} }
let mut vertex_declarations: Vec<VertexDeclaration> = vec![VertexDeclaration{ elements : vec![] }; model_file_header.vertex_declaration_count as usize]; let mut vertex_declarations: Vec<VertexDeclaration> = vec![VertexDeclaration{ elements : vec![] }; model_file_header.vertex_declaration_count as usize];
for mut declaration in &mut vertex_declarations { for declaration in &mut vertex_declarations {
let mut element = VertexElement::read(&mut cursor).unwrap(); let mut element = VertexElement::read(&mut cursor).unwrap();
loop { loop {
@ -338,7 +337,7 @@ impl MDL {
}; };
let to_seek = 17 * 8 - (declaration.elements.len() + 1) * 8; let to_seek = 17 * 8 - (declaration.elements.len() + 1) * 8;
cursor.seek(SeekFrom::Current(to_seek as i64)); cursor.seek(SeekFrom::Current(to_seek as i64)).ok()?;
} }
let model = ModelData::read(&mut cursor).unwrap(); let model = ModelData::read(&mut cursor).unwrap();
@ -367,7 +366,7 @@ impl MDL {
cursor.seek(SeekFrom::Start((model.lods[i as usize].vertex_data_offset + cursor.seek(SeekFrom::Start((model.lods[i as usize].vertex_data_offset +
model.meshes[j as usize].vertex_buffer_offsets[element.stream as usize] + model.meshes[j as usize].vertex_buffer_offsets[element.stream as usize] +
element.offset as u32 + element.offset as u32 +
model.meshes[i as usize].vertex_buffer_strides[element.stream as usize] as u32 * k as u32) as u64)); model.meshes[i as usize].vertex_buffer_strides[element.stream as usize] as u32 * k as u32) as u64)).ok()?;
match element.vertex_usage { match element.vertex_usage {
VertexUsage::Position => { VertexUsage::Position => {
@ -396,11 +395,11 @@ impl MDL {
} }
} }
cursor.seek(SeekFrom::Start((model_file_header.index_offsets[i as usize] + (model.meshes[j as usize].start_index * 2)) as u64)); cursor.seek(SeekFrom::Start((model_file_header.index_offsets[i as usize] + (model.meshes[j as usize].start_index * 2)) as u64)).ok()?;
// TODO: optimize! // TODO: optimize!
let mut indices : Vec<u16> = Vec::with_capacity(model.meshes[j as usize].index_count as usize); let mut indices : Vec<u16> = Vec::with_capacity(model.meshes[j as usize].index_count as usize);
for k in 0..model.meshes[j as usize].index_count { for _ in 0..model.meshes[j as usize].index_count {
indices.push(<u16 as BinRead>::read(&mut cursor).unwrap()); indices.push(<u16 as BinRead>::read(&mut cursor).unwrap());
} }