Compare commits

..

No commits in common. "8b2a80a5c12c8c5b3b48e491b126294585d9e821" and "adc81b923223c56fa50487bc8b036b7c6b0b4a2d" have entirely different histories.

5 changed files with 20 additions and 26 deletions

View file

@ -1,3 +1,3 @@
# Build package for arch-based systems # Build package for arch-based systems
* simply build it: `makepkg -fc` * simply build it: `makepkg`
* also install it directly afterwards: `makepkg -ifc` * also install it directly afterwards: `makepkg -i`

View file

@ -128,12 +128,13 @@ impl LeaderBoard {
} }
} }
// TODO: when people disconnect there needs to be a remove function
// vehicle_scorings.len() != self.leaderboard_entries.len()
write_log!("create entries"); write_log!("create entries");
// check if entry count in grid is the same as the gathered 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() let force_update = if !self.leaderboard_entries.is_empty()
&& self.leaderboard_entries.len() <= self.leaderboard_grid.dimensions().1
&& self && self
.leaderboard_grid .leaderboard_grid
.child_at(0, self.leaderboard_entries.len() - 1)? .child_at(0, self.leaderboard_entries.len() - 1)?
@ -144,16 +145,6 @@ impl LeaderBoard {
entry.snippet().set_visibility(false)?; 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 true
} else { } else {
false false
@ -274,12 +265,13 @@ impl UiOverlay for LeaderBoard {}
impl DataReceiver for LeaderBoard { impl DataReceiver for LeaderBoard {
fn game_phase_change(&mut self, phase: GamePhase) -> Result<()> { fn game_phase_change(&mut self, phase: GamePhase) -> Result<()> {
match phase { match phase {
GamePhase::Practice | GamePhase::Qualifying | GamePhase::TestDay => { GamePhase::Practice | GamePhase::Qualifying => {
for entry in self.leaderboard_entries.iter_mut() { for entry in self.leaderboard_entries.iter_mut() {
entry.update_best_lap(-1.0)?; entry.update_best_lap(-1.0)?;
} }
self.leaderboard.enable()?; self.leaderboard.enable()?;
self.deltaboard.enable()?;
} }
GamePhase::Race => { GamePhase::Race => {
@ -302,9 +294,7 @@ impl DataReceiver for LeaderBoard {
fn update_for_phase(&self, phase: GamePhase) -> bool { fn update_for_phase(&self, phase: GamePhase) -> bool {
match phase { match phase {
GamePhase::Practice | GamePhase::Qualifying | GamePhase::Race | GamePhase::TestDay => { GamePhase::Practice | GamePhase::Qualifying | GamePhase::Race => true,
true
}
_ => false, _ => false,
} }
} }
@ -317,7 +307,7 @@ impl DataReceiver for LeaderBoard {
write_log!("=================== leader board: scoring update ==================="); write_log!("=================== leader board: scoring update ===================");
match phase { match phase {
GamePhase::Practice | GamePhase::Qualifying | GamePhase::TestDay => { GamePhase::Practice | GamePhase::Qualifying => {
self.quali_leaderboard(vehicle_scorings)?; self.quali_leaderboard(vehicle_scorings)?;
} }

View file

@ -237,7 +237,7 @@ impl UiOverlay for Pedals {}
impl DataReceiver for Pedals { impl DataReceiver for Pedals {
fn game_phase_change(&mut self, phase: GamePhase) -> Result<()> { fn game_phase_change(&mut self, phase: GamePhase) -> Result<()> {
match phase { match phase {
GamePhase::None => { GamePhase::None | GamePhase::TestDay => {
self.enable = false; self.enable = false;
self.gui.disable()?; self.gui.disable()?;
} }
@ -252,8 +252,10 @@ impl DataReceiver for Pedals {
fn update_for_phase(&self, phase: GamePhase) -> bool { fn update_for_phase(&self, phase: GamePhase) -> bool {
match phase { match phase {
GamePhase::None => false, GamePhase::Practice | GamePhase::Qualifying | GamePhase::Race | GamePhase::Warmup => {
_ => true, true
}
_ => false,
} }
} }

View file

@ -274,7 +274,7 @@ impl UiOverlay for Radar {}
impl DataReceiver for Radar { impl DataReceiver for Radar {
fn game_phase_change(&mut self, phase: GamePhase) -> Result<()> { fn game_phase_change(&mut self, phase: GamePhase) -> Result<()> {
match phase { match phase {
GamePhase::None => self.enable = false, GamePhase::None | GamePhase::TestDay => self.enable = false,
_ => self.enable = true, _ => self.enable = true,
} }
@ -283,8 +283,10 @@ impl DataReceiver for Radar {
fn update_for_phase(&self, phase: GamePhase) -> bool { fn update_for_phase(&self, phase: GamePhase) -> bool {
match phase { match phase {
GamePhase::None => false, GamePhase::Practice | GamePhase::Qualifying | GamePhase::Race | GamePhase::Warmup => {
_ => true, true
}
_ => false,
} }
} }

View file

@ -28,7 +28,7 @@ impl UiOverlay for Watermark {}
impl DataReceiver for Watermark { impl DataReceiver for Watermark {
fn game_phase_change(&mut self, phase: GamePhase) -> Result<()> { fn game_phase_change(&mut self, phase: GamePhase) -> Result<()> {
match phase { match phase {
GamePhase::None => self.gui.enable()?, GamePhase::TestDay => self.gui.enable()?,
_ => self.gui.disable()?, _ => self.gui.disable()?,
} }