diff --git a/src/main.rs b/src/main.rs index 4ed8c5f..473e6e7 100644 --- a/src/main.rs +++ b/src/main.rs @@ -1,7 +1,6 @@ #![cfg_attr(not(debug_assertions), windows_subsystem = "windows")] use bracket_lib::prelude::*; -use sidebar::draw_sidebar; use sound::{Sound, SoundEffect, SoundEffectSamples, SoundSystem}; use specs::prelude::*; use specs_derive::Component; @@ -75,7 +74,7 @@ fn try_move_player(delta_x: i32, delta_y: i32, ecs: &mut World, sound_system: &m if stepped { let sound_effects = ecs.fetch::(); let step_sound = sound_effects.step_sound.clone(); - let _ = sound_system.play_sound(step_sound); + sound_system.play_sound(step_sound); } } @@ -85,25 +84,25 @@ fn player_input(gs: &mut State, ctx: &mut BTerm) { None => {} // Nothing happened Some(key) => match key { VirtualKeyCode::Left | VirtualKeyCode::J => { - try_move_player(-1, 0, &mut gs.ecs, &mut gs.sound_system) + try_move_player(-1, 0, &mut gs.ecs, &mut gs.sound_system); } VirtualKeyCode::U => try_move_player(-1, -1, &mut gs.ecs, &mut gs.sound_system), VirtualKeyCode::Up | VirtualKeyCode::I => { - try_move_player(0, -1, &mut gs.ecs, &mut gs.sound_system) + try_move_player(0, -1, &mut gs.ecs, &mut gs.sound_system); } VirtualKeyCode::O => try_move_player(1, -1, &mut gs.ecs, &mut gs.sound_system), VirtualKeyCode::Right | VirtualKeyCode::K => { - try_move_player(1, 0, &mut gs.ecs, &mut gs.sound_system) + try_move_player(1, 0, &mut gs.ecs, &mut gs.sound_system); } VirtualKeyCode::Comma => try_move_player(1, 1, &mut gs.ecs, &mut gs.sound_system), VirtualKeyCode::Down | VirtualKeyCode::M => { - try_move_player(0, 1, &mut gs.ecs, &mut gs.sound_system) + try_move_player(0, 1, &mut gs.ecs, &mut gs.sound_system); } VirtualKeyCode::N => try_move_player(-1, 1, &mut gs.ecs, &mut gs.sound_system), VirtualKeyCode::S => { let sound_effects = gs.ecs.fetch::(); - let step_sound = sound_effects.pickup_sound.clone(); - let _ = gs.sound_system.play_sound(step_sound); + let pickup_sound = sound_effects.pickup_sound.clone(); + gs.sound_system.play_sound(pickup_sound); } _ => {} }, @@ -124,7 +123,7 @@ impl GameState for State { ctx.set(pos.x, pos.y, render.fg, render.bg, render.glyph); } - draw_sidebar(&self.ecs, ctx); + sidebar::draw(&self.ecs, ctx); } } @@ -158,7 +157,7 @@ fn main() -> BError { .with_tile_dimensions(8, 16) .build()?; let ss = SoundSystem::new(); - let step_sound = ss.render_sound_effect(SoundEffect { + let step_sound = ss.render_sound_effect(&SoundEffect { sounds: vec![ Sound { sound_type: SoundType::Noise(350, 900), @@ -175,7 +174,7 @@ fn main() -> BError { ], }); - let pickup_sound = ss.render_sound_effect(SoundEffect { + let pickup_sound = ss.render_sound_effect(&SoundEffect { sounds: vec![ Sound { sound_type: SoundType::Noise(350, 900), @@ -267,11 +266,11 @@ fn main() -> BError { }) .collect(); - let swoop_effect = gs.sound_system.render_sound_effect(SoundEffect { + let swoop_effect = gs.sound_system.render_sound_effect(&SoundEffect { sounds: start_sounds, }); - let _ = gs.sound_system.play_sound(swoop_effect); + gs.sound_system.play_sound(swoop_effect); // let effect = gs.sound_system.render_sound_effect(SoundEffect { // sounds: vec![Sound { diff --git a/src/sidebar.rs b/src/sidebar.rs index f97c5f7..1401441 100644 --- a/src/sidebar.rs +++ b/src/sidebar.rs @@ -6,7 +6,7 @@ use specs::prelude::*; const SIDEBAR_POS_X: i32 = 66; const SIDEBAR_POS_Y: i32 = 0; -pub fn draw_sidebar(ecs: &World, ctx: &mut BTerm) { +pub fn draw(ecs: &World, ctx: &mut BTerm) { // Blue background ctx.fill_region( Rect { diff --git a/src/sound.rs b/src/sound.rs index 67c0df7..21a4892 100644 --- a/src/sound.rs +++ b/src/sound.rs @@ -70,7 +70,7 @@ impl SoundSystem { } } - pub fn render_sound_effect(&self, effect: SoundEffect) -> SoundEffectSamples { + pub fn render_sound_effect(&self, effect: &SoundEffect) -> SoundEffectSamples { let effect_buffer: Vec = effect .sounds .iter() @@ -87,7 +87,7 @@ impl SoundSystem { .collect::>(); } let num_harmonics = self.sample_rate.0 / (freq as u32 * 2); - let coefficients = (0..num_harmonics + 1) + let coefficients = (0..=num_harmonics) .map(|i| { if i == 0 { return 0.0;