diff options
| author | Jérémy Zurcher <jeremy@asynk.ch> | 2015-02-28 21:57:39 +0100 | 
|---|---|---|
| committer | Jérémy Zurcher <jeremy@asynk.ch> | 2015-02-28 21:57:39 +0100 | 
| commit | 37b1f38f87a5cab098fc6b0f0624dd2d09ddd6e7 (patch) | |
| tree | 05d4c3874ab39297670e260abf03ee6bf3add97b /core | |
| parent | 3407a39ef9ea6cca6be094f954ab227824bef997 (diff) | |
| download | RustAndDust-37b1f38f87a5cab098fc6b0f0624dd2d09ddd6e7.zip RustAndDust-37b1f38f87a5cab098fc6b0f0624dd2d09ddd6e7.tar.gz | |
OptionsMenu: use Config.gameModeImplemented() or notify via OkCancel dialog
Diffstat (limited to 'core')
| -rw-r--r-- | core/src/ch/asynk/tankontank/menu/OptionsMenu.java | 24 | 
1 files changed, 21 insertions, 3 deletions
| diff --git a/core/src/ch/asynk/tankontank/menu/OptionsMenu.java b/core/src/ch/asynk/tankontank/menu/OptionsMenu.java index 633b3a7..b073731 100644 --- a/core/src/ch/asynk/tankontank/menu/OptionsMenu.java +++ b/core/src/ch/asynk/tankontank/menu/OptionsMenu.java @@ -7,6 +7,7 @@ import com.badlogic.gdx.graphics.g2d.TextureAtlas;  import ch.asynk.tankontank.ui.Label;  import ch.asynk.tankontank.ui.Bg;  import ch.asynk.tankontank.ui.Patch; +import ch.asynk.tankontank.ui.OkCancel;  import ch.asynk.tankontank.TankOnTank; @@ -43,6 +44,7 @@ public class OptionsMenu extends Patch      private Label gameModeValue;      private Label [] checkLabels;      private boolean [] checkValues; +    private OkCancel okCancel;      protected Bg okBtn;      public OptionsMenu(TankOnTank game, BitmapFont font, TextureAtlas atlas) @@ -50,6 +52,7 @@ public class OptionsMenu extends Patch          super(atlas.createPatch("typewriter"));          this.game = game;          this.font = font; +        this.okCancel = new OkCancel(font, atlas);          this.okBtn = new Bg(atlas.findRegion("ok"));          this.title = new Label(font);          this.title.write("- Options"); @@ -89,7 +92,7 @@ public class OptionsMenu extends Patch          checkValues[0] = game.config.debug;      } -    private void apply() +    private boolean apply()      {          game.config.showMoves = checkValues[6];          game.config.showTargets = checkValues[5]; @@ -98,6 +101,13 @@ public class OptionsMenu extends Patch          game.config.canCancel = checkValues[2];          game.config.mustValidate = checkValues[1];          game.config.debug = checkValues[0]; +        if (!game.config.gameModeImplemented()) { +            this.visible = false; +            okCancel.show(String.format("'%s' Game Mode not implemented yet.", game.config.gameMode.s)); +            okCancel.noCancel(); +            return false; +        } +        return true;      }      private void cycleFxVolume() @@ -176,11 +186,16 @@ public class OptionsMenu extends Patch      @Override      public boolean hit(float x, float y)      { +        if (okCancel.hit(x, y)) { +            this.visible = true; +            okCancel.visible = false; +            return false; +        } +          if (!visible) return false;          if (okBtn.hit(x, y)) { -            apply(); -            return true; +            return apply();          } else if (fxVolume.hit(x, y) || fxVolumeValue.hit(x, y)) {              cycleFxVolume();          } else if (graphics.hit(x, y) || graphicsValue.hit(x, y)) { @@ -203,6 +218,7 @@ public class OptionsMenu extends Patch          super.dispose();          title.dispose();          okBtn.dispose(); +        okCancel.dispose();          fxVolume.dispose();          fxVolumeValue.dispose();          graphics.dispose(); @@ -216,6 +232,8 @@ public class OptionsMenu extends Patch      @Override      public void draw(Batch batch)      { +        okCancel.draw(batch); +          if (!visible) return;          super.draw(batch);          title.draw(batch); | 
