As per #28, performance calculation requires a Beatmap only for the difficulty attribute calculation and the amount of hitobjects. The former can already be avoided by specifying attributes manually. The later could be avoided by specifying passed_objects for osu!standard but in mania there was no way to avoid it.
This PR adds a way to calculate performance attributes straight from difficulty attributes without the need of a Beatmap at all.
Some attribute structs' fields were modified, as well as some method signatures to convert between modes so this introduces breaking changes.
As per #28, performance calculation requires a
Beatmap
only for the difficulty attribute calculation and the amount of hitobjects. The former can already be avoided by specifying attributes manually. The later could be avoided by specifyingpassed_objects
for osu!standard but in mania there was no way to avoid it.This PR adds a way to calculate performance attributes straight from difficulty attributes without the need of a
Beatmap
at all.Some attribute structs' fields were modified, as well as some method signatures to convert between modes so this introduces breaking changes.