diff --git a/src/overlay/elements/leaderboard/mod.rs b/src/overlay/elements/leaderboard/mod.rs index 3b27fc9..08ac766 100644 --- a/src/overlay/elements/leaderboard/mod.rs +++ b/src/overlay/elements/leaderboard/mod.rs @@ -202,7 +202,27 @@ impl LeaderBoard { .enumerate() .find(|(_index, entry)| entry.id() == self.last_player_id) { - let mut start_index = if index >= 2 { index - 2 } else { 0 }; + let mut start_index = if index >= 2 { + if index == self.leaderboard_entries.len() - 2 { + if index >= 3 { + index - 3 + } else { + index - 2 + } + } else if index == self.leaderboard_entries.len() - 1 { + if index >= 4 { + index - 4 + } else if index >= 3 { + index - 3 + } else { + index - 2 + } + } else { + index - 2 + } + } else { + 0 + }; let max = self.leaderboard_entries.len().min(5); diff --git a/src/overlay/rendering.rs b/src/overlay/rendering.rs index 4e5f2c0..5f5c33c 100644 --- a/src/overlay/rendering.rs +++ b/src/overlay/rendering.rs @@ -20,11 +20,14 @@ pub struct Rendering { impl Rendering { pub fn new(queue: Arc>, swapchain: Arc) -> Result { crate::write_log!("-> Rendering ctor: begin"); + let vk_images = swapchain.vk_images()?; + write_log!(format!( "-> Rendering ctor: vk images ({})", vk_images.len() )); + let images = match swapchain.wrap_images(&vk_images, &queue, true) { Ok(images) => images, Err(err) => { @@ -32,9 +35,8 @@ impl Rendering { return Err(err); } }; - write_log!("-> Rendering ctor: wrapped images"); - write_log!("-> Rendering ctor: created render_target"); + write_log!("-> Rendering ctor: wrapped images"); write_log!(format!( "-> Rendering swapchain extents ({}, {})",