From 48f580ef6313230264ceb7b5cd6c5a90dbf9b53f Mon Sep 17 00:00:00 2001 From: hodasemi Date: Thu, 19 Jan 2023 14:03:16 +0100 Subject: [PATCH 1/3] Update pkgbuild readme --- pkgbuild/README.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgbuild/README.md b/pkgbuild/README.md index 0194c15..9a6dbc2 100644 --- a/pkgbuild/README.md +++ b/pkgbuild/README.md @@ -1,3 +1,3 @@ # Build package for arch-based systems -* simply build it: `makepkg` -* also install it directly afterwards: `makepkg -i` \ No newline at end of file +* simply build it: `makepkg -fc` +* also install it directly afterwards: `makepkg -ifc` From 5300efff51791708561936644d4ca1bcff2f908a Mon Sep 17 00:00:00 2001 From: hodasemi Date: Thu, 19 Jan 2023 15:36:56 +0100 Subject: [PATCH 2/3] Add phase case for Testday & remove dc'd players --- src/overlay/elements/leaderboard/mod.rs | 22 +++++++++++++++------- src/overlay/elements/pedals/mod.rs | 8 +++----- src/overlay/elements/radar/mod.rs | 8 +++----- src/overlay/elements/watermark/mod.rs | 2 +- 4 files changed, 22 insertions(+), 18 deletions(-) diff --git a/src/overlay/elements/leaderboard/mod.rs b/src/overlay/elements/leaderboard/mod.rs index 3fee545..7f67262 100644 --- a/src/overlay/elements/leaderboard/mod.rs +++ b/src/overlay/elements/leaderboard/mod.rs @@ -128,9 +128,6 @@ impl LeaderBoard { } } - // TODO: when people disconnect there needs to be a remove function - // vehicle_scorings.len() != self.leaderboard_entries.len() - write_log!("create entries"); // check if entry count in grid is the same as the gathered entries @@ -145,6 +142,16 @@ impl LeaderBoard { entry.snippet().set_visibility(false)?; } + true + } + // there are more entries in leaderboard when someone leaves and ID doesn't get reused + else if self.leaderboard_entries.len() > vehicle_scorings.len() { + self.leaderboard_entries.retain(|entry| { + vehicle_scorings + .iter() + .any(|scoring| scoring.mID == entry.id()) + }); + true } else { false @@ -265,13 +272,12 @@ impl UiOverlay for LeaderBoard {} impl DataReceiver for LeaderBoard { fn game_phase_change(&mut self, phase: GamePhase) -> Result<()> { match phase { - GamePhase::Practice | GamePhase::Qualifying => { + GamePhase::Practice | GamePhase::Qualifying | GamePhase::TestDay => { for entry in self.leaderboard_entries.iter_mut() { entry.update_best_lap(-1.0)?; } self.leaderboard.enable()?; - self.deltaboard.enable()?; } GamePhase::Race => { @@ -294,7 +300,9 @@ impl DataReceiver for LeaderBoard { fn update_for_phase(&self, phase: GamePhase) -> bool { match phase { - GamePhase::Practice | GamePhase::Qualifying | GamePhase::Race => true, + GamePhase::Practice | GamePhase::Qualifying | GamePhase::Race | GamePhase::TestDay => { + true + } _ => false, } } @@ -307,7 +315,7 @@ impl DataReceiver for LeaderBoard { write_log!("=================== leader board: scoring update ==================="); match phase { - GamePhase::Practice | GamePhase::Qualifying => { + GamePhase::Practice | GamePhase::Qualifying | GamePhase::TestDay => { self.quali_leaderboard(vehicle_scorings)?; } diff --git a/src/overlay/elements/pedals/mod.rs b/src/overlay/elements/pedals/mod.rs index 3fbb83e..c4e057d 100644 --- a/src/overlay/elements/pedals/mod.rs +++ b/src/overlay/elements/pedals/mod.rs @@ -237,7 +237,7 @@ impl UiOverlay for Pedals {} impl DataReceiver for Pedals { fn game_phase_change(&mut self, phase: GamePhase) -> Result<()> { match phase { - GamePhase::None | GamePhase::TestDay => { + GamePhase::None => { self.enable = false; self.gui.disable()?; } @@ -252,10 +252,8 @@ impl DataReceiver for Pedals { fn update_for_phase(&self, phase: GamePhase) -> bool { match phase { - GamePhase::Practice | GamePhase::Qualifying | GamePhase::Race | GamePhase::Warmup => { - true - } - _ => false, + GamePhase::None => false, + _ => true, } } diff --git a/src/overlay/elements/radar/mod.rs b/src/overlay/elements/radar/mod.rs index ef9cb43..f0bc4bb 100644 --- a/src/overlay/elements/radar/mod.rs +++ b/src/overlay/elements/radar/mod.rs @@ -274,7 +274,7 @@ impl UiOverlay for Radar {} impl DataReceiver for Radar { fn game_phase_change(&mut self, phase: GamePhase) -> Result<()> { match phase { - GamePhase::None | GamePhase::TestDay => self.enable = false, + GamePhase::None => self.enable = false, _ => self.enable = true, } @@ -283,10 +283,8 @@ impl DataReceiver for Radar { fn update_for_phase(&self, phase: GamePhase) -> bool { match phase { - GamePhase::Practice | GamePhase::Qualifying | GamePhase::Race | GamePhase::Warmup => { - true - } - _ => false, + GamePhase::None => false, + _ => true, } } diff --git a/src/overlay/elements/watermark/mod.rs b/src/overlay/elements/watermark/mod.rs index 1cd0aa5..7305498 100644 --- a/src/overlay/elements/watermark/mod.rs +++ b/src/overlay/elements/watermark/mod.rs @@ -28,7 +28,7 @@ impl UiOverlay for Watermark {} impl DataReceiver for Watermark { fn game_phase_change(&mut self, phase: GamePhase) -> Result<()> { match phase { - GamePhase::TestDay => self.gui.enable()?, + GamePhase::None => self.gui.enable()?, _ => self.gui.disable()?, } From 8c5accd92c48dd1b6b9ef061b3203c54b2242e82 Mon Sep 17 00:00:00 2001 From: hodasemi Date: Thu, 19 Jan 2023 18:08:13 +0100 Subject: [PATCH 3/3] Check max size of grid --- src/overlay/elements/leaderboard/mod.rs | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/overlay/elements/leaderboard/mod.rs b/src/overlay/elements/leaderboard/mod.rs index 7f67262..075c9fb 100644 --- a/src/overlay/elements/leaderboard/mod.rs +++ b/src/overlay/elements/leaderboard/mod.rs @@ -131,7 +131,9 @@ impl LeaderBoard { write_log!("create entries"); // check if entry count in grid is the same as the gathered entries + // that means some joined or left the game let force_update = if !self.leaderboard_entries.is_empty() + && self.leaderboard_entries.len() <= self.leaderboard_grid.dimensions().1 && self .leaderboard_grid .child_at(0, self.leaderboard_entries.len() - 1)?