Skip to content

Commit 2b79795

Browse files
committed
adjust delta for relative for rel speeds
1 parent 92d18c3 commit 2b79795

File tree

1 file changed

+16
-19
lines changed

1 file changed

+16
-19
lines changed

src/frontend/components/Standings/hooks/useDriverRelatives.tsx

Lines changed: 16 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,6 @@
11
import { useMemo } from 'react';
22
import {
33
useDriverCarIdx,
4-
useSessionStore,
54
useTelemetryValues,
65
} from '@irdashies/context';
76
import { useDriverStandings } from './useDriverPositions';
@@ -10,28 +9,33 @@ export const useDriverRelatives = ({ buffer }: { buffer: number }) => {
109
const carIdxEstTime = useTelemetryValues('CarIdxEstTime');
1110
const drivers = useDriverStandings();
1211
const carIdxLapDistPct = useTelemetryValues('CarIdxLapDistPct');
13-
1412
const playerIndex = useDriverCarIdx();
15-
const player = drivers.find((d) => d.carIdx === playerIndex);
1613

17-
if (!player) {
18-
return [];
19-
}
14+
const standings = useMemo(() => {
15+
const player = drivers.find((d) => d.carIdx === playerIndex);
16+
if (!player) {
17+
return [];
18+
}
2019

21-
const driverEstLapTime = player.carClass.estLapTime ?? 0;
20+
const driverEstLapTime = player.carClass.estLapTime ?? 0;
2221

23-
const standings = useMemo(() => {
2422
const calculateDelta = (carIdx: number, isAhead: boolean) => {
2523
const playerEstTime = carIdxEstTime?.[playerIndex ?? 0];
2624
const oppositionEstTime = carIdxEstTime?.[carIdx];
27-
let delta = oppositionEstTime - playerEstTime;
25+
const opposition = drivers.find((d) => d.carIdx === carIdx);
26+
27+
if (!opposition) {
28+
return 0;
29+
}
30+
31+
let delta = (oppositionEstTime - playerEstTime);
2832

2933
if (isAhead) {
30-
// For cars ahead, ensure positive delta within half a lap
34+
// For cars ahead, use their lap time since they determine the full lap duration
3135
while (delta < 0) delta += driverEstLapTime;
3236
while (delta > 0.5 * driverEstLapTime) delta -= driverEstLapTime;
3337
} else {
34-
// For cars behind, ensure negative delta within half a lap
38+
// For cars behind, use player's lap time since we're measuring against our lap
3539
while (delta > 0) delta -= driverEstLapTime;
3640
while (delta < -0.5 * driverEstLapTime) delta += driverEstLapTime;
3741
}
@@ -72,14 +76,7 @@ export const useDriverRelatives = ({ buffer }: { buffer: number }) => {
7276
// TODO: remove pace car if not under caution or pacing
7377

7478
return relatives;
75-
}, [
76-
drivers,
77-
buffer,
78-
carIdxEstTime,
79-
playerIndex,
80-
carIdxLapDistPct,
81-
driverEstLapTime,
82-
]);
79+
}, [drivers, buffer, carIdxEstTime, playerIndex, carIdxLapDistPct]);
8380

8481
return standings;
8582
};

0 commit comments

Comments
 (0)