mirror of
https://codeberg.org/icewind/sourcenav.git
synced 2026-06-03 18:24:10 +02:00
fix clippy lints
This commit is contained in:
parent
95fd2d4da3
commit
1607b851c5
3 changed files with 16 additions and 13 deletions
|
|
@ -11,8 +11,10 @@ use euclid::{TypedPoint2D, TypedRect, TypedSize2D};
|
||||||
mod navmesh;
|
mod navmesh;
|
||||||
mod parser;
|
mod parser;
|
||||||
|
|
||||||
|
type Rect = TypedRect<f32, HammerUnit>;
|
||||||
|
|
||||||
/// A tree of all navigation areas
|
/// A tree of all navigation areas
|
||||||
pub struct NavTree(QuadTree<NavArea, HammerUnit, [(ItemId, TypedRect<f32, HammerUnit>); 4]>);
|
pub struct NavTree(QuadTree<NavArea, HammerUnit, [(ItemId, Rect); 4]>);
|
||||||
|
|
||||||
/// Parse all navigation areas from a nav file
|
/// Parse all navigation areas from a nav file
|
||||||
///
|
///
|
||||||
|
|
@ -43,7 +45,7 @@ pub fn get_area_tree(data: Vec<u8>) -> Result<NavTree, ParseError> {
|
||||||
);
|
);
|
||||||
|
|
||||||
let mut tree = QuadTree::default(
|
let mut tree = QuadTree::default(
|
||||||
TypedRect::new(
|
Rect::new(
|
||||||
TypedPoint2D::new(min_x - 1.0, min_y - 1.0),
|
TypedPoint2D::new(min_x - 1.0, min_y - 1.0),
|
||||||
TypedSize2D::new(max_x - min_x + 2.0, max_y - min_y + 2.0),
|
TypedSize2D::new(max_x - min_x + 2.0, max_y - min_y + 2.0),
|
||||||
),
|
),
|
||||||
|
|
@ -73,7 +75,7 @@ impl NavTree {
|
||||||
/// # }
|
/// # }
|
||||||
/// ```
|
/// ```
|
||||||
pub fn query(&self, x: f32, y: f32) -> impl Iterator<Item = &NavArea> {
|
pub fn query(&self, x: f32, y: f32) -> impl Iterator<Item = &NavArea> {
|
||||||
let query_box = TypedRect::new(TypedPoint2D::new(x, y), TypedSize2D::new(1.0, 1.0));
|
let query_box = Rect::new(TypedPoint2D::new(x, y), TypedSize2D::new(1.0, 1.0));
|
||||||
|
|
||||||
self.0.query(query_box).into_iter().map(|(area, ..)| area)
|
self.0.query(query_box).into_iter().map(|(area, ..)| area)
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,7 @@
|
||||||
|
use crate::Rect;
|
||||||
use aabb_quadtree::Spatial;
|
use aabb_quadtree::Spatial;
|
||||||
use bitbuffer::{BitRead, BitReadStream, Endianness, ReadError};
|
use bitbuffer::{BitRead, BitReadStream, Endianness, ReadError};
|
||||||
use euclid::{TypedPoint2D, TypedRect, TypedSize2D};
|
use euclid::{TypedPoint2D, TypedSize2D};
|
||||||
use std::fmt;
|
use std::fmt;
|
||||||
use std::fmt::Debug;
|
use std::fmt::Debug;
|
||||||
use std::ops::Index;
|
use std::ops::Index;
|
||||||
|
|
@ -84,8 +85,8 @@ impl NavArea {
|
||||||
pub(crate) struct HammerUnit;
|
pub(crate) struct HammerUnit;
|
||||||
|
|
||||||
impl Spatial<HammerUnit> for NavArea {
|
impl Spatial<HammerUnit> for NavArea {
|
||||||
fn aabb(&self) -> TypedRect<f32, HammerUnit> {
|
fn aabb(&self) -> Rect {
|
||||||
TypedRect {
|
Rect {
|
||||||
origin: TypedPoint2D::new(self.north_west.0, self.north_west.1),
|
origin: TypedPoint2D::new(self.north_west.0, self.north_west.1),
|
||||||
size: TypedSize2D::new(
|
size: TypedSize2D::new(
|
||||||
self.south_east.0 - self.north_west.0,
|
self.south_east.0 - self.north_west.0,
|
||||||
|
|
@ -120,11 +121,11 @@ impl<E: Endianness> BitRead<E> for Connections {
|
||||||
fn read(stream: &mut BitReadStream<E>) -> Result<Self, ReadError> {
|
fn read(stream: &mut BitReadStream<E>) -> Result<Self, ReadError> {
|
||||||
let mut connections = [Vec::new(), Vec::new(), Vec::new(), Vec::new()];
|
let mut connections = [Vec::new(), Vec::new(), Vec::new(), Vec::new()];
|
||||||
|
|
||||||
for direction in 0..4 {
|
for direction in connections.iter_mut() {
|
||||||
let connection_count: u32 = stream.read()?;
|
let connection_count: u32 = stream.read()?;
|
||||||
connections[direction] = Vec::with_capacity(connection_count as usize);
|
direction.reserve(connection_count as usize);
|
||||||
for _ in 0..connection_count {
|
for _ in 0..connection_count {
|
||||||
connections[direction].push(stream.read()?);
|
direction.push(stream.read()?);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -165,11 +166,11 @@ impl<E: Endianness> BitRead<E> for LadderConnections {
|
||||||
fn read(stream: &mut BitReadStream<E>) -> Result<Self, ReadError> {
|
fn read(stream: &mut BitReadStream<E>) -> Result<Self, ReadError> {
|
||||||
let mut connections = [Vec::new(), Vec::new()];
|
let mut connections = [Vec::new(), Vec::new()];
|
||||||
|
|
||||||
for direction in 0..2 {
|
for direction in connections.iter_mut() {
|
||||||
let connection_count: u32 = stream.read()?;
|
let connection_count: u32 = stream.read()?;
|
||||||
connections[direction] = Vec::with_capacity(connection_count as usize);
|
direction.reserve(connection_count as usize);
|
||||||
for _ in 0..connection_count {
|
for _ in 0..connection_count {
|
||||||
connections[direction].push(stream.read()?);
|
direction.push(stream.read()?);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -22,7 +22,7 @@ pub enum ParseError {
|
||||||
pub(crate) fn read_areas(data: Vec<u8>) -> Result<Vec<NavArea>, ParseError> {
|
pub(crate) fn read_areas(data: Vec<u8>) -> Result<Vec<NavArea>, ParseError> {
|
||||||
let mut data = BitReadStream::new(BitReadBuffer::new(data, LittleEndian));
|
let mut data = BitReadStream::new(BitReadBuffer::new(data, LittleEndian));
|
||||||
let magic = data.read()?;
|
let magic = data.read()?;
|
||||||
if magic != 0xFEEDFACE {
|
if magic != 0xFEED_FACE {
|
||||||
return Err(ParseError::InvalidMagicNumber(magic));
|
return Err(ParseError::InvalidMagicNumber(magic));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue