summaryrefslogtreecommitdiffstats
path: root/core
diff options
context:
space:
mode:
authorJérémy Zurcher <jeremy@asynk.ch>2015-12-18 11:16:48 +0100
committerJérémy Zurcher <jeremy@asynk.ch>2015-12-28 18:51:57 +0100
commit8a2a72fd71d67c985ec881cbff7ebbf133c162b5 (patch)
tree45c64e2811140ab05e517442dce9e29ac761804a /core
parent538e451bb3b222febe03dbb27f3f20cfc9219417 (diff)
downloadRustAndDust-8a2a72fd71d67c985ec881cbff7ebbf133c162b5.zip
RustAndDust-8a2a72fd71d67c985ec881cbff7ebbf133c162b5.tar.gz
OptionsMenu: add graphics selection
Diffstat (limited to 'core')
-rw-r--r--core/src/ch/asynk/rustanddust/menu/OptionsMenu.java25
1 files changed, 25 insertions, 0 deletions
diff --git a/core/src/ch/asynk/rustanddust/menu/OptionsMenu.java b/core/src/ch/asynk/rustanddust/menu/OptionsMenu.java
index f56d30b..05ba06f 100644
--- a/core/src/ch/asynk/rustanddust/menu/OptionsMenu.java
+++ b/core/src/ch/asynk/rustanddust/menu/OptionsMenu.java
@@ -35,8 +35,11 @@ public class OptionsMenu extends Patch
private Label title;
private Label fxVolume;
private Label fxVolumeValue;
+ private Label graphics;
+ private Label graphicsValue;
private Label [] checkLabels;
private int fxVolumeIdx;
+ private int graphicsIdx;
private boolean [] checkValues;
protected Bg okBtn;
protected Bg cancelBtn;
@@ -53,6 +56,9 @@ public class OptionsMenu extends Patch
this.fxVolume = new Label(font);
this.fxVolume.write("Fx Volume");
this.fxVolumeValue = new Label(font);
+ this.graphics = new Label(font);
+ this.graphics.write("Graphics");
+ this.graphicsValue = new Label(font);
this.checkValues = new boolean[checkStrings.length];
this.checkLabels = new Label[checkStrings.length];
for (int i = 0; i < checkLabels.length; i++) {
@@ -77,6 +83,8 @@ public class OptionsMenu extends Patch
checkValues[0] = game.config.debug;
fxVolumeIdx = (int) (game.config.fxVolume * 10);
fxVolumeValue.write(fxStrings[fxVolumeIdx], fxVolumeValue.getX(), fxVolumeValue.getY());
+ graphicsIdx = game.config.graphics.i;
+ graphicsValue.write(game.config.graphics.s, graphicsValue.getX(), graphicsValue.getY());
}
private boolean apply()
@@ -87,6 +95,7 @@ public class OptionsMenu extends Patch
game.config.showEnemyPossibilities = checkValues[1];
game.config.debug = checkValues[0];
game.config.fxVolume = (fxVolumeIdx / 10.0f);
+ game.config.graphics = game.config.graphics.get(graphicsIdx);
return true;
}
@@ -97,11 +106,18 @@ public class OptionsMenu extends Patch
fxVolumeValue.write(fxStrings[fxVolumeIdx], fxVolumeValue.getX(), fxVolumeValue.getY());
}
+ private void cycleGraphics()
+ {
+ graphicsIdx = game.config.graphics.get(graphicsIdx).next().i;
+ graphicsValue.write(game.config.graphics.get(graphicsIdx).s, graphicsValue.getX(), graphicsValue.getY());
+ }
+
public void setPosition()
{
float h = (title.getHeight() + TITLE_PADDING + ((checkLabels.length - 1) * VSPACING) + (2 * PADDING));
for (int i = 0; i < checkLabels.length; i++)
h += checkLabels[i].getHeight();
+ h += (graphics.getHeight() + VSPACING);
h += (fxVolume.getHeight() + VSPACING);
float w = title.getWidth();
@@ -122,6 +138,9 @@ public class OptionsMenu extends Patch
y += PADDING;
x += PADDING + HSPACING;
+ graphics.setPosition(x, y);
+ graphicsValue.setPosition((x + graphics.getWidth() + OPT_PADDING), y);
+ y += (VSPACING + graphics.getHeight());
fxVolume.setPosition(x, y);
fxVolumeValue.setPosition((x + fxVolume.getWidth() + OPT_PADDING), y);
y += (VSPACING + fxVolume.getHeight());
@@ -146,6 +165,8 @@ public class OptionsMenu extends Patch
return true;
} else if (fxVolume.hit(x, y) || fxVolumeValue.hit(x, y)) {
cycleFxVolume();
+ } else if (graphics.hit(x, y) || graphicsValue.hit(x, y)) {
+ cycleGraphics();
} else {
for (int i = 0; i < checkLabels.length; i++) {
if (checkLabels[i].hit(x, y))
@@ -165,6 +186,8 @@ public class OptionsMenu extends Patch
cancelBtn.dispose();
fxVolume.dispose();
fxVolumeValue.dispose();
+ graphics.dispose();
+ graphicsValue.dispose();
for (int i = 0; i < checkLabels.length; i++)
checkLabels[i].dispose();
}
@@ -179,6 +202,8 @@ public class OptionsMenu extends Patch
cancelBtn.draw(batch);
fxVolume.draw(batch);
fxVolumeValue.draw(batch);
+ graphics.draw(batch);
+ graphicsValue.draw(batch);
for (int i = 0; i < checkLabels.length; i++) {
Label l = checkLabels[i];
l.draw(batch);