diff --git a/lib/bsp_loader/src/bsp.rs b/lib/bsp_loader/src/bsp.rs index 5650c105a..d05198924 100644 --- a/lib/bsp_loader/src/bsp.rs +++ b/lib/bsp_loader/src/bsp.rs @@ -93,19 +93,23 @@ pub fn convert<'a>( //declare all prop models to Loader let mut prop_models=bsp.static_props().map(|prop|{ + const DEG_TO_RAD:f32=std::f32::consts::TAU/360.0; //get or create mesh_id let mesh_id=mesh_deferred_loader.acquire_mesh_id(prop.model()); - let placement=prop.as_prop_placement(); model::Model{ mesh:mesh_id, attributes:ATTRIBUTE_DECORATION, transform:integer::Planar64Affine3::new( - integer::mat3::try_from_f32_array_2d(( - glam::Mat3A::from_diagonal(glam::Vec3::splat(placement.scale)) + integer::mat3::try_from_f32_array_2d( //TODO: figure this out - *glam::Mat3A::from_quat(glam::Quat::from_array(placement.rotation.into())) - ).to_cols_array_2d()).unwrap(), - valve_transform(placement.origin.into()), + glam::Mat3A::from_euler( + glam::EulerRot::XYZ, + prop.angles.pitch*DEG_TO_RAD, + prop.angles.yaw*DEG_TO_RAD, + prop.angles.roll*DEG_TO_RAD + ).to_cols_array_2d() + ).unwrap(), + valve_transform(prop.origin.into()), ), color:glam::Vec4::ONE, }