Previously, enabling old-style cursors would try to load files "cursor2" and "cursortrail2". Now the actual files are loaded, and the -2 images are only used when no game skin image is provided.
Added a hasGameSkinImage() method in GameImage to check if the "default" image is skinned (by a game skin).
Signed-off-by: Jeffrey Han <itdelatrisu@gmail.com>
Renamed some methods and modified comments to avoid this confusion, as game skins were implemented much later than beatmap skins.
Signed-off-by: Jeffrey Han <itdelatrisu@gmail.com>
Any CREATE and DELETE that occur in the song menu state will now show a notification and modify the behavior of the 'F5' key. Changes that occur in other states will force a reload upon entering the song menu.
This is part of osu!, but as it's not incredibly helpful, I've left it disabled by default. It can be enabled in the options menu.
Signed-off-by: Jeffrey Han <itdelatrisu@gmail.com>
Also fixed an issue where songMenu.resetGameDataOnLoad() sometimes wasn't being called when it should be (e.g. after playing a beatmap, if you move to a different screen, your score won't appear in the song menu right away). It's now being called more often than necessary, but that should be fine.
Signed-off-by: Jeffrey Han <itdelatrisu@gmail.com>
- Show retry button only when appropriate (e.g. not when viewing replays or when playing with "Auto" enabled).
- Watching a (fake) "replay" with "Auto" enabled will actually just call the "retry" code now.
Signed-off-by: Jeffrey Han <itdelatrisu@gmail.com>
- Moved Utils.loadGlyphs() into this class, and rewrote it to take a single generic string (instead of beatmap title/artist strings, specifically).
- Also moved font initialization into this class.
Signed-off-by: Jeffrey Han <itdelatrisu@gmail.com>
Replaced ugly 'bang' image with 'fa-arrow-circle-o-down' and 'fa-restart' icons from Font Awesome v4.4.0 (https://github.com/FortAwesome/Font-Awesome).
Signed-off-by: Jeffrey Han <itdelatrisu@gmail.com>
Submitting new queries will now actually cancel the old query and immediately use the result of the new query. The old behavior was very inconsistent about this.
Signed-off-by: Jeffrey Han <itdelatrisu@gmail.com>
URL: http://osu.uu.gl/
Note that there's no API available, so this just parses the HTML for beatmap data. It's pretty slow compared to the other servers.
Signed-off-by: Jeffrey Han <itdelatrisu@gmail.com>
URL: http://osu.yas-online.net/
Note that fetching the direct download URL for a beatmap requires an extra query, which is not currently done asynchronously (but it really should be).
Signed-off-by: Jeffrey Han <itdelatrisu@gmail.com>
- Check if other Desktop actions are supported (follow-up to #114).
- The cursor-middle image is no longer scaled (when clicking).
- Changed the options menu background image (created with Trianglify at http://qrohlf.com/trianglify/), and made it fit the entire page.
- Slightly increased minimum splash screen time.
- Switched more animations to use AnimatedValue.
Signed-off-by: Jeffrey Han <itdelatrisu@gmail.com>
These are Robert Penner's easing functions (http://robertpenner.com/easing/), refactored by CharlotteGore to only take a t parameter (https://github.com/CharlotteGore/functional-easing). Licensed under BSD (the former) and MIT (the latter).
Related changes:
- Added "AnimatedValue" utility class for updating values used in animations.
- MenuButton now uses AnimatedValue to handle its animations (still linear by default).
- Added in-out-back easings on logo, mods, and various other elements; added out-bounce easings on button menu.
Signed-off-by: Jeffrey Han <itdelatrisu@gmail.com>
- Added on/off option for replay seeking in the "custom" menu.
- Mute sounds while seeking.
- Draw a bar on the left of the screen during replays for seeking (instead of just clicking near the top of the screen).
Signed-off-by: Jeffrey Han <itdelatrisu@gmail.com>
- Many code style changes.
- Don't increment combo if missing the last slider circle.
- Added player name in ranking screen.
- Don't show null/default player names.
- Only import replays with .osr extension.
- Display loading status for importing replays.
- Moved MD5InputStreamWrapper to package "opsu.io".
Signed-off-by: Jeffrey Han <itdelatrisu@gmail.com>
Added the "difficulty multiplier" as given by the osu! wiki. Please note that this will invalidate all of your saved scores.
Signed-off-by: Jeffrey Han <itdelatrisu@gmail.com>
- Added overridden methods read() and write() for reading from and writing to the options file within the GameOption enum, so that only 1 section needs to be changed when adding new options (instead of 3).
- Added 'displayName' field to the GameOption enum, instead of repeating it in the parseOptions() and saveOptions() methods.
- Added internal options (directories, port, theme song) into the GameOption enum for consistency.
- Removed GameOption.NULL.
Signed-off-by: Jeffrey Han <itdelatrisu@gmail.com>
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>
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>
Pass the border color into CurveRenderState instead of determining it there; store the color as a static field in Curve (since it shouldn't change per-beatmap).
Also removed the leftover FrameBufferCache warning from #64.
Signed-off-by: Jeffrey Han <itdelatrisu@gmail.com>
- Removed NEW_SLIDER option, and use the skin "SliderStyle" instead. Uses the new style by default, unless STYLE_PEPPYSLIDER is specified.
- Check if OpenGL 3.0 is supported before trying to draw new style sliders.
- Fixed compilation warnings; removed unneeded fields and imports.
- Filled in some missing Javadocs.
- Style changes.
Signed-off-by: Jeffrey Han <itdelatrisu@gmail.com>
New slider rendering works by rendering the slider to an
offscreen buffer
Add CurveRenderState.java and FrameBufferCache.java that were forgotten in the last commit
When restarting the program through the options menu, all sounds now get reloaded if the skin was changed.
Signed-off-by: Jeffrey Han <itdelatrisu@gmail.com>
Moved cursor-related code out of UI and into a new non-static "Cursor" class.
Also, the cursor is no longer reset after gameplay if it wasn't skinned.
Signed-off-by: Jeffrey Han <itdelatrisu@gmail.com>