Skip to content

Commit 49eb2e2

Browse files
committed
fix: bpe calculation
Oatsy's splits are incredibly fucked up
1 parent 5d9b624 commit 49eb2e2

File tree

1 file changed

+16
-4
lines changed

1 file changed

+16
-4
lines changed

bpe2text/bpe2text.js

Lines changed: 16 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -51,28 +51,40 @@ function convertThing(splits) {
5151
for (let attempt of attemptHistory) {
5252
let segmentHistory = segments.map(e => e.SegmentHistory.Time.filter(e => e["@id"] == attempt).map(e => e.hasOwnProperty("GameTime") ? convertTime(e.GameTime) : -1));
5353
if (!segmentHistory.some(e => e.length > 0)) continue;
54-
segmentHistory = segmentHistory.filter(e => e.length > 0).map(e => e[0]);
54+
segmentHistory = segmentHistory.map(e => e.length > 0 ? e[0] : -1);
55+
while (segmentHistory[segmentHistory.length - 1] == -1) segmentHistory.pop();
5556
if (segmentHistory.some(e => e == -1)) continue;
5657
for (let i = 1; i < segmentHistory.length; i++) {
5758
segmentHistory[i] += segmentHistory[i - 1];
5859
}
5960
attemptData[i++] = {id: attempt, segments: segmentHistory};
6061
}
6162
attemptData[i++] = {id: "pb", segments: segments.map(e => {
62-
console.log(e);
6363
let target = e.SplitTimes.SplitTime;
6464
if (target.hasOwnProperty('length')) {
6565
target = target.find(e => e["@name"] == "Personal Best");
6666
}
6767
if (!target.hasOwnProperty("GameTime")) {
68-
if (!target.hasOwnProperty("RealTime")) return 0;
68+
return 0;
6969
}
7070
return convertTime(target.GameTime);
7171
})};
7272
bestpaceever = [];
7373
i = 0;
7474
for (let segment of segments) {
75-
let best = Math.min(...attemptData.map(e => e.segments.length > i ? e.segments[i] : Infinity));
75+
let best = Infinity;
76+
if (i == 0) {
77+
let gold = segment.BestSegmentTime;
78+
if (gold.hasOwnProperty("GameTime")) {
79+
best = convertTime(gold.GameTime);
80+
}
81+
}
82+
for (let attempt of attemptData) {
83+
if (attempt.segments.length <= i) continue;
84+
if (attempt.segments[i] == 0) continue;
85+
if (i > 0 && attempt.segments[i - 1] == attempt.segments[i]) continue;
86+
if (attempt.segments[i] < best) best = attempt.segments[i];
87+
}
7688
bestpaceever.push(best);
7789
i++;
7890
}

0 commit comments

Comments
 (0)