From d0069c20e5f23d890aa2bc4fd58f114239a47c9a Mon Sep 17 00:00:00 2001 From: MatteoS Date: Mon, 16 Nov 2015 21:21:28 +0100 Subject: [PATCH] Fix pitch changes (hopefully) --- src/itdelatrisu/opsu/states/Game.java | 3 --- src/itdelatrisu/opsu/states/GamePauseMenu.java | 7 +++++++ src/itdelatrisu/opsu/states/SongMenu.java | 1 + src/org/newdawn/slick/Music.java | 18 +++++++++--------- 4 files changed, 17 insertions(+), 12 deletions(-) diff --git a/src/itdelatrisu/opsu/states/Game.java b/src/itdelatrisu/opsu/states/Game.java index 0bfa1d54..505f5232 100644 --- a/src/itdelatrisu/opsu/states/Game.java +++ b/src/itdelatrisu/opsu/states/Game.java @@ -1262,9 +1262,6 @@ public class Game extends BasicGameState { // replays if (isReplay) GameMod.loadModState(previousMods); - - // reset playback speed - MusicController.setPitch(1f); } /** diff --git a/src/itdelatrisu/opsu/states/GamePauseMenu.java b/src/itdelatrisu/opsu/states/GamePauseMenu.java index 9bf142ca..1b67da42 100644 --- a/src/itdelatrisu/opsu/states/GamePauseMenu.java +++ b/src/itdelatrisu/opsu/states/GamePauseMenu.java @@ -216,6 +216,13 @@ public class GamePauseMenu extends BasicGameState { backButton.resetHover(); } + @Override + public void leave(GameContainer container, StateBasedGame game) + throws SlickException { + // reset pitch fade out + MusicController.pitchFadeOut(0); + } + /** * Loads all game pause/fail menu images. */ diff --git a/src/itdelatrisu/opsu/states/SongMenu.java b/src/itdelatrisu/opsu/states/SongMenu.java index 91f7a997..77b4e312 100644 --- a/src/itdelatrisu/opsu/states/SongMenu.java +++ b/src/itdelatrisu/opsu/states/SongMenu.java @@ -1118,6 +1118,7 @@ public class SongMenu extends BasicGameState { else if (resetTrack) { MusicController.pause(); MusicController.playAt(MusicController.getBeatmap().previewTime, true); + MusicController.setPitch(1.0f); resetTrack = false; } diff --git a/src/org/newdawn/slick/Music.java b/src/org/newdawn/slick/Music.java index 7ebad85c..b891eb5f 100644 --- a/src/org/newdawn/slick/Music.java +++ b/src/org/newdawn/slick/Music.java @@ -325,6 +325,7 @@ public class Music { currentMusic = this; sound.playAsMusic(pitch, volume, loop); setVolume(volume); + setPitch(pitch); if (requiredPosition != -1) { setPosition(requiredPosition); } @@ -444,6 +445,14 @@ public class Music { return; } + if (pitchTime > 0) { + pitchTime -= delta; + if (pitchTime < 0) { + pitchTime = 0; + } + float offset = (pitchEnd - pitchStart) * (1 - (pitchTime / (float)pitchDuration)); + setPitch(pitchStart + offset); + } if (fadeTime > 0) { fadeTime -= delta; if (fadeTime < 0) { @@ -457,15 +466,6 @@ public class Music { float offset = (fadeEndGain - fadeStartGain) * (1 - (fadeTime / (float)fadeDuration)); setVolume(fadeStartGain + offset); } - - if (pitchTime > 0) { - pitchTime -= delta; - if (pitchTime < 0) { - pitchTime = 0; - } - float offset = (pitchEnd - pitchStart) * (1 - (pitchTime / (float)pitchDuration)); - setPitch(pitchStart + offset); - } } /**