This occurred when inserting beatmaps with null "bg" field into the database.
Also moved LOAD_HD_IMAGES option from "Custom" tab to "Display".
Signed-off-by: Jeffrey Han <itdelatrisu@gmail.com>
Created a separate BeatmapImageCache class to handle cache operations. The cache now uses File objects as keys, rather than Beatmap objects (which was buggy).
Also renamed "OsuHitObjectResult" helper class to "HitObjectResult".
Signed-off-by: Jeffrey Han <itdelatrisu@gmail.com>
Added getComboColors() method to Beatmap class, and the 'combo' field is now null if no combo is provided.
Signed-off-by: Jeffrey Han <itdelatrisu@gmail.com>
Use beatmap.getSliderBorderColor() to get the slider border color for a beatmap.
Also adds the field to the beatmap cache, and fixes a bug where format changes would cause an exception when preparing statements in the new format.
Signed-off-by: Jeffrey Han <itdelatrisu@gmail.com>
Attempts to eliminate any confusion between OsuHitObject (raw, parsed hit objects) and HitObject (interface for game object types).
- Renamed "HitObject" interface to "GameObject", since these objects are specific to gameplay.
- Renamed "OsuHitObject" to "HitObject", since these objects are primarily containers for parsed data.
Sorry if the name-swapping is confusing; these should be better names in the long run.
Signed-off-by: Jeffrey Han <itdelatrisu@gmail.com>
- Renamed "OsuFile" to "Beatmap". All related variables and methods with "osu" have also been renamed to "beatmap" (or variants of each).
- Renamed "OsuGroupNode" to "BeatmapSetNode". Avoids confusion since groups are identified by a "set ID", not a "group ID".
- Renamed "OsuGroupList" to "BeatmapSetList", for the same reason as above.
- Renamed "OsuDB" to "BeatmapDB", for the same reason as above.
- Moved classes directly related to parsed beatmaps (Beatmap, BeatmapSetList, BeatmapSetNode, OsuHitObject, and TimingPoint) into a new "beatmap" package.
Signed-off-by: Jeffrey Han <itdelatrisu@gmail.com>