mirror of
https://github.com/redstrate/Physis.git
synced 2025-04-20 19:57:45 +00:00
Remove more magic constant numbers with std::mem::size_of
This commit is contained in:
parent
5cce23bd3c
commit
60f4d49a0c
1 changed files with 8 additions and 7 deletions
15
src/model.rs
15
src/model.rs
|
@ -2,6 +2,7 @@
|
||||||
// SPDX-License-Identifier: GPL-3.0-or-later
|
// SPDX-License-Identifier: GPL-3.0-or-later
|
||||||
|
|
||||||
use std::io::{Cursor, Seek, SeekFrom, Write};
|
use std::io::{Cursor, Seek, SeekFrom, Write};
|
||||||
|
use std::mem::size_of;
|
||||||
|
|
||||||
use binrw::{BinResult, binrw, BinWrite, BinWriterExt};
|
use binrw::{BinResult, binrw, BinWrite, BinWriterExt};
|
||||||
use binrw::BinRead;
|
use binrw::BinRead;
|
||||||
|
@ -560,7 +561,7 @@ impl MDL {
|
||||||
cursor
|
cursor
|
||||||
.seek(SeekFrom::Start(
|
.seek(SeekFrom::Start(
|
||||||
(model_file_header.index_offsets[i as usize]
|
(model_file_header.index_offsets[i as usize]
|
||||||
+ (model.meshes[j as usize].start_index * 2))
|
+ (model.meshes[j as usize].start_index * size_of::<u16>() as u32))
|
||||||
as u64,
|
as u64,
|
||||||
))
|
))
|
||||||
.ok()?;
|
.ok()?;
|
||||||
|
@ -651,7 +652,7 @@ impl MDL {
|
||||||
}
|
}
|
||||||
|
|
||||||
total_vertex_buffer_size += vertex_count as u32 * total_vertex_stride;
|
total_vertex_buffer_size += vertex_count as u32 * total_vertex_stride;
|
||||||
total_index_buffer_size += index_count * 2; // sizeof uint16, TODO: don't hardcode
|
total_index_buffer_size += index_count * size_of::<u16>() as u32;
|
||||||
}
|
}
|
||||||
|
|
||||||
// Unknown padding?
|
// Unknown padding?
|
||||||
|
@ -677,12 +678,12 @@ impl MDL {
|
||||||
+ ( 3 * 60 ) // 3 Lods
|
+ ( 3 * 60 ) // 3 Lods
|
||||||
//+ ( /*file.ModelHeader.ExtraLodEnabled ? 40*/ 0 )
|
//+ ( /*file.ModelHeader.ExtraLodEnabled ? 40*/ 0 )
|
||||||
+ self.model_data.meshes.len() as u32 * 36
|
+ self.model_data.meshes.len() as u32 * 36
|
||||||
+ self.model_data.attribute_name_offsets.len() as u32 * 4
|
+ self.model_data.attribute_name_offsets.len() as u32 * size_of::<u32>() as u32
|
||||||
+ self.model_data.header.terrain_shadow_mesh_count as u32 * 20
|
+ self.model_data.header.terrain_shadow_mesh_count as u32 * 20
|
||||||
+ self.model_data.header.submesh_count as u32 * 16
|
+ self.model_data.header.submesh_count as u32 * 16
|
||||||
+ self.model_data.header.terrain_shadow_submesh_count as u32 * 10
|
+ self.model_data.header.terrain_shadow_submesh_count as u32 * 10
|
||||||
+ self.model_data.material_name_offsets.len() as u32 * 4
|
+ self.model_data.material_name_offsets.len() as u32 * size_of::<u32>() as u32
|
||||||
+ self.model_data.bone_name_offsets.len() as u32 * 4
|
+ self.model_data.bone_name_offsets.len() as u32 * size_of::<u32>() as u32
|
||||||
+ self.model_data.bone_tables.len() as u32 * 132
|
+ self.model_data.bone_tables.len() as u32 * 132
|
||||||
+ self.model_data.header.shape_count as u32 * 16
|
+ self.model_data.header.shape_count as u32 * 16
|
||||||
+ self.model_data.header.shape_mesh_count as u32 * 12
|
+ self.model_data.header.shape_mesh_count as u32 * 12
|
||||||
|
@ -694,7 +695,7 @@ impl MDL {
|
||||||
+ ( self.model_data.header.bone_count as u32 * 32 );
|
+ ( self.model_data.header.bone_count as u32 * 32 );
|
||||||
|
|
||||||
let mut vertex_offset = self.file_header.runtime_size
|
let mut vertex_offset = self.file_header.runtime_size
|
||||||
+ 68 // model file header
|
+ size_of::<ModelFileHeader>() as u32
|
||||||
+ self.file_header.stack_size;
|
+ self.file_header.stack_size;
|
||||||
|
|
||||||
for lod in &mut self.model_data.lods {
|
for lod in &mut self.model_data.lods {
|
||||||
|
@ -871,7 +872,7 @@ impl MDL {
|
||||||
cursor
|
cursor
|
||||||
.seek(SeekFrom::Start(
|
.seek(SeekFrom::Start(
|
||||||
(self.file_header.index_offsets[l]
|
(self.file_header.index_offsets[l]
|
||||||
+ (self.model_data.meshes[part.mesh_index as usize].start_index * 2))
|
+ (self.model_data.meshes[part.mesh_index as usize].start_index * size_of::<u16>() as u32))
|
||||||
as u64,
|
as u64,
|
||||||
))
|
))
|
||||||
.ok()?;
|
.ok()?;
|
||||||
|
|
Loading…
Add table
Reference in a new issue