diff --git a/lib/bsp_loader/src/brush.rs b/lib/bsp_loader/src/brush.rs index 5219028..56172e8 100644 --- a/lib/bsp_loader/src/brush.rs +++ b/lib/bsp_loader/src/brush.rs @@ -75,13 +75,9 @@ fn planes_to_faces(face_list:std::collections::HashSet<Face>)->Result<Faces,Plan let mut intersection=solve3(face0,face1,face2).ok_or(PlanesToFacesError::InitIntersection)?; - // repeatedly update face0, face1 until all faces form part of the convex solid + // repeatedly update face1, face2 until all faces form part of the convex solid 'find: loop{ - if let Some(a)=detect_loop.checked_sub(1){ - detect_loop=a; - }else{ - return Err(PlanesToFacesError::InfiniteLoop1); - } + detect_loop=detect_loop.checked_sub(1).ok_or(PlanesToFacesError::InfiniteLoop1)?; // test if any *other* faces occlude the intersection for new_face in &face_list{ // new face occludes intersection point @@ -177,11 +173,7 @@ fn planes_to_faces(face_list:std::collections::HashSet<Face>)->Result<Faces,Plan face2=new_face; intersection=new_intersection; - if let Some(a)=detect_loop.checked_sub(1){ - detect_loop=a; - }else{ - return Err(PlanesToFacesError::InfiniteLoop2); - } + detect_loop=detect_loop.checked_sub(1).ok_or(PlanesToFacesError::InfiniteLoop2)?; } faces.push(face);