Commit Graph

751 Commits

Author SHA1 Message Date
yugecin
2f5f2a610d add opposite combo color as override option 2016-09-30 21:32:24 +02:00
yugecin
5c2170982a fix 1/4th circle 2016-09-30 21:24:30 +02:00
yugecin
fc6dcce105 fix halfellipse 2016-09-30 21:20:46 +02:00
yugecin
ae9bdcd68f implement sliderballtint 2016-09-30 21:11:16 +02:00
yugecin
39b24b5f1c attempt to load normal image if there's no array (load sliderb if there's no sliderb0, sliderb1 etc) 2016-09-30 21:11:03 +02:00
yugecin
08d9f4165a option to ignore beatmap sample volume 2016-09-30 21:08:15 +02:00
yugecin
8891976d48 Flash warningarrows after breaks 4 times instead of 2 2016-09-30 20:08:50 +02:00
yugecin
be547cfa1f Don't draw UI on breaks 2016-09-30 20:05:33 +02:00
yugecin
0ccf4874d8 hotfix for dummy img as hitobjectnumber prevent drawing of hitcircleoverlay 2016-09-30 20:01:31 +02:00
yugecin
8c7531e550 prevent arrayindexoutofbounds 2016-09-30 19:56:47 +02:00
yugecin
b12ed6fa0e Also draw skipbutton when using auto 2016-09-30 19:41:42 +02:00
yugecin
be5288d1f7 auto activate auto 2016-09-30 19:39:47 +02:00
yugecin
f6b791cf25 Option to apply last object color to cursor 2016-09-30 19:38:02 +02:00
yugecin
add5e96af1 Options to use object color overrides 2016-09-30 19:05:53 +02:00
yugecin
05c29f1106 Fix warningarrows being rotated 180° instead of flipped horizontally 2016-09-30 16:17:51 +02:00
yugecin
965f88ecc3 attempt to support HitCircleOverlap and ScoreOverlap (#4) 2016-09-30 16:13:23 +02:00
yugecin
19f4e5f11d support prefixes (HitCirclePrefix, ScorePrefix), and use dummy instead of complaining when image can't be found 2016-09-30 15:54:07 +02:00
yugecin
da3dbfa702 fix compact optionmenu not selecting last option 2016-09-30 12:23:10 +02:00
yugecin
d6b993bfe8 compactify the options menu 2016-09-30 12:18:34 +02:00
yugecin
3a1f510e31 option to hide all UI 2016-09-30 12:06:36 +02:00
yugecin
6965e33856 fix halfellipsemover so it doesnt get stuck 2016-09-30 10:04:47 +02:00
yugecin
e082adb37f another todo option 2016-09-30 09:45:36 +02:00
yugecin
52f9ac9a7f only do dancer options (mirror etc) if auto is active 2016-09-30 09:36:21 +02:00
yugecin
73754e9c7d option to never draw background 2016-09-30 09:35:21 +02:00
yugecin
e5d7f0f159 give more space for tabs in the option screen 2016-09-30 09:29:24 +02:00
yugecin
46e2b7069f option for rgb objs 2016-09-30 09:17:39 +02:00
yugecin
0d77d7f56a remove debug println, whoops 2016-09-30 09:13:10 +02:00
yugecin
0c16802523 use shifthue 2016-09-30 09:12:54 +02:00
yugecin
e126edbff7 shift hue on each new object 2016-09-30 09:09:14 +02:00
yugecin
fa57e63a2f option to hide approach circles 2016-09-29 23:34:11 +02:00
yugecin
7f908db6e7 add option for mirrorcollage 2016-09-29 23:29:20 +02:00
yugecin
0d89c2612d attempt to make sliderbody look better 2016-09-29 23:22:41 +02:00
yugecin
923f8dcb49 black sliders 2016-09-29 22:45:16 +02:00
yugecin
d3af3c17d0 move shit to utils 2016-09-29 22:41:56 +02:00
yugecin
33895b24c8 mirrored objects +180° hue 2016-09-29 21:55:23 +02:00
yugecin
9a73ab23e9 render mirrored 2016-09-29 21:40:42 +02:00
yugecin
72aa856818 don't draw sliderend 2016-09-28 22:03:45 +02:00
yugecin
759187b4cd fix #3 (doesn't move to last object) 2016-09-28 13:49:33 +02:00
yugecin
2b93805b71 fix license text 2016-09-28 13:34:54 +02:00
yugecin
4504afa59e add second repobutton :) 2016-09-27 22:44:35 +02:00
yugecin
defeab3522 Add pippi options (not implemented) 2016-09-27 22:33:14 +02:00
yugecin
43548fa058 implement lazy sliders 2016-09-27 22:23:14 +02:00
yugecin
730f55ce20 be failsafe on updates 2016-09-27 22:04:14 +02:00
yugecin
52aac61233 give better names to auto movers 2016-09-27 22:03:16 +02:00
yugecin
728b2ceb97 Add options in the ingame menu 2016-09-27 22:02:49 +02:00
yugecin
130ee94825 spinner tostring 2016-09-27 21:58:24 +02:00
yugecin
1fb75c8ea2 Merge branch 'dancestuff' into dancesettings 2016-09-27 21:45:43 +02:00
yugecin
eb696077a2 we want to dance 2016-09-27 21:29:03 +02:00
yugecin
b74c037aec Auto mover factories 2016-09-27 21:28:50 +02:00
yugecin
a39ac19bb0 move width/height from container to options class 2016-09-27 20:52:52 +02:00
yugecin
2e76d302cd ayyyy space 2016-09-27 20:38:30 +02:00
yugecin
b933dd78d5 wtf 2016-09-27 20:38:18 +02:00
yugecin
15057b4d79 add a spinner 2016-09-27 20:05:16 +02:00
yugecin
f3de8a4506 use a reasonable size for the errorhandler dialog 2016-09-27 19:58:45 +02:00
yugecin
857118accb update forgotten dummyobj 2016-09-27 19:56:02 +02:00
yugecin
6b81ce2d2c moverfactory toStrings 2016-09-27 19:45:08 +02:00
yugecin
cfb9b7d0a0 add moverfactories 2016-09-27 19:22:08 +02:00
yugecin
0a3e7b0e09 add movers 2016-09-27 19:12:24 +02:00
yugecin
632c8a7fcf double ver of Utils.distance 2016-09-27 18:44:02 +02:00
yugecin
c64e0252aa make static accessible width & height 2016-09-27 18:36:35 +02:00
yugecin
b1894ade26 getQuadrant func 2016-09-27 18:36:09 +02:00
yugecin
b842a564f7 add isSpinner, isCircle etc in GameObject 2016-09-27 18:26:53 +02:00
yugecin
e7e33cd406 put more information in gameobject 2016-09-27 18:17:53 +02:00
yugecin
d2d39b3d9a test how to add options 2016-09-27 17:55:41 +02:00
yugecin
4769c1cfda make options menu use lists 2016-09-27 17:36:10 +02:00
yugecin
d2ff927ab6 allow scrolling in the list by dragging mouse 2016-09-27 17:35:53 +02:00
yugecin
825a8a44fe fix list when scrolled 2016-09-27 17:26:29 +02:00
yugecin
f82f880670 List UI control 2016-09-27 17:13:31 +02:00
yugecin
74a9320503 make cursortrail longer and show on small movements 2016-09-27 15:29:38 +02:00
Jeffrey Han
93c8ab96f1 Fixed wrong parameter order in StarStream.
Signed-off-by: Jeffrey Han <itdelatrisu@gmail.com>
2016-04-03 01:04:23 -04:00
Jeffrey Han
1e58b3c47d Fixed a null pointer exception. (fixes #162)
Signed-off-by: Jeffrey Han <itdelatrisu@gmail.com>
2015-12-14 19:02:37 -05:00
Jeffrey Han
8c4e5ac264 Fixed an error when reloading beatmaps. (#161)
Signed-off-by: Jeffrey Han <itdelatrisu@gmail.com>
2015-12-14 11:59:49 -05:00
Andrew Zhao
5b42f9a588 centered follow points 2015-11-29 18:58:00 -08:00
MatteoS
78511737ce Draw reversing arrow in black if the slider is lightly colored 2015-11-21 15:30:25 +01:00
Jeffrey Han
ba240797d8 Replaced all linear fade-out transitions with eased transitions.
Signed-off-by: Jeffrey Han <itdelatrisu@gmail.com>
2015-11-19 17:47:46 -05:00
Jeffrey Han
fb789c8fc5 Follow-up to #150: delayed fade-out, minor style changes.
Signed-off-by: Jeffrey Han <itdelatrisu@gmail.com>
2015-11-19 16:56:28 -05:00
MatteoS
3e285e05fc Add falling game objects on fail 2015-11-18 22:29:18 +01:00
Jeffrey Han
d85de23cec Fixed an error when importing beatmaps. (fixes #149)
Signed-off-by: Jeffrey Han <itdelatrisu@gmail.com>
2015-11-17 17:46:00 -05:00
Jeffrey Han
f835a441c2 Follow-up to #148: keypress and edge case fixes.
Signed-off-by: Jeffrey Han <itdelatrisu@gmail.com>
2015-11-16 16:05:20 -05:00
MatteoS
d0069c20e5 Fix pitch changes (hopefully) 2015-11-16 21:21:28 +01:00
MatteoS
13e0bdb81e Make music pitch and speed go down on fail (like in osu!) 2015-11-16 14:33:07 +01:00
Jeffrey Han
06c423a4dd Properly detect osu! installations on Windows (using registry keys).
Thanks to @ModuleLFS for the idea.

Signed-off-by: Jeffrey Han <itdelatrisu@gmail.com>
2015-10-31 22:20:08 -04:00
Jeffrey Han
9c7dbce6fd Updated BloodcatServer to use the new API. (fixes #139, 140)
Signed-off-by: Jeffrey Han <itdelatrisu@gmail.com>
2015-09-30 00:28:21 -04:00
Jeffrey Han
4acd3cda02 Check mouse button before firing events for kinetic scrolling.
Signed-off-by: Jeffrey Han <itdelatrisu@gmail.com>
2015-09-20 11:38:46 -04:00
Jeffrey Han
c69f34adc3 Don't show decimal points for CS/HP/AR/OD values unless needed.
Signed-off-by: Jeffrey Han <itdelatrisu@gmail.com>
2015-09-19 15:30:41 -04:00
Jeffrey Han
5634a673bb Fix hovering bug with < max nodes in kinetic scrolling.
Signed-off-by: Jeffrey Han <itdelatrisu@gmail.com>
2015-09-19 13:04:53 -04:00
fd
b843beb3c0 KineticScrolling Minor fixes
for selection in large BeatmapSets
2015-09-19 12:11:07 -04:00
Jeffrey Han
c58c128ec8 Minor Javadoc additions/edits.
Signed-off-by: Jeffrey Han <itdelatrisu@gmail.com>
2015-09-18 19:20:18 -04:00
Jeffrey Han
eb331360b9 Added scrolling animation to "random" song selection.
Involves temporarily changing the kinetic scrolling speed, so it's a little messy...

Signed-off-by: Jeffrey Han <itdelatrisu@gmail.com>
2015-09-18 18:49:01 -04:00
Jeffrey Han
14496050ea Minor style changes from #134.
Signed-off-by: Jeffrey Han <itdelatrisu@gmail.com>
2015-09-18 16:02:19 -04:00
Jeffrey Han
daf3a2aad3 Merge pull request #134 from Bigpet/snakeslider
Snaking sliders implementation.
2015-09-18 15:27:54 -04:00
Peter Tissen
131138ea8c Snaking sliders initial implementation.
Draws curves in a range from 0 to x (where x is a value between 0 and 1) while blending them in (if enabled in the options)
Cache a unit-cone once and re-use that with scaling and translation instead of generating it each time again.
This is more for readability than performance (since presumably feeding it mostly constants like before would be faster)

Only draws the cones in the curve once if possible
(only possible if consective calls to draw with the intervals x_1 before x_2 are made and [0, x_1] [0, x_2] with x_1 < x_2 holds true)

minor refactoring and cleanup

Omg my code is such a mess. I feel like I've committed a crime against humanity by just randomly putting that
random vbo id into the class called "Rendertarget". But there's really no good place for it now (that has a way to clean it up).
But if "Rendertarget" will ever be used by anything else but the sliders I'm gonna pull that out.

added blending in for return arrows and ticks
2015-09-18 20:21:37 +02:00
Jeffrey Han
286388270e Fixed song scores getting clipped horizontally. (also from #131)
Signed-off-by: Jeffrey Han <itdelatrisu@gmail.com>
2015-09-16 20:12:47 -04:00
Jeffrey Han
0278556947 Fixed a minor kinetic scrolling bug in the song menu.
Added a missing "songScrolling.released()" call upon entering the song menu as the pressed state wasn't being cleared (causing an issue with the scroll wheel upon re-entering the state).

Signed-off-by: Jeffrey Han <itdelatrisu@gmail.com>
2015-09-16 15:42:00 -04:00
Jeffrey Han
e0da6a2444 Minor formatting cleanup for #131.
Also made some members private.

Signed-off-by: Jeffrey Han <itdelatrisu@gmail.com>
2015-09-15 23:20:53 -04:00
fd
d69e5fa5e7 Kinetic Scrolling Fixes 2015-09-15 21:39:35 -04:00
fd
133241f630 Merge remote-tracking branch 'org/master' into KinecticScrolling
Conflicts:
	src/itdelatrisu/opsu/ScoreData.java
	src/itdelatrisu/opsu/downloads/DownloadNode.java
	src/itdelatrisu/opsu/states/DownloadsMenu.java
	src/itdelatrisu/opsu/states/SongMenu.java
2015-09-14 20:09:52 -04:00
fd
0562c66531 Kinectic Scrolling
for SongNodes, Scores, Download Results, Download Info
2015-09-14 19:19:49 -04:00
Jeffrey Han
1fe45f7bb4 Merged DISABLE_CURSOR option from fluddokt/opsu. 2015-09-11 11:43:19 -04:00
Jeffrey Han
6506967c12 Added some missing @param and @throws Javadoc comments.
Signed-off-by: Jeffrey Han <itdelatrisu@gmail.com>
2015-09-09 23:51:16 -04:00
Jeffrey Han
831c297ece Made DropdownMenu extend Slick's AbstractComponent class.
Clicks and animation updates are now handled internally within the DropdownMenu class, which should simplify usage a bit.  Override menuClicked() and itemSelected() instead for event handling.

Signed-off-by: Jeffrey Han <itdelatrisu@gmail.com>
2015-09-09 18:57:01 -04:00
Jeffrey Han
7f1193bb77 Slight changes to DropdownMenu behavior.
Signed-off-by: Jeffrey Han <itdelatrisu@gmail.com>
2015-09-09 13:25:48 -04:00
Jeffrey Han
643a7c4589 Added a dropdown menu class, similar to the one in osu!.
Using 'fa-chevron-down' and 'fa-chevron-right' icons from Font Awesome v4.4.0 (https://github.com/FortAwesome/Font-Awesome).

The dropdown menu is currently used only in the downloads menu to select servers.

Signed-off-by: Jeffrey Han <itdelatrisu@gmail.com>
2015-09-08 23:46:30 -04:00
Jeffrey Han
6c369f6329 Minor code cleaning.
Signed-off-by: Jeffrey Han <itdelatrisu@gmail.com>
2015-09-08 12:26:28 -04:00
Jeffrey Han
be3adb3dc5 Animate score buttons in the song menu.
Signed-off-by: Jeffrey Han <itdelatrisu@gmail.com>
2015-09-06 01:44:29 -04:00
Jeffrey Han
5ff35d355b Animate the music icon in the song menu. (follow-up to c5cc43a)
Signed-off-by: Jeffrey Han <itdelatrisu@gmail.com>
2015-09-05 19:46:52 -04:00
Jeffrey Han
c5cc43acfc Fade in song info in the song menu.
Signed-off-by: Jeffrey Han <itdelatrisu@gmail.com>
2015-09-05 14:40:34 -05:00
Jeffrey Han
01fb9c50c9 Replace xy float[] arrays with Vec2f (mostly in game objects).
Signed-off-by: Jeffrey Han <itdelatrisu@gmail.com>
2015-09-05 12:53:42 -05:00
Jeffrey Han
1b8f85942f Use java.awt.Point in Cursor class instead of separate x/y lists.
Signed-off-by: Jeffrey Han <itdelatrisu@gmail.com>
2015-09-05 12:46:01 -05:00
Jeffrey Han
97dbb36e43 Switch to startUse/drawEmbedded/endUse for cursortrail and star stream.
This should be much more efficient when repeatedly rendering the same texture, as in these two cases.

Signed-off-by: Jeffrey Han <itdelatrisu@gmail.com>
2015-09-05 09:32:26 -05:00
Jeffrey Han
ffe4d5d415 Merging davedes' dev branch fixes/updates to Slick's Image class.
https://bitbucket.org/kevglass/slick/history-node/aa6e7b6dce00/trunk/Slick/src/org/newdawn/slick/Image.java?at=development

Commits merged:
- edd48ff: Simple center x/y fixes.
- d847f81: Fixed a filter constant.
- 37b8710: Added flushPixelData to destroy().
- 97da01a: Added rotate in use.
- 06bef32: Overload drawEmbedded().
- 3f82ac1: Fixed rotate bug for drawEmbedded().
2015-09-05 09:07:03 -05:00
Jeffrey Han
80042807c5 Draw an animated star stream in the song menu.
Star image was modified from XinCrin's "Fantasy's Skin".

Signed-off-by: Jeffrey Han <itdelatrisu@gmail.com>
2015-09-04 22:36:25 -05:00
Jeffrey Han
cd3d53336d A couple of API improvements.
Signed-off-by: Jeffrey Han <itdelatrisu@gmail.com>
2015-09-03 22:16:52 -05:00
Jeffrey Han
14948846f5 Added star difficulty to conditional search filters.
Signed-off-by: Jeffrey Han <itdelatrisu@gmail.com>
2015-09-03 21:00:02 -05:00
Jeffrey Han
3214916d60 Load beatmap background images in a new thread.
This eliminates the game-wide lag (100-200ms on my computer) when switching song nodes. Attempted to mask the loading time with a fade-in effect.

Signed-off-by: Jeffrey Han <itdelatrisu@gmail.com>
2015-09-03 19:24:07 -05:00
Jeffrey Han
e767800702 Fixed broken "Easy" mod.
Signed-off-by: Jeffrey Han <itdelatrisu@gmail.com>
2015-09-03 00:14:25 -05:00
Jeffrey Han
a2eaf35664 Draw star rating stars in the song menu inside each song node.
Star image was taken from XinCrin's "Fantasy's Skin".

Signed-off-by: Jeffrey Han <itdelatrisu@gmail.com>
2015-09-02 23:10:31 -05:00
Jeffrey Han
c785a1261c Ported osu!tp's beatmap difficulty algorithm to compute star ratings.
https://github.com/Tom94/AiModtpDifficultyCalculator
This might not be completely accurate as I wasn't able to get the original program to run, but it's probably close (note that hit object stacking isn't applied, though).

Since the computation is fairly expensive, they're currently done when selecting a beatmap set in the song menu (for all beatmaps in the set at once).  The rating is displayed next to the beatmap difficulty settings (HP,CS,AR,OD) in the header.  Also, since all the hit objects need to be loaded to perform the computation, the objects are later discarded (but not immediately) by a LRU cache to limit memory usage.

Signed-off-by: Jeffrey Han <itdelatrisu@gmail.com>
2015-09-02 19:44:04 -05:00
Jeffrey Han
8cb796bd18 Fixed updater ignoring XDG flag (again).
Signed-off-by: Jeffrey Han <itdelatrisu@gmail.com>
2015-09-02 19:23:23 -05:00
Jeffrey Han
5817217eb5 Stop logging warnings for missing background images.
Signed-off-by: Jeffrey Han <itdelatrisu@gmail.com>
2015-09-02 17:38:28 -05:00
Jeffrey Han
396071dfbc When deleting beatmaps, remove their MD5 hashes from the lookup table.
Signed-off-by: Jeffrey Han <itdelatrisu@gmail.com>
2015-09-02 14:37:16 -05:00
Jeffrey Han
d5154b567e Replaced "BeatmapImageCache" with a generic LRU cache class.
Signed-off-by: Jeffrey Han <itdelatrisu@gmail.com>
2015-09-02 13:29:52 -05:00
Jeffrey Han
c516d93d1e Check for parallel vectors before constructing a CircumscribedCircle.
If the check fails, use a LinearBezier instead. (e.g. in map 45471).

Moved slider time and curve calculations into HitObject so that they can be reused.

Signed-off-by: Jeffrey Han <itdelatrisu@gmail.com>
2015-09-02 10:51:52 -05:00
Jeffrey Han
d360b73bf5 Specify whether Curve uses scaled or unscaled coordinates.
Unscaled coordinates will be used in a future commit (hopefully).

Added a normalize() method to Vec2f.

Throw RuntimeExceptions for any Curve initialization errors; the game would crash anyway, and this way the objects can be substituted for DummyObjects for a graceful failure.

Signed-off-by: Jeffrey Han <itdelatrisu@gmail.com>
2015-09-02 01:47:15 -05:00
Jeffrey Han
6c956e927f Beatmap parser fixes.
- Fixed hit object 'addition' field parsing. (Still not sure what the fields do, but the types should be correct now...)
- Fixed a careless error causing a potential null pointer exception. (blame: 0b33fed)
- Show an error if parseHitObjects() parses a different amount of objects than expected.

Signed-off-by: Jeffrey Han <itdelatrisu@gmail.com>
2015-09-02 01:41:47 -05:00
Jeffrey Han
fdd70a81c4 Removed leftover/unused 'color' parameter in Curve constructor.
Signed-off-by: Jeffrey Han <itdelatrisu@gmail.com>
2015-09-01 21:57:37 -05:00
Jeffrey Han
df3e662865 Marked a couple more members as 'final'. (continuation of 441bb95)
Signed-off-by: Jeffrey Han <itdelatrisu@gmail.com>
2015-08-31 22:54:35 -05:00
Jeffrey Han
769ad963e7 Moved OszUnpacker into package 'opsu.beatmap'.
Signed-off-by: Jeffrey Han <itdelatrisu@gmail.com>
2015-08-31 22:25:28 -05:00
Jeffrey Han
c70fcb296f Add git hash (from refs/remotes/origin/master) to error reports.
Signed-off-by: Jeffrey Han <itdelatrisu@gmail.com>
2015-08-31 17:54:32 -05:00
Jeffrey Han
e535a88840 Stop firing BeatmapWatchService events for intended file modifications.
Specifically, during OSZ unpacking and for file deletion through the song menu.  Triggering the beatmap reload event in these scenarios would be redundant.

Signed-off-by: Jeffrey Han <itdelatrisu@gmail.com>
2015-08-30 23:21:58 -05:00
Jeffrey Han
aed5163a83 Check completed download size against Content-Length header.
If the number of bytes received is less than the reported content length (e.g. a network timeout), mark the download with the "error" status instead of "complete".  Content-Length should be reliable if reported at all, so this should be a valid approach.

Signed-off-by: Jeffrey Han <itdelatrisu@gmail.com>
2015-08-30 23:18:46 -05:00
Jeffrey Han
bd8e35cb81 Added MengSky download server.
URL: http://osu.mengsky.net/

Also parsing raw HTML for this one because there's no API.

Signed-off-by: Jeffrey Han <itdelatrisu@gmail.com>
2015-08-30 22:20:52 -05:00
Jeffrey Han
8d21fe3fc9 Fixed a small issue in the MnetworkServer HTML parsing.
Signed-off-by: Jeffrey Han <itdelatrisu@gmail.com>
2015-08-30 20:25:35 -05:00
Jeffrey Han
8892973d98 Now using official formulas for circle diameter and timing offsets.
The previous formulas were extremely close, so you shouldn't notice any gameplay differences at all.

Circle diameter:
- Previously: 104 - (CS * 8)
- Now: 108.848 - (CS * 8.9646)

Timing offsets: added 1.5ms to 300, 100, and 50 hit result offsets.

Signed-off-by: Jeffrey Han <itdelatrisu@gmail.com>
2015-08-30 19:01:40 -05:00
Jeffrey Han
9d19dacab4 Removed some unneeded methods.
- Removed "isImplemented" field from GameMod as all of the base mods have been implemented.
- Removed Utils.getBoundedValue() methods in preference for Utils.clamp().

Signed-off-by: Jeffrey Han <itdelatrisu@gmail.com>
2015-08-30 17:56:05 -05:00
Jeffrey Han
31d0c237df Create Natives dir in XDG_CACHE_HOME, not the working dir. (fixes #129)
Signed-off-by: Jeffrey Han <itdelatrisu@gmail.com>
2015-08-30 14:31:01 -05:00
Jeffrey Han
6d284cdd80 Organize imports.
Some of these got re-ordered when I updated Eclipse -- resetting to the original sort order.

Signed-off-by: Jeffrey Han <itdelatrisu@gmail.com>
2015-08-28 21:29:21 -05:00
Jeffrey Han
34c7942f4b Fixed "Hidden" mod timing issues. (fixes #121)
This introduces more accurate timing formulas associated with the "Hidden" mod (previously, in #115, these values were hardcoded).  The values seem somewhat close to the values in osu!, but were not extensively tested.

Also set an upper bound on the fade in time for hit objects proportional to the approach time, or else the timing values in the "Hidden" mod would be too inconsistent.

Signed-off-by: Jeffrey Han <itdelatrisu@gmail.com>
2015-08-28 21:12:47 -05:00
Jeffrey Han
c4f54ecc05 Hitting the "f" key during a replay changes the playback speed.
Signed-off-by: Jeffrey Han <itdelatrisu@gmail.com>
2015-08-28 19:41:02 -05:00
Jeffrey Han
f773a8ecf8 Remove jinput dependency since controllers aren't used.
jinput natives are no longer loaded or packaged in the jar.

Excluded the lwjgl dependency within the slick2d package since it depends on an older version (2.9.1) of lwjgl.

Signed-off-by: Jeffrey Han <itdelatrisu@gmail.com>
2015-08-28 11:07:03 -05:00
Jeffrey Han
0b33fed2d4 Minor follow-up to #127.
Signed-off-by: Jeffrey Han <itdelatrisu@gmail.com>
2015-08-27 20:48:08 -05:00
Jeffrey Han
3a9f6be5ae Merge pull request #127 from LemonLake/cursoranim
Added cursor animation
2015-08-27 17:48:50 -05:00
Jeffrey Han
b54886a379 Follow-up to #126.
- Fix the XDG directory flag that got removed with JarSplice. To enable XDG directories, set the 'Use-XDG' property in either build file to 'true'.
- Always re-build jars in the Gradle script (disable "up to date" for the task).
- Delete JarSplicePlus.jar since it's no longer being used.

Signed-off-by: Jeffrey Han <itdelatrisu@gmail.com>
2015-08-27 14:14:04 -05:00
Lemmmy
b1e8c3a72e Added cursor animation 2015-08-27 17:32:40 +01:00
Lemmmy
dea0104c4d Added the Gradle build system and added a new native loader 2015-08-27 15:50:36 +01:00
Jeffrey Han
20d40dd520 Better handling of misnamed MP3/OGG files. (part of #120)
This also catches more MP3 loading errors that could occur and properly cleans up resources.

Signed-off-by: Jeffrey Han <itdelatrisu@gmail.com>
2015-08-26 09:29:28 -05:00
Szunti
017150233b Rewrote shaders for GLSL 110 (openGL2.0). 2015-08-24 22:18:11 +02:00
Jeffrey Han
5efb61d3bb Fixed bug where skinned old-style cursors were ignored. (part of #120)
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>
2015-08-23 21:16:28 -05:00
Jeffrey Han
b83d6be5fd Clarified GameImage "skinnable" field as "beatmap-skinnable".
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>
2015-08-23 20:41:09 -05:00
Jeffrey Han
949b2c215c Added a WatchService to watch the beatmap directory tree for changes.
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>
2015-08-21 10:25:52 -05:00
Jeffrey Han
ae5016f3ab Validate audio files before trying to load them. (part of #120)
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>
2015-08-20 22:58:45 -05:00
Jeffrey Han
130f9bf445 Game ranking screen fixes.
- 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>
2015-08-20 22:06:27 -05:00
Jeffrey Han
ae149a61f6 HP is now drained while holding sliders. (fixes #103)
Slider ticks now give HP, and the HP for SLIDER30 results is doubled.

Signed-off-by: Jeffrey Han <itdelatrisu@gmail.com>
2015-08-20 21:24:58 -05:00
Jeffrey Han
441bb95a09 Added lots of 'final' modifiers to class fields where applicable.
Signed-off-by: Jeffrey Han <itdelatrisu@gmail.com>
2015-08-20 21:11:55 -05:00
Jeffrey Han
0a7aef7347 Moved all Utils.FONT_* into new class opsu.ui.Fonts.*.
- 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>
2015-08-20 20:40:07 -05:00
Jeffrey Han
7b5b96752c Moved some duplicate colors into the Colors class.
Signed-off-by: Jeffrey Han <itdelatrisu@gmail.com>
2015-08-20 20:14:24 -05:00
Jeffrey Han
91f07855a7 Moved all Utils.COLOR_* into new class opsu.ui.Colors.*.
Signed-off-by: Jeffrey Han <itdelatrisu@gmail.com>
2015-08-20 20:02:23 -05:00
Jeffrey Han
5f5c0cdbc4 Fix program crashing if unable to connect to BeatmapDB. (fixes #111)
In this case, load all beatmaps from disk instead of trying to read from the cache.

Signed-off-by: Jeffrey Han <itdelatrisu@gmail.com>
2015-08-20 18:54:18 -05:00
Jeffrey Han
6e7de654b0 Hit animation bug fixes.
- In "Hidden" mod, don't draw expanding animation for circles. (related to #121)
- With "Show Perfect Hits" disabled, still show the hit animations instead of having the objects just disappear. (also mentioned in #121)
- Removed the two easing functions in Utils (and replaced references with calls to AnimationEquations).

Signed-off-by: Jeffrey Han <itdelatrisu@gmail.com>
2015-08-20 18:40:10 -05:00
Jeffrey Han
8efcc1f2ee Attempted fix for a null pointer exception in #123.
Signed-off-by: Jeffrey Han <itdelatrisu@gmail.com>
2015-08-15 10:06:19 -05:00
Jeffrey Han
96f882bd99 Fixed two incorrect shortcut keys for selecting game mods.
Signed-off-by: Jeffrey Han <itdelatrisu@gmail.com>
2015-08-14 18:15:19 -05:00
Peter Tissen
f0b87c99ab Lower GLSL version requirement
I didn't really use any of the newer features anyway.
This should accomodate open source drivers that use older versions of MESA.
2015-08-13 11:28:04 +02:00
Jeffrey Han
93615736af Minor port-related fixes.
Signed-off-by: Jeffrey Han <itdelatrisu@gmail.com>
2015-08-12 22:00:58 -05:00
Jeffrey Han
7dc5f973de Show a more informative error message for BindException. (fixes #119)
Signed-off-by: Jeffrey Han <itdelatrisu@gmail.com>
2015-08-12 21:46:10 -05:00
Jeffrey Han
f22498ae7d Updater UI improvements.
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>
2015-08-12 19:06:58 -05:00
Jeffrey Han
52e973caf8 Added animation loop capabilities to MenuButton.
Signed-off-by: Jeffrey Han <itdelatrisu@gmail.com>
2015-08-12 19:03:50 -05:00
Jeffrey Han
a4898d01a7 Fix hard rock coordinate modifier in replays. (fixes #118)
Signed-off-by: Jeffrey Han <itdelatrisu@gmail.com>
2015-08-10 17:14:02 -05:00
Jeffrey Han
e68bcf8abc Fix PreparedStatement bug in ScoreDB with null string fields.
This was causing deleteScoreStmt to always fail.

Signed-off-by: Jeffrey Han <itdelatrisu@gmail.com>
2015-08-10 16:18:14 -05:00
MatteoS
35524a22ad Fix #116 2015-08-09 17:41:29 +02:00
Jeffrey Han
fee85c6a73 Improvements in search query switching in the downloads menu.
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>
2015-08-08 21:57:43 -05:00
Jeffrey Han
8173b9b4c2 Added Mnetwork download mirror.
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>
2015-08-08 20:34:49 -05:00
Jeffrey Han
0909377d14 Follow-up to #115: some fixes and whitespace changes.
- Hide the spinner approach circle instead of the spinner circle.
- Show the slider ball.

Signed-off-by: Jeffrey Han <itdelatrisu@gmail.com>
2015-08-08 19:15:49 -05:00
Jeffrey Han
262fa9d4c4 Merge pull request #115 from mad-s/master
'Hidden' gamemod
2015-08-08 18:40:37 -05:00
MatteoS
a13ea9308d Corrections for 'hidden' mod 2015-08-09 01:20:45 +02:00
Jeffrey Han
dbb5eebf5c Added YaS Online download mirror.
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>
2015-08-08 17:12:07 -05:00
Jeffrey Han
b9adf59d53 Allow HTTP <--> HTTPS redirects (max 3) in Download class.
Signed-off-by: Jeffrey Han <itdelatrisu@gmail.com>
2015-08-08 17:08:36 -05:00
mad-s
d82b8188e8 Hit indicators *do* show up in hidden mode.
I failed...
2015-08-08 23:17:25 +02:00
MatteoS
34356d9c08 Implement 'hidden' game mod 2015-08-08 21:12:02 +02:00
Jeffrey Han
b98c646106 Removed osu!Mirror download server, which is now officially offline.
Signed-off-by: Jeffrey Han <itdelatrisu@gmail.com>
2015-08-08 13:33:38 -05:00
Jeffrey Han
40ab94794f Bug fixes and tweaks.
- 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>
2015-08-08 12:04:15 -05:00
MatteoS
b537b83736 Game doesn't crash when being unable to go to the github repo page 2015-08-08 16:29:08 +02:00
MatteoS
110e54e063 Fix crash on pressing extra mouse buttons 2015-08-08 16:20:00 +02:00
MatteoS
940e9baa41 Correct detection of GLSL version for curve rendering 2015-08-08 14:43:56 +02:00
Jeffrey Han
c0b3da37c2 Changed more messy animations to use AnimatedValue.
Also finally refactored the main menu logo controller code...

Signed-off-by: Jeffrey Han <itdelatrisu@gmail.com>
2015-08-06 00:53:30 -05:00
Jeffrey Han
c91146b024 Added easing functions for all-around better animations.
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>
2015-08-05 22:28:14 -05:00
Jeffrey Han
5dac21a545 Cursor trail now considers actual FPS (not target FPS). (fixes #109)
Signed-off-by: Jeffrey Han <itdelatrisu@gmail.com>
2015-07-16 18:14:46 -05:00
Jeffrey Han
4e2074e41b Show errors if any directories could not be created. (fixes #97)
Signed-off-by: Jeffrey Han <itdelatrisu@gmail.com>
2015-07-11 10:51:52 -05:00
Jeffrey Han
05c7ac0a02 Minor follow-up to #108.
Set minimum OpenGL version for mmsliders to 3.0 (from 3.2) and removed an unused variable.

Signed-off-by: Jeffrey Han <itdelatrisu@gmail.com>
2015-07-09 11:59:53 -05:00
Peter Tissen
7941a70238 use EXT version of FBOs instead of the ARB version
This doesn't actually make a difference in functionality.
The issue is that the flashlight mod uses Slicks FBO functions which
use the EXT version and Intel drivers generate the same FBO IDs twice
if the EXT and ARB versions are mixed.
2015-07-09 18:37:39 +02:00
Peter Tissen
420f1fb02c Backup and restore the viewport size when rendering sliders. Needed because Slick tends to allocate offscreen buffers for itself only with power of two textures, so it will use another viewport when rendering to its own offscreen buffers. 2015-07-08 16:23:59 +02:00
Jeffrey Han
26ab61910e Added option to disable automatic checking for updates.
Signed-off-by: Jeffrey Han <itdelatrisu@gmail.com>
2015-07-07 19:03:54 -05:00
Jeffrey Han
8b9e230fa7 Updated dependencies.
- LWJGL is now at the final 2.x release version.
- Slick2D is now at the final (?) release version.
- Added dependency for org.tukaani.xz, since it becomes optional in commons-compress 1.9 and is needed for LZMA compression.

Signed-off-by: Jeffrey Han <itdelatrisu@gmail.com>
2015-07-07 18:37:03 -05:00
Jeffrey Han
2167698740 Follow-up to #99: replay seeking improvements.
- 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>
2015-07-02 22:16:14 -05:00
Jeffrey Han
495a7e7f8b Follow-up to d860a30: replay importing fixes.
- Move failed imports to a "failed" subdirectory so that errors aren't generated each time the program is launched.
- Importing now overwrites files.
- Add "ReplayImportDirectory" option to config file.
- Fixed a bug with scores not being properly added.

Signed-off-by: Jeffrey Han <itdelatrisu@gmail.com>
2015-06-29 20:18:28 -05:00
Jeffrey Han
d860a30aed Follow-up to #99.
- 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>
2015-06-29 19:22:38 -05:00
Jeffrey Han
7d08a7d391 Merge pull request #99 from fluddokt/ReplayTest
Replay importing, spinner fixes (fixes #67), replay seeking, in-place MD5 calculation, pitch change time sync (fixes #86).
2015-06-28 21:14:10 -05:00
Jeffrey Han
52cb5d24f0 Minor code style changes from #102.
Signed-off-by: Jeffrey Han <itdelatrisu@gmail.com>
2015-06-28 02:38:50 -05:00
Peter Tissen
6bbcbb1fc7 delete shaders after linking. They're not needed anymore and are a potential resource leak. 2015-06-25 00:31:21 +02:00
Peter Tissen
600e34d1fe add comments and adjust formatting 2015-06-25 00:21:15 +02:00
Peter Tissen
1993452669 Correctly clean up the created OpenGL objects created for the slider rendering.
This is necessary because the OpenGL context being closed does apparently not close
the process and the game can be restarted with another resolution without shutting
down the process completely.
2015-06-24 23:55:05 +02:00