From 5f3ce74c64f9a58cf093f978580b50153fc18da3 Mon Sep 17 00:00:00 2001 From: Pavel Kolchev Date: Tue, 31 Mar 2015 18:14:52 +0300 Subject: [PATCH 01/59] Implemented half/double time mod. Dynamic bpm, map length in song select menu. Fixed replay and spinner with these mods. --- src/itdelatrisu/opsu/GameMod.java | 41 +++++++++++++++++-- src/itdelatrisu/opsu/OsuGroupNode.java | 12 +++--- .../opsu/audio/MusicController.java | 4 +- src/itdelatrisu/opsu/objects/Spinner.java | 2 +- src/itdelatrisu/opsu/states/Game.java | 10 ++--- src/itdelatrisu/opsu/states/SongMenu.java | 5 ++- 6 files changed, 55 insertions(+), 19 deletions(-) diff --git a/src/itdelatrisu/opsu/GameMod.java b/src/itdelatrisu/opsu/GameMod.java index a7bd3e97..d1a7052b 100644 --- a/src/itdelatrisu/opsu/GameMod.java +++ b/src/itdelatrisu/opsu/GameMod.java @@ -33,7 +33,7 @@ public enum GameMod { "Easy", "Reduces overall difficulty - larger circles, more forgiving HP drain, less accuracy required."), NO_FAIL (Category.EASY, 1, GameImage.MOD_NO_FAIL, "NF", 1, Input.KEY_W, 0.5f, "NoFail", "You can't fail. No matter what."), - HALF_TIME (Category.EASY, 2, GameImage.MOD_HALF_TIME, "HT", 256, Input.KEY_E, 0.3f, false, + HALF_TIME (Category.EASY, 2, GameImage.MOD_HALF_TIME, "HT", 256, Input.KEY_E, 0.3f, "HalfTime", "Less zoom."), HARD_ROCK (Category.HARD, 0, GameImage.MOD_HARD_ROCK, "HR", 16, Input.KEY_A, 1.06f, "HardRock", "Everything just got a bit harder..."), @@ -41,7 +41,7 @@ public enum GameMod { "SuddenDeath", "Miss a note and fail."), // PERFECT (Category.HARD, 1, GameImage.MOD_PERFECT, "PF", 64, Input.KEY_S, 1f, // "Perfect", "SS or quit."), - DOUBLE_TIME (Category.HARD, 2, GameImage.MOD_DOUBLE_TIME, "DT", 64, Input.KEY_D, 1.12f, false, + DOUBLE_TIME (Category.HARD, 2, GameImage.MOD_DOUBLE_TIME, "DT", 64, Input.KEY_D, 1.12f, "DoubleTime", "Zoooooooooom."), // NIGHTCORE (Category.HARD, 2, GameImage.MOD_NIGHTCORE, "NT", 64, Input.KEY_D, 1.12f, // "Nightcore", "uguuuuuuuu"), @@ -170,9 +170,14 @@ public enum GameMod { Collections.reverse(Arrays.asList(VALUES_REVERSED)); } + private static boolean justChanged = false; + /** The last calculated score multiplier, or -1f if it must be recalculated. */ private static float scoreMultiplier = -1f; + /** */ + private static float speedMultiplier = -1f; + /** * Initializes the game mods. * @param width the container width @@ -198,7 +203,7 @@ public enum GameMod { mod.active = false; } - scoreMultiplier = -1f; + scoreMultiplier = speedMultiplier = -1f; } /** @@ -216,6 +221,32 @@ public enum GameMod { return scoreMultiplier; } + /** + * + */ + public static float getSpeedMultiplier() { + if (speedMultiplier < 0f) { + float multiplier = 1f; + if (DOUBLE_TIME.isActive()) + multiplier = 1.5f; + else if (HALF_TIME.isActive()) + multiplier = 0.75f; + speedMultiplier = multiplier; + } + return speedMultiplier; + } + + /** + * + */ + public static boolean justChanged() { + if (justChanged) { + justChanged = false; + return true; + } + return false; + } + /** * Returns the current game mod state (bitwise OR of active mods). */ @@ -233,6 +264,7 @@ public enum GameMod { * @param state the state (bitwise OR of active mods) */ public static void loadModState(int state) { + scoreMultiplier = speedMultiplier = -1f; for (GameMod mod : GameMod.values()) mod.active = ((state & mod.getBit()) > 0); } @@ -352,7 +384,8 @@ public enum GameMod { return; active = !active; - scoreMultiplier = -1f; + scoreMultiplier = speedMultiplier = -1f; + justChanged = true; if (checkInverse) { if (AUTO.isActive()) { diff --git a/src/itdelatrisu/opsu/OsuGroupNode.java b/src/itdelatrisu/opsu/OsuGroupNode.java index 8c8e15d2..db095130 100644 --- a/src/itdelatrisu/opsu/OsuGroupNode.java +++ b/src/itdelatrisu/opsu/OsuGroupNode.java @@ -118,16 +118,18 @@ public class OsuGroupNode { return null; OsuFile osu = osuFiles.get(osuFileIndex); + long endTime = (long) (osu.endTime / GameMod.getSpeedMultiplier()); + int bpmMin = (int) (osu.bpmMin * GameMod.getSpeedMultiplier()); + int bpmMax = (int) (osu.bpmMax * GameMod.getSpeedMultiplier()); String[] info = new String[5]; info[0] = osu.toString(); info[1] = String.format("Mapped by %s", osu.creator); info[2] = String.format("Length: %d:%02d BPM: %s Objects: %d", - TimeUnit.MILLISECONDS.toMinutes(osu.endTime), - TimeUnit.MILLISECONDS.toSeconds(osu.endTime) - - TimeUnit.MINUTES.toSeconds(TimeUnit.MILLISECONDS.toMinutes(osu.endTime)), - (osu.bpmMax <= 0) ? "--" : - ((osu.bpmMin == osu.bpmMax) ? osu.bpmMin : String.format("%d-%d", osu.bpmMin, osu.bpmMax)), + TimeUnit.MILLISECONDS.toMinutes(endTime), + TimeUnit.MILLISECONDS.toSeconds(endTime) - + TimeUnit.MINUTES.toSeconds(TimeUnit.MILLISECONDS.toMinutes(endTime)), + (bpmMax <= 0) ? "--" : ((bpmMin == bpmMax) ? bpmMin : String.format("%d-%d", bpmMin, bpmMax)), (osu.hitObjectCircle + osu.hitObjectSlider + osu.hitObjectSpinner)); info[3] = String.format("Circles: %d Sliders: %d Spinners: %d", osu.hitObjectCircle, osu.hitObjectSlider, osu.hitObjectSpinner); diff --git a/src/itdelatrisu/opsu/audio/MusicController.java b/src/itdelatrisu/opsu/audio/MusicController.java index 7c93c15d..0050785d 100644 --- a/src/itdelatrisu/opsu/audio/MusicController.java +++ b/src/itdelatrisu/opsu/audio/MusicController.java @@ -279,13 +279,13 @@ public class MusicController { * Plays the current track. * @param loop whether or not to loop the track */ - public static void play(boolean loop) { + public static void play(float pitch, boolean loop) { if (trackExists()) { trackEnded = false; if (loop) player.loop(); else - player.play(); + player.play(pitch, 1f); } } diff --git a/src/itdelatrisu/opsu/objects/Spinner.java b/src/itdelatrisu/opsu/objects/Spinner.java index 1f5033d5..89c9ca9d 100644 --- a/src/itdelatrisu/opsu/objects/Spinner.java +++ b/src/itdelatrisu/opsu/objects/Spinner.java @@ -135,7 +135,7 @@ public class Spinner implements HitObject { Utils.COLOR_BLACK_ALPHA.a = oldAlpha; // rpm - int rpm = Math.abs(Math.round(sumVelocity / storedVelocities.length * 60)); + int rpm = Math.abs(Math.round(sumVelocity * GameMod.getSpeedMultiplier() / storedVelocities.length * 60)); Image rpmImg = GameImage.SPINNER_RPM.getImage(); rpmImg.setAlpha(alpha); rpmImg.drawCentered(width / 2f, height - rpmImg.getHeight() / 2f); diff --git a/src/itdelatrisu/opsu/states/Game.java b/src/itdelatrisu/opsu/states/Game.java index 094116f5..28204fb3 100644 --- a/src/itdelatrisu/opsu/states/Game.java +++ b/src/itdelatrisu/opsu/states/Game.java @@ -1023,11 +1023,6 @@ public class Game extends BasicGameState { // reset game data resetGameData(); - // needs to play before setting position to resume without lag later - MusicController.play(false); - MusicController.setPosition(0); - MusicController.pause(); - // initialize object maps for (int i = 0; i < osu.objects.length; i++) { OsuHitObject hitObject = osu.objects[i]; @@ -1119,6 +1114,11 @@ public class Game extends BasicGameState { leadInTime = osu.audioLeadIn + approachTime; restart = Restart.FALSE; + + // needs to play before setting position to resume without lag later + MusicController.play(GameMod.getSpeedMultiplier(), false); + MusicController.setPosition(0); + MusicController.pause(); } skipButton.resetHover(); diff --git a/src/itdelatrisu/opsu/states/SongMenu.java b/src/itdelatrisu/opsu/states/SongMenu.java index 87704504..30f2153f 100644 --- a/src/itdelatrisu/opsu/states/SongMenu.java +++ b/src/itdelatrisu/opsu/states/SongMenu.java @@ -336,7 +336,7 @@ public class SongMenu extends BasicGameState { int iconWidth = musicNote.getWidth(); // song info text - if (songInfo == null) { + if (songInfo == null || GameMod.justChanged()) { songInfo = focusNode.getInfo(); if (Options.useUnicodeMetadata()) { // load glyphs OsuFile osu = focusNode.osuFiles.get(0); @@ -349,7 +349,8 @@ public class SongMenu extends BasicGameState { headerTextY += Utils.FONT_LARGE.getLineHeight() - 8; Utils.FONT_DEFAULT.drawString(marginX + iconWidth * 1.05f, headerTextY, songInfo[1], Color.white); headerTextY += Utils.FONT_DEFAULT.getLineHeight() - 2; - Utils.FONT_BOLD.drawString(marginX, headerTextY, songInfo[2], Color.white); + Utils.FONT_BOLD.drawString(marginX, headerTextY, songInfo[2], + (GameMod.DOUBLE_TIME.isActive()) ? Color.red : (GameMod.HALF_TIME.isActive()) ? Color.green : Color.white); headerTextY += Utils.FONT_BOLD.getLineHeight() - 4; Utils.FONT_DEFAULT.drawString(marginX, headerTextY, songInfo[3], Color.white); headerTextY += Utils.FONT_DEFAULT.getLineHeight() - 4; From ffadf197bad78590f6b2995875ef10e9237941b8 Mon Sep 17 00:00:00 2001 From: Pavel Kolchev Date: Wed, 1 Apr 2015 15:10:15 +0300 Subject: [PATCH 02/59] Fixes incorrect Y offset with HardRock mod. --- src/itdelatrisu/opsu/OsuHitObject.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/itdelatrisu/opsu/OsuHitObject.java b/src/itdelatrisu/opsu/OsuHitObject.java index 008fee07..e6d75c04 100644 --- a/src/itdelatrisu/opsu/OsuHitObject.java +++ b/src/itdelatrisu/opsu/OsuHitObject.java @@ -274,7 +274,7 @@ public class OsuHitObject { */ public float getScaledY() { if (GameMod.HARD_ROCK.isActive()) - return containerHeight - ((y - stack * stackOffset) * yMultiplier + yOffset); + return containerHeight - ((y + stack * stackOffset) * yMultiplier + yOffset); else return (y - stack * stackOffset) * yMultiplier + yOffset; } @@ -364,7 +364,7 @@ public class OsuHitObject { float[] y = new float[sliderY.length]; if (GameMod.HARD_ROCK.isActive()) { for (int i = 0; i < y.length; i++) - y[i] = containerHeight - ((sliderY[i] - stack * stackOffset) * yMultiplier + yOffset); + y[i] = containerHeight - ((sliderY[i] + stack * stackOffset) * yMultiplier + yOffset); } else { for (int i = 0; i < y.length; i++) y[i] = (sliderY[i] - stack * stackOffset) * yMultiplier + yOffset; From d8425197a771fc4e7b2ef6b9fea26150adf592b9 Mon Sep 17 00:00:00 2001 From: Pavel Kolchev Date: Thu, 2 Apr 2015 19:38:45 +0300 Subject: [PATCH 03/59] Implement playback speed in replays. --- res/playback-05x.png | Bin 0 -> 2201 bytes res/playback-1x.png | Bin 0 -> 2070 bytes res/playback-2x.png | Bin 0 -> 2195 bytes src/itdelatrisu/opsu/GameImage.java | 4 ++ src/itdelatrisu/opsu/MenuButton.java | 5 ++ .../opsu/audio/MusicController.java | 12 ++++- .../opsu/replay/PlaybackSpeed.java | 50 ++++++++++++++++++ src/itdelatrisu/opsu/states/Game.java | 43 ++++++++++++--- 8 files changed, 105 insertions(+), 9 deletions(-) create mode 100644 res/playback-05x.png create mode 100644 res/playback-1x.png create mode 100644 res/playback-2x.png create mode 100644 src/itdelatrisu/opsu/replay/PlaybackSpeed.java diff --git a/res/playback-05x.png b/res/playback-05x.png new file mode 100644 index 0000000000000000000000000000000000000000..358d7e0c752ba578021fac37081a2cd1895f55d3 GIT binary patch literal 2201 zcmV;K2xj+*P)z;o9_%1Uj!b)AI6C>Gh(2cDC`c z@~t^|cfk&{TJ-a`%_!Z{bkj2;1a46k(Mrqza!yfr4iEr*f3{gsQONCk3lh{-pOhP9 zEj&0nk;$C9LX#4|Co<{R=UYUiy@PoJo13ccyyhWq+ghJCNBckMOL>ReGV`iiGV-ch zvQG?Yrwm8+T0`iClC`E&%eZJp5ipVz_T#*jaZP#2aZ%DWKcQ~}%Z|PF`5#obq%Qrv zwep&z4vU|FN3gA2zoA4yX{irKoP6))SnI(xrk1^nO$X*g7!A@j7AS?spMKUL99nM9 z2tTiL`#vspqQP-!g*hYqJ6+F293+|U(H3o37}LCWv1wCky8$aA8qh{JNOCgsCZ|N6 z$$u@b^W&AK)9c2@43!)E`zuLI&Krwj93`)qUX1xqn7bxGa0?~4--5wM9tw+@fWIlq ziS8&~ZaThvRP<=LtOWqDIa(b*+j>e!N?XFszsIhdl`$iHs;Lt#%Kos^%Eu@JJEKB~ zM#q{$Fe0)Dg39!FfC9vi3}uV=I|L~8Z$oh+ zkY&6v_jTi*WocSyI-?erR7z)B!)OdAG9K&1Xz?2>7e=m5LCnvy-t7FadAJ==k2JTR z5D{{T<0D^5_GVi0*(J#;0yPgG!=yix!PO<1BN7)Bw_fE;zM&TCoflD@475*nWf;1BUtKF;mV&CFvqeY5gz=-J zXFin5M5v!KZNNx->YJ5yPrty$?moa;nR{`1{1E0u@iAuy8>s+MF#rIOF41W#wzq$U zhCBK4OPVvEtcskM`GoeJb(d@kt5tp5IK&9L2e|o-G^cTqe86l{uIMr6=zRyrjz_pjU@sBjfh#9nb}}GzTv3b5>co@nMh9g% z3aaes3{lWelE;R>za&i?AFIahiJs0Z5YBcUDdgWdu7V{7AHAzDbW2=Ky7-D<>_;KiRVM;KkNjo4Jd6trQXH^+Q8S z-=BU~$<|M$o61S(`3=6SJF21=7A*=t?J(f1;KI6Sy+En8TI2OY<Erq^Pu!ooey?iQSdl4S|S)fMIFB_I_*QyO0Q2BpL7Cu_k7sy@V!Yf7c>$Vg2vJ z1`+X?1u*rorZ=`YN&%QYXWqfO`uQQDD(Fb3=Bboq{j^~W+O@x02sDA*c&+X{u7Y|+ z#*GN_6)ksD6sZ(VU!0}il^)9-Ik;8Y^6gMN^gm(_ItcmL?t%mkVwnYS@SiAw5B7Hp z9wacpBq&lqLjeE}e480$u))DV3T!9=K$Ox(0sy@uiYNda?y0C%A4*~XS3LIWSG(K2 zKB;Ri_w(jG?S3Nf&CsXY$8dn|e}j6n?Jl7F`Q_7Zp9Xtu_H|H2Jzrzho;9KffFRdU bzPtZ_v2E>8ouz-)00000NkvXXu0mjf>PRnb literal 0 HcmV?d00001 diff --git a/res/playback-1x.png b/res/playback-1x.png new file mode 100644 index 0000000000000000000000000000000000000000..a5949368a70f48382929c956803e6d540403178f GIT binary patch literal 2070 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 literal 0 HcmV?d00001 diff --git a/src/itdelatrisu/opsu/GameImage.java b/src/itdelatrisu/opsu/GameImage.java index 12f9a814..50b36914 100644 --- a/src/itdelatrisu/opsu/GameImage.java +++ b/src/itdelatrisu/opsu/GameImage.java @@ -104,6 +104,10 @@ public enum GameImage { } }, + REPLAY_05XPLAYBACK ("playback-05x", "png"), + REPLAY_1XPLAYBACK ("playback-1x", "png"), + REPLAY_2XPLAYBACK ("playback-2x", "png"), + // Circle HITCIRCLE ("hitcircle", "png"), HITCIRCLE_OVERLAY ("hitcircleoverlay", "png"), diff --git a/src/itdelatrisu/opsu/MenuButton.java b/src/itdelatrisu/opsu/MenuButton.java index de04a0e3..8631a90b 100644 --- a/src/itdelatrisu/opsu/MenuButton.java +++ b/src/itdelatrisu/opsu/MenuButton.java @@ -279,6 +279,11 @@ public class MenuButton { */ public void removeHoverEffects() { hoverEffect = 0; } + /** + * Sets the image of the button. + */ + public void setImage(Image image) { img = image; } + /** * Sets the "expand" hover effect. */ diff --git a/src/itdelatrisu/opsu/audio/MusicController.java b/src/itdelatrisu/opsu/audio/MusicController.java index 0050785d..8fc58c99 100644 --- a/src/itdelatrisu/opsu/audio/MusicController.java +++ b/src/itdelatrisu/opsu/audio/MusicController.java @@ -279,13 +279,13 @@ public class MusicController { * Plays the current track. * @param loop whether or not to loop the track */ - public static void play(float pitch, boolean loop) { + public static void play(boolean loop) { if (trackExists()) { trackEnded = false; if (loop) player.loop(); else - player.play(pitch, 1f); + player.play(); } } @@ -297,6 +297,14 @@ public class MusicController { SoundStore.get().setMusicVolume((isTrackDimmed()) ? volume * dimLevel : volume); } + /** + * Sets the music pitch. + * @param pitch [0, ..] + */ + public static void setPitch(float pitch) { + SoundStore.get().setMusicPitch(pitch); + } + /** * Returns whether or not the current track has ended. */ diff --git a/src/itdelatrisu/opsu/replay/PlaybackSpeed.java b/src/itdelatrisu/opsu/replay/PlaybackSpeed.java new file mode 100644 index 00000000..7d69efbd --- /dev/null +++ b/src/itdelatrisu/opsu/replay/PlaybackSpeed.java @@ -0,0 +1,50 @@ +package itdelatrisu.opsu.replay; + +import itdelatrisu.opsu.GameImage; +import itdelatrisu.opsu.GameMod; +import org.newdawn.slick.Image; + +public enum PlaybackSpeed { + NORMAL(GameImage.REPLAY_1XPLAYBACK, 1f), + DOUBLE(GameImage.REPLAY_2XPLAYBACK, 2f), + HALF(GameImage.REPLAY_05XPLAYBACK, 0.5f); + + /** The file name of the button image. */ + private GameImage gameImage; + + /** The speed modifier of the playback. */ + private float modifier; + + PlaybackSpeed(GameImage gameImage, float modifier) { + this.gameImage = gameImage; + this.modifier = modifier; + } + + private static int index = 1; + + public static PlaybackSpeed next() { + PlaybackSpeed next = values()[index++ % values().length]; + if((GameMod.DOUBLE_TIME.isActive() && next == PlaybackSpeed.DOUBLE) || + (GameMod.HALF_TIME.isActive() && next == PlaybackSpeed.HALF)) + next = next(); + + return next; + } + + public static void reset() { + index = 1; + } + + /** + * Returns the image. + * @return the associated image + */ + public Image getImage() { return gameImage.getImage(); } + + /** + * Returns the speed modifier. + * @return the speed + */ + public float getModifier() { return modifier; } +} + diff --git a/src/itdelatrisu/opsu/states/Game.java b/src/itdelatrisu/opsu/states/Game.java index 28204fb3..c8348a8a 100644 --- a/src/itdelatrisu/opsu/states/Game.java +++ b/src/itdelatrisu/opsu/states/Game.java @@ -50,6 +50,7 @@ import java.io.File; import java.util.LinkedList; import java.util.Stack; +import itdelatrisu.opsu.replay.PlaybackSpeed; import org.lwjgl.input.Keyboard; import org.lwjgl.opengl.Display; import org.newdawn.slick.Animation; @@ -131,6 +132,9 @@ public class Game extends BasicGameState { /** Skip button (displayed at song start, when necessary). */ private MenuButton skipButton; + /** Playback button (displayed in replays). */ + private MenuButton playbackButton; + /** Current timing point index in timingPoints ArrayList. */ private int timingPointIndex; @@ -527,6 +531,9 @@ public class Game extends BasicGameState { cursorCirclePulse.drawCentered(pausedMouseX, pausedMouseY); } + if (isReplay || GameMod.AUTO.isActive()) + playbackButton.draw(); + if (isReplay) UI.draw(g, replayX, replayY, replayKeyPressed); else if (GameMod.AUTO.isActive()) @@ -544,6 +551,8 @@ public class Game extends BasicGameState { UI.update(delta); int mouseX = input.getMouseX(), mouseY = input.getMouseY(); skipButton.hoverUpdate(delta, mouseX, mouseY); + if (isReplay || GameMod.AUTO.isActive()) + playbackButton.hoverUpdate(delta, mouseX, mouseY); int trackPosition = MusicController.getPosition(); // returning from pause screen: must click previous mouse position @@ -871,17 +880,25 @@ public class Game extends BasicGameState { @Override public void mousePressed(int button, int x, int y) { - if (Options.isMouseDisabled()) - return; - // watching replay - if (isReplay) { - // only allow skip button - if (button != Input.MOUSE_MIDDLE_BUTTON && skipButton.contains(x, y)) + if (isReplay || GameMod.AUTO.isActive()) { + // allow skip button + if (button != Input.MOUSE_MIDDLE_BUTTON && skipButton.contains(x, y)) { skipIntro(); + return; + } + if (button != Input.MOUSE_MIDDLE_BUTTON && playbackButton.contains(x, y)) { + PlaybackSpeed playbackSpeed = PlaybackSpeed.next(); + playbackButton.setImage(playbackSpeed.getImage()); + MusicController.setPitch(GameMod.getSpeedMultiplier() * playbackSpeed.getModifier()); + return; + } return; } + if (Options.isMouseDisabled()) + return; + // mouse wheel: pause the game if (button == Input.MOUSE_MIDDLE_BUTTON && !Options.isMouseWheelDisabled()) { int trackPosition = MusicController.getPosition(); @@ -1085,6 +1102,8 @@ public class Game extends BasicGameState { previousMods = GameMod.getModState(); GameMod.loadModState(replay.mods); + PlaybackSpeed.reset(); + // load initial data replayX = container.getWidth() / 2; replayY = container.getHeight() / 2; @@ -1116,12 +1135,15 @@ public class Game extends BasicGameState { restart = Restart.FALSE; // needs to play before setting position to resume without lag later - MusicController.play(GameMod.getSpeedMultiplier(), false); + MusicController.play(false); MusicController.setPosition(0); + MusicController.setPitch(GameMod.getSpeedMultiplier()); MusicController.pause(); } skipButton.resetHover(); + if (isReplay || GameMod.AUTO.isActive()) + playbackButton.resetHover(); } @Override @@ -1280,6 +1302,7 @@ public class Game extends BasicGameState { MusicController.resume(); } MusicController.setPosition(firstObjectTime - SKIP_OFFSET); + MusicController.setPitch(GameMod.getSpeedMultiplier()); replaySkipTime = (isReplay) ? -1 : trackPosition; if (isReplay) { replayX = (int) skipButton.getX(); @@ -1317,6 +1340,12 @@ public class Game extends BasicGameState { } skipButton.setHoverExpand(1.1f, MenuButton.Expand.UP_LEFT); + if (isReplay || GameMod.AUTO.isActive()) { + Image playback = GameImage.REPLAY_1XPLAYBACK.getImage(); + playbackButton = new MenuButton(playback, width * 0.98f - (playback.getWidth() / 2f), height * 0.25f); + playbackButton.setHoverExpand(1.1f, MenuButton.Expand.CENTER); + } + // load other images... ((GamePauseMenu) game.getState(Opsu.STATE_GAMEPAUSEMENU)).loadImages(); data.loadImages(); From f810965921e3ca6582de1350a599ef883e35f246 Mon Sep 17 00:00:00 2001 From: Pavel Kolchev Date: Fri, 3 Apr 2015 15:01:18 +0300 Subject: [PATCH 04/59] DT/HF/Playback changes. Can watch HalfTime on half speed. Reset pitch on leaving the game state. Load songInfo when entering select song menu. Playback button fades in on hover instead of expands. Reverted spinner changes. It should be fixed separately. --- src/itdelatrisu/opsu/GameMod.java | 14 ----------- src/itdelatrisu/opsu/MenuButton.java | 5 ---- src/itdelatrisu/opsu/OsuGroupNode.java | 7 +++--- src/itdelatrisu/opsu/Utils.java | 4 +++ src/itdelatrisu/opsu/objects/Spinner.java | 2 +- .../opsu/replay/PlaybackSpeed.java | 22 ++++++++++++---- src/itdelatrisu/opsu/states/Game.java | 12 ++++----- src/itdelatrisu/opsu/states/SongMenu.java | 25 ++++++++++++++----- 8 files changed, 51 insertions(+), 40 deletions(-) diff --git a/src/itdelatrisu/opsu/GameMod.java b/src/itdelatrisu/opsu/GameMod.java index d1a7052b..d5e09a5f 100644 --- a/src/itdelatrisu/opsu/GameMod.java +++ b/src/itdelatrisu/opsu/GameMod.java @@ -170,8 +170,6 @@ public enum GameMod { Collections.reverse(Arrays.asList(VALUES_REVERSED)); } - private static boolean justChanged = false; - /** The last calculated score multiplier, or -1f if it must be recalculated. */ private static float scoreMultiplier = -1f; @@ -236,17 +234,6 @@ public enum GameMod { return speedMultiplier; } - /** - * - */ - public static boolean justChanged() { - if (justChanged) { - justChanged = false; - return true; - } - return false; - } - /** * Returns the current game mod state (bitwise OR of active mods). */ @@ -385,7 +372,6 @@ public enum GameMod { active = !active; scoreMultiplier = speedMultiplier = -1f; - justChanged = true; if (checkInverse) { if (AUTO.isActive()) { diff --git a/src/itdelatrisu/opsu/MenuButton.java b/src/itdelatrisu/opsu/MenuButton.java index 8631a90b..de04a0e3 100644 --- a/src/itdelatrisu/opsu/MenuButton.java +++ b/src/itdelatrisu/opsu/MenuButton.java @@ -279,11 +279,6 @@ public class MenuButton { */ public void removeHoverEffects() { hoverEffect = 0; } - /** - * Sets the image of the button. - */ - public void setImage(Image image) { img = image; } - /** * Sets the "expand" hover effect. */ diff --git a/src/itdelatrisu/opsu/OsuGroupNode.java b/src/itdelatrisu/opsu/OsuGroupNode.java index db095130..b51eab5b 100644 --- a/src/itdelatrisu/opsu/OsuGroupNode.java +++ b/src/itdelatrisu/opsu/OsuGroupNode.java @@ -118,9 +118,10 @@ public class OsuGroupNode { return null; OsuFile osu = osuFiles.get(osuFileIndex); - long endTime = (long) (osu.endTime / GameMod.getSpeedMultiplier()); - int bpmMin = (int) (osu.bpmMin * GameMod.getSpeedMultiplier()); - int bpmMax = (int) (osu.bpmMax * GameMod.getSpeedMultiplier()); + float speedModifier = GameMod.getSpeedMultiplier(); + long endTime = (long) (osu.endTime / speedModifier); + int bpmMin = (int) (osu.bpmMin * speedModifier); + int bpmMax = (int) (osu.bpmMax * speedModifier); String[] info = new String[5]; info[0] = osu.toString(); info[1] = String.format("Mapped by %s", diff --git a/src/itdelatrisu/opsu/Utils.java b/src/itdelatrisu/opsu/Utils.java index 61baf19a..33f1f42a 100644 --- a/src/itdelatrisu/opsu/Utils.java +++ b/src/itdelatrisu/opsu/Utils.java @@ -49,6 +49,7 @@ import java.util.Scanner; import javax.imageio.ImageIO; +import itdelatrisu.opsu.replay.PlaybackSpeed; import org.lwjgl.BufferUtils; import org.lwjgl.opengl.Display; import org.lwjgl.opengl.GL11; @@ -180,6 +181,9 @@ public class Utils { // initialize game mods GameMod.init(width, height); + // initialize playback buttons + PlaybackSpeed.init(width, height); + // initialize hit objects OsuHitObject.init(width, height); diff --git a/src/itdelatrisu/opsu/objects/Spinner.java b/src/itdelatrisu/opsu/objects/Spinner.java index 89c9ca9d..1f5033d5 100644 --- a/src/itdelatrisu/opsu/objects/Spinner.java +++ b/src/itdelatrisu/opsu/objects/Spinner.java @@ -135,7 +135,7 @@ public class Spinner implements HitObject { Utils.COLOR_BLACK_ALPHA.a = oldAlpha; // rpm - int rpm = Math.abs(Math.round(sumVelocity * GameMod.getSpeedMultiplier() / storedVelocities.length * 60)); + int rpm = Math.abs(Math.round(sumVelocity / storedVelocities.length * 60)); Image rpmImg = GameImage.SPINNER_RPM.getImage(); rpmImg.setAlpha(alpha); rpmImg.drawCentered(width / 2f, height - rpmImg.getHeight() / 2f); diff --git a/src/itdelatrisu/opsu/replay/PlaybackSpeed.java b/src/itdelatrisu/opsu/replay/PlaybackSpeed.java index 7d69efbd..e8248a9e 100644 --- a/src/itdelatrisu/opsu/replay/PlaybackSpeed.java +++ b/src/itdelatrisu/opsu/replay/PlaybackSpeed.java @@ -2,6 +2,7 @@ package itdelatrisu.opsu.replay; import itdelatrisu.opsu.GameImage; import itdelatrisu.opsu.GameMod; +import itdelatrisu.opsu.MenuButton; import org.newdawn.slick.Image; public enum PlaybackSpeed { @@ -12,6 +13,9 @@ public enum PlaybackSpeed { /** The file name of the button image. */ private GameImage gameImage; + /** The button of the playback. */ + private MenuButton button; + /** The speed modifier of the playback. */ private float modifier; @@ -20,12 +24,20 @@ public enum PlaybackSpeed { this.modifier = modifier; } + public static void init(int width, int height) { + // create buttons + for (PlaybackSpeed playback : PlaybackSpeed.values()) { + Image img = playback.gameImage.getImage(); + playback.button = new MenuButton(img, width * 0.98f - (img.getWidth() / 2f), height * 0.25f); + playback.button.setHoverFade(); + } + } + private static int index = 1; public static PlaybackSpeed next() { PlaybackSpeed next = values()[index++ % values().length]; - if((GameMod.DOUBLE_TIME.isActive() && next == PlaybackSpeed.DOUBLE) || - (GameMod.HALF_TIME.isActive() && next == PlaybackSpeed.HALF)) + if((GameMod.DOUBLE_TIME.isActive() && next == PlaybackSpeed.DOUBLE)) next = next(); return next; @@ -36,10 +48,10 @@ public enum PlaybackSpeed { } /** - * Returns the image. - * @return the associated image + * Returns the button. + * @return the associated button */ - public Image getImage() { return gameImage.getImage(); } + public MenuButton getButton() { return button; } /** * Returns the speed modifier. diff --git a/src/itdelatrisu/opsu/states/Game.java b/src/itdelatrisu/opsu/states/Game.java index c8348a8a..57156c58 100644 --- a/src/itdelatrisu/opsu/states/Game.java +++ b/src/itdelatrisu/opsu/states/Game.java @@ -889,7 +889,7 @@ public class Game extends BasicGameState { } if (button != Input.MOUSE_MIDDLE_BUTTON && playbackButton.contains(x, y)) { PlaybackSpeed playbackSpeed = PlaybackSpeed.next(); - playbackButton.setImage(playbackSpeed.getImage()); + playbackButton = playbackSpeed.getButton(); MusicController.setPitch(GameMod.getSpeedMultiplier() * playbackSpeed.getModifier()); return; } @@ -1158,6 +1158,9 @@ public class Game extends BasicGameState { // replays if (isReplay) GameMod.loadModState(previousMods); + + // reset playback speed + MusicController.setPitch(1f); } /** @@ -1340,11 +1343,8 @@ public class Game extends BasicGameState { } skipButton.setHoverExpand(1.1f, MenuButton.Expand.UP_LEFT); - if (isReplay || GameMod.AUTO.isActive()) { - Image playback = GameImage.REPLAY_1XPLAYBACK.getImage(); - playbackButton = new MenuButton(playback, width * 0.98f - (playback.getWidth() / 2f), height * 0.25f); - playbackButton.setHoverExpand(1.1f, MenuButton.Expand.CENTER); - } + if (isReplay || GameMod.AUTO.isActive()) + playbackButton = PlaybackSpeed.NORMAL.getButton(); // load other images... ((GamePauseMenu) game.getState(Opsu.STATE_GAMEPAUSEMENU)).loadImages(); diff --git a/src/itdelatrisu/opsu/states/SongMenu.java b/src/itdelatrisu/opsu/states/SongMenu.java index 30f2153f..ed2cace2 100644 --- a/src/itdelatrisu/opsu/states/SongMenu.java +++ b/src/itdelatrisu/opsu/states/SongMenu.java @@ -336,12 +336,8 @@ public class SongMenu extends BasicGameState { int iconWidth = musicNote.getWidth(); // song info text - if (songInfo == null || GameMod.justChanged()) { - songInfo = focusNode.getInfo(); - if (Options.useUnicodeMetadata()) { // load glyphs - OsuFile osu = focusNode.osuFiles.get(0); - Utils.loadGlyphs(Utils.FONT_LARGE, osu.titleUnicode, osu.artistUnicode); - } + if (songInfo == null) { + songInfo = getSongInfo(); } marginX += 5; float headerTextY = marginY; @@ -983,6 +979,9 @@ public class SongMenu extends BasicGameState { resetGame = false; } + // load song info + songInfo = getSongInfo(); + // state-based action if (stateAction != null) { switch (stateAction) { @@ -1303,6 +1302,20 @@ public class SongMenu extends BasicGameState { return null; // incorrect map } + /** + * Returns an array of strings containing song information. + * @return the String array + */ + private String[] getSongInfo () { + songInfo = focusNode.getInfo(); + if (Options.useUnicodeMetadata()) { // load glyphs + OsuFile osu = focusNode.osuFiles.get(0); + Utils.loadGlyphs(Utils.FONT_LARGE, osu.titleUnicode, osu.artistUnicode); + } + return songInfo; + } + + /** * Starts the game. */ From 2efb18e2255b680999b9ed73bdc04c9dd4531e43 Mon Sep 17 00:00:00 2001 From: Jeffrey Han Date: Fri, 3 Apr 2015 18:08:35 -0400 Subject: [PATCH 05/59] Follow-up to #68. Fixes: - Set the modified speed again after unpausing and loading from checkpoints. - Changed countdown delays based on current speed. - Changed color of highlighted song info text to that in osu!. - Made playback images unskinnable. Code changes: - Changed playback field in Game class to the PlaybackSpeed object instead of just the button. - Changed PlaybackSpeed.next() to a non-static method. - Added/edited Javadocs. - Changed image names. Signed-off-by: Jeffrey Han --- res/{playback-2x.png => playback-double.png} | Bin res/{playback-05x.png => playback-half.png} | Bin res/{playback-1x.png => playback-normal.png} | Bin src/itdelatrisu/opsu/GameImage.java | 9 +- src/itdelatrisu/opsu/GameMod.java | 4 +- src/itdelatrisu/opsu/OsuGroupNode.java | 6 +- src/itdelatrisu/opsu/Utils.java | 6 +- .../opsu/audio/MusicController.java | 4 +- src/itdelatrisu/opsu/replay/LifeFrame.java | 4 +- .../opsu/replay/PlaybackSpeed.java | 79 ++++++++++++------ src/itdelatrisu/opsu/states/Game.java | 62 +++++++------- src/itdelatrisu/opsu/states/SongMenu.java | 30 +++---- 12 files changed, 115 insertions(+), 89 deletions(-) rename res/{playback-2x.png => playback-double.png} (100%) rename res/{playback-05x.png => playback-half.png} (100%) rename res/{playback-1x.png => playback-normal.png} (100%) diff --git a/res/playback-2x.png b/res/playback-double.png similarity index 100% rename from res/playback-2x.png rename to res/playback-double.png diff --git a/res/playback-05x.png b/res/playback-half.png similarity index 100% rename from res/playback-05x.png rename to res/playback-half.png diff --git a/res/playback-1x.png b/res/playback-normal.png similarity index 100% rename from res/playback-1x.png rename to res/playback-normal.png diff --git a/src/itdelatrisu/opsu/GameImage.java b/src/itdelatrisu/opsu/GameImage.java index 50b36914..5f7657a1 100644 --- a/src/itdelatrisu/opsu/GameImage.java +++ b/src/itdelatrisu/opsu/GameImage.java @@ -104,10 +104,6 @@ public enum GameImage { } }, - REPLAY_05XPLAYBACK ("playback-05x", "png"), - REPLAY_1XPLAYBACK ("playback-1x", "png"), - REPLAY_2XPLAYBACK ("playback-2x", "png"), - // Circle HITCIRCLE ("hitcircle", "png"), HITCIRCLE_OVERLAY ("hitcircleoverlay", "png"), @@ -232,6 +228,11 @@ public enum GameImage { SELECTION_OTHER_OPTIONS ("selection-selectoptions", "png", false, false), SELECTION_OTHER_OPTIONS_OVERLAY ("selection-selectoptions-over", "png", false, false), + // Replay Speed Buttons + REPLAY_PLAYBACK_NORMAL ("playback-normal", "png", false, false), + REPLAY_PLAYBACK_DOUBLE ("playback-double", "png", false, false), + REPLAY_PLAYBACK_HALF ("playback-half", "png", false, false), + // Non-Game Components VOLUME ("volume-bg", "png", false, false) { @Override diff --git a/src/itdelatrisu/opsu/GameMod.java b/src/itdelatrisu/opsu/GameMod.java index d5e09a5f..5440bb2e 100644 --- a/src/itdelatrisu/opsu/GameMod.java +++ b/src/itdelatrisu/opsu/GameMod.java @@ -173,7 +173,7 @@ public enum GameMod { /** The last calculated score multiplier, or -1f if it must be recalculated. */ private static float scoreMultiplier = -1f; - /** */ + /** The last calculated track speed multiplier, or -1f if it must be recalculated. */ private static float speedMultiplier = -1f; /** @@ -220,7 +220,7 @@ public enum GameMod { } /** - * + * Returns the current track speed multiplier from all active mods. */ public static float getSpeedMultiplier() { if (speedMultiplier < 0f) { diff --git a/src/itdelatrisu/opsu/OsuGroupNode.java b/src/itdelatrisu/opsu/OsuGroupNode.java index b51eab5b..07058c64 100644 --- a/src/itdelatrisu/opsu/OsuGroupNode.java +++ b/src/itdelatrisu/opsu/OsuGroupNode.java @@ -118,10 +118,10 @@ public class OsuGroupNode { return null; OsuFile osu = osuFiles.get(osuFileIndex); - float speedModifier = GameMod.getSpeedMultiplier(); + float speedModifier = GameMod.getSpeedMultiplier(); long endTime = (long) (osu.endTime / speedModifier); - int bpmMin = (int) (osu.bpmMin * speedModifier); - int bpmMax = (int) (osu.bpmMax * speedModifier); + int bpmMin = (int) (osu.bpmMin * speedModifier); + int bpmMax = (int) (osu.bpmMax * speedModifier); String[] info = new String[5]; info[0] = osu.toString(); info[1] = String.format("Mapped by %s", diff --git a/src/itdelatrisu/opsu/Utils.java b/src/itdelatrisu/opsu/Utils.java index 33f1f42a..6c13aec9 100644 --- a/src/itdelatrisu/opsu/Utils.java +++ b/src/itdelatrisu/opsu/Utils.java @@ -22,6 +22,7 @@ import itdelatrisu.opsu.audio.SoundController; import itdelatrisu.opsu.audio.SoundEffect; import itdelatrisu.opsu.downloads.Download; import itdelatrisu.opsu.downloads.DownloadNode; +import itdelatrisu.opsu.replay.PlaybackSpeed; import java.awt.Font; import java.awt.image.BufferedImage; @@ -49,7 +50,6 @@ import java.util.Scanner; import javax.imageio.ImageIO; -import itdelatrisu.opsu.replay.PlaybackSpeed; import org.lwjgl.BufferUtils; import org.lwjgl.opengl.Display; import org.lwjgl.opengl.GL11; @@ -91,7 +91,9 @@ public class Utils { COLOR_LIGHT_GREEN = new Color(128,255,128), COLOR_LIGHT_BLUE = new Color(128,128,255), COLOR_GREEN_SEARCH = new Color(173, 255, 47), - COLOR_DARK_GRAY = new Color(0.3f, 0.3f, 0.3f, 1f); + COLOR_DARK_GRAY = new Color(0.3f, 0.3f, 0.3f, 1f), + COLOR_RED_HIGHLIGHT = new Color(246, 154, 161), + COLOR_BLUE_HIGHLIGHT = new Color(173, 216, 230); /** The default map colors, used when a map does not provide custom colors. */ public static final Color[] DEFAULT_COMBO = { diff --git a/src/itdelatrisu/opsu/audio/MusicController.java b/src/itdelatrisu/opsu/audio/MusicController.java index 8fc58c99..c8de37dd 100644 --- a/src/itdelatrisu/opsu/audio/MusicController.java +++ b/src/itdelatrisu/opsu/audio/MusicController.java @@ -298,8 +298,8 @@ public class MusicController { } /** - * Sets the music pitch. - * @param pitch [0, ..] + * Sets the music pitch (and speed). + * @param pitch */ public static void setPitch(float pitch) { SoundStore.get().setMusicPitch(pitch); diff --git a/src/itdelatrisu/opsu/replay/LifeFrame.java b/src/itdelatrisu/opsu/replay/LifeFrame.java index f53e8745..045075f9 100644 --- a/src/itdelatrisu/opsu/replay/LifeFrame.java +++ b/src/itdelatrisu/opsu/replay/LifeFrame.java @@ -16,13 +16,13 @@ * along with opsu!. If not, see . */ +package itdelatrisu.opsu.replay; + /** * Captures a single life frame. * * @author smoogipooo (https://github.com/smoogipooo/osu-Replay-API/) */ -package itdelatrisu.opsu.replay; - public class LifeFrame { /** Time. */ private int time; diff --git a/src/itdelatrisu/opsu/replay/PlaybackSpeed.java b/src/itdelatrisu/opsu/replay/PlaybackSpeed.java index e8248a9e..707fb26a 100644 --- a/src/itdelatrisu/opsu/replay/PlaybackSpeed.java +++ b/src/itdelatrisu/opsu/replay/PlaybackSpeed.java @@ -1,31 +1,57 @@ +/* + * opsu! - an open-source osu! client + * Copyright (C) 2014, 2015 Jeffrey Han + * + * opsu! is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * opsu! is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with opsu!. If not, see . + */ + package itdelatrisu.opsu.replay; import itdelatrisu.opsu.GameImage; import itdelatrisu.opsu.GameMod; import itdelatrisu.opsu.MenuButton; + import org.newdawn.slick.Image; +/** + * Playback speeds for replays. + * + * @author DarkTigrus (https://github.com/DarkTigrus) + */ public enum PlaybackSpeed { - NORMAL(GameImage.REPLAY_1XPLAYBACK, 1f), - DOUBLE(GameImage.REPLAY_2XPLAYBACK, 2f), - HALF(GameImage.REPLAY_05XPLAYBACK, 0.5f); + NORMAL (GameImage.REPLAY_PLAYBACK_NORMAL, 1f), + DOUBLE (GameImage.REPLAY_PLAYBACK_DOUBLE, 2f), + HALF (GameImage.REPLAY_PLAYBACK_HALF, 0.5f); - /** The file name of the button image. */ + /** The button image. */ private GameImage gameImage; - /** The button of the playback. */ + /** The button. */ private MenuButton button; - /** The speed modifier of the playback. */ + /** The playback speed modifier. */ private float modifier; - PlaybackSpeed(GameImage gameImage, float modifier) { - this.gameImage = gameImage; - this.modifier = modifier; - } + /** Enum values. */ + private static PlaybackSpeed[] values = PlaybackSpeed.values(); + /** + * Initializes the playback buttons. + * @param width the container width + * @param height the container height + */ public static void init(int width, int height) { - // create buttons for (PlaybackSpeed playback : PlaybackSpeed.values()) { Image img = playback.gameImage.getImage(); playback.button = new MenuButton(img, width * 0.98f - (img.getWidth() / 2f), height * 0.25f); @@ -33,18 +59,14 @@ public enum PlaybackSpeed { } } - private static int index = 1; - - public static PlaybackSpeed next() { - PlaybackSpeed next = values()[index++ % values().length]; - if((GameMod.DOUBLE_TIME.isActive() && next == PlaybackSpeed.DOUBLE)) - next = next(); - - return next; - } - - public static void reset() { - index = 1; + /** + * Constructor. + * @param gameImage the button image + * @param modifier the speed modifier + */ + PlaybackSpeed(GameImage gameImage, float modifier) { + this.gameImage = gameImage; + this.modifier = modifier; } /** @@ -58,5 +80,14 @@ public enum PlaybackSpeed { * @return the speed */ public float getModifier() { return modifier; } -} + /** + * Returns the next playback speed. + */ + public PlaybackSpeed next() { + PlaybackSpeed next = values[(this.ordinal() + 1) % values.length]; + if ((GameMod.DOUBLE_TIME.isActive() && next == PlaybackSpeed.DOUBLE)) + next = next.next(); + return next; + } +} diff --git a/src/itdelatrisu/opsu/states/Game.java b/src/itdelatrisu/opsu/states/Game.java index 57156c58..9d513763 100644 --- a/src/itdelatrisu/opsu/states/Game.java +++ b/src/itdelatrisu/opsu/states/Game.java @@ -132,9 +132,6 @@ public class Game extends BasicGameState { /** Skip button (displayed at song start, when necessary). */ private MenuButton skipButton; - /** Playback button (displayed in replays). */ - private MenuButton playbackButton; - /** Current timing point index in timingPoints ArrayList. */ private int timingPointIndex; @@ -215,6 +212,9 @@ public class Game extends BasicGameState { /** Whether or not the cursor should be pressed using the "auto" mod. */ private boolean autoMousePressed; + /** Playback speed (used in replays and "auto" mod). */ + private PlaybackSpeed playbackSpeed; + // game-related variables private GameContainer container; private StateBasedGame game; @@ -465,40 +465,41 @@ public class Game extends BasicGameState { trackPosition = (leadInTime - Options.getMusicOffset()) * -1; // render approach circles during song lead-in // countdown - if (osu.countdown > 0) { // TODO: implement half/double rate settings + if (osu.countdown > 0) { + float speedModifier = GameMod.getSpeedMultiplier() * playbackSpeed.getModifier(); timeDiff = firstObjectTime - trackPosition; - if (timeDiff >= 500 && timeDiff < 3000) { - if (timeDiff >= 1500) { + if (timeDiff >= 500 * speedModifier && timeDiff < 3000 * speedModifier) { + if (timeDiff >= 1500 * speedModifier) { GameImage.COUNTDOWN_READY.getImage().drawCentered(width / 2, height / 2); if (!countdownReadySound) { SoundController.playSound(SoundEffect.READY); countdownReadySound = true; } } - if (timeDiff < 2000) { + if (timeDiff < 2000 * speedModifier) { GameImage.COUNTDOWN_3.getImage().draw(0, 0); if (!countdown3Sound) { SoundController.playSound(SoundEffect.COUNT3); countdown3Sound = true; } } - if (timeDiff < 1500) { + if (timeDiff < 1500 * speedModifier) { GameImage.COUNTDOWN_2.getImage().draw(width - GameImage.COUNTDOWN_2.getImage().getWidth(), 0); if (!countdown2Sound) { SoundController.playSound(SoundEffect.COUNT2); countdown2Sound = true; } } - if (timeDiff < 1000) { + if (timeDiff < 1000 * speedModifier) { GameImage.COUNTDOWN_1.getImage().drawCentered(width / 2, height / 2); if (!countdown1Sound) { SoundController.playSound(SoundEffect.COUNT1); countdown1Sound = true; } } - } else if (timeDiff >= -500 && timeDiff < 500) { + } else if (timeDiff >= -500 * speedModifier && timeDiff < 500 * speedModifier) { Image go = GameImage.COUNTDOWN_GO.getImage(); - go.setAlpha((timeDiff < 0) ? 1 - (timeDiff / -1000f) : 1); + go.setAlpha((timeDiff < 0) ? 1 - (timeDiff / speedModifier / -500f) : 1); go.drawCentered(width / 2, height / 2); if (!countdownGoSound) { SoundController.playSound(SoundEffect.GO); @@ -515,6 +516,10 @@ public class Game extends BasicGameState { if (GameMod.AUTO.isActive()) GameImage.UNRANKED.getImage().drawCentered(width / 2, height * 0.077f); + // draw replay speed button + if (isReplay || GameMod.AUTO.isActive()) + playbackSpeed.getButton().draw(); + // returning from pause screen if (pauseTime > -1 && pausedMouseX > -1 && pausedMouseY > -1) { // darken the screen @@ -531,9 +536,6 @@ public class Game extends BasicGameState { cursorCirclePulse.drawCentered(pausedMouseX, pausedMouseY); } - if (isReplay || GameMod.AUTO.isActive()) - playbackButton.draw(); - if (isReplay) UI.draw(g, replayX, replayY, replayKeyPressed); else if (GameMod.AUTO.isActive()) @@ -552,7 +554,7 @@ public class Game extends BasicGameState { int mouseX = input.getMouseX(), mouseY = input.getMouseY(); skipButton.hoverUpdate(delta, mouseX, mouseY); if (isReplay || GameMod.AUTO.isActive()) - playbackButton.hoverUpdate(delta, mouseX, mouseY); + playbackSpeed.getButton().hoverUpdate(delta, mouseX, mouseY); int trackPosition = MusicController.getPosition(); // returning from pause screen: must click previous mouse position @@ -850,6 +852,7 @@ public class Game extends BasicGameState { // skip to checkpoint MusicController.setPosition(checkpoint); + MusicController.setPitch(GameMod.getSpeedMultiplier() * playbackSpeed.getModifier()); while (objectIndex < hitObjects.length && osu.objects[objectIndex++].getTime() <= checkpoint) ; @@ -882,17 +885,19 @@ public class Game extends BasicGameState { public void mousePressed(int button, int x, int y) { // watching replay if (isReplay || GameMod.AUTO.isActive()) { - // allow skip button - if (button != Input.MOUSE_MIDDLE_BUTTON && skipButton.contains(x, y)) { + if (button == Input.MOUSE_MIDDLE_BUTTON) + return; + + // skip button + if (skipButton.contains(x, y)) skipIntro(); - return; - } - if (button != Input.MOUSE_MIDDLE_BUTTON && playbackButton.contains(x, y)) { - PlaybackSpeed playbackSpeed = PlaybackSpeed.next(); - playbackButton = playbackSpeed.getButton(); + + // playback speed button + else if (playbackSpeed.getButton().contains(x, y)) { + playbackSpeed = playbackSpeed.next(); MusicController.setPitch(GameMod.getSpeedMultiplier() * playbackSpeed.getModifier()); - return; } + return; } @@ -1102,8 +1107,6 @@ public class Game extends BasicGameState { previousMods = GameMod.getModState(); GameMod.loadModState(replay.mods); - PlaybackSpeed.reset(); - // load initial data replayX = container.getWidth() / 2; replayY = container.getHeight() / 2; @@ -1143,7 +1146,8 @@ public class Game extends BasicGameState { skipButton.resetHover(); if (isReplay || GameMod.AUTO.isActive()) - playbackButton.resetHover(); + playbackSpeed.getButton().resetHover(); + MusicController.setPitch(GameMod.getSpeedMultiplier() * playbackSpeed.getModifier()); } @Override @@ -1288,6 +1292,7 @@ public class Game extends BasicGameState { autoMouseY = 0; autoMousePressed = false; flashlightRadius = container.getHeight() * 2 / 3; + playbackSpeed = PlaybackSpeed.NORMAL; System.gc(); } @@ -1305,7 +1310,7 @@ public class Game extends BasicGameState { MusicController.resume(); } MusicController.setPosition(firstObjectTime - SKIP_OFFSET); - MusicController.setPitch(GameMod.getSpeedMultiplier()); + MusicController.setPitch(GameMod.getSpeedMultiplier() * playbackSpeed.getModifier()); replaySkipTime = (isReplay) ? -1 : trackPosition; if (isReplay) { replayX = (int) skipButton.getX(); @@ -1343,9 +1348,6 @@ public class Game extends BasicGameState { } skipButton.setHoverExpand(1.1f, MenuButton.Expand.UP_LEFT); - if (isReplay || GameMod.AUTO.isActive()) - playbackButton = PlaybackSpeed.NORMAL.getButton(); - // load other images... ((GamePauseMenu) game.getState(Opsu.STATE_GAMEPAUSEMENU)).loadImages(); data.loadImages(); diff --git a/src/itdelatrisu/opsu/states/SongMenu.java b/src/itdelatrisu/opsu/states/SongMenu.java index ed2cace2..b9151f78 100644 --- a/src/itdelatrisu/opsu/states/SongMenu.java +++ b/src/itdelatrisu/opsu/states/SongMenu.java @@ -337,7 +337,11 @@ public class SongMenu extends BasicGameState { // song info text if (songInfo == null) { - songInfo = getSongInfo(); + songInfo = focusNode.getInfo(); + if (Options.useUnicodeMetadata()) { // load glyphs + OsuFile osu = focusNode.osuFiles.get(0); + Utils.loadGlyphs(Utils.FONT_LARGE, osu.titleUnicode, osu.artistUnicode); + } } marginX += 5; float headerTextY = marginY; @@ -345,8 +349,10 @@ public class SongMenu extends BasicGameState { headerTextY += Utils.FONT_LARGE.getLineHeight() - 8; Utils.FONT_DEFAULT.drawString(marginX + iconWidth * 1.05f, headerTextY, songInfo[1], Color.white); headerTextY += Utils.FONT_DEFAULT.getLineHeight() - 2; - Utils.FONT_BOLD.drawString(marginX, headerTextY, songInfo[2], - (GameMod.DOUBLE_TIME.isActive()) ? Color.red : (GameMod.HALF_TIME.isActive()) ? Color.green : Color.white); + float speedModifier = GameMod.getSpeedMultiplier(); + Color color2 = (speedModifier == 1f) ? Color.white : + (speedModifier > 1f) ? Utils.COLOR_RED_HIGHLIGHT : Utils.COLOR_BLUE_HIGHLIGHT; + Utils.FONT_BOLD.drawString(marginX, headerTextY, songInfo[2], color2); headerTextY += Utils.FONT_BOLD.getLineHeight() - 4; Utils.FONT_DEFAULT.drawString(marginX, headerTextY, songInfo[3], Color.white); headerTextY += Utils.FONT_DEFAULT.getLineHeight() - 4; @@ -934,6 +940,7 @@ public class SongMenu extends BasicGameState { startScore = 0; beatmapMenuTimer = -1; searchTransitionTimer = SEARCH_TRANSITION_TIME; + songInfo = null; // reset song stack randomStack = new Stack(); @@ -979,9 +986,6 @@ public class SongMenu extends BasicGameState { resetGame = false; } - // load song info - songInfo = getSongInfo(); - // state-based action if (stateAction != null) { switch (stateAction) { @@ -1302,20 +1306,6 @@ public class SongMenu extends BasicGameState { return null; // incorrect map } - /** - * Returns an array of strings containing song information. - * @return the String array - */ - private String[] getSongInfo () { - songInfo = focusNode.getInfo(); - if (Options.useUnicodeMetadata()) { // load glyphs - OsuFile osu = focusNode.osuFiles.get(0); - Utils.loadGlyphs(Utils.FONT_LARGE, osu.titleUnicode, osu.artistUnicode); - } - return songInfo; - } - - /** * Starts the game. */ From 07075c094b3e8e70bf12a73f8bc5ddd264482354 Mon Sep 17 00:00:00 2001 From: Jeffrey Han Date: Sat, 4 Apr 2015 12:30:23 -0400 Subject: [PATCH 06/59] Mod difficulty multipliers are now reflected in displayed song info. Signed-off-by: Jeffrey Han --- src/itdelatrisu/opsu/GameMod.java | 32 ++++++++++++++++++----- src/itdelatrisu/opsu/OsuGroupNode.java | 9 ++++--- src/itdelatrisu/opsu/states/Game.java | 25 ++++-------------- src/itdelatrisu/opsu/states/SongMenu.java | 5 +++- 4 files changed, 40 insertions(+), 31 deletions(-) diff --git a/src/itdelatrisu/opsu/GameMod.java b/src/itdelatrisu/opsu/GameMod.java index 5440bb2e..74c4608c 100644 --- a/src/itdelatrisu/opsu/GameMod.java +++ b/src/itdelatrisu/opsu/GameMod.java @@ -176,6 +176,9 @@ public enum GameMod { /** The last calculated track speed multiplier, or -1f if it must be recalculated. */ private static float speedMultiplier = -1f; + /** The last calculated difficulty multiplier, or -1f if it must be recalculated. */ + private static float difficultyMultiplier = -1f; + /** * Initializes the game mods. * @param width the container width @@ -201,7 +204,7 @@ public enum GameMod { mod.active = false; } - scoreMultiplier = speedMultiplier = -1f; + scoreMultiplier = speedMultiplier = difficultyMultiplier = -1f; } /** @@ -224,16 +227,31 @@ public enum GameMod { */ public static float getSpeedMultiplier() { if (speedMultiplier < 0f) { - float multiplier = 1f; if (DOUBLE_TIME.isActive()) - multiplier = 1.5f; + speedMultiplier = 1.5f; else if (HALF_TIME.isActive()) - multiplier = 0.75f; - speedMultiplier = multiplier; + speedMultiplier = 0.75f; + else + speedMultiplier = 1f; } return speedMultiplier; } + /** + * Returns the current difficulty multiplier from all active mods. + */ + public static float getDifficultyMultiplier() { + if (difficultyMultiplier < 0f) { + if (HARD_ROCK.isActive()) + difficultyMultiplier = 1.4f; + else if (EASY.isActive()) + difficultyMultiplier = 0.5f; + else + difficultyMultiplier = 1f; + } + return difficultyMultiplier; + } + /** * Returns the current game mod state (bitwise OR of active mods). */ @@ -251,7 +269,7 @@ public enum GameMod { * @param state the state (bitwise OR of active mods) */ public static void loadModState(int state) { - scoreMultiplier = speedMultiplier = -1f; + scoreMultiplier = speedMultiplier = difficultyMultiplier = -1f; for (GameMod mod : GameMod.values()) mod.active = ((state & mod.getBit()) > 0); } @@ -371,7 +389,7 @@ public enum GameMod { return; active = !active; - scoreMultiplier = speedMultiplier = -1f; + scoreMultiplier = speedMultiplier = difficultyMultiplier = -1f; if (checkInverse) { if (AUTO.isActive()) { diff --git a/src/itdelatrisu/opsu/OsuGroupNode.java b/src/itdelatrisu/opsu/OsuGroupNode.java index 07058c64..9988f1de 100644 --- a/src/itdelatrisu/opsu/OsuGroupNode.java +++ b/src/itdelatrisu/opsu/OsuGroupNode.java @@ -122,10 +122,10 @@ public class OsuGroupNode { long endTime = (long) (osu.endTime / speedModifier); int bpmMin = (int) (osu.bpmMin * speedModifier); int bpmMax = (int) (osu.bpmMax * speedModifier); + float multiplier = GameMod.getDifficultyMultiplier(); String[] info = new String[5]; info[0] = osu.toString(); - info[1] = String.format("Mapped by %s", - osu.creator); + info[1] = String.format("Mapped by %s", osu.creator); info[2] = String.format("Length: %d:%02d BPM: %s Objects: %d", TimeUnit.MILLISECONDS.toMinutes(endTime), TimeUnit.MILLISECONDS.toSeconds(endTime) - @@ -135,7 +135,10 @@ public class OsuGroupNode { info[3] = String.format("Circles: %d Sliders: %d Spinners: %d", osu.hitObjectCircle, osu.hitObjectSlider, osu.hitObjectSpinner); info[4] = String.format("CS:%.1f HP:%.1f AR:%.1f OD:%.1f", - osu.circleSize, osu.HPDrainRate, osu.approachRate, osu.overallDifficulty); + Math.min(osu.circleSize * multiplier, 10f), + Math.min(osu.HPDrainRate * multiplier, 10f), + Math.min(osu.approachRate * multiplier, 10f), + Math.min(osu.overallDifficulty * multiplier, 10f)); return info; } diff --git a/src/itdelatrisu/opsu/states/Game.java b/src/itdelatrisu/opsu/states/Game.java index 9d513763..1e052b7c 100644 --- a/src/itdelatrisu/opsu/states/Game.java +++ b/src/itdelatrisu/opsu/states/Game.java @@ -1358,26 +1358,11 @@ public class Game extends BasicGameState { */ private void setMapModifiers() { // map-based properties, re-initialized each game - float circleSize = osu.circleSize; - float approachRate = osu.approachRate; - float overallDifficulty = osu.overallDifficulty; - float HPDrainRate = osu.HPDrainRate; - - // "Hard Rock" modifiers - if (GameMod.HARD_ROCK.isActive()) { - circleSize = Math.min(circleSize * 1.4f, 10); - approachRate = Math.min(approachRate * 1.4f, 10); - overallDifficulty = Math.min(overallDifficulty * 1.4f, 10); - HPDrainRate = Math.min(HPDrainRate * 1.4f, 10); - } - - // "Easy" modifiers - else if (GameMod.EASY.isActive()) { - circleSize /= 2f; - approachRate /= 2f; - overallDifficulty /= 2f; - HPDrainRate /= 2f; - } + float multiplier = GameMod.getDifficultyMultiplier(); + float circleSize = Math.min(osu.circleSize * multiplier, 10f); + float approachRate = Math.min(osu.approachRate * multiplier, 10f); + float overallDifficulty = Math.min(osu.overallDifficulty * multiplier, 10f); + float HPDrainRate = Math.min(osu.HPDrainRate * multiplier, 10f); // fixed difficulty overrides if (Options.getFixedCS() > 0f) diff --git a/src/itdelatrisu/opsu/states/SongMenu.java b/src/itdelatrisu/opsu/states/SongMenu.java index b9151f78..03b23627 100644 --- a/src/itdelatrisu/opsu/states/SongMenu.java +++ b/src/itdelatrisu/opsu/states/SongMenu.java @@ -356,7 +356,10 @@ public class SongMenu extends BasicGameState { headerTextY += Utils.FONT_BOLD.getLineHeight() - 4; Utils.FONT_DEFAULT.drawString(marginX, headerTextY, songInfo[3], Color.white); headerTextY += Utils.FONT_DEFAULT.getLineHeight() - 4; - Utils.FONT_SMALL.drawString(marginX, headerTextY, songInfo[4], Color.white); + float multiplier = GameMod.getDifficultyMultiplier(); + Color color4 = (multiplier == 1f) ? Color.white : + (multiplier > 1f) ? Utils.COLOR_RED_HIGHLIGHT : Utils.COLOR_BLUE_HIGHLIGHT; + Utils.FONT_SMALL.drawString(marginX, headerTextY, songInfo[4], color4); } // score buttons From 87e68bd4948eac663da76247db84865975ee16bc Mon Sep 17 00:00:00 2001 From: Drew Lemmy Date: Mon, 6 Apr 2015 23:08:49 +0100 Subject: [PATCH 07/59] Added hit animations, updated lighting & added InteliJ to gitignore --- .gitignore | 5 +++++ res/lighting.png | Bin 10232 -> 39980 bytes res/lighting1.png | Bin 13211 -> 0 bytes src/itdelatrisu/opsu/GameData.java | 28 ++++++++++++++++++---------- src/itdelatrisu/opsu/GameImage.java | 1 - 5 files changed, 23 insertions(+), 11 deletions(-) delete mode 100644 res/lighting1.png diff --git a/.gitignore b/.gitignore index 172616ad..1773d9fe 100644 --- a/.gitignore +++ b/.gitignore @@ -15,5 +15,10 @@ .classpath .project +# IntelliJ +.idea/ +*.iml +*.iws + Thumbs.db /target diff --git a/res/lighting.png b/res/lighting.png index 85e22fdc75e461a02b4d41d076cfaaa17ae6ca16..870d6c17912f6d3532a82c21eeb6c9e930ef3234 100644 GIT binary patch literal 39980 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 M07*qoM6N<$g0H$Wn*aa+ literal 10232 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 C17_3! diff --git a/src/itdelatrisu/opsu/GameData.java b/src/itdelatrisu/opsu/GameData.java index 254c25ac..ee85b9a4 100644 --- a/src/itdelatrisu/opsu/GameData.java +++ b/src/itdelatrisu/opsu/GameData.java @@ -47,6 +47,9 @@ public class GameData { /** Time, in milliseconds, for a hit result to fade. */ public static final int HITRESULT_FADE_TIME = 500; + /** Time, in milliseconds, for a hit circle to fade. */ + public static final int HITCIRCLE_FADE_TIME = 233; + /** Duration, in milliseconds, of a combo pop effect. */ private static final int COMBO_POP_TIME = 250; @@ -839,18 +842,23 @@ public class GameData { // hit lighting else if (Options.isHitLightingEnabled() && hitResult.result != HIT_MISS && hitResult.result != HIT_SLIDER30 && hitResult.result != HIT_SLIDER10) { - float scale = 1f + ((trackPosition - hitResult.time) / (float) HITRESULT_FADE_TIME); - Image scaledLighting = GameImage.LIGHTING.getImage().getScaledCopy(scale); - Image scaledLighting1 = GameImage.LIGHTING1.getImage().getScaledCopy(scale); - scaledLighting.setAlpha(hitResult.alpha); - scaledLighting1.setAlpha(hitResult.alpha); - - scaledLighting.draw(hitResult.x - (scaledLighting.getWidth() / 2f), - hitResult.y - (scaledLighting.getHeight() / 2f), hitResult.color); - scaledLighting1.draw(hitResult.x - (scaledLighting1.getWidth() / 2f), - hitResult.y - (scaledLighting1.getHeight() / 2f), hitResult.color); + // soon add particle system to reflect original game + Image lighting = GameImage.LIGHTING.getImage(); + lighting.setAlpha(hitResult.alpha); + lighting.drawCentered(hitResult.x, hitResult.y, hitResult.color); } + // hit animation + Image scaledHitCircle = GameImage.HITCIRCLE.getImage().getScaledCopy( + 1f + (((float)(trackPosition - hitResult.time) / HITCIRCLE_FADE_TIME) / 2)); + scaledHitCircle.setAlpha(1f - Utils.clamp((float)(trackPosition - hitResult.time) / HITCIRCLE_FADE_TIME, 0, 1)); + Image scaledHitCircleOverlay = GameImage.HITCIRCLE_OVERLAY.getImage().getScaledCopy( + 1f + (((float)(trackPosition - hitResult.time) / HITCIRCLE_FADE_TIME) / 2)); + scaledHitCircleOverlay.setAlpha(1f - Utils.clamp((float) (trackPosition - hitResult.time) / HITCIRCLE_FADE_TIME, 0, 1)); + + scaledHitCircle.drawCentered(hitResult.x, hitResult.y, hitResult.color); + scaledHitCircleOverlay.drawCentered(hitResult.x, hitResult.y); + hitResult.alpha = 1 - ((float) (trackPosition - hitResult.time) / HITRESULT_FADE_TIME); } else iter.remove(); diff --git a/src/itdelatrisu/opsu/GameImage.java b/src/itdelatrisu/opsu/GameImage.java index 5f7657a1..ae4cba70 100644 --- a/src/itdelatrisu/opsu/GameImage.java +++ b/src/itdelatrisu/opsu/GameImage.java @@ -202,7 +202,6 @@ public enum GameImage { SCORE_PERCENT ("score-percent", "png"), SCORE_X ("score-x", "png"), LIGHTING ("lighting", "png"), - LIGHTING1 ("lighting1", "png"), // Game Mods MOD_EASY ("selection-mod-easy", "png", false, false), From 9a2772b6148ed25596d6ab313213f2603e5b4ea8 Mon Sep 17 00:00:00 2001 From: Drew Lemmy Date: Mon, 6 Apr 2015 23:12:36 +0100 Subject: [PATCH 08/59] Moved hit result to be drawn after lighting --- src/itdelatrisu/opsu/GameData.java | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/src/itdelatrisu/opsu/GameData.java b/src/itdelatrisu/opsu/GameData.java index ee85b9a4..a8a41e7b 100644 --- a/src/itdelatrisu/opsu/GameData.java +++ b/src/itdelatrisu/opsu/GameData.java @@ -826,11 +826,6 @@ public class GameData { while (iter.hasNext()) { OsuHitObjectResult hitResult = iter.next(); if (hitResult.time + HITRESULT_FADE_TIME > trackPosition) { - // hit result - hitResults[hitResult.result].setAlpha(hitResult.alpha); - hitResults[hitResult.result].drawCentered(hitResult.x, hitResult.y); - hitResults[hitResult.result].setAlpha(1f); - // spinner if (hitResult.isSpinner && hitResult.result != HIT_MISS) { Image spinnerOsu = GameImage.SPINNER_OSU.getImage(); @@ -847,6 +842,11 @@ public class GameData { lighting.setAlpha(hitResult.alpha); lighting.drawCentered(hitResult.x, hitResult.y, hitResult.color); } + + // hit result + hitResults[hitResult.result].setAlpha(hitResult.alpha); + hitResults[hitResult.result].drawCentered(hitResult.x, hitResult.y); + hitResults[hitResult.result].setAlpha(1f); // hit animation Image scaledHitCircle = GameImage.HITCIRCLE.getImage().getScaledCopy( From c3bca9a39ed00e75fb00f824c19e7e90ca718ef1 Mon Sep 17 00:00:00 2001 From: Drew Lemmy Date: Tue, 7 Apr 2015 03:00:14 +0100 Subject: [PATCH 09/59] Changed lighting texture --- res/lighting.png | Bin 39980 -> 22878 bytes src/itdelatrisu/opsu/GameData.java | 2 +- 2 files changed, 1 insertion(+), 1 deletion(-) diff --git a/res/lighting.png b/res/lighting.png index 870d6c17912f6d3532a82c21eeb6c9e930ef3234..01d9794c9bd3b0f36b643beb2b106edab899fc97 100644 GIT binary patch literal 22878 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 jC*?=kP|{>5f`UZ${r~_ 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 M07*qoM6N<$g0H$Wn*aa+ diff --git a/src/itdelatrisu/opsu/GameData.java b/src/itdelatrisu/opsu/GameData.java index a8a41e7b..57c037d6 100644 --- a/src/itdelatrisu/opsu/GameData.java +++ b/src/itdelatrisu/opsu/GameData.java @@ -842,7 +842,7 @@ public class GameData { lighting.setAlpha(hitResult.alpha); lighting.drawCentered(hitResult.x, hitResult.y, hitResult.color); } - + // hit result hitResults[hitResult.result].setAlpha(hitResult.alpha); hitResults[hitResult.result].drawCentered(hitResult.x, hitResult.y); From 8e8fda7e58176b70582e32c70e414f2b524679b8 Mon Sep 17 00:00:00 2001 From: Drew Lemmy Date: Tue, 7 Apr 2015 06:24:09 +0100 Subject: [PATCH 10/59] Added pretty much everything suggested to hit animations --- src/itdelatrisu/opsu/GameData.java | 94 ++++++++++++++----- src/itdelatrisu/opsu/Utils.java | 10 ++ src/itdelatrisu/opsu/objects/Circle.java | 8 +- .../opsu/objects/HitResultType.java | 10 ++ src/itdelatrisu/opsu/objects/Slider.java | 15 ++- src/itdelatrisu/opsu/objects/Spinner.java | 2 +- 6 files changed, 103 insertions(+), 36 deletions(-) create mode 100644 src/itdelatrisu/opsu/objects/HitResultType.java diff --git a/src/itdelatrisu/opsu/GameData.java b/src/itdelatrisu/opsu/GameData.java index 57c037d6..4bcf47dc 100644 --- a/src/itdelatrisu/opsu/GameData.java +++ b/src/itdelatrisu/opsu/GameData.java @@ -23,6 +23,7 @@ import itdelatrisu.opsu.audio.MusicController; import itdelatrisu.opsu.audio.SoundController; import itdelatrisu.opsu.audio.SoundEffect; import itdelatrisu.opsu.downloads.Updater; +import itdelatrisu.opsu.objects.HitResultType; import itdelatrisu.opsu.replay.Replay; import itdelatrisu.opsu.replay.ReplayFrame; @@ -48,7 +49,7 @@ public class GameData { public static final int HITRESULT_FADE_TIME = 500; /** Time, in milliseconds, for a hit circle to fade. */ - public static final int HITCIRCLE_FADE_TIME = 233; + public static final int HITCIRCLE_FADE_TIME = 300; /** Duration, in milliseconds, of a combo pop effect. */ private static final int COMBO_POP_TIME = 250; @@ -56,6 +57,18 @@ public class GameData { /** Time, in milliseconds, for a hit error tick to fade. */ private static final int HIT_ERROR_FADE_TIME = 5000; + /** Size of a hit circle at the end of the hit animation. */ + private static final float HITCIRCLE_ANIM_SCALE = 1.38f; + + /** Size of the hit result text at the end of its animation. */ + private static final float HITCIRCLE_TEXT_ANIM_SCALE = 1.28f; + + /** Time, in milliseconds, for the hit result text to bounce. */ + private static final int HITCIRCLE_TEXT_BOUNCE_TIME = 100; + + /** Time, in milliseconds, for the hit result text to fade. */ + private static final int HITCIRCLE_TEXT_FADE_TIME = 833; + /** Letter grades. */ public enum Grade { NULL (null, null), @@ -224,8 +237,8 @@ public class GameData { /** Combo color. */ public Color color; - /** Whether the hit object was a spinner. */ - public boolean isSpinner; + /** The type of the hit object. */ + public HitResultType hitResultType; /** Alpha level (for fading out). */ public float alpha = 1f; @@ -237,15 +250,15 @@ public class GameData { * @param x the center x coordinate * @param y the center y coordinate * @param color the color of the hit object - * @param isSpinner whether the hit object was a spinner + * @param hitResultType the type of the hit object */ - public OsuHitObjectResult(int time, int result, float x, float y, Color color, boolean isSpinner) { + public OsuHitObjectResult(int time, int result, float x, float y, Color color, HitResultType hitResultType) { this.time = time; this.result = result; this.x = x; this.y = y; this.color = color; - this.isSpinner = isSpinner; + this.hitResultType = hitResultType; } } @@ -827,7 +840,7 @@ public class GameData { OsuHitObjectResult hitResult = iter.next(); if (hitResult.time + HITRESULT_FADE_TIME > trackPosition) { // spinner - if (hitResult.isSpinner && hitResult.result != HIT_MISS) { + if (hitResult.hitResultType == HitResultType.SPINNER && hitResult.result != HIT_MISS) { Image spinnerOsu = GameImage.SPINNER_OSU.getImage(); spinnerOsu.setAlpha(hitResult.alpha); spinnerOsu.drawCentered(width / 2, height / 4); @@ -843,21 +856,55 @@ public class GameData { lighting.drawCentered(hitResult.x, hitResult.y, hitResult.color); } - // hit result - hitResults[hitResult.result].setAlpha(hitResult.alpha); - hitResults[hitResult.result].drawCentered(hitResult.x, hitResult.y); - hitResults[hitResult.result].setAlpha(1f); - // hit animation - Image scaledHitCircle = GameImage.HITCIRCLE.getImage().getScaledCopy( - 1f + (((float)(trackPosition - hitResult.time) / HITCIRCLE_FADE_TIME) / 2)); - scaledHitCircle.setAlpha(1f - Utils.clamp((float)(trackPosition - hitResult.time) / HITCIRCLE_FADE_TIME, 0, 1)); - Image scaledHitCircleOverlay = GameImage.HITCIRCLE_OVERLAY.getImage().getScaledCopy( - 1f + (((float)(trackPosition - hitResult.time) / HITCIRCLE_FADE_TIME) / 2)); - scaledHitCircleOverlay.setAlpha(1f - Utils.clamp((float) (trackPosition - hitResult.time) / HITCIRCLE_FADE_TIME, 0, 1)); + if (hitResult.hitResultType == HitResultType.CIRCLE + || hitResult.hitResultType == HitResultType.SLIDEREND + || hitResult.hitResultType == HitResultType.SLIDEREND_FIRSTOBJECT) { + float scale = Utils.easeOut( + Utils.clamp(trackPosition - hitResult.time, 0, HITCIRCLE_FADE_TIME), + 1f, + HITCIRCLE_ANIM_SCALE-1f, + HITCIRCLE_FADE_TIME + ); - scaledHitCircle.drawCentered(hitResult.x, hitResult.y, hitResult.color); - scaledHitCircleOverlay.drawCentered(hitResult.x, hitResult.y); + float alpha = Utils.easeOut( + Utils.clamp(trackPosition - hitResult.time, 0, HITCIRCLE_FADE_TIME), + 1f, + -1f, + HITCIRCLE_FADE_TIME + ); + + Image scaledHitCircle = GameImage.HITCIRCLE.getImage().getScaledCopy(scale); + scaledHitCircle.setAlpha(alpha); + Image scaledHitCircleOverlay = GameImage.HITCIRCLE_OVERLAY.getImage().getScaledCopy(scale); + scaledHitCircleOverlay.setAlpha(alpha); + + scaledHitCircle.drawCentered(hitResult.x, hitResult.y, hitResult.color); + scaledHitCircleOverlay.drawCentered(hitResult.x, hitResult.y); + } + + // hit result + if (hitResult.hitResultType == HitResultType.CIRCLE + || hitResult.hitResultType == HitResultType.SLIDEREND + || hitResult.hitResultType == HitResultType.SPINNER) { + float scale = Utils.easeBounce( + Utils.clamp(trackPosition - hitResult.time, 0, HITCIRCLE_TEXT_BOUNCE_TIME), + 1f, + HITCIRCLE_TEXT_ANIM_SCALE - 1f, + HITCIRCLE_TEXT_BOUNCE_TIME + ); + + float alpha = Utils.easeOut( + Utils.clamp((trackPosition - hitResult.time) - HITCIRCLE_FADE_TIME, 0, HITCIRCLE_TEXT_FADE_TIME), + 1f, + -1f, + HITCIRCLE_TEXT_FADE_TIME + ); + + Image scaledHitResult = hitResults[hitResult.result].getScaledCopy(scale); + scaledHitResult.setAlpha(alpha); + scaledHitResult.drawCentered(hitResult.x, hitResult.y); + } hitResult.alpha = 1 - ((float) (trackPosition - hitResult.time) / HITRESULT_FADE_TIME); } else @@ -1123,7 +1170,7 @@ public class GameData { if (!Options.isPerfectHitBurstEnabled()) ; // hide perfect hit results else - hitResultList.add(new OsuHitObjectResult(time, result, x, y, null, false)); + hitResultList.add(new OsuHitObjectResult(time, result, x, y, null, HitResultType.SLIDERTICK)); } } @@ -1137,9 +1184,10 @@ public class GameData { * @param end true if this is the last hit object in the combo * @param hitObject the hit object * @param repeat the current repeat number (for sliders, or 0 otherwise) + * @param hitResultType the type of hit object for the result */ public void hitResult(int time, int result, float x, float y, Color color, - boolean end, OsuHitObject hitObject, int repeat) { + boolean end, OsuHitObject hitObject, int repeat, HitResultType hitResultType) { int hitValue = 0; boolean perfectHit = false; switch (result) { @@ -1210,7 +1258,7 @@ public class GameData { else if (result == HIT_MISS && (GameMod.RELAX.isActive() || GameMod.AUTOPILOT.isActive())) ; // "relax" and "autopilot" mods: hide misses else - hitResultList.add(new OsuHitObjectResult(time, result, x, y, color, hitObject.isSpinner())); + hitResultList.add(new OsuHitObjectResult(time, result, x, y, color, hitResultType)); } /** diff --git a/src/itdelatrisu/opsu/Utils.java b/src/itdelatrisu/opsu/Utils.java index 6c13aec9..65678e55 100644 --- a/src/itdelatrisu/opsu/Utils.java +++ b/src/itdelatrisu/opsu/Utils.java @@ -607,4 +607,14 @@ public class Utils { else return String.format("%02d:%02d:%02d", seconds / 3600, (seconds / 60) % 60, seconds % 60); } + + public static float easeOut(float t, float a, float b, float d) { + return b * ((t = t / d - 1f) * t * t + 1f) + a; + } + + public static float easeBounce(float t, float a, float b, float d) { + if (t < d / 2) + return easeOut(t, a, b, d); + return easeOut(d-t, a, b, d); + } } diff --git a/src/itdelatrisu/opsu/objects/Circle.java b/src/itdelatrisu/opsu/objects/Circle.java index 6380078c..c8ee6c1b 100644 --- a/src/itdelatrisu/opsu/objects/Circle.java +++ b/src/itdelatrisu/opsu/objects/Circle.java @@ -138,7 +138,7 @@ public class Circle implements HitObject { if (result > -1) { data.addHitError(hitObject.getTime(), x, y, timeDiff); - data.hitResult(hitObject.getTime(), result, this.x, this.y, color, comboEnd, hitObject, 0); + data.hitResult(hitObject.getTime(), result, this.x, this.y, color, comboEnd, hitObject, 0, HitResultType.CIRCLE); return true; } } @@ -154,17 +154,17 @@ public class Circle implements HitObject { if (overlap || trackPosition > time + hitResultOffset[GameData.HIT_50]) { if (isAutoMod) // "auto" mod: catch any missed notes due to lag - data.hitResult(time, GameData.HIT_300, x, y, color, comboEnd, hitObject, 0); + data.hitResult(time, GameData.HIT_300, x, y, color, comboEnd, hitObject, 0, HitResultType.CIRCLE); else // no more points can be scored, so send a miss - data.hitResult(time, GameData.HIT_MISS, x, y, null, comboEnd, hitObject, 0); + data.hitResult(time, GameData.HIT_MISS, x, y, null, comboEnd, hitObject, 0, HitResultType.CIRCLE); return true; } // "auto" mod: send a perfect hit result else if (isAutoMod) { if (Math.abs(trackPosition - time) < hitResultOffset[GameData.HIT_300]) { - data.hitResult(time, GameData.HIT_300, x, y, color, comboEnd, hitObject, 0); + data.hitResult(time, GameData.HIT_300, x, y, color, comboEnd, hitObject, 0, HitResultType.CIRCLE); return true; } } diff --git a/src/itdelatrisu/opsu/objects/HitResultType.java b/src/itdelatrisu/opsu/objects/HitResultType.java new file mode 100644 index 00000000..3dea7458 --- /dev/null +++ b/src/itdelatrisu/opsu/objects/HitResultType.java @@ -0,0 +1,10 @@ +package itdelatrisu.opsu.objects; + +public enum HitResultType { + CIRCLE, + SLIDERSTART, + SLIDERTICK, + SLIDEREND, + SLIDEREND_FIRSTOBJECT, + SPINNER +} diff --git a/src/itdelatrisu/opsu/objects/Slider.java b/src/itdelatrisu/opsu/objects/Slider.java index 646e8c12..0d470a08 100644 --- a/src/itdelatrisu/opsu/objects/Slider.java +++ b/src/itdelatrisu/opsu/objects/Slider.java @@ -278,14 +278,13 @@ public class Slider implements HitObject { else result = GameData.HIT_MISS; - if (currentRepeats % 2 == 0) { // last circle - float[] lastPos = curve.pointAt(1); - data.hitResult(hitObject.getTime() + (int) sliderTimeTotal, result, - lastPos[0], lastPos[1], color, comboEnd, hitObject, currentRepeats + 1); - } else { // first circle - data.hitResult(hitObject.getTime() + (int) sliderTimeTotal, result, - x, y, color, comboEnd, hitObject, currentRepeats + 1); - } + float[] lastPos = curve.pointAt(1); + data.hitResult(hitObject.getTime() + (int) sliderTimeTotal, result, + x, y, color, comboEnd, hitObject, currentRepeats + 1, + currentRepeats % 2 == 0 ? HitResultType.SLIDEREND_FIRSTOBJECT : HitResultType.SLIDEREND); + data.hitResult(hitObject.getTime() + (int) sliderTimeTotal, result, + lastPos[0], lastPos[1], color, comboEnd, hitObject, currentRepeats + 1, + currentRepeats % 2 == 0 ? HitResultType.SLIDEREND : HitResultType.SLIDEREND_FIRSTOBJECT); return result; } diff --git a/src/itdelatrisu/opsu/objects/Spinner.java b/src/itdelatrisu/opsu/objects/Spinner.java index 1200418a..1cc6e290 100644 --- a/src/itdelatrisu/opsu/objects/Spinner.java +++ b/src/itdelatrisu/opsu/objects/Spinner.java @@ -191,7 +191,7 @@ public class Spinner implements HitObject { result = GameData.HIT_MISS; data.hitResult(hitObject.getEndTime(), result, width / 2, height / 2, - Color.transparent, true, hitObject, 0); + Color.transparent, true, hitObject, 0, HitResultType.SPINNER); return result; } From 792b511a46a55913c1b8c0ef0ecc3ecac3f6b337 Mon Sep 17 00:00:00 2001 From: Drew Lemmy Date: Tue, 7 Apr 2015 13:13:43 +0100 Subject: [PATCH 11/59] Added slider fading to hit animations --- src/itdelatrisu/opsu/GameData.java | 89 ++++++++++++++++++- src/itdelatrisu/opsu/objects/Slider.java | 2 +- .../opsu/objects/curves/Curve.java | 6 +- 3 files changed, 90 insertions(+), 7 deletions(-) diff --git a/src/itdelatrisu/opsu/GameData.java b/src/itdelatrisu/opsu/GameData.java index 4bcf47dc..1e644ec0 100644 --- a/src/itdelatrisu/opsu/GameData.java +++ b/src/itdelatrisu/opsu/GameData.java @@ -24,6 +24,7 @@ import itdelatrisu.opsu.audio.SoundController; import itdelatrisu.opsu.audio.SoundEffect; import itdelatrisu.opsu.downloads.Updater; import itdelatrisu.opsu.objects.HitResultType; +import itdelatrisu.opsu.objects.curves.Curve; import itdelatrisu.opsu.replay.Replay; import itdelatrisu.opsu.replay.ReplayFrame; @@ -45,6 +46,9 @@ public class GameData { /** Delta multiplier for steady HP drain. */ public static final float HP_DRAIN_MULTIPLIER = 1 / 200f; + /** Time, in milliseconds, for a hit result to remain existent. */ + public static final int HITRESULT_TIME = 833; + /** Time, in milliseconds, for a hit result to fade. */ public static final int HITRESULT_FADE_TIME = 500; @@ -243,6 +247,9 @@ public class GameData { /** Alpha level (for fading out). */ public float alpha = 1f; + /** Slider curve. */ + public Curve curve; + /** * Constructor. * @param time the result's starting track position @@ -260,6 +267,25 @@ public class GameData { this.color = color; this.hitResultType = hitResultType; } + + /** + * Constructor. + * @param time the result's starting track position + * @param result the hit result (HIT_* constants) + * @param x the center x coordinate + * @param y the center y coordinate + * @param color the color of the hit object + * @param curve the slider curve + */ + public OsuHitObjectResult(int time, int result, float x, float y, Color color, HitResultType hitResultType, Curve curve) { + this.time = time; + this.result = result; + this.x = x; + this.y = y; + this.color = color; + this.hitResultType = hitResultType; + this.curve = curve; + } } /** Current game score. */ @@ -838,7 +864,7 @@ public class GameData { Iterator iter = hitResultList.iterator(); while (iter.hasNext()) { OsuHitObjectResult hitResult = iter.next(); - if (hitResult.time + HITRESULT_FADE_TIME > trackPosition) { + if (hitResult.time + HITRESULT_TIME > trackPosition) { // spinner if (hitResult.hitResultType == HitResultType.SPINNER && hitResult.result != HIT_MISS) { Image spinnerOsu = GameImage.SPINNER_OSU.getImage(); @@ -874,6 +900,17 @@ public class GameData { HITCIRCLE_FADE_TIME ); + if (hitResult.curve != null) { + float oldAlpha = Utils.COLOR_WHITE_FADE.a; + + Curve curve = hitResult.curve; + Utils.COLOR_WHITE_FADE.a = alpha; + curve.color.a = alpha; + curve.draw(); + + Utils.COLOR_WHITE_FADE.a = oldAlpha; + } + Image scaledHitCircle = GameImage.HITCIRCLE.getImage().getScaledCopy(scale); scaledHitCircle.setAlpha(alpha); Image scaledHitCircleOverlay = GameImage.HITCIRCLE_OVERLAY.getImage().getScaledCopy(scale); @@ -1185,8 +1222,9 @@ public class GameData { * @param hitObject the hit object * @param repeat the current repeat number (for sliders, or 0 otherwise) * @param hitResultType the type of hit object for the result + * @return was this a perfect hit? */ - public void hitResult(int time, int result, float x, float y, Color color, + private boolean hitRes(int time, int result, float x, float y, Color color, boolean end, OsuHitObject hitObject, int repeat, HitResultType hitResultType) { int hitValue = 0; boolean perfectHit = false; @@ -1208,11 +1246,12 @@ public class GameData { case HIT_MISS: hitValue = 0; changeHealth(-10f); + changeHealth(-10f); comboEnd |= 2; resetComboStreak(); break; default: - return; + return false; } if (hitValue > 0) { SoundController.playHitSound( @@ -1253,6 +1292,25 @@ public class GameData { comboEnd = 0; } + return perfectHit; + } + + /** + * Handles a hit result. + * @param time the object start time + * @param result the hit result (HIT_* constants) + * @param x the x coordinate + * @param y the y coordinate + * @param color the combo color + * @param end true if this is the last hit object in the combo + * @param hitObject the hit object + * @param repeat the current repeat number (for sliders, or 0 otherwise) + * @param hitResultType the type of hit object for the result + */ + public void hitResult(int time, int result, float x, float y, Color color, + boolean end, OsuHitObject hitObject, int repeat, HitResultType hitResultType) { + boolean perfectHit = hitRes(time, result, x, y, color, end, hitObject, repeat, hitResultType); + if (perfectHit && !Options.isPerfectHitBurstEnabled()) ; // hide perfect hit results else if (result == HIT_MISS && (GameMod.RELAX.isActive() || GameMod.AUTOPILOT.isActive())) @@ -1261,6 +1319,31 @@ public class GameData { hitResultList.add(new OsuHitObjectResult(time, result, x, y, color, hitResultType)); } + /** + * Handles a slider hit result. + * @param time the object start time + * @param result the hit result (HIT_* constants) + * @param x the x coordinate + * @param y the y coordinate + * @param color the combo color + * @param end true if this is the last hit object in the combo + * @param hitObject the hit object + * @param repeat the current repeat number (for sliders, or 0 otherwise) + * @param hitResultType the type of hit object for the result + * @param curve the slider curve + */ + public void hitResult(int time, int result, float x, float y, Color color, + boolean end, OsuHitObject hitObject, int repeat, HitResultType hitResultType, Curve curve) { + boolean perfectHit = hitRes(time, result, x, y, color, end, hitObject, repeat, hitResultType); + + if (perfectHit && !Options.isPerfectHitBurstEnabled()) + ; // hide perfect hit results + else if (result == HIT_MISS && (GameMod.RELAX.isActive() || GameMod.AUTOPILOT.isActive())) + ; // "relax" and "autopilot" mods: hide misses + else + hitResultList.add(new OsuHitObjectResult(time, result, x, y, color, hitResultType, curve)); + } + /** * Returns a ScoreData object encapsulating all game data. * If score data already exists, the existing object will be returned diff --git a/src/itdelatrisu/opsu/objects/Slider.java b/src/itdelatrisu/opsu/objects/Slider.java index 0d470a08..2dbd40b3 100644 --- a/src/itdelatrisu/opsu/objects/Slider.java +++ b/src/itdelatrisu/opsu/objects/Slider.java @@ -281,7 +281,7 @@ public class Slider implements HitObject { float[] lastPos = curve.pointAt(1); data.hitResult(hitObject.getTime() + (int) sliderTimeTotal, result, x, y, color, comboEnd, hitObject, currentRepeats + 1, - currentRepeats % 2 == 0 ? HitResultType.SLIDEREND_FIRSTOBJECT : HitResultType.SLIDEREND); + currentRepeats % 2 == 0 ? HitResultType.SLIDEREND_FIRSTOBJECT : HitResultType.SLIDEREND, curve); data.hitResult(hitObject.getTime() + (int) sliderTimeTotal, result, lastPos[0], lastPos[1], color, comboEnd, hitObject, currentRepeats + 1, currentRepeats % 2 == 0 ? HitResultType.SLIDEREND : HitResultType.SLIDEREND_FIRSTOBJECT); diff --git a/src/itdelatrisu/opsu/objects/curves/Curve.java b/src/itdelatrisu/opsu/objects/curves/Curve.java index 028923be..c09de69f 100644 --- a/src/itdelatrisu/opsu/objects/curves/Curve.java +++ b/src/itdelatrisu/opsu/objects/curves/Curve.java @@ -28,12 +28,12 @@ import org.newdawn.slick.Color; * @author fluddokt (https://github.com/fluddokt) */ public abstract class Curve { + /** The color of this curve. */ + public Color color; + /** The associated OsuHitObject. */ protected OsuHitObject hitObject; - /** The color of this curve. */ - protected Color color; - /** The scaled starting x, y coordinates. */ protected float x, y; From 81b8182244acbbae3edb8a35fe1bf55732acadd1 Mon Sep 17 00:00:00 2001 From: Drew Lemmy Date: Tue, 7 Apr 2015 13:44:27 +0100 Subject: [PATCH 12/59] Fixed gekis and katus not being shown on hit results --- src/itdelatrisu/opsu/GameData.java | 20 ++++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/src/itdelatrisu/opsu/GameData.java b/src/itdelatrisu/opsu/GameData.java index 1e644ec0..a0ae4df7 100644 --- a/src/itdelatrisu/opsu/GameData.java +++ b/src/itdelatrisu/opsu/GameData.java @@ -1222,15 +1222,13 @@ public class GameData { * @param hitObject the hit object * @param repeat the current repeat number (for sliders, or 0 otherwise) * @param hitResultType the type of hit object for the result - * @return was this a perfect hit? + * @return the hit result (HIT_* constants) */ - private boolean hitRes(int time, int result, float x, float y, Color color, + private int hitRes(int time, int result, float x, float y, Color color, boolean end, OsuHitObject hitObject, int repeat, HitResultType hitResultType) { int hitValue = 0; - boolean perfectHit = false; switch (result) { case HIT_300: - perfectHit = true; hitValue = 300; changeHealth(5f); break; @@ -1251,7 +1249,7 @@ public class GameData { resetComboStreak(); break; default: - return false; + return HIT_MISS; } if (hitValue > 0) { SoundController.playHitSound( @@ -1292,7 +1290,7 @@ public class GameData { comboEnd = 0; } - return perfectHit; + return result; } /** @@ -1309,9 +1307,10 @@ public class GameData { */ public void hitResult(int time, int result, float x, float y, Color color, boolean end, OsuHitObject hitObject, int repeat, HitResultType hitResultType) { - boolean perfectHit = hitRes(time, result, x, y, color, end, hitObject, repeat, hitResultType); + result = hitRes(time, result, x, y, color, end, hitObject, repeat, hitResultType); - if (perfectHit && !Options.isPerfectHitBurstEnabled()) + if ((result == HIT_300 || result == HIT_300G || result == HIT_300K) + && !Options.isPerfectHitBurstEnabled()) ; // hide perfect hit results else if (result == HIT_MISS && (GameMod.RELAX.isActive() || GameMod.AUTOPILOT.isActive())) ; // "relax" and "autopilot" mods: hide misses @@ -1334,9 +1333,10 @@ public class GameData { */ public void hitResult(int time, int result, float x, float y, Color color, boolean end, OsuHitObject hitObject, int repeat, HitResultType hitResultType, Curve curve) { - boolean perfectHit = hitRes(time, result, x, y, color, end, hitObject, repeat, hitResultType); + result = hitRes(time, result, x, y, color, end, hitObject, repeat, hitResultType); - if (perfectHit && !Options.isPerfectHitBurstEnabled()) + if ((result == HIT_300 || result == HIT_300G || result == HIT_300K) + && !Options.isPerfectHitBurstEnabled()) ; // hide perfect hit results else if (result == HIT_MISS && (GameMod.RELAX.isActive() || GameMod.AUTOPILOT.isActive())) ; // "relax" and "autopilot" mods: hide misses From f7d6fed0c6b9c1fc495052d7154180fa9fed1611 Mon Sep 17 00:00:00 2001 From: Drew Lemmy Date: Tue, 7 Apr 2015 19:23:54 +0100 Subject: [PATCH 13/59] Final fixes #71 --- src/itdelatrisu/opsu/GameData.java | 1 - src/itdelatrisu/opsu/Utils.java | 18 +++++++++++++++++- .../opsu/objects/HitResultType.java | 2 +- 3 files changed, 18 insertions(+), 3 deletions(-) diff --git a/src/itdelatrisu/opsu/GameData.java b/src/itdelatrisu/opsu/GameData.java index a0ae4df7..210b7188 100644 --- a/src/itdelatrisu/opsu/GameData.java +++ b/src/itdelatrisu/opsu/GameData.java @@ -1244,7 +1244,6 @@ public class GameData { case HIT_MISS: hitValue = 0; changeHealth(-10f); - changeHealth(-10f); comboEnd |= 2; resetComboStreak(); break; diff --git a/src/itdelatrisu/opsu/Utils.java b/src/itdelatrisu/opsu/Utils.java index 65678e55..db200ee4 100644 --- a/src/itdelatrisu/opsu/Utils.java +++ b/src/itdelatrisu/opsu/Utils.java @@ -608,10 +608,26 @@ public class Utils { return String.format("%02d:%02d:%02d", seconds / 3600, (seconds / 60) % 60, seconds % 60); } + /** + * Cubic ease out function + * @param t the current time + * @param a the starting position + * @param b the finishing position + * @param d the duration + * @return the eased float + */ public static float easeOut(float t, float a, float b, float d) { return b * ((t = t / d - 1f) * t * t + 1f) + a; } - + + /** + * Fake bounce ease function + * @param t the current time + * @param a the starting position + * @param b the finishing position + * @param d the duration + * @return the eased float + */ public static float easeBounce(float t, float a, float b, float d) { if (t < d / 2) return easeOut(t, a, b, d); diff --git a/src/itdelatrisu/opsu/objects/HitResultType.java b/src/itdelatrisu/opsu/objects/HitResultType.java index 3dea7458..0f7f4311 100644 --- a/src/itdelatrisu/opsu/objects/HitResultType.java +++ b/src/itdelatrisu/opsu/objects/HitResultType.java @@ -2,7 +2,7 @@ package itdelatrisu.opsu.objects; public enum HitResultType { CIRCLE, - SLIDERSTART, + //SLIDERSTART, SLIDERTICK, SLIDEREND, SLIDEREND_FIRSTOBJECT, From 4eaf0b6a5482e4a8e075627cb3d231e7b0cecfd5 Mon Sep 17 00:00:00 2001 From: Jeffrey Han Date: Wed, 8 Apr 2015 02:05:12 -0400 Subject: [PATCH 14/59] Follow-up to #71. - Fixed a major bug where two hit result calculations were being performed for each slider. - Fixed a bug where hit circles/sliders were being drawn for a miss. - Sliders now only expand when held to the end (as in osu!). - Use the track position as the hit result start time for circles (instead of the object time). - Added a 'color' parameter to Curve.draw(), rather than keeping an extra reference to the slider Color object. - Renamed HitResultType enum to HitObjectType, and moved it into GameData. - Removed some overloaded methods (not really necessary...). - Other style changes. Signed-off-by: Jeffrey Han --- src/itdelatrisu/opsu/GameData.java | 155 +++++++----------- src/itdelatrisu/opsu/Utils.java | 6 +- src/itdelatrisu/opsu/objects/Circle.java | 9 +- .../opsu/objects/HitResultType.java | 10 -- src/itdelatrisu/opsu/objects/Slider.java | 22 ++- src/itdelatrisu/opsu/objects/Spinner.java | 3 +- .../objects/curves/CircumscribedCircle.java | 2 +- .../opsu/objects/curves/Curve.java | 7 +- .../opsu/objects/curves/LinearBezier.java | 2 +- 9 files changed, 88 insertions(+), 128 deletions(-) delete mode 100644 src/itdelatrisu/opsu/objects/HitResultType.java diff --git a/src/itdelatrisu/opsu/GameData.java b/src/itdelatrisu/opsu/GameData.java index 210b7188..5fd49caf 100644 --- a/src/itdelatrisu/opsu/GameData.java +++ b/src/itdelatrisu/opsu/GameData.java @@ -23,7 +23,6 @@ import itdelatrisu.opsu.audio.MusicController; import itdelatrisu.opsu.audio.SoundController; import itdelatrisu.opsu.audio.SoundEffect; import itdelatrisu.opsu.downloads.Updater; -import itdelatrisu.opsu.objects.HitResultType; import itdelatrisu.opsu.objects.curves.Curve; import itdelatrisu.opsu.replay.Replay; import itdelatrisu.opsu.replay.ReplayFrame; @@ -225,9 +224,10 @@ public class GameData { /** List containing recent hit error information. */ private LinkedBlockingDeque hitErrorList; - /** - * Hit result helper class. - */ + /** Hit object types, used for drawing results. */ + public enum HitObjectType { CIRCLE, SLIDERTICK, SLIDER_FIRST, SLIDER_LAST, SPINNER } + + /** Hit result helper class. */ private class OsuHitObjectResult { /** Object start time. */ public int time; @@ -242,7 +242,7 @@ public class GameData { public Color color; /** The type of the hit object. */ - public HitResultType hitResultType; + public HitObjectType hitResultType; /** Alpha level (for fading out). */ public float alpha = 1f; @@ -250,23 +250,8 @@ public class GameData { /** Slider curve. */ public Curve curve; - /** - * Constructor. - * @param time the result's starting track position - * @param result the hit result (HIT_* constants) - * @param x the center x coordinate - * @param y the center y coordinate - * @param color the color of the hit object - * @param hitResultType the type of the hit object - */ - public OsuHitObjectResult(int time, int result, float x, float y, Color color, HitResultType hitResultType) { - this.time = time; - this.result = result; - this.x = x; - this.y = y; - this.color = color; - this.hitResultType = hitResultType; - } + /** Whether or not to expand when animating. */ + public boolean expand; /** * Constructor. @@ -275,9 +260,11 @@ public class GameData { * @param x the center x coordinate * @param y the center y coordinate * @param color the color of the hit object - * @param curve the slider curve + * @param curve the slider curve (or null if not applicable) + * @param expand whether or not the hit result animation should expand (if applicable) */ - public OsuHitObjectResult(int time, int result, float x, float y, Color color, HitResultType hitResultType, Curve curve) { + public OsuHitObjectResult(int time, int result, float x, float y, Color color, + HitObjectType hitResultType, Curve curve, boolean expand) { this.time = time; this.result = result; this.x = x; @@ -285,6 +272,7 @@ public class GameData { this.color = color; this.hitResultType = hitResultType; this.curve = curve; + this.expand = expand; } } @@ -866,7 +854,7 @@ public class GameData { OsuHitObjectResult hitResult = iter.next(); if (hitResult.time + HITRESULT_TIME > trackPosition) { // spinner - if (hitResult.hitResultType == HitResultType.SPINNER && hitResult.result != HIT_MISS) { + if (hitResult.hitResultType == HitObjectType.SPINNER && hitResult.result != HIT_MISS) { Image spinnerOsu = GameImage.SPINNER_OSU.getImage(); spinnerOsu.setAlpha(hitResult.alpha); spinnerOsu.drawCentered(width / 2, height / 4); @@ -876,68 +864,58 @@ public class GameData { // hit lighting else if (Options.isHitLightingEnabled() && hitResult.result != HIT_MISS && hitResult.result != HIT_SLIDER30 && hitResult.result != HIT_SLIDER10) { - // soon add particle system to reflect original game - Image lighting = GameImage.LIGHTING.getImage(); + // TODO: add particle system + Image lighting = GameImage.LIGHTING.getImage(); lighting.setAlpha(hitResult.alpha); lighting.drawCentered(hitResult.x, hitResult.y, hitResult.color); } // hit animation - if (hitResult.hitResultType == HitResultType.CIRCLE - || hitResult.hitResultType == HitResultType.SLIDEREND - || hitResult.hitResultType == HitResultType.SLIDEREND_FIRSTOBJECT) { - float scale = Utils.easeOut( + if (hitResult.result != HIT_MISS && ( + hitResult.hitResultType == HitObjectType.CIRCLE || + hitResult.hitResultType == HitObjectType.SLIDER_FIRST || + hitResult.hitResultType == HitObjectType.SLIDER_LAST)) { + float scale = (!hitResult.expand) ? 1f : Utils.easeOut( Utils.clamp(trackPosition - hitResult.time, 0, HITCIRCLE_FADE_TIME), - 1f, - HITCIRCLE_ANIM_SCALE-1f, - HITCIRCLE_FADE_TIME + 1f, HITCIRCLE_ANIM_SCALE - 1f, HITCIRCLE_FADE_TIME ); - float alpha = Utils.easeOut( Utils.clamp(trackPosition - hitResult.time, 0, HITCIRCLE_FADE_TIME), - 1f, - -1f, - HITCIRCLE_FADE_TIME + 1f, -1f, HITCIRCLE_FADE_TIME ); + // slider curve if (hitResult.curve != null) { - float oldAlpha = Utils.COLOR_WHITE_FADE.a; - - Curve curve = hitResult.curve; + float oldWhiteAlpha = Utils.COLOR_WHITE_FADE.a; + float oldColorAlpha = hitResult.color.a; Utils.COLOR_WHITE_FADE.a = alpha; - curve.color.a = alpha; - curve.draw(); - - Utils.COLOR_WHITE_FADE.a = oldAlpha; + hitResult.color.a = alpha; + hitResult.curve.draw(hitResult.color); + Utils.COLOR_WHITE_FADE.a = oldWhiteAlpha; + hitResult.color.a = oldColorAlpha; } + // hit circles Image scaledHitCircle = GameImage.HITCIRCLE.getImage().getScaledCopy(scale); - scaledHitCircle.setAlpha(alpha); Image scaledHitCircleOverlay = GameImage.HITCIRCLE_OVERLAY.getImage().getScaledCopy(scale); + scaledHitCircle.setAlpha(alpha); scaledHitCircleOverlay.setAlpha(alpha); - scaledHitCircle.drawCentered(hitResult.x, hitResult.y, hitResult.color); scaledHitCircleOverlay.drawCentered(hitResult.x, hitResult.y); } // hit result - if (hitResult.hitResultType == HitResultType.CIRCLE - || hitResult.hitResultType == HitResultType.SLIDEREND - || hitResult.hitResultType == HitResultType.SPINNER) { + if (hitResult.hitResultType == HitObjectType.CIRCLE || + hitResult.hitResultType == HitObjectType.SPINNER || + hitResult.curve != null) { float scale = Utils.easeBounce( Utils.clamp(trackPosition - hitResult.time, 0, HITCIRCLE_TEXT_BOUNCE_TIME), - 1f, - HITCIRCLE_TEXT_ANIM_SCALE - 1f, - HITCIRCLE_TEXT_BOUNCE_TIME + 1f, HITCIRCLE_TEXT_ANIM_SCALE - 1f, HITCIRCLE_TEXT_BOUNCE_TIME ); - float alpha = Utils.easeOut( Utils.clamp((trackPosition - hitResult.time) - HITCIRCLE_FADE_TIME, 0, HITCIRCLE_TEXT_FADE_TIME), - 1f, - -1f, - HITCIRCLE_TEXT_FADE_TIME + 1f, -1f, HITCIRCLE_TEXT_FADE_TIME ); - Image scaledHitResult = hitResults[hitResult.result].getScaledCopy(scale); scaledHitResult.setAlpha(alpha); scaledHitResult.drawCentered(hitResult.x, hitResult.y); @@ -1207,14 +1185,14 @@ public class GameData { if (!Options.isPerfectHitBurstEnabled()) ; // hide perfect hit results else - hitResultList.add(new OsuHitObjectResult(time, result, x, y, null, HitResultType.SLIDERTICK)); + hitResultList.add(new OsuHitObjectResult(time, result, x, y, null, HitObjectType.SLIDERTICK, null, false)); } } /** - * Handles a hit result. + * Handles a hit result and performs all associated calculations. * @param time the object start time - * @param result the hit result (HIT_* constants) + * @param result the base hit result (HIT_* constants) * @param x the x coordinate * @param y the y coordinate * @param color the combo color @@ -1222,10 +1200,10 @@ public class GameData { * @param hitObject the hit object * @param repeat the current repeat number (for sliders, or 0 otherwise) * @param hitResultType the type of hit object for the result - * @return the hit result (HIT_* constants) + * @return the actual hit result (HIT_* constants) */ - private int hitRes(int time, int result, float x, float y, Color color, - boolean end, OsuHitObject hitObject, int repeat, HitResultType hitResultType) { + private int handleHitResult(int time, int result, float x, float y, Color color, + boolean end, OsuHitObject hitObject, int repeat, HitObjectType hitResultType) { int hitValue = 0; switch (result) { case HIT_300: @@ -1292,31 +1270,6 @@ public class GameData { return result; } - /** - * Handles a hit result. - * @param time the object start time - * @param result the hit result (HIT_* constants) - * @param x the x coordinate - * @param y the y coordinate - * @param color the combo color - * @param end true if this is the last hit object in the combo - * @param hitObject the hit object - * @param repeat the current repeat number (for sliders, or 0 otherwise) - * @param hitResultType the type of hit object for the result - */ - public void hitResult(int time, int result, float x, float y, Color color, - boolean end, OsuHitObject hitObject, int repeat, HitResultType hitResultType) { - result = hitRes(time, result, x, y, color, end, hitObject, repeat, hitResultType); - - if ((result == HIT_300 || result == HIT_300G || result == HIT_300K) - && !Options.isPerfectHitBurstEnabled()) - ; // hide perfect hit results - else if (result == HIT_MISS && (GameMod.RELAX.isActive() || GameMod.AUTOPILOT.isActive())) - ; // "relax" and "autopilot" mods: hide misses - else - hitResultList.add(new OsuHitObjectResult(time, result, x, y, color, hitResultType)); - } - /** * Handles a slider hit result. * @param time the object start time @@ -1328,19 +1281,29 @@ public class GameData { * @param hitObject the hit object * @param repeat the current repeat number (for sliders, or 0 otherwise) * @param hitResultType the type of hit object for the result - * @param curve the slider curve + * @param curve the slider curve (or null if not applicable) + * @param expand whether or not the hit result animation should expand (if applicable) */ public void hitResult(int time, int result, float x, float y, Color color, - boolean end, OsuHitObject hitObject, int repeat, HitResultType hitResultType, Curve curve) { - result = hitRes(time, result, x, y, color, end, hitObject, repeat, hitResultType); + boolean end, OsuHitObject hitObject, int repeat, + HitObjectType hitResultType, Curve curve, boolean expand) { + result = handleHitResult(time, result, x, y, color, end, hitObject, repeat, hitResultType); - if ((result == HIT_300 || result == HIT_300G || result == HIT_300K) - && !Options.isPerfectHitBurstEnabled()) + if ((result == HIT_300 || result == HIT_300G || result == HIT_300K) && !Options.isPerfectHitBurstEnabled()) ; // hide perfect hit results else if (result == HIT_MISS && (GameMod.RELAX.isActive() || GameMod.AUTOPILOT.isActive())) ; // "relax" and "autopilot" mods: hide misses - else - hitResultList.add(new OsuHitObjectResult(time, result, x, y, color, hitResultType, curve)); + else { + hitResultList.add(new OsuHitObjectResult(time, result, x, y, color, hitResultType, curve, expand)); + + // sliders: add the other curve endpoint for the hit animation + if (curve != null) { + boolean isFirst = (hitResultType == HitObjectType.SLIDER_FIRST); + float[] p = curve.pointAt((isFirst) ? 1f : 0f); + HitObjectType type = (isFirst) ? HitObjectType.SLIDER_LAST : HitObjectType.SLIDER_FIRST; + hitResultList.add(new OsuHitObjectResult(time, result, p[0], p[1], color, type, null, expand)); + } + } } /** diff --git a/src/itdelatrisu/opsu/Utils.java b/src/itdelatrisu/opsu/Utils.java index db200ee4..62397428 100644 --- a/src/itdelatrisu/opsu/Utils.java +++ b/src/itdelatrisu/opsu/Utils.java @@ -609,7 +609,7 @@ public class Utils { } /** - * Cubic ease out function + * Cubic ease out function. * @param t the current time * @param a the starting position * @param b the finishing position @@ -621,7 +621,7 @@ public class Utils { } /** - * Fake bounce ease function + * Fake bounce ease function. * @param t the current time * @param a the starting position * @param b the finishing position @@ -631,6 +631,6 @@ public class Utils { public static float easeBounce(float t, float a, float b, float d) { if (t < d / 2) return easeOut(t, a, b, d); - return easeOut(d-t, a, b, d); + return easeOut(d - t, a, b, d); } } diff --git a/src/itdelatrisu/opsu/objects/Circle.java b/src/itdelatrisu/opsu/objects/Circle.java index c8ee6c1b..5762c00a 100644 --- a/src/itdelatrisu/opsu/objects/Circle.java +++ b/src/itdelatrisu/opsu/objects/Circle.java @@ -19,6 +19,7 @@ package itdelatrisu.opsu.objects; import itdelatrisu.opsu.GameData; +import itdelatrisu.opsu.GameData.HitObjectType; import itdelatrisu.opsu.GameImage; import itdelatrisu.opsu.GameMod; import itdelatrisu.opsu.OsuHitObject; @@ -138,7 +139,7 @@ public class Circle implements HitObject { if (result > -1) { data.addHitError(hitObject.getTime(), x, y, timeDiff); - data.hitResult(hitObject.getTime(), result, this.x, this.y, color, comboEnd, hitObject, 0, HitResultType.CIRCLE); + data.hitResult(trackPosition, result, this.x, this.y, color, comboEnd, hitObject, 0, HitObjectType.CIRCLE, null, true); return true; } } @@ -154,17 +155,17 @@ public class Circle implements HitObject { if (overlap || trackPosition > time + hitResultOffset[GameData.HIT_50]) { if (isAutoMod) // "auto" mod: catch any missed notes due to lag - data.hitResult(time, GameData.HIT_300, x, y, color, comboEnd, hitObject, 0, HitResultType.CIRCLE); + data.hitResult(time, GameData.HIT_300, x, y, color, comboEnd, hitObject, 0, HitObjectType.CIRCLE, null, true); else // no more points can be scored, so send a miss - data.hitResult(time, GameData.HIT_MISS, x, y, null, comboEnd, hitObject, 0, HitResultType.CIRCLE); + data.hitResult(trackPosition, GameData.HIT_MISS, x, y, null, comboEnd, hitObject, 0, HitObjectType.CIRCLE, null, true); return true; } // "auto" mod: send a perfect hit result else if (isAutoMod) { if (Math.abs(trackPosition - time) < hitResultOffset[GameData.HIT_300]) { - data.hitResult(time, GameData.HIT_300, x, y, color, comboEnd, hitObject, 0, HitResultType.CIRCLE); + data.hitResult(time, GameData.HIT_300, x, y, color, comboEnd, hitObject, 0, HitObjectType.CIRCLE, null, true); return true; } } diff --git a/src/itdelatrisu/opsu/objects/HitResultType.java b/src/itdelatrisu/opsu/objects/HitResultType.java deleted file mode 100644 index 0f7f4311..00000000 --- a/src/itdelatrisu/opsu/objects/HitResultType.java +++ /dev/null @@ -1,10 +0,0 @@ -package itdelatrisu.opsu.objects; - -public enum HitResultType { - CIRCLE, - //SLIDERSTART, - SLIDERTICK, - SLIDEREND, - SLIDEREND_FIRSTOBJECT, - SPINNER -} diff --git a/src/itdelatrisu/opsu/objects/Slider.java b/src/itdelatrisu/opsu/objects/Slider.java index 2dbd40b3..9c53bbe3 100644 --- a/src/itdelatrisu/opsu/objects/Slider.java +++ b/src/itdelatrisu/opsu/objects/Slider.java @@ -19,6 +19,7 @@ package itdelatrisu.opsu.objects; import itdelatrisu.opsu.GameData; +import itdelatrisu.opsu.GameData.HitObjectType; import itdelatrisu.opsu.GameImage; import itdelatrisu.opsu.GameMod; import itdelatrisu.opsu.OsuFile; @@ -172,7 +173,7 @@ public class Slider implements HitObject { Utils.COLOR_WHITE_FADE.a = color.a = alpha; // curve - curve.draw(); + curve.draw(color); // ticks if (ticksT != null) { @@ -278,13 +279,20 @@ public class Slider implements HitObject { else result = GameData.HIT_MISS; - float[] lastPos = curve.pointAt(1); + float cx, cy; + HitObjectType type; + if (currentRepeats % 2 == 0) { // last circle + float[] lastPos = curve.pointAt(1); + cx = lastPos[0]; + cy = lastPos[1]; + type = HitObjectType.SLIDER_LAST; + } else { // first circle + cx = x; + cy = y; + type = HitObjectType.SLIDER_FIRST; + } data.hitResult(hitObject.getTime() + (int) sliderTimeTotal, result, - x, y, color, comboEnd, hitObject, currentRepeats + 1, - currentRepeats % 2 == 0 ? HitResultType.SLIDEREND_FIRSTOBJECT : HitResultType.SLIDEREND, curve); - data.hitResult(hitObject.getTime() + (int) sliderTimeTotal, result, - lastPos[0], lastPos[1], color, comboEnd, hitObject, currentRepeats + 1, - currentRepeats % 2 == 0 ? HitResultType.SLIDEREND : HitResultType.SLIDEREND_FIRSTOBJECT); + cx, cy, color, comboEnd, hitObject, currentRepeats + 1, type, curve, sliderClickedFinal); return result; } diff --git a/src/itdelatrisu/opsu/objects/Spinner.java b/src/itdelatrisu/opsu/objects/Spinner.java index 1cc6e290..22cdad97 100644 --- a/src/itdelatrisu/opsu/objects/Spinner.java +++ b/src/itdelatrisu/opsu/objects/Spinner.java @@ -19,6 +19,7 @@ package itdelatrisu.opsu.objects; import itdelatrisu.opsu.GameData; +import itdelatrisu.opsu.GameData.HitObjectType; import itdelatrisu.opsu.GameImage; import itdelatrisu.opsu.GameMod; import itdelatrisu.opsu.OsuHitObject; @@ -191,7 +192,7 @@ public class Spinner implements HitObject { result = GameData.HIT_MISS; data.hitResult(hitObject.getEndTime(), result, width / 2, height / 2, - Color.transparent, true, hitObject, 0, HitResultType.SPINNER); + Color.transparent, true, hitObject, 0, HitObjectType.SPINNER, null, true); return result; } diff --git a/src/itdelatrisu/opsu/objects/curves/CircumscribedCircle.java b/src/itdelatrisu/opsu/objects/curves/CircumscribedCircle.java index 74ac354d..f534db95 100644 --- a/src/itdelatrisu/opsu/objects/curves/CircumscribedCircle.java +++ b/src/itdelatrisu/opsu/objects/curves/CircumscribedCircle.java @@ -179,7 +179,7 @@ public class CircumscribedCircle extends Curve { } @Override - public void draw() { + public void draw(Color color) { Image hitCircle = GameImage.HITCIRCLE.getImage(); Image hitCircleOverlay = GameImage.HITCIRCLE_OVERLAY.getImage(); for (int i = 0; i < step; i++) diff --git a/src/itdelatrisu/opsu/objects/curves/Curve.java b/src/itdelatrisu/opsu/objects/curves/Curve.java index c09de69f..ab3d23aa 100644 --- a/src/itdelatrisu/opsu/objects/curves/Curve.java +++ b/src/itdelatrisu/opsu/objects/curves/Curve.java @@ -28,9 +28,6 @@ import org.newdawn.slick.Color; * @author fluddokt (https://github.com/fluddokt) */ public abstract class Curve { - /** The color of this curve. */ - public Color color; - /** The associated OsuHitObject. */ protected OsuHitObject hitObject; @@ -51,7 +48,6 @@ public abstract class Curve { this.y = hitObject.getScaledY(); this.sliderX = hitObject.getScaledSliderX(); this.sliderY = hitObject.getScaledSliderY(); - this.color = color; } /** @@ -63,8 +59,9 @@ public abstract class Curve { /** * Draws the full curve to the graphics context. + * @param color the color filter */ - public abstract void draw(); + public abstract void draw(Color color); /** * Returns the angle of the first control point. diff --git a/src/itdelatrisu/opsu/objects/curves/LinearBezier.java b/src/itdelatrisu/opsu/objects/curves/LinearBezier.java index 21e3b82c..ca7dede2 100644 --- a/src/itdelatrisu/opsu/objects/curves/LinearBezier.java +++ b/src/itdelatrisu/opsu/objects/curves/LinearBezier.java @@ -164,7 +164,7 @@ public class LinearBezier extends Curve { } @Override - public void draw() { + public void draw(Color color) { Image hitCircle = GameImage.HITCIRCLE.getImage(); Image hitCircleOverlay = GameImage.HITCIRCLE_OVERLAY.getImage(); for (int i = curve.length - 2; i >= 0; i--) From 13d383463f3e3b35396a68992c28fcaa1f727a08 Mon Sep 17 00:00:00 2001 From: Jeffrey Han Date: Fri, 10 Apr 2015 12:34:18 -0400 Subject: [PATCH 15/59] Improved error message in #72; fixed timing point issue from #61. - Actually provide relevant information when an audio file can't be found. - When loading timing points, don't reset the start index every time. Signed-off-by: Jeffrey Han --- src/itdelatrisu/opsu/OsuParser.java | 2 +- src/itdelatrisu/opsu/states/Game.java | 23 +++++++++++++---------- 2 files changed, 14 insertions(+), 11 deletions(-) diff --git a/src/itdelatrisu/opsu/OsuParser.java b/src/itdelatrisu/opsu/OsuParser.java index 01da868d..84fd475b 100644 --- a/src/itdelatrisu/opsu/OsuParser.java +++ b/src/itdelatrisu/opsu/OsuParser.java @@ -244,7 +244,7 @@ public class OsuParser { } } if (!match) { - Log.error(String.format("File not found: '%s'", tokens[1])); + Log.error(String.format("Audio file '%s' not found in directory '%s'.", tokens[1], dir.getName())); return null; } } diff --git a/src/itdelatrisu/opsu/states/Game.java b/src/itdelatrisu/opsu/states/Game.java index 1e052b7c..6032b5b8 100644 --- a/src/itdelatrisu/opsu/states/Game.java +++ b/src/itdelatrisu/opsu/states/Game.java @@ -43,6 +43,7 @@ import itdelatrisu.opsu.objects.DummyObject; import itdelatrisu.opsu.objects.HitObject; import itdelatrisu.opsu.objects.Slider; import itdelatrisu.opsu.objects.Spinner; +import itdelatrisu.opsu.replay.PlaybackSpeed; import itdelatrisu.opsu.replay.Replay; import itdelatrisu.opsu.replay.ReplayFrame; @@ -50,7 +51,6 @@ import java.io.File; import java.util.LinkedList; import java.util.Stack; -import itdelatrisu.opsu.replay.PlaybackSpeed; import org.lwjgl.input.Keyboard; import org.lwjgl.opengl.Display; import org.newdawn.slick.Animation; @@ -686,9 +686,7 @@ public class Game extends BasicGameState { if (timingPointIndex < osu.timingPoints.size()) { OsuTimingPoint timingPoint = osu.timingPoints.get(timingPointIndex); if (trackPosition >= timingPoint.getTime()) { - setBeatLength(timingPoint); - HitSound.setDefaultSampleSet(timingPoint.getSampleType()); - SoundController.setSampleVolume(timingPoint.getSampleVolume()); + setBeatLength(timingPoint, true); timingPointIndex++; } } @@ -1058,12 +1056,11 @@ public class Game extends BasicGameState { // pass beatLength to hit objects int hitObjectTime = hitObject.getTime(); - int timingPointIndex = 0; while (timingPointIndex < osu.timingPoints.size()) { OsuTimingPoint timingPoint = osu.timingPoints.get(timingPointIndex); if (timingPoint.getTime() > hitObjectTime) break; - setBeatLength(timingPoint); + setBeatLength(timingPoint, false); timingPointIndex++; } @@ -1087,12 +1084,12 @@ public class Game extends BasicGameState { calculateStacks(); // load the first timingPoint + timingPointIndex = 0; + beatLengthBase = beatLength = 1; if (!osu.timingPoints.isEmpty()) { OsuTimingPoint timingPoint = osu.timingPoints.get(0); if (!timingPoint.isInherited()) { - beatLengthBase = beatLength = timingPoint.getBeatLength(); - HitSound.setDefaultSampleSet(timingPoint.getSampleType()); - SoundController.setSampleVolume(timingPoint.getSampleVolume()); + setBeatLength(timingPoint, true); timingPointIndex++; } } @@ -1431,12 +1428,18 @@ public class Game extends BasicGameState { /** * Sets the beat length fields based on a given timing point. + * @param timingPoint the timing point + * @param setSampleSet whether to set the hit sample set based on the timing point */ - private void setBeatLength(OsuTimingPoint timingPoint) { + private void setBeatLength(OsuTimingPoint timingPoint, boolean setSampleSet) { if (!timingPoint.isInherited()) beatLengthBase = beatLength = timingPoint.getBeatLength(); else beatLength = beatLengthBase * timingPoint.getSliderMultiplier(); + if (setSampleSet) { + HitSound.setDefaultSampleSet(timingPoint.getSampleType()); + SoundController.setSampleVolume(timingPoint.getSampleVolume()); + } } /** From 12e70002d63c03caa6de280c4329ec6e7abf5943 Mon Sep 17 00:00:00 2001 From: fd Date: Sun, 12 Apr 2015 10:25:03 -0400 Subject: [PATCH 16/59] More curve types Catmull curves Line Curves(half assed) Curve refactor #73 near 0 length sliders --- src/itdelatrisu/opsu/objects/Slider.java | 5 +- .../opsu/objects/curves/Bezier2.java | 47 +----- .../opsu/objects/curves/CatmullCurve.java | 53 +++++++ .../objects/curves/CentripetalCatmullRom.java | 101 +++++++++++++ .../objects/curves/CircumscribedCircle.java | 16 +- .../opsu/objects/curves/Curve.java | 22 ++- .../opsu/objects/curves/CurveType.java | 79 ++++++++++ .../curves/EqualDistanceMultiCurve.java | 141 ++++++++++++++++++ .../opsu/objects/curves/LinearBezier.java | 136 ++--------------- .../opsu/objects/curves/Vec2f.java | 16 ++ src/itdelatrisu/opsu/states/Game.java | 10 ++ 11 files changed, 444 insertions(+), 182 deletions(-) create mode 100644 src/itdelatrisu/opsu/objects/curves/CatmullCurve.java create mode 100644 src/itdelatrisu/opsu/objects/curves/CentripetalCatmullRom.java create mode 100644 src/itdelatrisu/opsu/objects/curves/CurveType.java create mode 100644 src/itdelatrisu/opsu/objects/curves/EqualDistanceMultiCurve.java diff --git a/src/itdelatrisu/opsu/objects/Slider.java b/src/itdelatrisu/opsu/objects/Slider.java index 9c53bbe3..19740c77 100644 --- a/src/itdelatrisu/opsu/objects/Slider.java +++ b/src/itdelatrisu/opsu/objects/Slider.java @@ -25,6 +25,7 @@ import itdelatrisu.opsu.GameMod; import itdelatrisu.opsu.OsuFile; import itdelatrisu.opsu.OsuHitObject; import itdelatrisu.opsu.Utils; +import itdelatrisu.opsu.objects.curves.CatmullCurve; import itdelatrisu.opsu.objects.curves.CircumscribedCircle; import itdelatrisu.opsu.objects.curves.Curve; import itdelatrisu.opsu.objects.curves.LinearBezier; @@ -459,8 +460,10 @@ public class Slider implements HitObject { if (hitObject.getSliderType() == OsuHitObject.SLIDER_PASSTHROUGH && hitObject.getSliderX().length == 2) this.curve = new CircumscribedCircle(hitObject, color); + else if ( hitObject.getSliderType() == OsuHitObject.SLIDER_CATMULL) + this.curve = new CatmullCurve(hitObject, color); else - this.curve = new LinearBezier(hitObject, color); + this.curve = new LinearBezier(hitObject, color, hitObject.getSliderType() == OsuHitObject.SLIDER_LINEAR); } @Override diff --git a/src/itdelatrisu/opsu/objects/curves/Bezier2.java b/src/itdelatrisu/opsu/objects/curves/Bezier2.java index 35552b4a..979ae8a1 100644 --- a/src/itdelatrisu/opsu/objects/curves/Bezier2.java +++ b/src/itdelatrisu/opsu/objects/curves/Bezier2.java @@ -23,22 +23,10 @@ package itdelatrisu.opsu.objects.curves; * * @author fluddokt (https://github.com/fluddokt) */ -public class Bezier2 { +public class Bezier2 extends CurveType{ /** The control points of the Bezier curve. */ private Vec2f[] points; - /** Points along the curve of the Bezier curve. */ - private Vec2f[] curve; - - /** Distances between a point of the curve and the last point. */ - private float[] curveDis; - - /** The number of points along the curve. */ - private int ncurve; - - /** The total distances of this Bezier. */ - private float totalDistance; - /** * Constructor. * @param points the control points @@ -52,19 +40,7 @@ public class Bezier2 { for (int i = 0; i < points.length - 1; i++) approxlength += points[i].cpy().sub(points[i + 1]).len(); - // subdivide the curve - this.ncurve = (int) (approxlength / 4); - this.curve = new Vec2f[ncurve]; - for (int i = 0; i < ncurve; i++) - curve[i] = pointAt(i / (float) ncurve); - - // find the distance of each point from the previous point - this.curveDis = new float[ncurve]; - this.totalDistance = 0; - for (int i = 0; i < ncurve; i++) { - curveDis[i] = (i == 0) ? 0 : curve[i].cpy().sub(curve[i - 1]).len(); - totalDistance += curveDis[i]; - } + init(approxlength); // System.out.println("New Bezier2 "+points.length+" "+approxlength+" "+totalDistance()); } @@ -84,25 +60,6 @@ public class Bezier2 { return c; } - /** - * Returns the points along the curve of the Bezier curve. - */ - public Vec2f[] getCurve() { return curve; } - - /** - * Returns the distances between a point of the curve and the last point. - */ - public float[] getCurveDistances() { return curveDis; } - - /** - * Returns the number of points along the curve. - */ - public int points() { return ncurve; } - - /** - * Returns the total distances of this Bezier curve. - */ - public float totalDistance() { return totalDistance; } /** * Calculates the binomial coefficient. diff --git a/src/itdelatrisu/opsu/objects/curves/CatmullCurve.java b/src/itdelatrisu/opsu/objects/curves/CatmullCurve.java new file mode 100644 index 00000000..c0b51687 --- /dev/null +++ b/src/itdelatrisu/opsu/objects/curves/CatmullCurve.java @@ -0,0 +1,53 @@ +/* + * opsu! - an open-source osu! client + * Copyright (C) 2014, 2015 Jeffrey Han + * + * opsu! is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * opsu! is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with opsu!. If not, see . + */ + +package itdelatrisu.opsu.objects.curves; + +import java.util.LinkedList; + +import itdelatrisu.opsu.OsuHitObject; + +import org.newdawn.slick.Color; + +public class CatmullCurve extends EqualDistanceMultiCurve{ + + public CatmullCurve(OsuHitObject hitObject, Color color) { + super(hitObject, color); + LinkedList catmulls = new LinkedList(); + int ncontrolPoints = hitObject.getSliderX().length + 1; + LinkedList points = new LinkedList(); // temporary list of points to separate different curves + + //aaa .... needs at least two points + //aabb + //aabc abcc + //aabc abcd bcdd + points.addLast(new Vec2f(getX(0),getY(0))); + for(int i=0;i=4){ + catmulls.add(new CentripetalCatmullRom(points.toArray(new Vec2f[0]))); + points.removeFirst(); + } + } + points.addLast(new Vec2f(getX(ncontrolPoints-1),getY(ncontrolPoints-1))); + if(points.size()>=4){ + catmulls.add(new CentripetalCatmullRom(points.toArray(new Vec2f[0]))); + } + init(catmulls); + } +} diff --git a/src/itdelatrisu/opsu/objects/curves/CentripetalCatmullRom.java b/src/itdelatrisu/opsu/objects/curves/CentripetalCatmullRom.java new file mode 100644 index 00000000..743cfcdf --- /dev/null +++ b/src/itdelatrisu/opsu/objects/curves/CentripetalCatmullRom.java @@ -0,0 +1,101 @@ +/* + * opsu! - an open-source osu! client + * Copyright (C) 2014, 2015 Jeffrey Han + * + * opsu! is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * opsu! is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with opsu!. If not, see . + */ + +package itdelatrisu.opsu.objects.curves; + +/** + * Representation of a Centripetal Catmull–Rom spline. + * http://en.wikipedia.org/wiki/Centripetal_Catmull%E2%80%93Rom_spline + * + * Currently not technically Centripetal Catmull–Rom + * + * @author fluddokt (https://github.com/fluddokt) + */ +public class CentripetalCatmullRom extends CurveType{ + + float [] time; + Vec2f[] points; + protected CentripetalCatmullRom(Vec2f[] points) { + if (points.length != 4) + throw new Error("need exactly 4 points"); + + this.points = points; + System.out.println("C"); + for(int i=0;i<4;i++){ + System.out.println(points[i]); + } + time = new float[4]; + time[0] = 0; + float approxLength = 0; + for(int i=1;i<4;i++){ + float len = 0; + if(i>0) + len = points[i].cpy().sub(points[i-1]).len(); + if(len<=0) + len+=0.0001f; + approxLength += len; + //time[i] = (float) Math.sqrt(len) + time[i-1];// ^(0.5) + time[i] = i; + System.out.println("knot:"+i+" "+time[i]); + } + init(approxLength/2); + } + public Vec2f pointAt(float t, int start, int end){ + int ind1 = start; + int ind2 = end; + if(end-start==3){ + ind1 = 1; + ind2 = 2; + } + //System.out.println("ST:"+start+" "+end+" "+ind1+" "+ind2); + float div = (time[ind2] - time[ind1]); + float v1 = (time[ind2] - t)/div; + float v2 = (t - time[ind1])/div; + System.out.println("div"+div+" "+v1+" "+v2); + if(end-start==1) + return points[start].cpy().scale(v1).add(points[end].cpy().scale(v2)); + else + return pointAt(t,start,end-1).scale(v1).add(pointAt(t,start+1,end).scale(v2)); + } + + public Vec2f pointAt(float t){ + t = t * (time[2]-time[1]) + time[1]; + + Vec2f A1 = points[0].cpy().scale((time[1]-t)/(time[1]-time[0])).add(points[1].cpy().scale((t-time[0])/(time[1]-time[0]))); + Vec2f A2 = points[1].cpy().scale((time[2]-t)/(time[2]-time[1])).add(points[2].cpy().scale((t-time[1])/(time[2]-time[1]))); + Vec2f A3 = points[2].cpy().scale((time[3]-t)/(time[3]-time[2])).add(points[3].cpy().scale((t-time[2])/(time[3]-time[2]))); + + Vec2f B1 = A1.cpy().scale((time[2]-t)/(time[2]-time[0])).add(A2.cpy().scale((t-time[0])/(time[2]-time[0]))); + Vec2f B2 = A2.cpy().scale((time[3]-t)/(time[3]-time[1])).add(A3.cpy().scale((t-time[1])/(time[3]-time[1]))); + + Vec2f C = B1.cpy().scale((time[2]-t)/(time[2]-time[1])).add(B2.cpy().scale((t-time[1])/(time[2]-time[1]))); + + return C; + } + public String toString(){ + String t = "CATMULLROM"; + for(Vec2f p: points){ + t+=p; + } + + t+=pointAt(0); + t+=pointAt(1); + + return t; + } +} diff --git a/src/itdelatrisu/opsu/objects/curves/CircumscribedCircle.java b/src/itdelatrisu/opsu/objects/curves/CircumscribedCircle.java index f534db95..5b09cccb 100644 --- a/src/itdelatrisu/opsu/objects/curves/CircumscribedCircle.java +++ b/src/itdelatrisu/opsu/objects/curves/CircumscribedCircle.java @@ -56,9 +56,6 @@ public class CircumscribedCircle extends Curve { /** The number of steps in the curve to draw. */ private float step; - /** Points along the curve. */ - private Vec2f[] curve; - /** * Constructor. * @param hitObject the associated OsuHitObject @@ -67,8 +64,7 @@ public class CircumscribedCircle extends Curve { public CircumscribedCircle(OsuHitObject hitObject, Color color) { super(hitObject, color); - this.step = hitObject.getPixelLength() / 5f; - + // construct the three points this.start = new Vec2f(getX(0), getY(0)); this.mid = new Vec2f(getX(1), getY(1)); @@ -125,6 +121,7 @@ public class CircumscribedCircle extends Curve { this.drawStartAngle = (float) ((startAng + (startAng > endAng ? -HALF_PI : HALF_PI)) * 180 / Math.PI); // calculate points + this.step = hitObject.getPixelLength() / CURVE_POINTS_SEPERATION; curve = new Vec2f[(int) step + 1]; for (int i = 0; i < curve.length; i++) { float[] xy = pointAt(i / step); @@ -178,15 +175,6 @@ public class CircumscribedCircle extends Curve { }; } - @Override - public void draw(Color color) { - Image hitCircle = GameImage.HITCIRCLE.getImage(); - Image hitCircleOverlay = GameImage.HITCIRCLE_OVERLAY.getImage(); - for (int i = 0; i < step; i++) - hitCircleOverlay.drawCentered(curve[i].x, curve[i].y, Utils.COLOR_WHITE_FADE); - for (int i = 0; i < step; i++) - hitCircle.drawCentered(curve[i].x, curve[i].y, color); - } @Override public float getEndAngle() { return drawEndAngle; } diff --git a/src/itdelatrisu/opsu/objects/curves/Curve.java b/src/itdelatrisu/opsu/objects/curves/Curve.java index ab3d23aa..59374a14 100644 --- a/src/itdelatrisu/opsu/objects/curves/Curve.java +++ b/src/itdelatrisu/opsu/objects/curves/Curve.java @@ -18,9 +18,12 @@ package itdelatrisu.opsu.objects.curves; +import itdelatrisu.opsu.GameImage; import itdelatrisu.opsu.OsuHitObject; +import itdelatrisu.opsu.Utils; import org.newdawn.slick.Color; +import org.newdawn.slick.Image; /** * Representation of a curve. @@ -28,6 +31,8 @@ import org.newdawn.slick.Color; * @author fluddokt (https://github.com/fluddokt) */ public abstract class Curve { + + protected static float CURVE_POINTS_SEPERATION = 50; /** The associated OsuHitObject. */ protected OsuHitObject hitObject; @@ -37,6 +42,9 @@ public abstract class Curve { /** The scaled slider x, y coordinate lists. */ protected float[] sliderX, sliderY; + /** Points along the curve. To be set be inherited classes*/ + protected Vec2f[] curve; + /** * Constructor. * @param hitObject the associated OsuHitObject @@ -48,6 +56,7 @@ public abstract class Curve { this.y = hitObject.getScaledY(); this.sliderX = hitObject.getScaledSliderX(); this.sliderY = hitObject.getScaledSliderY(); + CURVE_POINTS_SEPERATION = 5; } /** @@ -61,7 +70,18 @@ public abstract class Curve { * Draws the full curve to the graphics context. * @param color the color filter */ - public abstract void draw(Color color); + public void draw(Color color) { + if ( curve == null){ + System.out.println("draw curve"+this); + return; + } + Image hitCircle = GameImage.HITCIRCLE.getImage(); + Image hitCircleOverlay = GameImage.HITCIRCLE_OVERLAY.getImage(); + for (int i = 0; i < curve.length; i++) + hitCircleOverlay.drawCentered(curve[i].x, curve[i].y, Utils.COLOR_WHITE_FADE); + for (int i = 0; i < curve.length; i++) + hitCircle.drawCentered(curve[i].x, curve[i].y, color); + } /** * Returns the angle of the first control point. diff --git a/src/itdelatrisu/opsu/objects/curves/CurveType.java b/src/itdelatrisu/opsu/objects/curves/CurveType.java new file mode 100644 index 00000000..e41037b6 --- /dev/null +++ b/src/itdelatrisu/opsu/objects/curves/CurveType.java @@ -0,0 +1,79 @@ +/* + * opsu! - an open-source osu! client + * Copyright (C) 2014, 2015 Jeffrey Han + * + * opsu! is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * opsu! is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with opsu!. If not, see . + */ + +package itdelatrisu.opsu.objects.curves; + +/** + * Representation of a curve with the distance between each point calculated. + * + * @author fluddokt (https://github.com/fluddokt) + */ +public abstract class CurveType { + + /** Points along the curve of the Bezier curve. */ + private Vec2f[] curve; + + /** Distances between a point of the curve and the last point. */ + private float[] curveDis; + + /** The number of points along the curve. */ + private int ncurve; + + /** The total distances of this Bezier. */ + private float totalDistance; + + public abstract Vec2f pointAt(float t); + + public void init(float approxlength){ + // subdivide the curve + this.ncurve = (int) (approxlength / 4) + 1; + this.curve = new Vec2f[ncurve]; + System.out.println(approxlength+" "+ncurve); + for (int i = 0; i < ncurve; i++) + curve[i] = pointAt(i / (float) (ncurve - 1)); + + // find the distance of each point from the previous point + this.curveDis = new float[ncurve]; + this.totalDistance = 0; + for (int i = 0; i < ncurve; i++) { + curveDis[i] = (i == 0) ? 0 : curve[i].cpy().sub(curve[i - 1]).len(); + totalDistance += curveDis[i]; + System.out.println("curvedis:"+curveDis[i]); + } + } + /** + * Returns the points along the curve of the Bezier curve. + */ + public Vec2f[] getCurve() { return curve; } + + /** + * Returns the distances between a point of the curve and the last point. + */ + public float[] getCurveDistances() { return curveDis; } + + /** + * Returns the number of points along the curve. + */ + public int getCurvesCount() { return ncurve; } + + /** + * Returns the total distances of this Bezier curve. + */ + public float totalDistance() { return totalDistance; } + +} diff --git a/src/itdelatrisu/opsu/objects/curves/EqualDistanceMultiCurve.java b/src/itdelatrisu/opsu/objects/curves/EqualDistanceMultiCurve.java new file mode 100644 index 00000000..f3dc8bc4 --- /dev/null +++ b/src/itdelatrisu/opsu/objects/curves/EqualDistanceMultiCurve.java @@ -0,0 +1,141 @@ +/* + * opsu! - an open-source osu! client + * Copyright (C) 2014, 2015 Jeffrey Han + * + * opsu! is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * opsu! is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with opsu!. If not, see . + */ + +package itdelatrisu.opsu.objects.curves; + +import itdelatrisu.opsu.OsuHitObject; + +import java.util.Iterator; +import java.util.LinkedList; + +import org.newdawn.slick.Color; + +/** + * Representation of a Bezier curve with equidistant points. + * http://pomax.github.io/bezierinfo/#tracing + * + * @author fluddokt (https://github.com/fluddokt) + */ +public abstract class EqualDistanceMultiCurve extends Curve { + /** The angles of the first and last control points for drawing. */ + private float startAngle, endAngle; + + /** The number of points along the curve. */ + private int ncurve; + + /** + * Constructor. + * @param hitObject the associated OsuHitObject + * @param color the color of this curve + */ + public EqualDistanceMultiCurve(OsuHitObject hitObject, Color color) { + super(hitObject, color); + + } + + public void init(LinkedList beziers){ + for(CurveType ct : beziers){ + System.out.println("CT:"+ct); + } + // now try to creates points the are equidistant to each other + this.ncurve = (int) (hitObject.getPixelLength() / CURVE_POINTS_SEPERATION); + this.curve = new Vec2f[ncurve + 1]; + + float distanceAt = 0; + Iterator iter = beziers.iterator(); + int curPoint = 0; + CurveType curBezier = iter.next(); + Vec2f lastCurve = curBezier.getCurve()[0]; + float lastDistanceAt = 0; + + // length of Bezier should equal pixel length (in 640x480) + float pixelLength = hitObject.getPixelLength() * OsuHitObject.getXMultiplier(); + + // for each distance, try to get in between the two points that are between it + for (int i = 0; i < ncurve + 1; i++) { + int prefDistance = (int) (i * pixelLength / ncurve); + while (distanceAt < prefDistance) { + lastDistanceAt = distanceAt; + lastCurve = curBezier.getCurve()[curPoint]; + distanceAt += curBezier.getCurveDistances()[curPoint++]; + + if (curPoint >= curBezier.getCurvesCount()) { + if (iter.hasNext()) { + curBezier = iter.next(); + curPoint = 0; + } else { + curPoint = curBezier.getCurvesCount() - 1; + if (lastDistanceAt == distanceAt) { + // out of points even though the preferred distance hasn't been reached + break; + } + } + } + } + System.out.println("prefDis:"+prefDistance+" "+distanceAt+" "+lastDistanceAt); + Vec2f thisCurve = curBezier.getCurve()[curPoint]; + + // interpolate the point between the two closest distances + if (distanceAt - lastDistanceAt > 1) { + float t = (prefDistance - lastDistanceAt) / (distanceAt - lastDistanceAt); + curve[i] = new Vec2f(lerp(lastCurve.x, thisCurve.x, t), lerp(lastCurve.y, thisCurve.y, t)); + } else + curve[i] = thisCurve; + } + +// if (hitObject.getRepeatCount() > 1) { + Vec2f c1 = curve[0]; + int cnt = 1; + Vec2f c2 = curve[cnt++]; + while (cnt <= ncurve && c2.cpy().sub(c1).len() < 1) + c2 = curve[cnt++]; + this.startAngle = (float) (Math.atan2(c2.y - c1.y, c2.x - c1.x) * 180 / Math.PI); + + c1 = curve[ncurve]; + cnt = ncurve - 1; + c2 = curve[cnt--]; + while (cnt >= 0 && c2.cpy().sub(c1).len() < 1) + c2 = curve[cnt--]; + this.endAngle = (float) (Math.atan2(c2.y - c1.y, c2.x - c1.x) * 180 / Math.PI); +// } + } + + @Override + public float[] pointAt(float t) { + float indexF = t * ncurve; + int index = (int) indexF; + if (index >= ncurve) { + Vec2f poi = curve[ncurve]; + return new float[] { poi.x, poi.y }; + } else { + Vec2f poi = curve[index]; + Vec2f poi2 = curve[index + 1]; + float t2 = indexF - index; + return new float[] { + lerp(poi.x, poi2.x, t2), + lerp(poi.y, poi2.y, t2) + }; + } + } + + @Override + public float getEndAngle() { return endAngle; } + + @Override + public float getStartAngle() { return startAngle; } +} diff --git a/src/itdelatrisu/opsu/objects/curves/LinearBezier.java b/src/itdelatrisu/opsu/objects/curves/LinearBezier.java index ca7dede2..cb919699 100644 --- a/src/itdelatrisu/opsu/objects/curves/LinearBezier.java +++ b/src/itdelatrisu/opsu/objects/curves/LinearBezier.java @@ -18,15 +18,10 @@ package itdelatrisu.opsu.objects.curves; -import itdelatrisu.opsu.GameImage; import itdelatrisu.opsu.OsuHitObject; -import itdelatrisu.opsu.Utils; - -import java.util.Iterator; import java.util.LinkedList; import org.newdawn.slick.Color; -import org.newdawn.slick.Image; /** * Representation of a Bezier curve with equidistant points. @@ -34,34 +29,32 @@ import org.newdawn.slick.Image; * * @author fluddokt (https://github.com/fluddokt) */ -public class LinearBezier extends Curve { - /** The angles of the first and last control points for drawing. */ - private float startAngle, endAngle; - - /** List of Bezier curves in the set of points. */ - private LinkedList beziers = new LinkedList(); - - /** Points along the curve at equal distance. */ - private Vec2f[] curve; - - /** The number of points along the curve. */ - private int ncurve; +public class LinearBezier extends EqualDistanceMultiCurve { /** * Constructor. * @param hitObject the associated OsuHitObject * @param color the color of this curve */ - public LinearBezier(OsuHitObject hitObject, Color color) { + public LinearBezier(OsuHitObject hitObject, Color color, boolean line) { super(hitObject, color); + LinkedList beziers = new LinkedList(); + // a b c - c d - d e f g + // ab bc cd de ef fg // splits points into different Beziers if has the same points (red points) int controlPoints = hitObject.getSliderX().length + 1; LinkedList points = new LinkedList(); // temporary list of points to separate different Bezier curves Vec2f lastPoi = null; for (int i = 0; i < controlPoints; i++) { Vec2f tpoi = new Vec2f(getX(i), getY(i)); - if (lastPoi != null && tpoi.equals(lastPoi)) { + if (line) { + if(lastPoi != null) { + points.add(tpoi); + beziers.add(new Bezier2(points.toArray(new Vec2f[0]))); + points.clear(); + } + } else if (lastPoi != null && tpoi.equals(lastPoi)) { if (points.size() >= 2) beziers.add(new Bezier2(points.toArray(new Vec2f[0]))); points.clear(); @@ -69,113 +62,14 @@ public class LinearBezier extends Curve { points.add(tpoi); lastPoi = tpoi; } - if (points.size() < 2) { + if (line || points.size() < 2) { // trying to continue Bezier with less than 2 points // probably ending on a red point, just ignore it } else { beziers.add(new Bezier2(points.toArray(new Vec2f[0]))); points.clear(); } - - // find the length of all beziers -// int totalDistance = 0; -// for (Bezier2 bez : beziers) { -// totalDistance += bez.totalDistance(); -// } - - // now try to creates points the are equidistant to each other - this.ncurve = (int) (hitObject.getPixelLength() / 5f); - this.curve = new Vec2f[ncurve + 1]; - - float distanceAt = 0; - Iterator iter = beziers.iterator(); - int curPoint = 0; - Bezier2 curBezier = iter.next(); - Vec2f lastCurve = curBezier.getCurve()[0]; - float lastDistanceAt = 0; - - // length of Bezier should equal pixel length (in 640x480) - float pixelLength = hitObject.getPixelLength() * OsuHitObject.getXMultiplier(); - - // for each distance, try to get in between the two points that are between it - for (int i = 0; i < ncurve + 1; i++) { - int prefDistance = (int) (i * pixelLength / ncurve); - while (distanceAt < prefDistance) { - lastDistanceAt = distanceAt; - lastCurve = curBezier.getCurve()[curPoint]; - distanceAt += curBezier.getCurveDistances()[curPoint++]; - - if (curPoint >= curBezier.points()) { - if (iter.hasNext()) { - curBezier = iter.next(); - curPoint = 0; - } else { - curPoint = curBezier.points() - 1; - if (lastDistanceAt == distanceAt) { - // out of points even though the preferred distance hasn't been reached - break; - } - } - } - } - Vec2f thisCurve = curBezier.getCurve()[curPoint]; - - // interpolate the point between the two closest distances - if (distanceAt - lastDistanceAt > 1) { - float t = (prefDistance - lastDistanceAt) / (distanceAt - lastDistanceAt); - curve[i] = new Vec2f(lerp(lastCurve.x, thisCurve.x, t), lerp(lastCurve.y, thisCurve.y, t)); - } else - curve[i] = thisCurve; - } - -// if (hitObject.getRepeatCount() > 1) { - Vec2f c1 = curve[0]; - int cnt = 1; - Vec2f c2 = curve[cnt++]; - while (cnt <= ncurve && c2.cpy().sub(c1).len() < 1) - c2 = curve[cnt++]; - this.startAngle = (float) (Math.atan2(c2.y - c1.y, c2.x - c1.x) * 180 / Math.PI); - - c1 = curve[ncurve]; - cnt = ncurve - 1; - c2 = curve[cnt--]; - while (cnt >= 0 && c2.cpy().sub(c1).len() < 1) - c2 = curve[cnt--]; - this.endAngle = (float) (Math.atan2(c2.y - c1.y, c2.x - c1.x) * 180 / Math.PI); -// } + + init(beziers); } - - @Override - public float[] pointAt(float t) { - float indexF = t * ncurve; - int index = (int) indexF; - if (index >= ncurve) { - Vec2f poi = curve[ncurve]; - return new float[] { poi.x, poi.y }; - } else { - Vec2f poi = curve[index]; - Vec2f poi2 = curve[index + 1]; - float t2 = indexF - index; - return new float[] { - lerp(poi.x, poi2.x, t2), - lerp(poi.y, poi2.y, t2) - }; - } - } - - @Override - public void draw(Color color) { - Image hitCircle = GameImage.HITCIRCLE.getImage(); - Image hitCircleOverlay = GameImage.HITCIRCLE_OVERLAY.getImage(); - for (int i = curve.length - 2; i >= 0; i--) - hitCircleOverlay.drawCentered(curve[i].x, curve[i].y, Utils.COLOR_WHITE_FADE); - for (int i = curve.length - 2; i >= 0; i--) - hitCircle.drawCentered(curve[i].x, curve[i].y, color); - } - - @Override - public float getEndAngle() { return endAngle; } - - @Override - public float getStartAngle() { return startAngle; } } diff --git a/src/itdelatrisu/opsu/objects/curves/Vec2f.java b/src/itdelatrisu/opsu/objects/curves/Vec2f.java index b49bac2d..7f1cd527 100644 --- a/src/itdelatrisu/opsu/objects/curves/Vec2f.java +++ b/src/itdelatrisu/opsu/objects/curves/Vec2f.java @@ -49,6 +49,18 @@ public class Vec2f { return new Vec2f((x + o.x) / 2, (y + o.y) / 2); } + public Vec2f scale(float s) { + x *= s; + y *= s; + return this; + } + + public Vec2f add(Vec2f o) { + x += o.x; + y += o.y; + return this; + } + /** * Subtracts a vector from this vector. * @param o the other vector @@ -97,4 +109,8 @@ public class Vec2f { * @return true if the two vectors are numerically equal */ public boolean equals(Vec2f o) { return (x == o.x && y == o.y); } + + public String toString(){ + return "Vec2f:"+x+" "+y; + } } diff --git a/src/itdelatrisu/opsu/states/Game.java b/src/itdelatrisu/opsu/states/Game.java index 6032b5b8..728f72f7 100644 --- a/src/itdelatrisu/opsu/states/Game.java +++ b/src/itdelatrisu/opsu/states/Game.java @@ -1043,6 +1043,16 @@ public class Game extends BasicGameState { // reset game data resetGameData(); + // load the first timingPoint + timingPointIndex = 0; + beatLengthBase = beatLength = 1; + if (!osu.timingPoints.isEmpty()) { + OsuTimingPoint timingPoint = osu.timingPoints.get(0); + if (!timingPoint.isInherited()) { + setBeatLength(timingPoint, true); + timingPointIndex++; + } + } // initialize object maps for (int i = 0; i < osu.objects.length; i++) { OsuHitObject hitObject = osu.objects[i]; From e792c3cae6a6ef63c92698f015e2c623c71e403f Mon Sep 17 00:00:00 2001 From: fd Date: Sun, 12 Apr 2015 13:19:33 -0400 Subject: [PATCH 17/59] Clean --- .../opsu/objects/curves/Bezier2.java | 7 +- .../opsu/objects/curves/CatmullCurve.java | 33 ++++--- .../objects/curves/CentripetalCatmullRom.java | 89 ++++++++----------- .../objects/curves/CircumscribedCircle.java | 9 +- .../opsu/objects/curves/Curve.java | 8 +- .../opsu/objects/curves/CurveType.java | 17 +++- .../curves/EqualDistanceMultiCurve.java | 34 +++---- .../opsu/objects/curves/LinearBezier.java | 7 +- .../opsu/objects/curves/Vec2f.java | 10 +++ src/itdelatrisu/opsu/states/Game.java | 2 +- 10 files changed, 112 insertions(+), 104 deletions(-) diff --git a/src/itdelatrisu/opsu/objects/curves/Bezier2.java b/src/itdelatrisu/opsu/objects/curves/Bezier2.java index 979ae8a1..fa02b542 100644 --- a/src/itdelatrisu/opsu/objects/curves/Bezier2.java +++ b/src/itdelatrisu/opsu/objects/curves/Bezier2.java @@ -41,14 +41,9 @@ public class Bezier2 extends CurveType{ approxlength += points[i].cpy().sub(points[i + 1]).len(); init(approxlength); -// System.out.println("New Bezier2 "+points.length+" "+approxlength+" "+totalDistance()); } - /** - * Returns the point on the Bezier curve at a value t. - * @param t the t value [0, 1] - * @return the point [x, y] - */ + @Override public Vec2f pointAt(float t) { Vec2f c = new Vec2f(); int n = points.length - 1; diff --git a/src/itdelatrisu/opsu/objects/curves/CatmullCurve.java b/src/itdelatrisu/opsu/objects/curves/CatmullCurve.java index c0b51687..262906f5 100644 --- a/src/itdelatrisu/opsu/objects/curves/CatmullCurve.java +++ b/src/itdelatrisu/opsu/objects/curves/CatmullCurve.java @@ -24,28 +24,39 @@ import itdelatrisu.opsu.OsuHitObject; import org.newdawn.slick.Color; +/** + * Representation of Catmull Curve with equidistant points. + * + * @author fluddokt (https://github.com/fluddokt) + */ public class CatmullCurve extends EqualDistanceMultiCurve{ + /** + * Constructor. + * @param hitObject the associated OsuHitObject + * @param color the color of this curve + */ public CatmullCurve(OsuHitObject hitObject, Color color) { super(hitObject, color); LinkedList catmulls = new LinkedList(); int ncontrolPoints = hitObject.getSliderX().length + 1; - LinkedList points = new LinkedList(); // temporary list of points to separate different curves + // temporary list of points to separate different curves + LinkedList points = new LinkedList(); - //aaa .... needs at least two points - //aabb - //aabc abcc - //aabc abcd bcdd - points.addLast(new Vec2f(getX(0),getY(0))); - for(int i=0;i=4){ + // repeat the first and last points as controls points + // aabb + // aabc abcc + // aabc abcd bcdd + points.addLast(new Vec2f(getX(0), getY(0))); + for (int i = 0; i < ncontrolPoints; i++) { + points.addLast(new Vec2f(getX(i), getY(i))); + if (points.size() >= 4) { catmulls.add(new CentripetalCatmullRom(points.toArray(new Vec2f[0]))); points.removeFirst(); } } - points.addLast(new Vec2f(getX(ncontrolPoints-1),getY(ncontrolPoints-1))); - if(points.size()>=4){ + points.addLast(new Vec2f(getX(ncontrolPoints - 1),getY(ncontrolPoints - 1))); + if (points.size() >= 4) { catmulls.add(new CentripetalCatmullRom(points.toArray(new Vec2f[0]))); } init(catmulls); diff --git a/src/itdelatrisu/opsu/objects/curves/CentripetalCatmullRom.java b/src/itdelatrisu/opsu/objects/curves/CentripetalCatmullRom.java index 743cfcdf..283dab2b 100644 --- a/src/itdelatrisu/opsu/objects/curves/CentripetalCatmullRom.java +++ b/src/itdelatrisu/opsu/objects/curves/CentripetalCatmullRom.java @@ -28,74 +28,59 @@ package itdelatrisu.opsu.objects.curves; */ public class CentripetalCatmullRom extends CurveType{ + /** The time values of the Catmull curve. */ float [] time; + + /** The control points of the Catmull curve. */ Vec2f[] points; + + /** + * Constructor. + * @param hitObject the associated OsuHitObject + * @param color the color of this curve + */ protected CentripetalCatmullRom(Vec2f[] points) { if (points.length != 4) throw new Error("need exactly 4 points"); - + this.points = points; - System.out.println("C"); - for(int i=0;i<4;i++){ - System.out.println(points[i]); - } time = new float[4]; time[0] = 0; float approxLength = 0; - for(int i=1;i<4;i++){ + for (int i = 1; i < 4; i++) { float len = 0; - if(i>0) - len = points[i].cpy().sub(points[i-1]).len(); - if(len<=0) - len+=0.0001f; + if (i > 0) + len = points[i].cpy().sub(points[i - 1]).len(); + if (len <= 0) + len += 0.0001f; approxLength += len; - //time[i] = (float) Math.sqrt(len) + time[i-1];// ^(0.5) + // time[i] = (float) Math.sqrt(len) + time[i-1];// ^(0.5) time[i] = i; - System.out.println("knot:"+i+" "+time[i]); } - init(approxLength/2); + init(approxLength / 2); } - public Vec2f pointAt(float t, int start, int end){ - int ind1 = start; - int ind2 = end; - if(end-start==3){ - ind1 = 1; - ind2 = 2; - } - //System.out.println("ST:"+start+" "+end+" "+ind1+" "+ind2); - float div = (time[ind2] - time[ind1]); - float v1 = (time[ind2] - t)/div; - float v2 = (t - time[ind1])/div; - System.out.println("div"+div+" "+v1+" "+v2); - if(end-start==1) - return points[start].cpy().scale(v1).add(points[end].cpy().scale(v2)); - else - return pointAt(t,start,end-1).scale(v1).add(pointAt(t,start+1,end).scale(v2)); - } - - public Vec2f pointAt(float t){ - t = t * (time[2]-time[1]) + time[1]; - Vec2f A1 = points[0].cpy().scale((time[1]-t)/(time[1]-time[0])).add(points[1].cpy().scale((t-time[0])/(time[1]-time[0]))); - Vec2f A2 = points[1].cpy().scale((time[2]-t)/(time[2]-time[1])).add(points[2].cpy().scale((t-time[1])/(time[2]-time[1]))); - Vec2f A3 = points[2].cpy().scale((time[3]-t)/(time[3]-time[2])).add(points[3].cpy().scale((t-time[2])/(time[3]-time[2]))); - - Vec2f B1 = A1.cpy().scale((time[2]-t)/(time[2]-time[0])).add(A2.cpy().scale((t-time[0])/(time[2]-time[0]))); - Vec2f B2 = A2.cpy().scale((time[3]-t)/(time[3]-time[1])).add(A3.cpy().scale((t-time[1])/(time[3]-time[1]))); - - Vec2f C = B1.cpy().scale((time[2]-t)/(time[2]-time[1])).add(B2.cpy().scale((t-time[1])/(time[2]-time[1]))); + + @Override + public Vec2f pointAt(float t){ + t = t * (time[2] - time[1]) + time[1]; + + Vec2f A1 = points[0].cpy().scale((time[1] - t) / (time[1] - time[0])) + .add(points[1].cpy().scale((t - time[0]) / (time[1] - time[0]))); + Vec2f A2 = points[1].cpy().scale((time[2] - t) / (time[2] - time[1])) + .add(points[2].cpy().scale((t - time[1]) / (time[2] - time[1]))); + Vec2f A3 = points[2].cpy().scale((time[3] - t) / (time[3] - time[2])) + .add(points[3].cpy().scale((t - time[2]) / (time[3] - time[2]))); + + Vec2f B1 = A1.cpy().scale((time[2] - t) / (time[2] - time[0])) + .add(A2.cpy().scale((t - time[0]) / (time[2] - time[0]))); + Vec2f B2 = A2.cpy().scale((time[3] - t) / (time[3] - time[1])) + .add(A3.cpy().scale((t - time[1]) / (time[3] - time[1]))); + + Vec2f C = B1.cpy().scale((time[2] - t) / (time[2] - time[1])) + .add(B2.cpy().scale((t - time[1]) / (time[2] - time[1]))); return C; } - public String toString(){ - String t = "CATMULLROM"; - for(Vec2f p: points){ - t+=p; - } - - t+=pointAt(0); - t+=pointAt(1); - - return t; - } + } diff --git a/src/itdelatrisu/opsu/objects/curves/CircumscribedCircle.java b/src/itdelatrisu/opsu/objects/curves/CircumscribedCircle.java index 5b09cccb..0e334634 100644 --- a/src/itdelatrisu/opsu/objects/curves/CircumscribedCircle.java +++ b/src/itdelatrisu/opsu/objects/curves/CircumscribedCircle.java @@ -19,12 +19,9 @@ package itdelatrisu.opsu.objects.curves; import itdelatrisu.opsu.ErrorHandler; -import itdelatrisu.opsu.GameImage; import itdelatrisu.opsu.OsuHitObject; -import itdelatrisu.opsu.Utils; import org.newdawn.slick.Color; -import org.newdawn.slick.Image; /** * Representation of a curve along a Circumscribed Circle of three points. @@ -53,9 +50,6 @@ public class CircumscribedCircle extends Curve { /** The start and end angles for drawing. */ private float drawStartAngle, drawEndAngle; - /** The number of steps in the curve to draw. */ - private float step; - /** * Constructor. * @param hitObject the associated OsuHitObject @@ -64,7 +58,6 @@ public class CircumscribedCircle extends Curve { public CircumscribedCircle(OsuHitObject hitObject, Color color) { super(hitObject, color); - // construct the three points this.start = new Vec2f(getX(0), getY(0)); this.mid = new Vec2f(getX(1), getY(1)); @@ -121,7 +114,7 @@ public class CircumscribedCircle extends Curve { this.drawStartAngle = (float) ((startAng + (startAng > endAng ? -HALF_PI : HALF_PI)) * 180 / Math.PI); // calculate points - this.step = hitObject.getPixelLength() / CURVE_POINTS_SEPERATION; + float step = hitObject.getPixelLength() / CURVE_POINTS_SEPERATION; curve = new Vec2f[(int) step + 1]; for (int i = 0; i < curve.length; i++) { float[] xy = pointAt(i / step); diff --git a/src/itdelatrisu/opsu/objects/curves/Curve.java b/src/itdelatrisu/opsu/objects/curves/Curve.java index 59374a14..354c0135 100644 --- a/src/itdelatrisu/opsu/objects/curves/Curve.java +++ b/src/itdelatrisu/opsu/objects/curves/Curve.java @@ -32,7 +32,9 @@ import org.newdawn.slick.Image; */ public abstract class Curve { - protected static float CURVE_POINTS_SEPERATION = 50; + /** Points generated along the curve should be spaced this much apart*/ + protected static float CURVE_POINTS_SEPERATION = 5; + /** The associated OsuHitObject. */ protected OsuHitObject hitObject; @@ -56,7 +58,6 @@ public abstract class Curve { this.y = hitObject.getScaledY(); this.sliderX = hitObject.getScaledSliderX(); this.sliderY = hitObject.getScaledSliderY(); - CURVE_POINTS_SEPERATION = 5; } /** @@ -71,8 +72,7 @@ public abstract class Curve { * @param color the color filter */ public void draw(Color color) { - if ( curve == null){ - System.out.println("draw curve"+this); + if (curve == null){ return; } Image hitCircle = GameImage.HITCIRCLE.getImage(); diff --git a/src/itdelatrisu/opsu/objects/curves/CurveType.java b/src/itdelatrisu/opsu/objects/curves/CurveType.java index e41037b6..b1986ac1 100644 --- a/src/itdelatrisu/opsu/objects/curves/CurveType.java +++ b/src/itdelatrisu/opsu/objects/curves/CurveType.java @@ -37,13 +37,23 @@ public abstract class CurveType { /** The total distances of this Bezier. */ private float totalDistance; + /** + * Returns the point on the curve at a value t. + * @param t the t value [0, 1] + * @return the point [x, y] + */ public abstract Vec2f pointAt(float t); - public void init(float approxlength){ + /** + * Initialize the curve points and distance + * Must be called by inherited classes + * + * @param approxlength an approximate length of the curve + */ + public void init(float approxlength) { // subdivide the curve this.ncurve = (int) (approxlength / 4) + 1; this.curve = new Vec2f[ncurve]; - System.out.println(approxlength+" "+ncurve); for (int i = 0; i < ncurve; i++) curve[i] = pointAt(i / (float) (ncurve - 1)); @@ -53,13 +63,12 @@ public abstract class CurveType { for (int i = 0; i < ncurve; i++) { curveDis[i] = (i == 0) ? 0 : curve[i].cpy().sub(curve[i - 1]).len(); totalDistance += curveDis[i]; - System.out.println("curvedis:"+curveDis[i]); } } /** * Returns the points along the curve of the Bezier curve. */ - public Vec2f[] getCurve() { return curve; } + public Vec2f[] getCurvePoint() { return curve; } /** * Returns the distances between a point of the curve and the last point. diff --git a/src/itdelatrisu/opsu/objects/curves/EqualDistanceMultiCurve.java b/src/itdelatrisu/opsu/objects/curves/EqualDistanceMultiCurve.java index f3dc8bc4..f1959ffb 100644 --- a/src/itdelatrisu/opsu/objects/curves/EqualDistanceMultiCurve.java +++ b/src/itdelatrisu/opsu/objects/curves/EqualDistanceMultiCurve.java @@ -26,7 +26,7 @@ import java.util.LinkedList; import org.newdawn.slick.Color; /** - * Representation of a Bezier curve with equidistant points. + * Representation of multiple curve with equidistant points. * http://pomax.github.io/bezierinfo/#tracing * * @author fluddokt (https://github.com/fluddokt) @@ -48,22 +48,25 @@ public abstract class EqualDistanceMultiCurve extends Curve { } - public void init(LinkedList beziers){ - for(CurveType ct : beziers){ - System.out.println("CT:"+ct); - } + /** + * Initialize the curve points with equal distance + * Must be called by inherited classes + * + * @param curvesList a list of curves to join + */ + public void init(LinkedList curvesList){ // now try to creates points the are equidistant to each other this.ncurve = (int) (hitObject.getPixelLength() / CURVE_POINTS_SEPERATION); this.curve = new Vec2f[ncurve + 1]; float distanceAt = 0; - Iterator iter = beziers.iterator(); + Iterator iter = curvesList.iterator(); int curPoint = 0; - CurveType curBezier = iter.next(); - Vec2f lastCurve = curBezier.getCurve()[0]; + CurveType curCurve = iter.next(); + Vec2f lastCurve = curCurve.getCurvePoint()[0]; float lastDistanceAt = 0; - // length of Bezier should equal pixel length (in 640x480) + // length of Curve should equal pixel length (in 640x480) float pixelLength = hitObject.getPixelLength() * OsuHitObject.getXMultiplier(); // for each distance, try to get in between the two points that are between it @@ -71,15 +74,15 @@ public abstract class EqualDistanceMultiCurve extends Curve { int prefDistance = (int) (i * pixelLength / ncurve); while (distanceAt < prefDistance) { lastDistanceAt = distanceAt; - lastCurve = curBezier.getCurve()[curPoint]; - distanceAt += curBezier.getCurveDistances()[curPoint++]; + lastCurve = curCurve.getCurvePoint()[curPoint]; + distanceAt += curCurve.getCurveDistances()[curPoint++]; - if (curPoint >= curBezier.getCurvesCount()) { + if (curPoint >= curCurve.getCurvesCount()) { if (iter.hasNext()) { - curBezier = iter.next(); + curCurve = iter.next(); curPoint = 0; } else { - curPoint = curBezier.getCurvesCount() - 1; + curPoint = curCurve.getCurvesCount() - 1; if (lastDistanceAt == distanceAt) { // out of points even though the preferred distance hasn't been reached break; @@ -87,8 +90,7 @@ public abstract class EqualDistanceMultiCurve extends Curve { } } } - System.out.println("prefDis:"+prefDistance+" "+distanceAt+" "+lastDistanceAt); - Vec2f thisCurve = curBezier.getCurve()[curPoint]; + Vec2f thisCurve = curCurve.getCurvePoint()[curPoint]; // interpolate the point between the two closest distances if (distanceAt - lastDistanceAt > 1) { diff --git a/src/itdelatrisu/opsu/objects/curves/LinearBezier.java b/src/itdelatrisu/opsu/objects/curves/LinearBezier.java index cb919699..5d2e7a5c 100644 --- a/src/itdelatrisu/opsu/objects/curves/LinearBezier.java +++ b/src/itdelatrisu/opsu/objects/curves/LinearBezier.java @@ -24,7 +24,7 @@ import java.util.LinkedList; import org.newdawn.slick.Color; /** - * Representation of a Bezier curve with equidistant points. + * Representation of Bezier curve with equidistant points. * http://pomax.github.io/bezierinfo/#tracing * * @author fluddokt (https://github.com/fluddokt) @@ -40,9 +40,12 @@ public class LinearBezier extends EqualDistanceMultiCurve { super(hitObject, color); LinkedList beziers = new LinkedList(); + + // Beziers: splits points into different Beziers if has the same points (red points) // a b c - c d - d e f g + // Lines: generate a new curve for each sequential pair // ab bc cd de ef fg - // splits points into different Beziers if has the same points (red points) + int controlPoints = hitObject.getSliderX().length + 1; LinkedList points = new LinkedList(); // temporary list of points to separate different Bezier curves Vec2f lastPoi = null; diff --git a/src/itdelatrisu/opsu/objects/curves/Vec2f.java b/src/itdelatrisu/opsu/objects/curves/Vec2f.java index 7f1cd527..b857ad33 100644 --- a/src/itdelatrisu/opsu/objects/curves/Vec2f.java +++ b/src/itdelatrisu/opsu/objects/curves/Vec2f.java @@ -49,12 +49,22 @@ public class Vec2f { return new Vec2f((x + o.x) / 2, (y + o.y) / 2); } + /** + * Scales the vector. + * @param s scaler to scale by + * @return itself (for chaining) + */ public Vec2f scale(float s) { x *= s; y *= s; return this; } + /** + * Adds a vector to this vector. + * @param o the other vector + * @return itself (for chaining) + */ public Vec2f add(Vec2f o) { x += o.x; y += o.y; diff --git a/src/itdelatrisu/opsu/states/Game.java b/src/itdelatrisu/opsu/states/Game.java index 728f72f7..cede90d4 100644 --- a/src/itdelatrisu/opsu/states/Game.java +++ b/src/itdelatrisu/opsu/states/Game.java @@ -1043,7 +1043,7 @@ public class Game extends BasicGameState { // reset game data resetGameData(); - // load the first timingPoint + // load the first timingPoint for stacking timingPointIndex = 0; beatLengthBase = beatLength = 1; if (!osu.timingPoints.isEmpty()) { From 5fcff7669058f7e111b4fba4c568c3f9dde64d4d Mon Sep 17 00:00:00 2001 From: Jeffrey Han Date: Sun, 12 Apr 2015 22:33:20 -0400 Subject: [PATCH 18/59] Very minor formatting changes to #76. Signed-off-by: Jeffrey Han --- src/itdelatrisu/opsu/Utils.java | 2 +- .../opsu/audio/SoundController.java | 2 +- src/itdelatrisu/opsu/objects/Slider.java | 2 +- .../opsu/objects/curves/Bezier2.java | 5 ++- .../opsu/objects/curves/CatmullCurve.java | 29 ++++++++++------ .../objects/curves/CentripetalCatmullRom.java | 33 +++++++++---------- .../objects/curves/CircumscribedCircle.java | 1 - .../opsu/objects/curves/Curve.java | 11 +++---- .../opsu/objects/curves/CurveType.java | 10 +++--- .../curves/EqualDistanceMultiCurve.java | 8 ++--- .../opsu/objects/curves/LinearBezier.java | 10 +++--- .../opsu/objects/curves/Vec2f.java | 7 ++-- src/itdelatrisu/opsu/states/Game.java | 3 +- 13 files changed, 61 insertions(+), 62 deletions(-) diff --git a/src/itdelatrisu/opsu/Utils.java b/src/itdelatrisu/opsu/Utils.java index 62397428..7035825e 100644 --- a/src/itdelatrisu/opsu/Utils.java +++ b/src/itdelatrisu/opsu/Utils.java @@ -619,7 +619,7 @@ public class Utils { public static float easeOut(float t, float a, float b, float d) { return b * ((t = t / d - 1f) * t * t + 1f) + a; } - + /** * Fake bounce ease function. * @param t the current time diff --git a/src/itdelatrisu/opsu/audio/SoundController.java b/src/itdelatrisu/opsu/audio/SoundController.java index 96c5df26..20eb82b4 100644 --- a/src/itdelatrisu/opsu/audio/SoundController.java +++ b/src/itdelatrisu/opsu/audio/SoundController.java @@ -164,7 +164,7 @@ public class SoundController { } if (bestIndex >= 0) return new MultiClip(ref, AudioSystem.getAudioInputStream(formats[bestIndex], audioIn)); - + // still couldn't find anything, try the default clip format return new MultiClip(ref, AudioSystem.getAudioInputStream(clip.getFormat(), audioIn)); } diff --git a/src/itdelatrisu/opsu/objects/Slider.java b/src/itdelatrisu/opsu/objects/Slider.java index 19740c77..57f39643 100644 --- a/src/itdelatrisu/opsu/objects/Slider.java +++ b/src/itdelatrisu/opsu/objects/Slider.java @@ -460,7 +460,7 @@ public class Slider implements HitObject { if (hitObject.getSliderType() == OsuHitObject.SLIDER_PASSTHROUGH && hitObject.getSliderX().length == 2) this.curve = new CircumscribedCircle(hitObject, color); - else if ( hitObject.getSliderType() == OsuHitObject.SLIDER_CATMULL) + else if (hitObject.getSliderType() == OsuHitObject.SLIDER_CATMULL) this.curve = new CatmullCurve(hitObject, color); else this.curve = new LinearBezier(hitObject, color, hitObject.getSliderType() == OsuHitObject.SLIDER_LINEAR); diff --git a/src/itdelatrisu/opsu/objects/curves/Bezier2.java b/src/itdelatrisu/opsu/objects/curves/Bezier2.java index fa02b542..df0a5e09 100644 --- a/src/itdelatrisu/opsu/objects/curves/Bezier2.java +++ b/src/itdelatrisu/opsu/objects/curves/Bezier2.java @@ -23,7 +23,7 @@ package itdelatrisu.opsu.objects.curves; * * @author fluddokt (https://github.com/fluddokt) */ -public class Bezier2 extends CurveType{ +public class Bezier2 extends CurveType { /** The control points of the Bezier curve. */ private Vec2f[] points; @@ -55,12 +55,11 @@ public class Bezier2 extends CurveType{ return c; } - /** * Calculates the binomial coefficient. * http://en.wikipedia.org/wiki/Binomial_coefficient#Binomial_coefficient_in_programming_languages */ - public static long binomialCoefficient(int n, int k) { + private static long binomialCoefficient(int n, int k) { if (k < 0 || k > n) return 0; if (k == 0 || k == n) diff --git a/src/itdelatrisu/opsu/objects/curves/CatmullCurve.java b/src/itdelatrisu/opsu/objects/curves/CatmullCurve.java index 262906f5..07f78d67 100644 --- a/src/itdelatrisu/opsu/objects/curves/CatmullCurve.java +++ b/src/itdelatrisu/opsu/objects/curves/CatmullCurve.java @@ -18,19 +18,20 @@ package itdelatrisu.opsu.objects.curves; -import java.util.LinkedList; - +import itdelatrisu.opsu.ErrorHandler; import itdelatrisu.opsu.OsuHitObject; +import java.util.LinkedList; + import org.newdawn.slick.Color; +import org.newdawn.slick.SlickException; /** * Representation of Catmull Curve with equidistant points. * * @author fluddokt (https://github.com/fluddokt) */ -public class CatmullCurve extends EqualDistanceMultiCurve{ - +public class CatmullCurve extends EqualDistanceMultiCurve { /** * Constructor. * @param hitObject the associated OsuHitObject @@ -40,9 +41,8 @@ public class CatmullCurve extends EqualDistanceMultiCurve{ super(hitObject, color); LinkedList catmulls = new LinkedList(); int ncontrolPoints = hitObject.getSliderX().length + 1; - // temporary list of points to separate different curves - LinkedList points = new LinkedList(); - + LinkedList points = new LinkedList(); // temporary list of points to separate different curves + // repeat the first and last points as controls points // aabb // aabc abcc @@ -51,14 +51,23 @@ public class CatmullCurve extends EqualDistanceMultiCurve{ for (int i = 0; i < ncontrolPoints; i++) { points.addLast(new Vec2f(getX(i), getY(i))); if (points.size() >= 4) { - catmulls.add(new CentripetalCatmullRom(points.toArray(new Vec2f[0]))); + try { + catmulls.add(new CentripetalCatmullRom(points.toArray(new Vec2f[0]))); + } catch (SlickException e) { + ErrorHandler.error(null, e, true); + } points.removeFirst(); } } - points.addLast(new Vec2f(getX(ncontrolPoints - 1),getY(ncontrolPoints - 1))); + points.addLast(new Vec2f(getX(ncontrolPoints - 1), getY(ncontrolPoints - 1))); if (points.size() >= 4) { - catmulls.add(new CentripetalCatmullRom(points.toArray(new Vec2f[0]))); + try { + catmulls.add(new CentripetalCatmullRom(points.toArray(new Vec2f[0]))); + } catch (SlickException e) { + ErrorHandler.error(null, e, true); + } } + init(catmulls); } } diff --git a/src/itdelatrisu/opsu/objects/curves/CentripetalCatmullRom.java b/src/itdelatrisu/opsu/objects/curves/CentripetalCatmullRom.java index 283dab2b..5a13d7ce 100644 --- a/src/itdelatrisu/opsu/objects/curves/CentripetalCatmullRom.java +++ b/src/itdelatrisu/opsu/objects/curves/CentripetalCatmullRom.java @@ -18,30 +18,30 @@ package itdelatrisu.opsu.objects.curves; +import org.newdawn.slick.SlickException; + /** * Representation of a Centripetal Catmull–Rom spline. + * (Currently not technically Centripetal Catmull–Rom.) * http://en.wikipedia.org/wiki/Centripetal_Catmull%E2%80%93Rom_spline - * - * Currently not technically Centripetal Catmull–Rom - * + * * @author fluddokt (https://github.com/fluddokt) */ -public class CentripetalCatmullRom extends CurveType{ - +public class CentripetalCatmullRom extends CurveType { /** The time values of the Catmull curve. */ - float [] time; - + private float [] time; + /** The control points of the Catmull curve. */ - Vec2f[] points; - + private Vec2f[] points; + /** * Constructor. - * @param hitObject the associated OsuHitObject - * @param color the color of this curve + * @param points the control points of the curve + * @throws SlickException */ - protected CentripetalCatmullRom(Vec2f[] points) { + protected CentripetalCatmullRom(Vec2f[] points) throws SlickException { if (points.length != 4) - throw new Error("need exactly 4 points"); + throw new SlickException(String.format("Need exactly 4 points to initialize CentripetalCatmullRom, %d provided.", points.length)); this.points = points; time = new float[4]; @@ -57,12 +57,12 @@ public class CentripetalCatmullRom extends CurveType{ // time[i] = (float) Math.sqrt(len) + time[i-1];// ^(0.5) time[i] = i; } + init(approxLength / 2); } - @Override - public Vec2f pointAt(float t){ + public Vec2f pointAt(float t) { t = t * (time[2] - time[1]) + time[1]; Vec2f A1 = points[0].cpy().scale((time[1] - t) / (time[1] - time[0])) @@ -79,8 +79,7 @@ public class CentripetalCatmullRom extends CurveType{ Vec2f C = B1.cpy().scale((time[2] - t) / (time[2] - time[1])) .add(B2.cpy().scale((t - time[1]) / (time[2] - time[1]))); - + return C; } - } diff --git a/src/itdelatrisu/opsu/objects/curves/CircumscribedCircle.java b/src/itdelatrisu/opsu/objects/curves/CircumscribedCircle.java index 0e334634..0150d145 100644 --- a/src/itdelatrisu/opsu/objects/curves/CircumscribedCircle.java +++ b/src/itdelatrisu/opsu/objects/curves/CircumscribedCircle.java @@ -168,7 +168,6 @@ public class CircumscribedCircle extends Curve { }; } - @Override public float getEndAngle() { return drawEndAngle; } diff --git a/src/itdelatrisu/opsu/objects/curves/Curve.java b/src/itdelatrisu/opsu/objects/curves/Curve.java index 354c0135..3392ef62 100644 --- a/src/itdelatrisu/opsu/objects/curves/Curve.java +++ b/src/itdelatrisu/opsu/objects/curves/Curve.java @@ -31,10 +31,9 @@ import org.newdawn.slick.Image; * @author fluddokt (https://github.com/fluddokt) */ public abstract class Curve { - - /** Points generated along the curve should be spaced this much apart*/ + /** Points generated along the curve should be spaced this far apart. */ protected static float CURVE_POINTS_SEPERATION = 5; - + /** The associated OsuHitObject. */ protected OsuHitObject hitObject; @@ -44,7 +43,7 @@ public abstract class Curve { /** The scaled slider x, y coordinate lists. */ protected float[] sliderX, sliderY; - /** Points along the curve. To be set be inherited classes*/ + /** Points along the curve (set by inherited classes). */ protected Vec2f[] curve; /** @@ -72,9 +71,9 @@ public abstract class Curve { * @param color the color filter */ public void draw(Color color) { - if (curve == null){ + if (curve == null) return; - } + Image hitCircle = GameImage.HITCIRCLE.getImage(); Image hitCircleOverlay = GameImage.HITCIRCLE_OVERLAY.getImage(); for (int i = 0; i < curve.length; i++) diff --git a/src/itdelatrisu/opsu/objects/curves/CurveType.java b/src/itdelatrisu/opsu/objects/curves/CurveType.java index b1986ac1..c6cec272 100644 --- a/src/itdelatrisu/opsu/objects/curves/CurveType.java +++ b/src/itdelatrisu/opsu/objects/curves/CurveType.java @@ -24,7 +24,6 @@ package itdelatrisu.opsu.objects.curves; * @author fluddokt (https://github.com/fluddokt) */ public abstract class CurveType { - /** Points along the curve of the Bezier curve. */ private Vec2f[] curve; @@ -43,11 +42,10 @@ public abstract class CurveType { * @return the point [x, y] */ public abstract Vec2f pointAt(float t); - + /** - * Initialize the curve points and distance - * Must be called by inherited classes - * + * Initialize the curve points and distance. + * Must be called by inherited classes. * @param approxlength an approximate length of the curve */ public void init(float approxlength) { @@ -65,6 +63,7 @@ public abstract class CurveType { totalDistance += curveDis[i]; } } + /** * Returns the points along the curve of the Bezier curve. */ @@ -84,5 +83,4 @@ public abstract class CurveType { * Returns the total distances of this Bezier curve. */ public float totalDistance() { return totalDistance; } - } diff --git a/src/itdelatrisu/opsu/objects/curves/EqualDistanceMultiCurve.java b/src/itdelatrisu/opsu/objects/curves/EqualDistanceMultiCurve.java index f1959ffb..5f19e9b4 100644 --- a/src/itdelatrisu/opsu/objects/curves/EqualDistanceMultiCurve.java +++ b/src/itdelatrisu/opsu/objects/curves/EqualDistanceMultiCurve.java @@ -45,13 +45,11 @@ public abstract class EqualDistanceMultiCurve extends Curve { */ public EqualDistanceMultiCurve(OsuHitObject hitObject, Color color) { super(hitObject, color); - } /** - * Initialize the curve points with equal distance - * Must be called by inherited classes - * + * Initialize the curve points with equal distance. + * Must be called by inherited classes. * @param curvesList a list of curves to join */ public void init(LinkedList curvesList){ @@ -116,7 +114,7 @@ public abstract class EqualDistanceMultiCurve extends Curve { this.endAngle = (float) (Math.atan2(c2.y - c1.y, c2.x - c1.x) * 180 / Math.PI); // } } - + @Override public float[] pointAt(float t) { float indexF = t * ncurve; diff --git a/src/itdelatrisu/opsu/objects/curves/LinearBezier.java b/src/itdelatrisu/opsu/objects/curves/LinearBezier.java index 5d2e7a5c..80b1b668 100644 --- a/src/itdelatrisu/opsu/objects/curves/LinearBezier.java +++ b/src/itdelatrisu/opsu/objects/curves/LinearBezier.java @@ -19,6 +19,7 @@ package itdelatrisu.opsu.objects.curves; import itdelatrisu.opsu.OsuHitObject; + import java.util.LinkedList; import org.newdawn.slick.Color; @@ -30,29 +31,28 @@ import org.newdawn.slick.Color; * @author fluddokt (https://github.com/fluddokt) */ public class LinearBezier extends EqualDistanceMultiCurve { - /** * Constructor. * @param hitObject the associated OsuHitObject * @param color the color of this curve + * @param line whether a new curve should be generated for each sequential pair */ public LinearBezier(OsuHitObject hitObject, Color color, boolean line) { super(hitObject, color); LinkedList beziers = new LinkedList(); - + // Beziers: splits points into different Beziers if has the same points (red points) // a b c - c d - d e f g // Lines: generate a new curve for each sequential pair // ab bc cd de ef fg - int controlPoints = hitObject.getSliderX().length + 1; LinkedList points = new LinkedList(); // temporary list of points to separate different Bezier curves Vec2f lastPoi = null; for (int i = 0; i < controlPoints; i++) { Vec2f tpoi = new Vec2f(getX(i), getY(i)); if (line) { - if(lastPoi != null) { + if (lastPoi != null) { points.add(tpoi); beziers.add(new Bezier2(points.toArray(new Vec2f[0]))); points.clear(); @@ -72,7 +72,7 @@ public class LinearBezier extends EqualDistanceMultiCurve { beziers.add(new Bezier2(points.toArray(new Vec2f[0]))); points.clear(); } - + init(beziers); } } diff --git a/src/itdelatrisu/opsu/objects/curves/Vec2f.java b/src/itdelatrisu/opsu/objects/curves/Vec2f.java index b857ad33..1005cd1d 100644 --- a/src/itdelatrisu/opsu/objects/curves/Vec2f.java +++ b/src/itdelatrisu/opsu/objects/curves/Vec2f.java @@ -70,7 +70,7 @@ public class Vec2f { y += o.y; return this; } - + /** * Subtracts a vector from this vector. * @param o the other vector @@ -120,7 +120,6 @@ public class Vec2f { */ public boolean equals(Vec2f o) { return (x == o.x && y == o.y); } - public String toString(){ - return "Vec2f:"+x+" "+y; - } + @Override + public String toString() { return String.format("(%.3f, %.3f)", x, y); } } diff --git a/src/itdelatrisu/opsu/states/Game.java b/src/itdelatrisu/opsu/states/Game.java index cede90d4..72674b13 100644 --- a/src/itdelatrisu/opsu/states/Game.java +++ b/src/itdelatrisu/opsu/states/Game.java @@ -1044,8 +1044,6 @@ public class Game extends BasicGameState { resetGameData(); // load the first timingPoint for stacking - timingPointIndex = 0; - beatLengthBase = beatLength = 1; if (!osu.timingPoints.isEmpty()) { OsuTimingPoint timingPoint = osu.timingPoints.get(0); if (!timingPoint.isInherited()) { @@ -1053,6 +1051,7 @@ public class Game extends BasicGameState { timingPointIndex++; } } + // initialize object maps for (int i = 0; i < osu.objects.length; i++) { OsuHitObject hitObject = osu.objects[i]; From 61d00627cfa7f921937a92c7657ff63afeeff2cd Mon Sep 17 00:00:00 2001 From: fd Date: Mon, 13 Apr 2015 22:56:07 -0400 Subject: [PATCH 19/59] More curve types #76 fix? --- src/itdelatrisu/opsu/objects/curves/CatmullCurve.java | 6 +++++- src/itdelatrisu/opsu/objects/curves/CurveType.java | 2 +- .../opsu/objects/curves/EqualDistanceMultiCurve.java | 3 ++- 3 files changed, 8 insertions(+), 3 deletions(-) diff --git a/src/itdelatrisu/opsu/objects/curves/CatmullCurve.java b/src/itdelatrisu/opsu/objects/curves/CatmullCurve.java index 07f78d67..11f53497 100644 --- a/src/itdelatrisu/opsu/objects/curves/CatmullCurve.java +++ b/src/itdelatrisu/opsu/objects/curves/CatmullCurve.java @@ -44,10 +44,12 @@ public class CatmullCurve extends EqualDistanceMultiCurve { LinkedList points = new LinkedList(); // temporary list of points to separate different curves // repeat the first and last points as controls points + // only if the first/last two points are different // aabb // aabc abcc // aabc abcd bcdd - points.addLast(new Vec2f(getX(0), getY(0))); + if (getX(0) != getX(1) || getY(0) != getY(1)) + points.addLast(new Vec2f(getX(0), getY(0))); for (int i = 0; i < ncontrolPoints; i++) { points.addLast(new Vec2f(getX(i), getY(i))); if (points.size() >= 4) { @@ -59,6 +61,8 @@ public class CatmullCurve extends EqualDistanceMultiCurve { points.removeFirst(); } } + if (getX(ncontrolPoints - 1) != getX(ncontrolPoints - 2) + ||getY(ncontrolPoints - 1) != getY(ncontrolPoints - 2)) points.addLast(new Vec2f(getX(ncontrolPoints - 1), getY(ncontrolPoints - 1))); if (points.size() >= 4) { try { diff --git a/src/itdelatrisu/opsu/objects/curves/CurveType.java b/src/itdelatrisu/opsu/objects/curves/CurveType.java index c6cec272..4af02a62 100644 --- a/src/itdelatrisu/opsu/objects/curves/CurveType.java +++ b/src/itdelatrisu/opsu/objects/curves/CurveType.java @@ -50,7 +50,7 @@ public abstract class CurveType { */ public void init(float approxlength) { // subdivide the curve - this.ncurve = (int) (approxlength / 4) + 1; + this.ncurve = (int) (approxlength / 4) + 2; this.curve = new Vec2f[ncurve]; for (int i = 0; i < ncurve; i++) curve[i] = pointAt(i / (float) (ncurve - 1)); diff --git a/src/itdelatrisu/opsu/objects/curves/EqualDistanceMultiCurve.java b/src/itdelatrisu/opsu/objects/curves/EqualDistanceMultiCurve.java index 5f19e9b4..4cb06694 100644 --- a/src/itdelatrisu/opsu/objects/curves/EqualDistanceMultiCurve.java +++ b/src/itdelatrisu/opsu/objects/curves/EqualDistanceMultiCurve.java @@ -73,7 +73,7 @@ public abstract class EqualDistanceMultiCurve extends Curve { while (distanceAt < prefDistance) { lastDistanceAt = distanceAt; lastCurve = curCurve.getCurvePoint()[curPoint]; - distanceAt += curCurve.getCurveDistances()[curPoint++]; + curPoint++; if (curPoint >= curCurve.getCurvesCount()) { if (iter.hasNext()) { @@ -87,6 +87,7 @@ public abstract class EqualDistanceMultiCurve extends Curve { } } } + distanceAt += curCurve.getCurveDistances()[curPoint]; } Vec2f thisCurve = curCurve.getCurvePoint()[curPoint]; From 50d55d8d9955416d308df11fb45fe4018984d244 Mon Sep 17 00:00:00 2001 From: Jeffrey Han Date: Thu, 7 May 2015 13:28:40 -0400 Subject: [PATCH 20/59] Better error handling when running JARs in a directory with '!'. Signed-off-by: Jeffrey Han --- src/itdelatrisu/opsu/Opsu.java | 29 ++++++++++++++++++++++------- src/itdelatrisu/opsu/Utils.java | 21 +++++++++++++++++++++ 2 files changed, 43 insertions(+), 7 deletions(-) diff --git a/src/itdelatrisu/opsu/Opsu.java b/src/itdelatrisu/opsu/Opsu.java index 078e791d..3524863b 100644 --- a/src/itdelatrisu/opsu/Opsu.java +++ b/src/itdelatrisu/opsu/Opsu.java @@ -135,7 +135,11 @@ public class Opsu extends StateBasedGame { ResourceLoader.addResourceLocation(new FileSystemLocation(new File("./res/"))); // initialize databases - DBController.init(); + try { + DBController.init(); + } catch (UnsatisfiedLinkError e) { + errorAndExit(e, "The databases could not be initialized."); + } // check if just updated if (args.length >= 2) @@ -176,12 +180,7 @@ public class Opsu extends StateBasedGame { } } } catch (SlickException e) { - // JARs will not run properly inside directories containing '!' - // http://bugs.java.com/view_bug.do?bug_id=4523159 - if (new File("").getAbsolutePath().indexOf('!') != -1) - ErrorHandler.error("Cannot run JAR from path containing '!'.", null, false); - else - ErrorHandler.error("Error while creating game container.", e, true); + errorAndExit(e, "An error occurred while creating the game container."); } } @@ -242,4 +241,20 @@ public class Opsu extends StateBasedGame { } } } + + /** + * Throws an error and exits the application with the given message. + * @param e the exception that caused the crash + * @param message the message to display + */ + private static void errorAndExit(Throwable e, String message) { + // JARs will not run properly inside directories containing '!' + // http://bugs.java.com/view_bug.do?bug_id=4523159 + if (Utils.isJarRunning() && Utils.getRunningDirectory() != null && + Utils.getRunningDirectory().getAbsolutePath().indexOf('!') != -1) + ErrorHandler.error("JARs cannot be run from some paths containing '!'. Please move or rename the file and try again.", null, false); + else + ErrorHandler.error(message, e, true); + System.exit(1); + } } diff --git a/src/itdelatrisu/opsu/Utils.java b/src/itdelatrisu/opsu/Utils.java index 7035825e..379ff08b 100644 --- a/src/itdelatrisu/opsu/Utils.java +++ b/src/itdelatrisu/opsu/Utils.java @@ -35,6 +35,7 @@ import java.io.InputStream; import java.io.InputStreamReader; import java.net.HttpURLConnection; import java.net.SocketTimeoutException; +import java.net.URISyntaxException; import java.net.URL; import java.nio.ByteBuffer; import java.security.MessageDigest; @@ -633,4 +634,24 @@ public class Utils { return easeOut(t, a, b, d); return easeOut(d - t, a, b, d); } + + /** + * Returns whether or not the application is running within a JAR. + * @return true if JAR, false if file + */ + public static boolean isJarRunning() { + return Opsu.class.getResource(String.format("%s.class", Opsu.class.getSimpleName())).toString().startsWith("jar:"); + } + + /** + * Returns the directory where the application is being run. + */ + public static File getRunningDirectory() { + try { + return new File(Opsu.class.getProtectionDomain().getCodeSource().getLocation().toURI().getPath()); + } catch (URISyntaxException e) { + Log.error("Could not get the running directory.", e); + return null; + } + } } From cab207e27587efd768fce7f4391bddf2739291d9 Mon Sep 17 00:00:00 2001 From: Jeffrey Han Date: Thu, 7 May 2015 23:58:04 -0400 Subject: [PATCH 21/59] Added osu!Mirror download server. Signed-off-by: Jeffrey Han --- src/itdelatrisu/opsu/Utils.java | 21 +++ .../opsu/downloads/DownloadNode.java | 35 +++-- .../{ => servers}/BloodcatServer.java | 36 ++--- .../{ => servers}/DownloadServer.java | 20 ++- .../downloads/servers/OsuMirrorServer.java | 129 ++++++++++++++++++ .../opsu/states/DownloadsMenu.java | 96 +++++++++---- 6 files changed, 268 insertions(+), 69 deletions(-) rename src/itdelatrisu/opsu/downloads/{ => servers}/BloodcatServer.java (81%) rename src/itdelatrisu/opsu/downloads/{ => servers}/DownloadServer.java (80%) create mode 100644 src/itdelatrisu/opsu/downloads/servers/OsuMirrorServer.java diff --git a/src/itdelatrisu/opsu/Utils.java b/src/itdelatrisu/opsu/Utils.java index 379ff08b..bdf9b6be 100644 --- a/src/itdelatrisu/opsu/Utils.java +++ b/src/itdelatrisu/opsu/Utils.java @@ -51,6 +51,8 @@ import java.util.Scanner; import javax.imageio.ImageIO; +import org.json.JSONException; +import org.json.JSONObject; import org.lwjgl.BufferUtils; import org.lwjgl.opengl.Display; import org.lwjgl.opengl.GL11; @@ -554,6 +556,25 @@ public class Utils { } } + /** + * Returns a JSON object from a URL. + * @param url the remote URL + * @return the JSON object + * @author Roland Illig (http://stackoverflow.com/a/4308662) + */ + public static JSONObject readJsonFromUrl(URL url) throws IOException { + String s = Utils.readDataFromUrl(url); + JSONObject json = null; + if (s != null) { + try { + json = new JSONObject(s); + } catch (JSONException e) { + ErrorHandler.error("Failed to create JSON object.", e, true); + } + } + return json; + } + /** * Converts an input stream to a string. * @param is the input stream diff --git a/src/itdelatrisu/opsu/downloads/DownloadNode.java b/src/itdelatrisu/opsu/downloads/DownloadNode.java index 0040aa2e..f13668f5 100644 --- a/src/itdelatrisu/opsu/downloads/DownloadNode.java +++ b/src/itdelatrisu/opsu/downloads/DownloadNode.java @@ -26,6 +26,7 @@ import itdelatrisu.opsu.UI; import itdelatrisu.opsu.Utils; import itdelatrisu.opsu.downloads.Download.DownloadListener; import itdelatrisu.opsu.downloads.Download.Status; +import itdelatrisu.opsu.downloads.servers.DownloadServer; import java.io.File; @@ -239,22 +240,26 @@ public class DownloadNode { * @see #getDownload() */ public void createDownload(DownloadServer server) { - if (download == null) { - String path = String.format("%s%c%d", Options.getOSZDir(), File.separatorChar, beatmapSetID); - String rename = String.format("%d %s - %s.osz", beatmapSetID, artist, title); - this.download = new Download(server.getURL(beatmapSetID), path, rename); - download.setListener(new DownloadListener() { - @Override - public void completed() { - UI.sendBarNotification(String.format("Download complete: %s", getTitle())); - } + if (download != null) + return; - @Override - public void error() { - UI.sendBarNotification("Download failed due to a connection error."); - } - }); - } + String url = server.getDownloadURL(beatmapSetID); + if (url == null) + return; + String path = String.format("%s%c%d", Options.getOSZDir(), File.separatorChar, beatmapSetID); + String rename = String.format("%d %s - %s.osz", beatmapSetID, artist, title); + this.download = new Download(url, path, rename); + download.setListener(new DownloadListener() { + @Override + public void completed() { + UI.sendBarNotification(String.format("Download complete: %s", getTitle())); + } + + @Override + public void error() { + UI.sendBarNotification("Download failed due to a connection error."); + } + }); } /** diff --git a/src/itdelatrisu/opsu/downloads/BloodcatServer.java b/src/itdelatrisu/opsu/downloads/servers/BloodcatServer.java similarity index 81% rename from src/itdelatrisu/opsu/downloads/BloodcatServer.java rename to src/itdelatrisu/opsu/downloads/servers/BloodcatServer.java index 111cc77a..6bf0c4bd 100644 --- a/src/itdelatrisu/opsu/downloads/BloodcatServer.java +++ b/src/itdelatrisu/opsu/downloads/servers/BloodcatServer.java @@ -16,10 +16,11 @@ * along with opsu!. If not, see . */ -package itdelatrisu.opsu.downloads; +package itdelatrisu.opsu.downloads.servers; import itdelatrisu.opsu.ErrorHandler; import itdelatrisu.opsu.Utils; +import itdelatrisu.opsu.downloads.DownloadNode; import java.io.IOException; import java.io.UnsupportedEncodingException; @@ -28,13 +29,15 @@ import java.net.URL; import java.net.URLEncoder; import org.json.JSONArray; -import org.json.JSONException; import org.json.JSONObject; /** * Download server: http://bloodcat.com/osu/ */ public class BloodcatServer extends DownloadServer { + /** Server name. */ + private static final String SERVER_NAME = "Bloodcat"; + /** Formatted download URL: {@code beatmapSetID} */ private static final String DOWNLOAD_URL = "http://bloodcat.com/osu/s/%d"; @@ -48,7 +51,10 @@ public class BloodcatServer extends DownloadServer { public BloodcatServer() {} @Override - public String getURL(int beatmapSetID) { + public String getName() { return SERVER_NAME; } + + @Override + public String getDownloadURL(int beatmapSetID) { return String.format(DOWNLOAD_URL, beatmapSetID); } @@ -58,7 +64,7 @@ public class BloodcatServer extends DownloadServer { try { // read JSON String search = String.format(SEARCH_URL, URLEncoder.encode(query, "UTF-8"), rankedOnly ? "0" : "", page); - JSONObject json = readJsonFromUrl(new URL(search)); + JSONObject json = Utils.readJsonFromUrl(new URL(search)); if (json == null) { this.totalResults = -1; return null; @@ -86,24 +92,8 @@ public class BloodcatServer extends DownloadServer { } @Override - public int totalResults() { return totalResults; } + public int minQueryLength() { return 0; } - /** - * Returns a JSON object from a URL. - * @param url the remote URL - * @return the JSON object - * @author Roland Illig (http://stackoverflow.com/a/4308662) - */ - private static JSONObject readJsonFromUrl(URL url) throws IOException { - String s = Utils.readDataFromUrl(url); - JSONObject json = null; - if (s != null) { - try { - json = new JSONObject(s); - } catch (JSONException e) { - ErrorHandler.error("Failed to create JSON object.", e, true); - } - } - return json; - } + @Override + public int totalResults() { return totalResults; } } diff --git a/src/itdelatrisu/opsu/downloads/DownloadServer.java b/src/itdelatrisu/opsu/downloads/servers/DownloadServer.java similarity index 80% rename from src/itdelatrisu/opsu/downloads/DownloadServer.java rename to src/itdelatrisu/opsu/downloads/servers/DownloadServer.java index b3840364..24cca1f5 100644 --- a/src/itdelatrisu/opsu/downloads/DownloadServer.java +++ b/src/itdelatrisu/opsu/downloads/servers/DownloadServer.java @@ -16,7 +16,9 @@ * along with opsu!. If not, see . */ -package itdelatrisu.opsu.downloads; +package itdelatrisu.opsu.downloads.servers; + +import itdelatrisu.opsu.downloads.DownloadNode; import java.io.IOException; @@ -27,12 +29,18 @@ public abstract class DownloadServer { /** Track preview URL. */ private static final String PREVIEW_URL = "http://b.ppy.sh/preview/%d.mp3"; + /** + * Returns the name of the download server. + * @return the server name + */ + public abstract String getName(); + /** * Returns a web address to download the given beatmap. * @param beatmapSetID the beatmap set ID - * @return the URL string + * @return the URL string, or null if the address could not be determined */ - public abstract String getURL(int beatmapSetID); + public abstract String getDownloadURL(int beatmapSetID); /** * Returns a list of results for a given search query, or null if the @@ -45,6 +53,12 @@ public abstract class DownloadServer { */ public abstract DownloadNode[] resultList(String query, int page, boolean rankedOnly) throws IOException; + /** + * Returns the minimum allowable length of a search query. + * @return the minimum length, or 0 if none + */ + public abstract int minQueryLength(); + /** * Returns the total number of results for the last search query. * This will differ from the the size of the array returned by diff --git a/src/itdelatrisu/opsu/downloads/servers/OsuMirrorServer.java b/src/itdelatrisu/opsu/downloads/servers/OsuMirrorServer.java new file mode 100644 index 00000000..b4cb5f3e --- /dev/null +++ b/src/itdelatrisu/opsu/downloads/servers/OsuMirrorServer.java @@ -0,0 +1,129 @@ +/* + * opsu! - an open-source osu! client + * Copyright (C) 2014, 2015 Jeffrey Han + * + * opsu! is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * opsu! is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with opsu!. If not, see . + */ + +package itdelatrisu.opsu.downloads.servers; + +import itdelatrisu.opsu.ErrorHandler; +import itdelatrisu.opsu.Utils; +import itdelatrisu.opsu.downloads.DownloadNode; + +import java.io.IOException; +import java.io.UnsupportedEncodingException; +import java.net.MalformedURLException; +import java.net.URL; +import java.net.URLEncoder; +import java.util.HashMap; + +import org.json.JSONArray; +import org.json.JSONObject; + +/** + * Download server: http://loli.al/ + */ +public class OsuMirrorServer extends DownloadServer { + /** Server name. */ + private static final String SERVER_NAME = "osu!Mirror"; + + /** Formatted download URL: {@code beatmapSetID} */ + private static final String DOWNLOAD_URL = "http://loli.al/d/%d/"; + + /** Formatted search URL: {@code page,query} */ + private static final String SEARCH_URL = "http://loli.al/mirror/search/%d.json?keyword=%s"; + + /** Formatted home URL: {@code page} */ + private static final String HOME_URL = "http://loli.al/mirror/home/%d.json"; + + /** Minimum allowable length of a search query. */ + private static final int MIN_QUERY_LENGTH = 3; + + /** Total result count from the last query. */ + private int totalResults = -1; + + /** Max server download ID seen (for approximating total pages). */ + private int maxServerID = 0; + + /** Lookup table from beatmap set ID -> server download ID. */ + private HashMap idTable = new HashMap(); + + /** Constructor. */ + public OsuMirrorServer() {} + + @Override + public String getName() { return SERVER_NAME; } + + @Override + public String getDownloadURL(int beatmapSetID) { + return (idTable.containsKey(beatmapSetID)) ? String.format(DOWNLOAD_URL, idTable.get(beatmapSetID)) : null; + } + + @Override + public DownloadNode[] resultList(String query, int page, boolean rankedOnly) throws IOException { + // NOTE: ignores 'rankedOnly' flag. + DownloadNode[] nodes = null; + try { + // read JSON + String search; + boolean isSearch; + if (query.isEmpty()) { + isSearch = false; + search = String.format(HOME_URL, page); + } else { + isSearch = true; + search = String.format(SEARCH_URL, page, URLEncoder.encode(query, "UTF-8")); + } + JSONObject json = Utils.readJsonFromUrl(new URL(search)); + if (json == null || json.getInt("code") != 0) { + this.totalResults = -1; + return null; + } + + // parse result list + JSONArray arr = json.getJSONArray("maplist"); + nodes = new DownloadNode[arr.length()]; + for (int i = 0; i < nodes.length; i++) { + JSONObject item = arr.getJSONObject(i); + int beatmapSetID = item.getInt("OSUSetid"); + int serverID = item.getInt("id"); + nodes[i] = new DownloadNode( + beatmapSetID, item.getString("ModifyDate"), + item.getString("Title"), null, + item.getString("Artist"), null, + item.getString("Mapper") + ); + idTable.put(beatmapSetID, serverID); + if (serverID > maxServerID) + maxServerID = serverID; + } + + // store total result count + if (isSearch) + this.totalResults = json.getInt("totalRows"); + else + this.totalResults = maxServerID; + } catch (MalformedURLException | UnsupportedEncodingException e) { + ErrorHandler.error(String.format("Problem loading result list for query '%s'.", query), e, true); + } + return nodes; + } + + @Override + public int minQueryLength() { return MIN_QUERY_LENGTH; } + + @Override + public int totalResults() { return totalResults; } +} diff --git a/src/itdelatrisu/opsu/states/DownloadsMenu.java b/src/itdelatrisu/opsu/states/DownloadsMenu.java index 52d46087..8172f9cb 100644 --- a/src/itdelatrisu/opsu/states/DownloadsMenu.java +++ b/src/itdelatrisu/opsu/states/DownloadsMenu.java @@ -31,11 +31,12 @@ import itdelatrisu.opsu.Utils; import itdelatrisu.opsu.audio.MusicController; import itdelatrisu.opsu.audio.SoundController; import itdelatrisu.opsu.audio.SoundEffect; -import itdelatrisu.opsu.downloads.BloodcatServer; import itdelatrisu.opsu.downloads.Download; import itdelatrisu.opsu.downloads.DownloadList; import itdelatrisu.opsu.downloads.DownloadNode; -import itdelatrisu.opsu.downloads.DownloadServer; +import itdelatrisu.opsu.downloads.servers.BloodcatServer; +import itdelatrisu.opsu.downloads.servers.DownloadServer; +import itdelatrisu.opsu.downloads.servers.OsuMirrorServer; import java.io.File; import java.io.IOException; @@ -71,8 +72,11 @@ public class DownloadsMenu extends BasicGameState { /** Minimum time, in milliseconds, that must elapse between queries. */ private static final int MIN_REQUEST_INTERVAL = 300; - /** The beatmap download server. */ - private DownloadServer server = new BloodcatServer(); + /** Available beatmap download servers. */ + private static final DownloadServer[] SERVERS = { new BloodcatServer(), new OsuMirrorServer() }; + + /** The beatmap download server index. */ + private int serverIndex = 0; /** The current list of search results. */ private DownloadNode[] resultList; @@ -138,7 +142,7 @@ public class DownloadsMenu extends BasicGameState { private MenuButton prevPage, nextPage; /** Buttons. */ - private MenuButton clearButton, importButton, resetButton, rankedButton; + private MenuButton clearButton, importButton, resetButton, rankedButton, serverButton; /** Beatmap importing thread. */ private Thread importThread; @@ -170,11 +174,11 @@ public class DownloadsMenu extends BasicGameState { int height = container.getHeight(); float baseX = width * 0.024f; float searchY = (height * 0.05f) + Utils.FONT_LARGE.getLineHeight(); - float searchWidth = width * 0.35f; + float searchWidth = width * 0.3f; // search searchTimer = SEARCH_DELAY; - searchResultString = "Type to search!"; + searchResultString = "Loading data from server..."; search = new TextField( container, Utils.FONT_DEFAULT, (int) baseX, (int) searchY, (int) searchWidth, Utils.FONT_MEDIUM.getLineHeight() @@ -200,8 +204,10 @@ public class DownloadsMenu extends BasicGameState { // buttons float buttonMarginX = width * 0.004f; float buttonHeight = height * 0.038f; - float topButtonWidth = width * 0.14f; - float lowerButtonWidth = width * 0.12f; + float resetWidth = width * 0.085f; + float rankedWidth = width * 0.15f; + float serverWidth = width * 0.12f; + float lowerWidth = width * 0.12f; float topButtonY = searchY + Utils.FONT_MEDIUM.getLineHeight() / 2f; float lowerButtonY = height * 0.995f - searchY - buttonHeight / 2f; Image button = GameImage.MENU_BUTTON_MID.getImage(); @@ -209,25 +215,33 @@ public class DownloadsMenu extends BasicGameState { Image buttonR = GameImage.MENU_BUTTON_RIGHT.getImage(); buttonL = buttonL.getScaledCopy(buttonHeight / buttonL.getHeight()); buttonR = buttonR.getScaledCopy(buttonHeight / buttonR.getHeight()); - Image topButton = button.getScaledCopy((int) topButtonWidth - buttonL.getWidth() - buttonR.getWidth(), (int) buttonHeight); - Image lowerButton = button.getScaledCopy((int) lowerButtonWidth - buttonL.getWidth() - buttonR.getWidth(), (int) buttonHeight); - float fullTopButtonWidth = topButton.getWidth() + buttonL.getWidth() + buttonR.getWidth(); - float fullLowerButtonWidth = lowerButton.getWidth() + buttonL.getWidth() + buttonR.getWidth(); - clearButton = new MenuButton(lowerButton, buttonL, buttonR, - width * 0.75f + buttonMarginX + fullLowerButtonWidth / 2f, lowerButtonY); - importButton = new MenuButton(lowerButton, buttonL, buttonR, - width - buttonMarginX - fullLowerButtonWidth / 2f, lowerButtonY); - resetButton = new MenuButton(topButton, buttonL, buttonR, - baseX + searchWidth + buttonMarginX + fullTopButtonWidth / 2f, topButtonY); - rankedButton = new MenuButton(topButton, buttonL, buttonR, - baseX + searchWidth + buttonMarginX * 2f + fullTopButtonWidth * 3 / 2f, topButtonY); + int lrButtonWidth = buttonL.getWidth() + buttonR.getWidth(); + Image resetButtonImage = button.getScaledCopy((int) resetWidth - lrButtonWidth, (int) buttonHeight); + Image rankedButtonImage = button.getScaledCopy((int) rankedWidth - lrButtonWidth, (int) buttonHeight); + Image serverButtonImage = button.getScaledCopy((int) serverWidth - lrButtonWidth, (int) buttonHeight); + Image lowerButtonImage = button.getScaledCopy((int) lowerWidth - lrButtonWidth, (int) buttonHeight); + float resetButtonWidth = resetButtonImage.getWidth() + lrButtonWidth; + float rankedButtonWidth = rankedButtonImage.getWidth() + lrButtonWidth; + float serverButtonWidth = serverButtonImage.getWidth() + lrButtonWidth; + float lowerButtonWidth = lowerButtonImage.getWidth() + lrButtonWidth; + clearButton = new MenuButton(lowerButtonImage, buttonL, buttonR, + width * 0.75f + buttonMarginX + lowerButtonWidth / 2f, lowerButtonY); + importButton = new MenuButton(lowerButtonImage, buttonL, buttonR, + width - buttonMarginX - lowerButtonWidth / 2f, lowerButtonY); + resetButton = new MenuButton(resetButtonImage, buttonL, buttonR, + baseX + searchWidth + buttonMarginX + resetButtonWidth / 2f, topButtonY); + rankedButton = new MenuButton(rankedButtonImage, buttonL, buttonR, + baseX + searchWidth + buttonMarginX * 2f + resetButtonWidth + rankedButtonWidth / 2f, topButtonY); + serverButton = new MenuButton(serverButtonImage, buttonL, buttonR, + baseX + searchWidth + buttonMarginX * 3f + resetButtonWidth + rankedButtonWidth + serverButtonWidth / 2f, topButtonY); clearButton.setText("Clear", Utils.FONT_MEDIUM, Color.white); importButton.setText("Import All", Utils.FONT_MEDIUM, Color.white); - resetButton.setText("Reset Search", Utils.FONT_MEDIUM, Color.white); + resetButton.setText("Reset", Utils.FONT_MEDIUM, Color.white); clearButton.setHoverFade(); importButton.setHoverFade(); resetButton.setHoverFade(); rankedButton.setHoverFade(); + serverButton.setHoverFade(); } @Override @@ -317,6 +331,8 @@ public class DownloadsMenu extends BasicGameState { resetButton.draw(Color.red); rankedButton.setText((rankedOnly) ? "Show Unranked" : "Hide Unranked", Utils.FONT_MEDIUM, Color.white); rankedButton.draw(Color.magenta); + serverButton.setText(SERVERS[serverIndex].getName(), Utils.FONT_MEDIUM, Color.white); + serverButton.draw(Color.blue); // importing beatmaps if (importThread != null) { @@ -348,6 +364,7 @@ public class DownloadsMenu extends BasicGameState { importButton.hoverUpdate(delta, mouseX, mouseY); resetButton.hoverUpdate(delta, mouseX, mouseY); rankedButton.hoverUpdate(delta, mouseX, mouseY); + serverButton.hoverUpdate(delta, mouseX, mouseY); // focus timer if (focusResult != -1 && focusTimer < FOCUS_DELAY) @@ -361,7 +378,9 @@ public class DownloadsMenu extends BasicGameState { searchTimerReset = false; final String query = search.getText().trim().toLowerCase(); - if (lastQuery == null || !query.equals(lastQuery)) { + final DownloadServer server = SERVERS[serverIndex]; + if ((lastQuery == null || !query.equals(lastQuery)) && + (query.length() == 0 || query.length() >= server.minQueryLength())) { lastQuery = query; lastQueryDir = pageDir; @@ -409,7 +428,7 @@ public class DownloadsMenu extends BasicGameState { else { if (query.isEmpty()) searchResultString = "Type to search!"; - else if (totalResults == 0) + else if (totalResults == 0 || resultList.length == 0) searchResultString = "No results found."; else searchResultString = String.format("%d result%s found!", @@ -481,7 +500,7 @@ public class DownloadsMenu extends BasicGameState { } else { // play preview try { - final URL url = new URL(server.getPreviewURL(node.getID())); + final URL url = new URL(SERVERS[serverIndex].getPreviewURL(node.getID())); MusicController.pause(); new Thread() { @Override @@ -525,9 +544,13 @@ public class DownloadsMenu extends BasicGameState { } else { // start download if (!DownloadList.get().contains(node.getID())) { - DownloadList.get().addNode(node); - node.createDownload(server); - node.getDownload().start(); + node.createDownload(SERVERS[serverIndex]); + if (node.getDownload() == null) + UI.sendBarNotification("The download could not be started."); + else { + DownloadList.get().addNode(node); + node.getDownload().start(); + } } } } else { @@ -624,6 +647,22 @@ public class DownloadsMenu extends BasicGameState { resetSearchTimer(); return; } + if (serverButton.contains(x, y)) { + SoundController.playSound(SoundEffect.MENUCLICK); + resultList = null; + startResult = 0; + focusResult = -1; + totalResults = 0; + page = 0; + pageResultTotal = 1; + pageDir = Page.RESET; + searchResultString = "Loading data from server..."; + serverIndex = (serverIndex + 1) % SERVERS.length; + lastQuery = null; + pageDir = Page.RESET; + resetSearchTimer(); + return; + } // downloads if (!DownloadList.get().isEmpty() && DownloadNode.downloadAreaContains(x, y)) { @@ -755,6 +794,7 @@ public class DownloadsMenu extends BasicGameState { importButton.resetHover(); resetButton.resetHover(); rankedButton.resetHover(); + serverButton.resetHover(); focusResult = -1; startResult = 0; startDownloadIndex = 0; From 8f48d9495e9266fb2ef8a597c2e3a4d33a765191 Mon Sep 17 00:00:00 2001 From: Jeffrey Han Date: Sat, 9 May 2015 00:46:29 -0400 Subject: [PATCH 22/59] Fixed #81. Catch ArrayIndexOutOfBoundsException in Slick's Input class. Signed-off-by: Jeffrey Han --- pom.xml | 2 + src/org/newdawn/slick/Input.java | 1568 ++++++++++++++++++++++++++++++ 2 files changed, 1570 insertions(+) create mode 100644 src/org/newdawn/slick/Input.java diff --git a/pom.xml b/pom.xml index 796fce56..fdc1bf38 100644 --- a/pom.xml +++ b/pom.xml @@ -115,6 +115,8 @@ org/newdawn/slick/GameContainer.* org/newdawn/slick/Image.* org/newdawn/slick/Music.* + org/newdawn/slick/Input.* + org/newdawn/slick/Input$NullOutputStream.* org/newdawn/slick/gui/TextField.* org/newdawn/slick/openal/AudioInputStream* org/newdawn/slick/openal/OpenALStreamPlayer* diff --git a/src/org/newdawn/slick/Input.java b/src/org/newdawn/slick/Input.java new file mode 100644 index 00000000..1066ca34 --- /dev/null +++ b/src/org/newdawn/slick/Input.java @@ -0,0 +1,1568 @@ +/* + * Copyright (c) 2013, Slick2D + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * - Redistributions of source code must retain the above copyright notice, + * this list of conditions and the following disclaimer. + * - Redistributions in binary form must reproduce the above copyright notice, + * this list of conditions and the following disclaimer in the documentation + * and/or other materials provided with the distribution. + * - Neither the name of the Slick2D nor the names of its contributors may be + * used to endorse or promote products derived from this software without + * specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE + * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + * POSSIBILITY OF SUCH DAMAGE. + */ + +package org.newdawn.slick; + +import java.io.IOException; +import java.io.OutputStream; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.HashSet; +import java.util.Iterator; + +import org.lwjgl.LWJGLException; +import org.lwjgl.input.Controller; +import org.lwjgl.input.Controllers; +import org.lwjgl.input.Keyboard; +import org.lwjgl.input.Mouse; +import org.lwjgl.opengl.Display; +import org.newdawn.slick.util.Log; + +/** + * A wrapped for all keyboard, mouse and controller input + * + * @author kevin + */ +@SuppressWarnings({"rawtypes", "unchecked", "unused"}) +public class Input { + /** The controller index to pass to check all controllers */ + public static final int ANY_CONTROLLER = -1; + + /** The maximum number of buttons on controllers */ + private static final int MAX_BUTTONS = 100; + + /** */ + public static final int KEY_ESCAPE = 0x01; + /** */ + public static final int KEY_1 = 0x02; + /** */ + public static final int KEY_2 = 0x03; + /** */ + public static final int KEY_3 = 0x04; + /** */ + public static final int KEY_4 = 0x05; + /** */ + public static final int KEY_5 = 0x06; + /** */ + public static final int KEY_6 = 0x07; + /** */ + public static final int KEY_7 = 0x08; + /** */ + public static final int KEY_8 = 0x09; + /** */ + public static final int KEY_9 = 0x0A; + /** */ + public static final int KEY_0 = 0x0B; + /** */ + public static final int KEY_MINUS = 0x0C; /* - on main keyboard */ + /** */ + public static final int KEY_EQUALS = 0x0D; + /** */ + public static final int KEY_BACK = 0x0E; /* backspace */ + /** */ + public static final int KEY_TAB = 0x0F; + /** */ + public static final int KEY_Q = 0x10; + /** */ + public static final int KEY_W = 0x11; + /** */ + public static final int KEY_E = 0x12; + /** */ + public static final int KEY_R = 0x13; + /** */ + public static final int KEY_T = 0x14; + /** */ + public static final int KEY_Y = 0x15; + /** */ + public static final int KEY_U = 0x16; + /** */ + public static final int KEY_I = 0x17; + /** */ + public static final int KEY_O = 0x18; + /** */ + public static final int KEY_P = 0x19; + /** */ + public static final int KEY_LBRACKET = 0x1A; + /** */ + public static final int KEY_RBRACKET = 0x1B; + /** */ + public static final int KEY_RETURN = 0x1C; /* Enter on main keyboard */ + /** */ + public static final int KEY_ENTER = 0x1C; /* Enter on main keyboard */ + /** */ + public static final int KEY_LCONTROL = 0x1D; + /** */ + public static final int KEY_A = 0x1E; + /** */ + public static final int KEY_S = 0x1F; + /** */ + public static final int KEY_D = 0x20; + /** */ + public static final int KEY_F = 0x21; + /** */ + public static final int KEY_G = 0x22; + /** */ + public static final int KEY_H = 0x23; + /** */ + public static final int KEY_J = 0x24; + /** */ + public static final int KEY_K = 0x25; + /** */ + public static final int KEY_L = 0x26; + /** */ + public static final int KEY_SEMICOLON = 0x27; + /** */ + public static final int KEY_APOSTROPHE = 0x28; + /** */ + public static final int KEY_GRAVE = 0x29; /* accent grave */ + /** */ + public static final int KEY_LSHIFT = 0x2A; + /** */ + public static final int KEY_BACKSLASH = 0x2B; + /** */ + public static final int KEY_Z = 0x2C; + /** */ + public static final int KEY_X = 0x2D; + /** */ + public static final int KEY_C = 0x2E; + /** */ + public static final int KEY_V = 0x2F; + /** */ + public static final int KEY_B = 0x30; + /** */ + public static final int KEY_N = 0x31; + /** */ + public static final int KEY_M = 0x32; + /** */ + public static final int KEY_COMMA = 0x33; + /** */ + public static final int KEY_PERIOD = 0x34; /* . on main keyboard */ + /** */ + public static final int KEY_SLASH = 0x35; /* / on main keyboard */ + /** */ + public static final int KEY_RSHIFT = 0x36; + /** */ + public static final int KEY_MULTIPLY = 0x37; /* * on numeric keypad */ + /** */ + public static final int KEY_LMENU = 0x38; /* left Alt */ + /** */ + public static final int KEY_SPACE = 0x39; + /** */ + public static final int KEY_CAPITAL = 0x3A; + /** */ + public static final int KEY_F1 = 0x3B; + /** */ + public static final int KEY_F2 = 0x3C; + /** */ + public static final int KEY_F3 = 0x3D; + /** */ + public static final int KEY_F4 = 0x3E; + /** */ + public static final int KEY_F5 = 0x3F; + /** */ + public static final int KEY_F6 = 0x40; + /** */ + public static final int KEY_F7 = 0x41; + /** */ + public static final int KEY_F8 = 0x42; + /** */ + public static final int KEY_F9 = 0x43; + /** */ + public static final int KEY_F10 = 0x44; + /** */ + public static final int KEY_NUMLOCK = 0x45; + /** */ + public static final int KEY_SCROLL = 0x46; /* Scroll Lock */ + /** */ + public static final int KEY_NUMPAD7 = 0x47; + /** */ + public static final int KEY_NUMPAD8 = 0x48; + /** */ + public static final int KEY_NUMPAD9 = 0x49; + /** */ + public static final int KEY_SUBTRACT = 0x4A; /* - on numeric keypad */ + /** */ + public static final int KEY_NUMPAD4 = 0x4B; + /** */ + public static final int KEY_NUMPAD5 = 0x4C; + /** */ + public static final int KEY_NUMPAD6 = 0x4D; + /** */ + public static final int KEY_ADD = 0x4E; /* + on numeric keypad */ + /** */ + public static final int KEY_NUMPAD1 = 0x4F; + /** */ + public static final int KEY_NUMPAD2 = 0x50; + /** */ + public static final int KEY_NUMPAD3 = 0x51; + /** */ + public static final int KEY_NUMPAD0 = 0x52; + /** */ + public static final int KEY_DECIMAL = 0x53; /* . on numeric keypad */ + /** */ + public static final int KEY_F11 = 0x57; + /** */ + public static final int KEY_F12 = 0x58; + /** */ + public static final int KEY_F13 = 0x64; /* (NEC PC98) */ + /** */ + public static final int KEY_F14 = 0x65; /* (NEC PC98) */ + /** */ + public static final int KEY_F15 = 0x66; /* (NEC PC98) */ + /** */ + public static final int KEY_KANA = 0x70; /* (Japanese keyboard) */ + /** */ + public static final int KEY_CONVERT = 0x79; /* (Japanese keyboard) */ + /** */ + public static final int KEY_NOCONVERT = 0x7B; /* (Japanese keyboard) */ + /** */ + public static final int KEY_YEN = 0x7D; /* (Japanese keyboard) */ + /** */ + public static final int KEY_NUMPADEQUALS = 0x8D; /* = on numeric keypad (NEC PC98) */ + /** */ + public static final int KEY_CIRCUMFLEX = 0x90; /* (Japanese keyboard) */ + /** */ + public static final int KEY_AT = 0x91; /* (NEC PC98) */ + /** */ + public static final int KEY_COLON = 0x92; /* (NEC PC98) */ + /** */ + public static final int KEY_UNDERLINE = 0x93; /* (NEC PC98) */ + /** */ + public static final int KEY_KANJI = 0x94; /* (Japanese keyboard) */ + /** */ + public static final int KEY_STOP = 0x95; /* (NEC PC98) */ + /** */ + public static final int KEY_AX = 0x96; /* (Japan AX) */ + /** */ + public static final int KEY_UNLABELED = 0x97; /* (J3100) */ + /** */ + public static final int KEY_NUMPADENTER = 0x9C; /* Enter on numeric keypad */ + /** */ + public static final int KEY_RCONTROL = 0x9D; + /** */ + public static final int KEY_NUMPADCOMMA = 0xB3; /* , on numeric keypad (NEC PC98) */ + /** */ + public static final int KEY_DIVIDE = 0xB5; /* / on numeric keypad */ + /** */ + public static final int KEY_SYSRQ = 0xB7; + /** */ + public static final int KEY_RMENU = 0xB8; /* right Alt */ + /** */ + public static final int KEY_PAUSE = 0xC5; /* Pause */ + /** */ + public static final int KEY_HOME = 0xC7; /* Home on arrow keypad */ + /** */ + public static final int KEY_UP = 0xC8; /* UpArrow on arrow keypad */ + /** */ + public static final int KEY_PRIOR = 0xC9; /* PgUp on arrow keypad */ + /** */ + public static final int KEY_LEFT = 0xCB; /* LeftArrow on arrow keypad */ + /** */ + public static final int KEY_RIGHT = 0xCD; /* RightArrow on arrow keypad */ + /** */ + public static final int KEY_END = 0xCF; /* End on arrow keypad */ + /** */ + public static final int KEY_DOWN = 0xD0; /* DownArrow on arrow keypad */ + /** */ + public static final int KEY_NEXT = 0xD1; /* PgDn on arrow keypad */ + /** */ + public static final int KEY_INSERT = 0xD2; /* Insert on arrow keypad */ + /** */ + public static final int KEY_DELETE = 0xD3; /* Delete on arrow keypad */ + /** */ + public static final int KEY_LWIN = 0xDB; /* Left Windows key */ + /** */ + public static final int KEY_RWIN = 0xDC; /* Right Windows key */ + /** */ + public static final int KEY_APPS = 0xDD; /* AppMenu key */ + /** */ + public static final int KEY_POWER = 0xDE; + /** */ + public static final int KEY_SLEEP = 0xDF; + + /** A helper for left ALT */ + public static final int KEY_LALT = KEY_LMENU; + /** A helper for right ALT */ + public static final int KEY_RALT = KEY_RMENU; + + /** Control index */ + private static final int LEFT = 0; + /** Control index */ + private static final int RIGHT = 1; + /** Control index */ + private static final int UP = 2; + /** Control index */ + private static final int DOWN = 3; + /** Control index */ + private static final int BUTTON1 = 4; + /** Control index */ + private static final int BUTTON2 = 5; + /** Control index */ + private static final int BUTTON3 = 6; + /** Control index */ + private static final int BUTTON4 = 7; + /** Control index */ + private static final int BUTTON5 = 8; + /** Control index */ + private static final int BUTTON6 = 9; + /** Control index */ + private static final int BUTTON7 = 10; + /** Control index */ + private static final int BUTTON8 = 11; + /** Control index */ + private static final int BUTTON9 = 12; + /** Control index */ + private static final int BUTTON10 = 13; + + /** The left mouse button indicator */ + public static final int MOUSE_LEFT_BUTTON = 0; + /** The right mouse button indicator */ + public static final int MOUSE_RIGHT_BUTTON = 1; + /** The middle mouse button indicator */ + public static final int MOUSE_MIDDLE_BUTTON = 2; + + /** True if the controllers system has been initialised */ + private static boolean controllersInited = false; + /** The list of controllers */ + private static ArrayList controllers = new ArrayList(); + + /** The last recorded mouse x position */ + private int lastMouseX; + /** The last recorded mouse y position */ + private int lastMouseY; + /** THe state of the mouse buttons */ + protected boolean[] mousePressed = new boolean[10]; + /** THe state of the controller buttons */ + private boolean[][] controllerPressed = new boolean[100][MAX_BUTTONS]; + + /** The character values representing the pressed keys */ + protected char[] keys = new char[1024]; + /** True if the key has been pressed since last queries */ + protected boolean[] pressed = new boolean[1024]; + /** The time since the next key repeat to be fired for the key */ + protected long[] nextRepeat = new long[1024]; + + /** The control states from the controllers */ + private boolean[][] controls = new boolean[10][MAX_BUTTONS+10]; + /** True if the event has been consumed */ + protected boolean consumed = false; + /** A list of listeners to be notified of input events */ + protected HashSet allListeners = new HashSet(); + /** The listeners to notify of key events */ + protected ArrayList keyListeners = new ArrayList(); + /** The listener to add */ + protected ArrayList keyListenersToAdd = new ArrayList(); + /** The listeners to notify of mouse events */ + protected ArrayList mouseListeners = new ArrayList(); + /** The listener to add */ + protected ArrayList mouseListenersToAdd = new ArrayList(); + /** The listener to nofiy of controller events */ + protected ArrayList controllerListeners = new ArrayList(); + /** The current value of the wheel */ + private int wheel; + /** The height of the display */ + private int height; + + /** True if the display is active */ + private boolean displayActive = true; + + /** True if key repeat is enabled */ + private boolean keyRepeat; + /** The initial delay for key repeat starts */ + private int keyRepeatInitial; + /** The interval of key repeat */ + private int keyRepeatInterval; + + /** True if the input is currently paused */ + private boolean paused; + /** The scale to apply to screen coordinates */ + private float scaleX = 1; + /** The scale to apply to screen coordinates */ + private float scaleY = 1; + /** The offset to apply to screen coordinates */ + private float xoffset = 0; + /** The offset to apply to screen coordinates */ + private float yoffset = 0; + + /** The delay before determining a single or double click */ + private int doubleClickDelay = 250; + /** The timer running out for a single click */ + private long doubleClickTimeout = 0; + + /** The clicked x position */ + private int clickX; + /** The clicked y position */ + private int clickY; + /** The clicked button */ + private int clickButton; + + /** The x position location the mouse was pressed */ + private int pressedX = -1; + + /** The x position location the mouse was pressed */ + private int pressedY = -1; + + /** The pixel distance the mouse can move to accept a mouse click */ + private int mouseClickTolerance = 5; + + /** + * Disables support for controllers. This means the jinput JAR and native libs + * are not required. + */ + public static void disableControllers() { + controllersInited = true; + } + + /** + * Create a new input with the height of the screen + * + * @param height The height of the screen + */ + public Input(int height) { + init(height); + } + + /** + * Set the double click interval, the time between the first + * and second clicks that should be interpreted as a + * double click. + * + * @param delay The delay between clicks + */ + public void setDoubleClickInterval(int delay) { + doubleClickDelay = delay; + } + + /** + * Set the pixel distance the mouse can move to accept a mouse click. + * Default is 5. + * + * @param mouseClickTolerance The number of pixels. + */ + public void setMouseClickTolerance (int mouseClickTolerance) { + this.mouseClickTolerance = mouseClickTolerance; + } + + /** + * Set the scaling to apply to screen coordinates + * + * @param scaleX The scaling to apply to the horizontal axis + * @param scaleY The scaling to apply to the vertical axis + */ + public void setScale(float scaleX, float scaleY) { + this.scaleX = scaleX; + this.scaleY = scaleY; + } + + /** + * Set the offset to apply to the screen coodinates + * + * @param xoffset The offset on the x-axis + * @param yoffset The offset on the y-axis + */ + public void setOffset(float xoffset, float yoffset) { + this.xoffset = xoffset; + this.yoffset = yoffset; + } + + /** + * Reset the transformation being applied to the input to the default + */ + public void resetInputTransform() { + setOffset(0, 0); + setScale(1, 1); + } + + /** + * Add a listener to be notified of input events + * + * @param listener The listener to be notified + */ + public void addListener(InputListener listener) { + addKeyListener(listener); + addMouseListener(listener); + addControllerListener(listener); + } + + /** + * Add a key listener to be notified of key input events + * + * @param listener The listener to be notified + */ + public void addKeyListener(KeyListener listener) { + keyListenersToAdd.add(listener); + } + + /** + * Add a key listener to be notified of key input events + * + * @param listener The listener to be notified + */ + private void addKeyListenerImpl(KeyListener listener) { + if (keyListeners.contains(listener)) { + return; + } + keyListeners.add(listener); + allListeners.add(listener); + } + + /** + * Add a mouse listener to be notified of mouse input events + * + * @param listener The listener to be notified + */ + public void addMouseListener(MouseListener listener) { + mouseListenersToAdd.add(listener); + } + + /** + * Add a mouse listener to be notified of mouse input events + * + * @param listener The listener to be notified + */ + private void addMouseListenerImpl(MouseListener listener) { + if (mouseListeners.contains(listener)) { + return; + } + mouseListeners.add(listener); + allListeners.add(listener); + } + + /** + * Add a controller listener to be notified of controller input events + * + * @param listener The listener to be notified + */ + public void addControllerListener(ControllerListener listener) { + if (controllerListeners.contains(listener)) { + return; + } + controllerListeners.add(listener); + allListeners.add(listener); + } + + /** + * Remove all the listeners from this input + */ + public void removeAllListeners() { + removeAllKeyListeners(); + removeAllMouseListeners(); + removeAllControllerListeners(); + } + + /** + * Remove all the key listeners from this input + */ + public void removeAllKeyListeners() { + allListeners.removeAll(keyListeners); + keyListeners.clear(); + } + + /** + * Remove all the mouse listeners from this input + */ + public void removeAllMouseListeners() { + allListeners.removeAll(mouseListeners); + mouseListeners.clear(); + } + + /** + * Remove all the controller listeners from this input + */ + public void removeAllControllerListeners() { + allListeners.removeAll(controllerListeners); + controllerListeners.clear(); + } + + /** + * Add a listener to be notified of input events. This listener + * will get events before others that are currently registered + * + * @param listener The listener to be notified + */ + public void addPrimaryListener(InputListener listener) { + removeListener(listener); + + keyListeners.add(0, listener); + mouseListeners.add(0, listener); + controllerListeners.add(0, listener); + + allListeners.add(listener); + } + + /** + * Remove a listener that will no longer be notified + * + * @param listener The listen to be removed + */ + public void removeListener(InputListener listener) { + removeKeyListener(listener); + removeMouseListener(listener); + removeControllerListener(listener); + } + + /** + * Remove a key listener that will no longer be notified + * + * @param listener The listen to be removed + */ + public void removeKeyListener(KeyListener listener) { + keyListeners.remove(listener); + + if (!mouseListeners.contains(listener) && !controllerListeners.contains(listener)) { + allListeners.remove(listener); + } + } + + /** + * Remove a controller listener that will no longer be notified + * + * @param listener The listen to be removed + */ + public void removeControllerListener(ControllerListener listener) { + controllerListeners.remove(listener); + + if (!mouseListeners.contains(listener) && !keyListeners.contains(listener)) { + allListeners.remove(listener); + } + } + + /** + * Remove a mouse listener that will no longer be notified + * + * @param listener The listen to be removed + */ + public void removeMouseListener(MouseListener listener) { + mouseListeners.remove(listener); + + if (!controllerListeners.contains(listener) && !keyListeners.contains(listener)) { + allListeners.remove(listener); + } + } + + /** + * Initialise the input system + * + * @param height The height of the window + */ + void init(int height) { + this.height = height; + lastMouseX = getMouseX(); + lastMouseY = getMouseY(); + } + + /** + * Get the character representation of the key identified by the specified code + * + * @param code The key code of the key to retrieve the name of + * @return The name or character representation of the key requested + */ + public static String getKeyName(int code) { + return Keyboard.getKeyName(code); + } + + /** + * Check if a particular key has been pressed since this method + * was last called for the specified key + * + * @param code The key code of the key to check + * @return True if the key has been pressed + */ + public boolean isKeyPressed(int code) { + if (pressed[code]) { + pressed[code] = false; + return true; + } + + return false; + } + + /** + * Check if a mouse button has been pressed since last call + * + * @param button The button to check + * @return True if the button has been pressed since last call + */ + public boolean isMousePressed(int button) { + if (mousePressed[button]) { + mousePressed[button] = false; + return true; + } + + return false; + } + + /** + * Check if a controller button has been pressed since last + * time + * + * @param button The button to check for (note that this includes directional controls first) + * @return True if the button has been pressed since last time + */ + public boolean isControlPressed(int button) { + return isControlPressed(button, 0); + } + + /** + * Check if a controller button has been pressed since last + * time + * + * @param controller The index of the controller to check + * @param button The button to check for (note that this includes directional controls first) + * @return True if the button has been pressed since last time + */ + public boolean isControlPressed(int button, int controller) { + if (controllerPressed[controller][button]) { + controllerPressed[controller][button] = false; + return true; + } + + return false; + } + + /** + * Clear the state for isControlPressed method. This will reset all + * controls to not pressed + */ + public void clearControlPressedRecord() { + for (int i=0;iisKeyPressed method. This will + * resort in all keys returning that they haven't been pressed, until + * they are pressed again + */ + public void clearKeyPressedRecord() { + Arrays.fill(pressed, false); + } + + /** + * Clear the state for the isMousePressed method. This will + * resort in all mouse buttons returning that they haven't been pressed, until + * they are pressed again + */ + public void clearMousePressedRecord() { + Arrays.fill(mousePressed, false); + } + + /** + * Check if a particular key is down + * + * @param code The key code of the key to check + * @return True if the key is down + */ + public boolean isKeyDown(int code) { + return Keyboard.isKeyDown(code); + } + + /** + * Get the absolute x position of the mouse cursor within the container + * + * @return The absolute x position of the mouse cursor + */ + public int getAbsoluteMouseX() { + return Mouse.getX(); + } + + /** + * Get the absolute y position of the mouse cursor within the container + * + * @return The absolute y position of the mouse cursor + */ + public int getAbsoluteMouseY() { + return height - Mouse.getY(); + } + + /** + * Get the x position of the mouse cursor + * + * @return The x position of the mouse cursor + */ + public int getMouseX() { + return (int) ((Mouse.getX() * scaleX)+xoffset); + } + + /** + * Get the y position of the mouse cursor + * + * @return The y position of the mouse cursor + */ + public int getMouseY() { + return (int) (((height-Mouse.getY()) * scaleY)+yoffset); + } + + /** + * Check if a given mouse button is down + * + * @param button The index of the button to check (starting at 0) + * @return True if the mouse button is down + */ + public boolean isMouseButtonDown(int button) { + return Mouse.isButtonDown(button); + } + + /** + * Check if any mouse button is down + * + * @return True if any mouse button is down + */ + private boolean anyMouseDown() { + for (int i=0;i<3;i++) { + if (Mouse.isButtonDown(i)) { + return true; + } + } + + return false; + } + + /** + * Get a count of the number of controlles available + * + * @return The number of controllers available + */ + public int getControllerCount() { + try { + initControllers(); + } catch (SlickException e) { + throw new RuntimeException("Failed to initialise controllers"); + } + + return controllers.size(); + } + + /** + * Get the number of axis that are avaiable on a given controller + * + * @param controller The index of the controller to check + * @return The number of axis available on the controller + */ + public int getAxisCount(int controller) { + return ((Controller) controllers.get(controller)).getAxisCount(); + } + + /** + * Get the value of the axis with the given index + * + * @param controller The index of the controller to check + * @param axis The index of the axis to read + * @return The axis value at time of reading + */ + public float getAxisValue(int controller, int axis) { + return ((Controller) controllers.get(controller)).getAxisValue(axis); + } + + /** + * Get the name of the axis with the given index + * + * @param controller The index of the controller to check + * @param axis The index of the axis to read + * @return The name of the specified axis + */ + public String getAxisName(int controller, int axis) { + return ((Controller) controllers.get(controller)).getAxisName(axis); + } + + /** + * Check if the controller has the left direction pressed + * + * @param controller The index of the controller to check + * @return True if the controller is pressed to the left + */ + public boolean isControllerLeft(int controller) { + if (controller >= getControllerCount()) { + return false; + } + + if (controller == ANY_CONTROLLER) { + for (int i=0;i= getControllerCount()) { + return false; + } + + if (controller == ANY_CONTROLLER) { + for (int i=0;i 0.5f + || ((Controller) controllers.get(controller)).getPovX() > 0.5f; + } + + /** + * Check if the controller has the up direction pressed + * + * @param controller The index of the controller to check + * @return True if the controller is pressed to the up + */ + public boolean isControllerUp(int controller) { + if (controller >= getControllerCount()) { + return false; + } + + if (controller == ANY_CONTROLLER) { + for (int i=0;i= getControllerCount()) { + return false; + } + + if (controller == ANY_CONTROLLER) { + for (int i=0;i 0.5f + || ((Controller) controllers.get(controller)).getPovY() > 0.5f; + + } + + /** + * Check if controller button is pressed + * + * @param controller The index of the controller to check + * @param index The index of the button to check + * @return True if the button is pressed + */ + public boolean isButtonPressed(int index, int controller) { + if (controller >= getControllerCount()) { + return false; + } + + if (controller == ANY_CONTROLLER) { + for (int i=0;i= 3) && (controller.getButtonCount() < MAX_BUTTONS)) { + controllers.add(controller); + } + } + + Log.info("Found "+controllers.size()+" controllers"); + for (int i=0;i doubleClickTimeout) { + doubleClickTimeout = 0; + } + } + + this.height = height; + + Iterator allStarts = allListeners.iterator(); + while (allStarts.hasNext()) { + ControlledInputReciever listener = (ControlledInputReciever) allStarts.next(); + listener.inputStarted(); + } + + while (Keyboard.next()) { + if (Keyboard.getEventKeyState()) { + int eventKey = resolveEventKey(Keyboard.getEventKey(), Keyboard.getEventCharacter()); + + keys[eventKey] = Keyboard.getEventCharacter(); + pressed[eventKey] = true; + nextRepeat[eventKey] = System.currentTimeMillis() + keyRepeatInitial; + + consumed = false; + for (int i=0;i= 0) { + if (Mouse.getEventButtonState()) { + consumed = false; + mousePressed[Mouse.getEventButton()] = true; + + pressedX = (int) (xoffset + (Mouse.getEventX() * scaleX)); + pressedY = (int) (yoffset + ((height-Mouse.getEventY()) * scaleY)); + + for (int i=0;i nextRepeat[i]) { + nextRepeat[i] = System.currentTimeMillis() + keyRepeatInterval; + consumed = false; + for (int j=0;j= BUTTON1) { + return isButtonPressed((index-BUTTON1), controllerIndex); + } + + throw new RuntimeException("Unknown control index"); + } + + + /** + * Pauses the polling and sending of input events. + */ + public void pause() { + paused = true; + + // Reset all polling arrays + clearKeyPressedRecord(); + clearMousePressedRecord(); + clearControlPressedRecord(); + } + + /** + * Resumes the polling and sending of input events. + */ + public void resume() { + paused = false; + } + + /** + * Notify listeners that the mouse button has been clicked + * + * @param button The button that has been clicked + * @param x The location at which the button was clicked + * @param y The location at which the button was clicked + * @param clickCount The number of times the button was clicked (single or double click) + */ + private void fireMouseClicked(int button, int x, int y, int clickCount) { + consumed = false; + for (int i=0;i Date: Fri, 15 May 2015 01:33:53 -0400 Subject: [PATCH 23/59] Changed font to Droid Sans Fallback v2.55b. (fixes #65) Generally much cleaner than Kochi Gothic, and half the file size. Uses an older version of the font, since many glyphs were removed in later versions (due to the glyphs being supported in other Google fonts). Droid Sans Fallback is licensed under the Apache License, Version 2.0. Signed-off-by: Jeffrey Han --- res/DroidSansFallback.ttf | Bin 0 -> 3939852 bytes res/kochi-gothic.ttf | Bin 7770652 -> 0 bytes src/itdelatrisu/opsu/GameData.java | 9 ++++----- src/itdelatrisu/opsu/Options.java | 2 +- src/itdelatrisu/opsu/OsuGroupNode.java | 6 +++--- src/itdelatrisu/opsu/UI.java | 2 +- src/itdelatrisu/opsu/Utils.java | 18 +++++++----------- .../opsu/downloads/DownloadNode.java | 2 +- src/itdelatrisu/opsu/states/MainMenu.java | 16 ++++++++-------- src/itdelatrisu/opsu/states/SongMenu.java | 4 ++-- 10 files changed, 27 insertions(+), 32 deletions(-) create mode 100644 res/DroidSansFallback.ttf delete mode 100644 res/kochi-gothic.ttf diff --git a/res/DroidSansFallback.ttf b/res/DroidSansFallback.ttf new file mode 100644 index 0000000000000000000000000000000000000000..2b75113962a47a66274144a4fa0d6ae52b5d7db7 GIT binary patch literal 3939852 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%0DibFnz*vyGW&wmmzs$NJXa_TTTxIA_?M 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%0A&ydAxvaBn>g>!Mp=n#lm0U@ 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

f0={n&KD*IIx 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 A!8}tH&{&IV@x) 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�=)LnAL1$FUL3+ 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

-7+q( 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

SB<@)6O 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≦!Ux~aSWlmLeqJAoqxC@6qgF=@^YtzCgT0`WU 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

Fj}oq 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

*b~TxopF}*0lKj#U<_kVfNtyw&<#Cd_FeWc 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