ability to change map offset while playing (- and + keys)

This commit is contained in:
yugecin 2016-11-20 13:49:53 +01:00
parent 7daafd612e
commit da90c98fce
2 changed files with 16 additions and 2 deletions

View File

@ -22,6 +22,7 @@ import itdelatrisu.opsu.ErrorHandler;
import itdelatrisu.opsu.Options;
import itdelatrisu.opsu.beatmap.Beatmap;
import itdelatrisu.opsu.beatmap.BeatmapParser;
import itdelatrisu.opsu.states.Game;
import itdelatrisu.opsu.ui.UI;
import java.io.File;
@ -252,9 +253,9 @@ public class MusicController {
*/
public static int getPosition() {
if (isPlaying())
return (int) (player.getPosition() * 1000 + Options.getMusicOffset());
return (int) (player.getPosition() * 1000 + Options.getMusicOffset() + Game.currentMapMusicOffset);
else if (isPaused())
return Math.max((int) (pauseTime * 1000 + Options.getMusicOffset()), 0);
return Math.max((int) (pauseTime * 1000 + Options.getMusicOffset() + Game.currentMapMusicOffset), 0);
else
return 0;
}

View File

@ -256,6 +256,8 @@ public class Game extends BasicGameState {
/** Music position bar coordinates and dimensions (for replay seeking). */
private float musicBarX, musicBarY, musicBarWidth, musicBarHeight;
public static int currentMapMusicOffset;
private int mirrorFrom;
private int mirrorTo;
@ -1143,6 +1145,14 @@ public class Game extends BasicGameState {
Dancer.mirror = true;
}
break;
case Input.KEY_MINUS:
currentMapMusicOffset += 5;
UI.sendBarNotification("Current map offset: " + currentMapMusicOffset);
break;
}
if (key == Input.KEY_ADD || c == '+') {
currentMapMusicOffset -= 5;
UI.sendBarNotification("Current map offset: " + currentMapMusicOffset);
}
}
@ -1654,6 +1664,9 @@ public class Game extends BasicGameState {
* @param beatmap the beatmap to load
*/
public void loadBeatmap(Beatmap beatmap) {
if (this.beatmap == null || this.beatmap.beatmapID != beatmap.beatmapID) {
currentMapMusicOffset = 0;
}
this.beatmap = beatmap;
Display.setTitle(String.format("%s - %s", game.getTitle(), beatmap.toString()));
if (beatmap.timingPoints == null)