Pass in an alpha level instead of color filter to drawSymbolNumber().
Also fixed a bug where antialiasing wasn't being disabled when it was supposed to be.
Signed-off-by: Jeffrey Han <itdelatrisu@gmail.com>
Error handling (related to #53):
- Catch all exceptions caused by creating HitObjects and throw a more informative error with the hit object information. This also allows multiple errors to be reported, instead of crashing at the first error.
- Added a fallback "DummyObject" HitObject to replace hit objects causing errors, which should allow the game to function despite any errors.
- Added a toString() method to OsuHitObject (resembling the raw format).
Bug fixes (caused by #52):
- Game is no longer paused when focus is lost during lead-in time or during breaks.
- Replay frames are no longer recorded when the game is paused.
- Pulsing cursor animation now works even during lead-in time.
- skipIntro() during replays now works properly.
Signed-off-by: Jeffrey Han <itdelatrisu@gmail.com>
- Animate skip button during lead in.
- Update flashlight radius during lead in.
- Check if keys are set before calling gameKeyPressed().
- Deleted mouse moved/dragged events (no longer used).
- Renamed updateGameKeyPress().
- Added "auto"/"relax" mod checks to gameKeyPressed().
Also fixed a bug where the MenuButton class wasn't properly resetting image alpha/rotation in certain cases.
Signed-off-by: Jeffrey Han <itdelatrisu@gmail.com>
Moves the cursor between hit objects and along hit object paths (slider curves, spinner circles).
- Added 'getPointAt(trackPosition)' and 'getEndTime()' methods to HitObject interface.
- Unhide default cursor for "auto" plays.
Other changes:
- Don't save replays for unranked plays ("auto", "relax", "autopilot" mods).
- For "auto" replays, don't parse replay frames: use default "auto" behavior instead.
- Fixed cursor location data not being reset upon entering states.
Signed-off-by: Jeffrey Han <itdelatrisu@gmail.com>
- Restricted view area using alpha maps and offscreen drawing. (credits: davedes)
- Added silver grades.
Signed-off-by: Jeffrey Han <itdelatrisu@gmail.com>
Fixes a bug where a resolution change (by restarting through the app) wouldn't re-scale hit object coordinates. Scaled coordinates are now stored in HitObject fields.
Signed-off-by: Jeffrey Han <itdelatrisu@gmail.com>
- Basic implementation of viewing replays in the Game state.
- Added OsuReader class for reading certain osu! file types. (author: Markus Jarderot)
- Added Replay, ReplayFrame, and LifeFrame classes to capture replay data. (author: smoogipooo)
- Added 'keyPressed' parameter to HitObject.update().
- Added cursor-drawing methods in UI that take the mouse coordinates and pressed state as parameters.
- Added GameMod methods to retrieve/load the active mods state as a bitmask.
- Added Apache commons-compress dependency for handling LZMA decompression.
Signed-off-by: Jeffrey Han <itdelatrisu@gmail.com>
Downloads failing due to connection errors will now send a bar notification instead of throwing an ErrorHandler dialog.
Signed-off-by: Jeffrey Han <itdelatrisu@gmail.com>
Also added a few checks for related "autopilot" mod (probably incomplete).
Fixed the wrong default background being shown in the ranking screen.
Signed-off-by: Jeffrey Han <itdelatrisu@gmail.com>
Also changed drawSymbolString() and drawFixedSizeSymbolString() methods slightly: coordinates are now floats, and drawSymbolString() takes an 'alpha' argument.
Signed-off-by: Jeffrey Han <itdelatrisu@gmail.com>
- Removed 'isSpinner' field from GameData.hitResult() since it's now being passed the full OsuHitObject.
- Minor Javadoc fixes.
Signed-off-by: Jeffrey Han <itdelatrisu@gmail.com>
- Moved all MultiClip-handling methods into the MultiClip class.
- Destroy extra clips when starting and finishing new beatmaps.
- Reduced maximum number of extra clips to 20.
- Attempted fixes at multithreading issues.
Signed-off-by: Jeffrey Han <itdelatrisu@gmail.com>
Sliders no longer need to be held to the end, but near it (within a 300-hit offset) for perfect hit.
Also made a slight improvement to SongMenu.setFocus().
Signed-off-by: Jeffrey Han <itdelatrisu@gmail.com>
- Added spinner RPM display. (image by @kouyang)
- Added "osu!" image for completed spinners.
- Changed spinner hit result ratios to be slightly harder.
Signed-off-by: Jeffrey Han <itdelatrisu@gmail.com>
- The MenuButton class now fully supports hover effects (scale, fade, rotate) for Animations.
- Used a fixed location for the selection buttons in the song menu (previously based on the "back" button width, which varies widely in different skins).
- Added hover effects for "retry" and "exit" buttons in the ranking screen.
- Changed animation speed of back/skip buttons.
- Fixed a bug where main menu showed the incorrect number of songs loaded during searches.
- Removed unneeded draw() methods in Utils for color filters (since 69f5aa5).
- Moved Utils.drawCentered(Image, ...) into the Image class.
- Added overwritten Image class to Maven excludes.
Signed-off-by: Jeffrey Han <itdelatrisu@gmail.com>
mostly personal preferences though
Larger hit circles
Circle overlay after drawing circle
Fade in approach circles
Fade in sliders (I don't think it looks that bad)
Fade out hit lighting
Hit Error Bar
Probably need an option for this.
Miss locations(I don't know)
Reverse Slider ball rotation on repeats