summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--flake.nix4
-rw-r--r--src/gates.rs8
-rw-r--r--src/main.rs31
-rw-r--r--src/player.rs12
-rw-r--r--src/rand.rs7
-rw-r--r--src/state.rs12
6 files changed, 34 insertions, 40 deletions
diff --git a/flake.nix b/flake.nix
index 540dad2..0878b1d 100644
--- a/flake.nix
+++ b/flake.nix
@@ -15,6 +15,10 @@
lockFile = ./Cargo.lock;
};
+ nativeBuildInputs = with pkgs; [
+ clippy
+ ];
+
buildInputs = with pkgs; [
SDL2
SDL2_image
diff --git a/src/gates.rs b/src/gates.rs
index 1e3630f..7f6bd9f 100644
--- a/src/gates.rs
+++ b/src/gates.rs
@@ -26,8 +26,8 @@ impl GatesBullet {
GatesBullet {
real_x: x as f64,
real_y: y as f64,
- d_x: d_x,
- d_y: d_y,
+ d_x,
+ d_y,
}
}
}
@@ -39,7 +39,7 @@ impl state::Positioned for GatesBullet {
fn y(&self) -> i32 {
self.real_y.round() as i32
}
- fn radius() -> u32 {
+ fn radius() -> i32 {
10
}
}
@@ -51,7 +51,7 @@ impl state::Positioned for Gates {
fn y(&self) -> i32 {
self.y.round() as i32
}
- fn radius() -> u32 {
+ fn radius() -> i32 {
30
}
}
diff --git a/src/main.rs b/src/main.rs
index ba79811..1b73059 100644
--- a/src/main.rs
+++ b/src/main.rs
@@ -41,11 +41,8 @@ fn frame<T: state::Enemy<U>, U: state::Bullet>(
for bullet in state.player_bullets.iter_mut() {
bullet.act();
}
- match state.player.act(events) {
- Err(_) => {
- return FResult::Exit;
- }
- Ok(_) => {}
+ if state.player.act(events).is_err() {
+ return FResult::Exit;
}
if count % state.player.fire_rate as u64 == 0 {
state.player_bullets.push(state::PBullet::new(
@@ -76,7 +73,7 @@ fn frame<T: state::Enemy<U>, U: state::Bullet>(
state
.enemies
.retain(|enemy| state::Enemy::health(enemy) > 0.);
- if state.enemies.len() == 0 {
+ if state.enemies.is_empty() {
return FResult::Win;
}
state.bullets.retain(|bullet| !U::outside(bullet));
@@ -175,9 +172,8 @@ fn generic_message(
_ => {}
}
}
- match frame_duration.checked_sub(start.elapsed()) {
- Some(t) => std::thread::sleep(t),
- None => (),
+ if let Some(t) = frame_duration.checked_sub(start.elapsed()) {
+ std::thread::sleep(t)
}
}
}
@@ -186,39 +182,39 @@ fn introduction(
canvas: &mut sdl2::render::WindowCanvas,
event_pump: &mut sdl2::EventPump,
) -> Result<(), ()> {
- return generic_message(
+ generic_message(
canvas,
event_pump,
include_bytes!("assets/introduction.png"),
sdl2::keyboard::Keycode::Return,
sdl2::keyboard::Keycode::Escape,
- );
+ )
}
fn loss(
canvas: &mut sdl2::render::WindowCanvas,
event_pump: &mut sdl2::EventPump,
) -> Result<(), ()> {
- return generic_message(
+ generic_message(
canvas,
event_pump,
include_bytes!("assets/loss.png"),
sdl2::keyboard::Keycode::R,
sdl2::keyboard::Keycode::Escape,
- );
+ )
}
fn victory(
canvas: &mut sdl2::render::WindowCanvas,
event_pump: &mut sdl2::EventPump,
) -> Result<(), ()> {
- return generic_message(
+ generic_message(
canvas,
event_pump,
include_bytes!("assets/victory.png"),
sdl2::keyboard::Keycode::R,
sdl2::keyboard::Keycode::Escape,
- );
+ )
}
fn main() {
@@ -302,9 +298,8 @@ fn main() {
}
}
/* Make sure this iteration took a whole frame */
- match frame_duration.checked_sub(start.elapsed()) {
- Some(t) => std::thread::sleep(t),
- None => (),
+ if let Some(t) = frame_duration.checked_sub(start.elapsed()) {
+ std::thread::sleep(t);
}
}
}
diff --git a/src/player.rs b/src/player.rs
index 06ca0e1..1490a56 100644
--- a/src/player.rs
+++ b/src/player.rs
@@ -130,20 +130,16 @@ impl Player {
self.y_d = 0;
}
/* Don't go off the side */
- if self.x_d < 0 && self.x <= 0 {
- self.x_d = 0;
- } else if self.x >= constants::X_DIM as i32 && self.x_d > 0 {
+ if self.x_d < 0 && self.x <= 0 || self.x >= constants::X_DIM as i32 && self.x_d > 0 {
self.x_d = 0;
}
- if self.y <= 0 && self.y_d < 0 {
- self.y_d = 0;
- } else if self.y >= constants::Y_DIM as i32 && self.y_d > 0 {
+ if self.y <= 0 && self.y_d < 0 || self.y >= constants::Y_DIM as i32 && self.y_d > 0 {
self.y_d = 0;
}
self.x += if self.shift_p { self.x_d } else { self.x_d * 3 };
self.y += if self.shift_p { self.y_d } else { self.y_d * 3 };
- return Ok(());
+ Ok(())
}
}
@@ -154,7 +150,7 @@ impl state::Positioned for Player {
fn y(&self) -> i32 {
self.y
}
- fn radius() -> u32 {
+ fn radius() -> i32 {
3
}
}
diff --git a/src/rand.rs b/src/rand.rs
index fe8067d..03f6350 100644
--- a/src/rand.rs
+++ b/src/rand.rs
@@ -5,10 +5,9 @@ static STATE: Mutex<u64> = Mutex::new(0);
pub fn seed() {
let n = SystemTime::now()
- .duration_since(SystemTime::UNIX_EPOCH).unwrap();
+ .duration_since(SystemTime::UNIX_EPOCH)
+ .unwrap();
*STATE.lock().unwrap() = n.as_nanos() as u64;
-
- return Some(());
}
fn mix(s: &mut u64) {
@@ -19,5 +18,5 @@ fn mix(s: &mut u64) {
pub fn random() -> f64 {
let mut s = STATE.lock().unwrap();
mix(&mut s);
- return (*s >> 32) as f64 / 4294967296.;
+ (*s >> 32) as f64 / 4294967296.
}
diff --git a/src/state.rs b/src/state.rs
index 663e762..be89d3d 100644
--- a/src/state.rs
+++ b/src/state.rs
@@ -63,8 +63,8 @@ impl PBullet {
PBullet {
real_x: x as f64,
real_y: y as f64,
- d_x: d_x,
- d_y: d_y,
+ d_x,
+ d_y,
}
}
pub fn damage() -> f64 {
@@ -109,7 +109,7 @@ fn dist(x1: i32, y1: i32, x2: i32, y2: i32) -> f64 {
pub trait Positioned {
fn x(&self) -> i32;
fn y(&self) -> i32;
- fn radius() -> u32;
+ fn radius() -> i32;
fn contains(&self, x: i32, y: i32) -> bool {
let d = dist(self.x(), self.y(), x, y);
d <= Self::radius() as f64
@@ -120,7 +120,7 @@ pub trait Positioned {
let sy = self.y();
let oy = other.y();
let threshold = Self::radius() + T::radius();
- if (sx - ox).abs() as u32 >= threshold || (sy - oy).abs() as u32 >= threshold {
+ if (sx - ox).abs() >= threshold || (sy - oy).abs() >= threshold {
return false;
}
let dist = dist(sx, sy, ox, oy);
@@ -143,7 +143,7 @@ impl Positioned for PBullet {
fn y(&self) -> i32 {
self.real_y.round() as i32
}
- fn radius() -> u32 {
+ fn radius() -> i32 {
10
}
}
@@ -157,7 +157,7 @@ pub trait Drawable: Positioned {
let x0 = self.x() - cx as i32;
let y0 = self.y() - cy as i32;
canvas
- .copy(&texture, None, Some(sdl2::rect::Rect::new(x0, y0, tw, th)))
+ .copy(texture, None, Some(sdl2::rect::Rect::new(x0, y0, tw, th)))
.unwrap();
}
}