Skip to content

Commit

Permalink
Merge pull request #168 from KotRikD/chore/hiterrors
Browse files Browse the repository at this point in the history
Update delay & HitErrors & improves
  • Loading branch information
KotRikD authored Jul 23, 2024
2 parents 0daecf0 + 00f35a7 commit e9a8b08
Show file tree
Hide file tree
Showing 10 changed files with 372 additions and 308 deletions.
2 changes: 1 addition & 1 deletion packages/server/assets/homepage.html
Original file line number Diff line number Diff line change
Expand Up @@ -56,7 +56,7 @@
</div>
</main>
<footer>
<span>created by </span><a href="https://osuck.net/" target="_blank">cyperdark</a>
<span>created by <a href="https://kotrik.ru/" target="_blank">KotRik</a>, <a href="https://github.com/xxCherry" target="_blank">Cherry</a> & <a href="https://osuck.net/" target="_blank">cyperdark</a></span>
</footer>
<script src="/assets/homepage.js" defer></script>
</body>
Expand Down
33 changes: 22 additions & 11 deletions packages/server/router/index.ts
Original file line number Diff line number Diff line change
Expand Up @@ -383,22 +383,29 @@ export default function buildBaseApi(server: Server) {
return sendJson(res, { error: 'not_ready' });
}

const { allTimesData, menuData } = osuInstance.getServices([
'allTimesData',
'menuData'
]);

const beatmapFilePath =
query.path ||
path.join(
const { allTimesData, menuData, beatmapPpData } =
osuInstance.getServices([
'allTimesData',
'menuData',
'beatmapPpData'
]);

let beatmap: rosu.Beatmap;
const exists = fs.existsSync(query.path);
if (exists) {
const beatmapFilePath = path.join(
allTimesData.GameFolder,
'Songs',
menuData.Folder,
menuData.Path
);

const beatmapContent = fs.readFileSync(beatmapFilePath, 'utf8');
const beatmap = new rosu.Beatmap(beatmapContent);
const beatmapContent = fs.readFileSync(beatmapFilePath, 'utf8');
beatmap = new rosu.Beatmap(beatmapContent);
} else {
beatmap = beatmapPpData.getCurrentBeatmap();
}

if (query.mode !== undefined) beatmap.convert(query.mode);

const params: rosu.PerformanceArgs = {};
Expand All @@ -417,7 +424,11 @@ export default function buildBaseApi(server: Server) {
if (query.acc) params.accuracy = +query.acc;

const calculate = new rosu.Performance(params).calculate(beatmap);
return sendJson(res, calculate);
sendJson(res, calculate);

// free beatmap only when map path specified
if (query.path) beatmap.free();
calculate.free();
} catch (exc) {
wLogger.error('calculate/pp', (exc as any).message);
wLogger.debug('calculate/pp', exc);
Expand Down
9 changes: 9 additions & 0 deletions packages/tosu/src/entities/AbstractEntity/index.ts
Original file line number Diff line number Diff line change
Expand Up @@ -28,4 +28,13 @@ export abstract class AbstractEntity {
resetReportCount(id: string | number) {
this.errorsCount[id] = 0;
}

preventThrow(callback) {
try {
const result = callback();
return result;
} catch (error) {
return error as Error;
}
}
}
19 changes: 10 additions & 9 deletions packages/tosu/src/entities/AllTimesData/index.ts
Original file line number Diff line number Diff line change
Expand Up @@ -61,21 +61,12 @@ export class AllTimesData extends AbstractEntity {
'canRunSlowlyAddr'
]);

const skinOsuAddr = process.readInt(skinDataAddr + 0x7);
if (skinOsuAddr === 0) {
return;
}
const skinOsuBase = process.readInt(skinOsuAddr);

// [Status - 0x4]
this.Status = process.readPointer(statusPtr);
// [MenuMods + 0x9]
this.MenuMods = process.readPointer(menuModsPtr);
// ChatChecker - 0x20
this.ChatStatus = process.readByte(chatCheckerAddr - 0x20);
this.SkinFolder = process.readSharpString(
process.readInt(skinOsuBase + 0x44)
);
this.IsWatchingReplay = process.readByte(
process.readInt(canRunSlowlyAddr + 0x46)
);
Expand All @@ -96,6 +87,16 @@ export class AllTimesData extends AbstractEntity {
)
);

const skinOsuAddr = process.readInt(skinDataAddr + 0x7);
if (skinOsuAddr !== 0) {
const skinOsuBase = process.readInt(skinOsuAddr);

this.SkinFolder = process.readSharpString(
process.readInt(skinOsuBase + 0x44)
);
return;
}

if (
!this.osuInstance.isTourneyManager &&
!this.osuInstance.isTourneySpectator
Expand Down
Loading

0 comments on commit e9a8b08

Please sign in to comment.