Skip to content

Commit

Permalink
feat: Display linear map checkpoints as whole numbers instead of subs…
Browse files Browse the repository at this point in the history
…egment splits
  • Loading branch information
Panzerhandschuh committed Jan 9, 2025
1 parent 2fc695b commit 9abf1a2
Show file tree
Hide file tree
Showing 2 changed files with 16 additions and 5 deletions.
8 changes: 6 additions & 2 deletions scripts/common/timer.ts
Original file line number Diff line number Diff line change
Expand Up @@ -199,9 +199,10 @@ export function generateSegmentComparisonSplit(
comparisonRunSplits.segments[segmentIndex].subsegments[subsegmentIndex].timeReached;
const baseSplitTime = getSplitSegmentTime(baseRunSplits, segmentIndex, subsegmentIndex);
const comparisonSplitTime = getSplitSegmentTime(comparisonRunSplits, segmentIndex, subsegmentIndex);
const isLinear = baseRunSplits.segments.length === 1;

return {
name: getSegmentName(segmentIndex, subsegmentIndex),
name: isLinear ? subsegmentIndex.toString() : getSegmentName(segmentIndex, subsegmentIndex),
accumulateTime: baseAccumulateTime,
time: baseSplitTime,
diff: baseAccumulateTime - comparisonAccumulateTime,
Expand All @@ -221,9 +222,12 @@ export function generateFinishSplitComparison(
): ComparisonSplit {
const baseSplitTime = baseRunTime - baseRunSplits.segments.at(-1).subsegments.at(-1).timeReached;
const comparisonSplitTime = comparisonRunTime - comparisonRunSplits.segments.at(-1).subsegments.at(-1).timeReached;
const isLinear = baseRunSplits.segments.length === 1;

return {
name: baseRunSplits.segments.length.toString(),
name: isLinear
? baseRunSplits.segments[0].subsegments.length.toString()
: baseRunSplits.segments.length.toString(),
accumulateTime: baseRunTime,
time: baseSplitTime,
diff: baseRunTime - comparisonRunTime,
Expand Down
13 changes: 10 additions & 3 deletions scripts/hud/comparisons.ts
Original file line number Diff line number Diff line change
Expand Up @@ -48,6 +48,8 @@ class HudComparisonsHandler {
timerStatus.trackId.type === this.comparison.trackId.type &&
timerStatus.trackId.number === this.comparison.trackId.number;

const isLinear = timerStatus.segmentsCount === 1;

// TODO: Unordered/optional splits
if (timerStatus.state === Timer.TimerState.RUNNING) {
if (timerStatus.majorNum <= 1 && timerStatus.minorNum <= 1) {
Expand All @@ -62,11 +64,14 @@ class HudComparisonsHandler {
timerStatus.minorNum - 1
)
: {
name: Timer.getSegmentName(timerStatus.majorNum - 1, timerStatus.minorNum - 1),
name: isLinear
? (timerStatus.minorNum - 1).toString()
: Timer.getSegmentName(timerStatus.majorNum - 1, timerStatus.minorNum - 1),
accumulateTime: timerStatus.runTime
};

this.addComparisonSplit(split, timerStatus.minorNum > 1, hasCompare);
const isSubSplit = !isLinear && timerStatus.minorNum > 1;
this.addComparisonSplit(split, isSubSplit, hasCompare);
} else if (timerStatus.state === Timer.TimerState.FINISHED) {
const split = hasCompare
? Timer.generateFinishSplitComparison(
Expand All @@ -76,7 +81,9 @@ class HudComparisonsHandler {
this.comparison.runSplits
)
: {
name: runSplits.segments.length.toString(),
name: isLinear
? runSplits.segments[0].subsegments.length.toString()
: runSplits.segments.length.toString(),
accumulateTime: timerStatus.runTime
};

Expand Down

0 comments on commit 9abf1a2

Please sign in to comment.