Commit Graph

  • 1e59819f3a Dim theme song volume when window is not focused. Jeffrey Han 2015-01-10 20:14:39 -0500
  • b525ab4533 Updated README.md with a link to the "releases" page. Jeffrey Han 2015-01-08 20:10:30 -0500
  • ab0d3d1528 Added mouse hover effects for song buttons in song menu. Jeffrey Han 2015-01-08 16:28:49 -0500
  • db4ca5f1d5 Minor optimizations. - Only retrieve song information String[] when needed. - Don't try to load glyphs if Unicode metadata is disabled. Jeffrey Han 2015-01-08 12:03:39 -0500
  • f6eac71643 Moved most Image creation into GameImage enum. Jeffrey Han 2015-01-07 23:45:21 -0500
  • 8671718ce3 Moved most GameImage scaling/processing to a single file. - To scale an image, override process_sub() in its enum definition. All GameImages call the process() method when loaded. - Skin GameImage overrides will now call process() immediately, so there's no more need for the hackish scaling status. Jeffrey Han 2015-01-07 22:36:39 -0500
  • 1e806bc9c6 SoundController refactoring. - Added enum classes SoundEffect and HitSound. - Added a SoundComponent interface for sound effects and hit sounds, and extended playSound() and playHitSound() methods to play any SoundComponent. - Moved features related to sample sets to the HitSound class, and rewrote sample sets as an internal enum class. Jeffrey Han 2015-01-07 19:29:51 -0500
  • 3127571886 Smoother health bar changes. Also merged GameScore update calls into a single method. Jeffrey Han 2014-12-30 01:17:05 -0500
  • b0649541eb Better emulation of main menu behavior. - Pressing 'Esc' will now always enter the MainMenuExit state. - Returning from MainMenuExit state does not reset button states: these must be manually reset by calling the reset() method. Jeffrey Han 2014-12-30 00:41:32 -0500
  • 2592faec44 Renamed GUIMenuButton class to MenuButton. The class was originally named with the intent of adding many other GUI classes, but this never happened. Jeffrey Han 2014-12-30 00:00:58 -0500
  • 9e69afac91 Added retry counter. Display number of retries (after retrying at least twice). Jeffrey Han 2014-12-29 23:35:31 -0500
  • cc84d4a3e4 Subtle fade in effect for circles and sliders. (#9) Also resize the "skip" button on hover. (follow-up 33f5df0) Jeffrey Han 2014-12-24 02:45:43 -0500
  • 068a844e1f Fixed music player issues with handling repeat tracks. When pressing the "next" button, songs will only be pushed when a new track plays. Fixes a potential null pointer crash. Jeffrey Han 2014-12-24 00:25:26 -0500
  • 33f5df030c Expand menu buttons when hovering. Added hovering capabilities to GUIMenuButton. The max scale and direction to expand the image can be modified per object. Jeffrey Han 2014-12-23 23:41:37 -0500
  • ce8ae40f79 Quick follow-up to #10. Don't play a sound upon exiting. Jeffrey Han 2014-12-21 23:20:17 -0500
  • 31d8b77217 Merge pull request #10 from iceblade112/master Jeffrey Han 2014-12-21 23:02:30 -0500
  • 4b17f28cf2 Undo offset Raymonf 2014-12-21 17:11:31 -0500
  • 068b40a86a Mimic osu! exit button Raymonf 2014-12-21 17:02:11 -0500
  • bc7d19295b Make default offset 0ms Raymonf 2014-12-21 16:46:11 -0500
  • 5083229572 Fixed theme song loading in JAR files. (follow-up ce0eccd) Removed theme.osu, replaced with a comma-deliminated line in the configuration file. Jeffrey Han 2014-12-20 21:35:18 -0500
  • ce0eccd32b Implemented skinnable theme songs. Plays a theme song when opsu! starts (can be disabled in options). The default song is "welcome to osu!" by nekodex, uploaded by CyberKitsune. Jeffrey Han 2014-12-20 18:17:04 -0500
  • 9d3a12ad9c Display checkpoint time on game screen after loading. Also fixed some indentation issues. Jeffrey Han 2014-12-20 15:30:20 -0500
  • 47cf4f4af3 Fix hidden mouse cursor. Cursor is now properly hidden, instead of being a single black pixel. Credits to davedes. Jeffrey Han 2014-12-20 15:10:46 -0500
  • 169e9c192a Updated readme with Maven build information. (follow-up 54b5469, #7) Jeffrey Han 2014-09-11 17:36:43 -0400
  • 54b5469b02 Merge pull request #7 from Tillerino/modularMaven Jeffrey Han 2014-09-11 17:03:17 -0400
  • 40e08fd498 eclipse/ant -> maven Till 2014-09-11 09:21:06 +0200
  • 51b50843e5 Added "Kochi Gothic" font. - Provides cross-platform CJK support. (follow-up to 904a54d) Jeffrey Han 2014-08-25 12:47:10 -0400
  • 904a54df26 Added support for Unicode (non-English) metadata. - Setting is off by default, and can be switched on in the options menu. - Changed default font to "Arial Unicode MS" (CJK), with fallback to "Lucida Sans Console" (non-CJK). Cross-platform support may be added later. Jeffrey Han 2014-08-24 23:48:52 -0400
  • 9a94c03b4e Use UnicodeFont instead of TrueTypeFont. - Fixes issue #4. Jeffrey Han 2014-08-24 14:48:27 -0400
  • 83e486054f Catch (nearly) all exceptions thrown by OsuParser. - Properly handle bad input and log a warning. The game may run with some gameplay errors (ex. if no base TimingPoint is parsed), but it should not crash. Jeffrey Han 2014-07-24 13:38:59 -0400
  • 39dcdf6dee Reorganized libs. - All libraries are now packed as JARs, with sources and docs also packed and separated. - Added .classpath and .project to version control. - Updated ant build script. Jeffrey Han 2014-07-20 13:21:13 -0400
  • ddcbed20b2 Added error message when running JAR in path containing '!'. (issue #5) - See: http://bugs.java.com/view_bug.do?bug_id=4523159 Jeffrey Han 2014-07-19 13:01:23 -0400
  • fe293827e6 More small bug fixes. - Always use '.' as decimal separator in options file, regardless of locale. - Properly handle bad input when initially parsing hit objects. Jeffrey Han 2014-07-19 03:31:54 -0400
  • 834682a6ca Minor bug fixes. - Fixed null pointer in "Main Menu" state if no tracks loaded. (since b0c0b44) - Fixed "keyOsuLeft" and "keyOsuRight" writing KEY_NONE to configuration file on first run (instead of default values). Jeffrey Han 2014-07-18 21:33:07 -0400
  • c0870afb77 Fixed issue where slider end distance calculations ignored repeats. Jeffrey Han 2014-07-18 21:13:17 -0400
  • 64788b2832 Song sort refactoring. - Created "SongSort" enum to handle everything related to sorting OsuGroupNode objects. Jeffrey Han 2014-07-18 20:33:41 -0400
  • 717605564d Hit object refactoring. - Moved the bulk of hit object parsing into the OsuHitObject constructor, and made all fields private. Only combo-related data is still set by OsuParser. - Added 'isCircle()', 'isSlider()', 'isSpinner()', and 'isNewCombo()' methods for convenience. Jeffrey Han 2014-07-18 15:11:57 -0400
  • 2380b11f48 Screenshot directory is now configurable. (requested in #4) - Directory must already exist if a non-default location is used. Jeffrey Han 2014-07-18 00:56:37 -0400
  • edf40e11fd Added configurable game key bindings. - Game keys (default Z/X) can be changed to any letter or digit in the options screen. Jeffrey Han 2014-07-17 23:58:37 -0400
  • b0c0b44ef1 Major track length-related updates. - Parse and store the end time for every beatmap (i.e. end time of last hit object). - Added a 'length' sorting tab. - Added 'length' search condition. - Removed 'getTrackLength()' and 'getTrackLengthString()' methods, as they are no longer needed. - Added a loader spritesheet animation to render during MP3 conversions (in place of track length rendering upon completion). Jeffrey Han 2014-07-17 21:16:15 -0400
  • 4ecd50f488 Added support for conditional search expressions. - Pattern: {type}{operator}{value} -- Types: ar, cs, od, hp, bpm (length not yet implemented) -- Operators: =/==, >, >=, <, <= Jeffrey Han 2014-07-17 12:49:12 -0400
  • 0a5e7f66ec Improved search feature. - Search is now more like osu!, where subsequent search terms limit the existing result list (as opposed to further expanding it). - Replaced global tag HashMap with String instance variables, since the previous implementation is incompatible with the above change (resulting in slightly higher memory usage and search times). Jeffrey Han 2014-07-17 01:00:28 -0400
  • cb396e0d20 Added "Easy" mod. - Halves all difficulty values and grants 3 "lives" instead of 1, with a score multiplier of 0.5x. Jeffrey Han 2014-07-16 16:56:23 -0400
  • 7a187c4e4f Game mod refactoring. - Created "GameMod" enum to handle all mod-related actions and store all related data. Jeffrey Han 2014-07-16 16:01:36 -0400
  • d5b7ff3516 Small visual tweaks. - Modified "LoadVerbose" option so that 'false' will display a progress bar (instead of nothing at all), and made this the default. - Slowed down a few shifting animations. Jeffrey Han 2014-07-15 13:21:37 -0400
  • 943c2af178 Resolved some reported issues. - Threaded OGG loading (in addition to MP3) to eliminate delays in song select menu. (reported by xasuma) - Changed default OSZ unpacking location to a "SongPacks" directory to prevent unintended unpacking. (reported by Lanturn) - Fixed a null pointer for a corner case in 'getRandomNode()'. (reported by @iceblade112) Jeffrey Han 2014-07-15 00:20:36 -0400
  • f0f8160fa1 Merge pull request #2 from iceblade112/master Jeffrey Han 2014-07-14 22:13:56 -0400
  • f70f993999 Logo click changes on Main Menu Raymonf 2014-07-13 17:53:56 +0200
  • 5aa9620834 Added option to disable sound effects from loading. (partially resolves issue #1) - By default, sound effects will be disabled on Linux due to driver issues. Jeffrey Han 2014-07-10 22:01:39 -0400
  • 842563c6a5 Resolution improvements. - Players can no longer set a container size larger than the screen dimensions. - If the game resolution is equal to the screen size, the created window will be borderless. - Added some additional resolutions. Jeffrey Han 2014-07-10 20:35:07 -0400
  • 95f969f62f Major song menu improvements and fixes. - Song group nodes are now hidden when the group is expanded. - Setting a new focus will always move the focus into view. - Left and right arrow keys now shift focus by exactly 1 node. - Render the version string for unexpanded song group nodes containing only 1 beatmap. Jeffrey Han 2014-07-10 19:13:53 -0400
  • 5a1972a2bd Some code cleanup. - Overhauled OsuTimingPoint class: parsing is done in the constructor, and fields are no longer public. - Improved consistency of static/non-static fields in a couple of classes. Jeffrey Han 2014-07-09 13:36:42 -0400
  • 50fb71e353 Implemented saving/loading from checkpoints. - A checkpoint (track position) can be set in the options screen, and also while playing by pressing "CTRL+S". - A checkpoint can be loaded by pressing "CTRL+L" while playing. This will reset all game data and begin from the checkpoint time; the ranking screen will be skipped upon song completion. Jeffrey Han 2014-07-08 22:17:48 -0400
  • 2ed8e66bbf Minor search feature fixes. - Search textfield now properly retains focus in song selection menu. - Clearing an invalid search no longer changes the current song. Jeffrey Han 2014-07-08 19:03:43 -0400
  • e7f74d8dd6 Added loading progress for sound files in splash screen. Jeffrey Han 2014-07-08 14:08:06 -0400
  • 331f374a5b Better positioning of mod icons and song menu header text. Jeffrey Han 2014-07-08 13:38:16 -0400
  • 83c475cdc1 Java Sound crash fixes for Linux. (issue #1) - Explicitly supply the AudioFormat when creating a Clip. - Disable Master Gain if unsupported (e.g. in PulseAudio). - Do not try to play uninitialized sounds (e.g. LineUnavailableException during creation, seems to happen regularly with PulseAudio). Jeffrey Han 2014-07-08 00:42:50 -0400
  • a9cc7a3deb Scale and rotate the cursor. - Cursor is now scaled based on window size. - Cursor now rotates slowly (new style only). - Cursor now expands upon mouse press. Jeffrey Han 2014-07-06 23:13:33 -0400
  • 6d3c333a3f Minor follow-up to d9c251e. - Added 'zip4j' library to ant build script. Jeffrey Han 2014-07-06 02:27:53 -0400
  • d9c251ef82 Added a module for unpacking OSZ archives. - Included 'zip4j' library to extract the ZIP archives. (Homepage: http://www.lingala.net/zip4j/) - OSZ files are unpacked from the root directory by default, and the path can be changed in the configuration file. Jeffrey Han 2014-07-06 01:58:44 -0400
  • dea7e942a3 Created a splash screen state for loading resources. - Game now boots to splash screen, which displays parser progress. - Added option "LoadVerbose" to disable rendering the progress text. - Main Menu backgrounds now fade in regardless of DynamicBackground setting (as a transition from the splash screen). Jeffrey Han 2014-07-05 21:00:52 -0400
  • 0dbfd18c5f Added a few missing keyboard shortcuts. - Main Menu: "P" (play), "Q" (quit) - Game: Ctrl + "R" (restart) Jeffrey Han 2014-07-05 14:29:48 -0400
  • 83f13a8879 Added options for global fixed difficulty settings (CS, HP, AR, OD). - Added a new tab in Game Options screen containing the values. Jeffrey Han 2014-07-05 01:24:01 -0400
  • 06f8dae037 Reduced unnecessary reloading of default images. (follow-up 16afcaf) - GameImage now stores both a default image and skin image, returning the skin image whenever available. - Default images are loaded once on startup, instead of before every game. Jeffrey Han 2014-07-04 19:59:57 -0400
  • 16afcaf3e6 Added initial support for loading beatmap skins. - Added a GameImage enum for more organized loading of image resources. - Game image loading now takes place directly before each beatmap is loaded. - Added option 'IGNORE_BEATMAP_SKINS' to disable this feature. Jeffrey Han 2014-07-04 16:41:52 -0400
  • c72b9b955a Quick fix for parsing invalid *.osu files. Jeffrey Han 2014-07-03 18:50:44 -0400
  • 0b471fa1cc Animated the score display. Jeffrey Han 2014-07-03 02:03:56 -0400
  • f195ffb861 Added support for default playfield image and an override option. - Credits: https://osu.ppy.sh/forum/t/198483 (image by Xiaounlimited) Jeffrey Han 2014-07-03 01:05:23 -0400
  • 03be29307f Misc. bug fixes and improvements. - Fixed Game not loading OsuFile for maps in a song group. (blame: 5612336) - Implemented rotations for reverse arrows, and added a new one by Alic1a. - "Auto" mod: pausing no longer requires click to unpause, and mod images are permanently drawn. - Program now loads from Main Menu instead of Options (unnecessary complications for the sake of a transition). Jeffrey Han 2014-07-02 23:38:30 -0400
  • 2c2f28b441 Game options overhaul & new options. - Separated options into "Display", "Music", and "Gameplay" tabs. - New options: VolumeHitSound, DimLevel, PerfectHit - Added options that were previously missing from Game Options screen. - Added sounds to Game Options screen. Jeffrey Han 2014-07-02 18:24:19 -0400
  • 812b83af45 Added extra checks in the parser for invalid line. Credits to xasuma for the report. Jeffrey Han 2014-07-02 10:14:15 -0400
  • 56123363b3 Implemented dynamic main menu backgrounds. - This can be switched off in the configuration file. - Credits: https://osu.ppy.sh/forum/t/98954 Jeffrey Han 2014-07-02 03:02:11 -0400
  • bcd0c23961 Added initial support for loading user skins. - "Skins" directory is created in the root folder, and reads files directly from there (for now). NOT ALL FILES ARE SUPPORTED. - To change the path (e.g. to an installed skin), edit the path in the configuration file. Jeffrey Han 2014-07-02 01:53:42 -0400
  • ab487c5e80 Replaced native cursors with skinnable ones. - Added support for both the new (2013+) and old cursor styles. These can be toggled on/off in the configuration file. - Added cursor images by XinCrin (old style) and teinecthel (new style). Jeffrey Han 2014-07-01 19:32:03 -0400
  • 0604a25822 Added initial sound effect support. - Added SoundController module, which uses Java Sound since OpenAL has a slight delay on playing sounds. - Uploaded all effect WAVs. (credits: WWWskin, AL's IA, Fantasy's Skin, Minimalist Miku) - Added a missing entry in credits. Jeffrey Han 2014-07-01 01:14:03 -0400
  • 60eaa42997 Only allow a single program instance to be run. Creates a ServerSocket instance on a port (default: 49250). Credits to marcostudios for the suggestion. Jeffrey Han 2014-06-30 12:37:37 -0400
  • 6bdb026447 Added support for floating-point difficulty values (v13). Thanks to Marcin for the info and FieryLight for the report. Jeffrey Han 2014-06-30 04:03:39 -0400
  • 9da166f60f Initial commit. Jeffrey Han 2014-06-29 22:17:04 -0400