add map start & end delay adjustable (#10 optimalisation)

This commit is contained in:
yugecin 2016-11-13 04:17:28 +01:00
parent e8a6b07fef
commit 4b5fab5050
3 changed files with 20 additions and 3 deletions

View File

@ -503,6 +503,18 @@ public class Options {
SHOW_PERFECT_HIT ("Show Perfect Hits", "PerfectHit", "Whether to show perfect hit result bursts (300s, slider ticks).", true),
SHOW_FOLLOW_POINTS ("Show Follow Points", "FollowPoints", "Whether to show follow points between hit objects.", true),
SHOW_HIT_ERROR_BAR ("Show Hit Error Bar", "ScoreMeter", "Shows precisely how accurate you were with each hit.", false),
MAP_START_DELAY ("Map start delay", "StartDelay", "Have a fix amount of time to prepare your play/record", 20, 1, 50) {
@Override
public String getValueString() {
return String.valueOf(val * 100);
}
},
MAP_END_DELAY ("Map end delay", "EndDelay", "Have a fix amount of time at the and of the map for a smooth finish", 50, 1, 50) {
@Override
public String getValueString() {
return String.valueOf(val * 100);
}
},
LOAD_HD_IMAGES ("Load HD Images", "LoadHDImages", String.format("Loads HD (%s) images when available. Increases memory usage and loading times.", GameImage.HD_SUFFIX), true),
FIXED_CS ("Fixed Circle Size (CS)", "FixedCS", "Determines the size of circles and sliders.", 0, 0, 100) {
@Override
@ -1696,6 +1708,9 @@ public class Options {
*/
public static boolean isHitErrorBarEnabled() { return GameOption.SHOW_HIT_ERROR_BAR.getBooleanValue(); }
public static int getMapStartDelay() { return GameOption.MAP_START_DELAY.getIntegerValue() * 100; }
public static int getMapEndDelay() { return GameOption.MAP_END_DELAY.getIntegerValue() * 100; }
/**
* Returns whether or not to load HD (@2x) images.
* @return true if HD images are enabled, false if only SD images should be loaded

View File

@ -827,7 +827,7 @@ public class Game extends BasicGameState {
boolean complete = objectIndex >= gameObjects.length;
if (GameMod.AUTO.isActive() && complete) {
if (gameObjects.length > 0) {
complete = trackPosition >= gameObjects[gameObjects.length - 1].getEndTime() + 5000;
complete = trackPosition >= gameObjects[gameObjects.length - 1].getEndTime() + Options.getMapEndDelay();
}
}
if (complete || (MusicController.trackEnded() && objectIndex > 0)) {
@ -1438,7 +1438,7 @@ public class Game extends BasicGameState {
MusicController.pause();
if (gameObjects.length > 0) {
int leadIntime = 2000 - gameObjects[0].getTime();
int leadIntime = Options.getMapStartDelay() - gameObjects[0].getTime();
if (leadIntime > 0) {
this.leadInTime = Math.max(leadIntime, this.leadInTime);
}

View File

@ -87,7 +87,9 @@ public class OptionsMenu extends BasicGameState {
GameOption.SHOW_COMBO_BURSTS,
GameOption.SHOW_PERFECT_HIT,
GameOption.SHOW_FOLLOW_POINTS,
GameOption.SHOW_HIT_ERROR_BAR
GameOption.SHOW_HIT_ERROR_BAR,
GameOption.MAP_START_DELAY,
GameOption.MAP_END_DELAY,
}),
INPUT ("Input", new GameOption[] {
GameOption.KEY_LEFT,