|
@@ -32,6 +32,8 @@ import control.button.ButtonEvent;
|
|
|
import control.button.ButtonHandler;
|
|
import control.button.ButtonHandler;
|
|
|
import control.joystick.Joystick;
|
|
import control.joystick.Joystick;
|
|
|
import control.joystick.JoystickEvent;
|
|
import control.joystick.JoystickEvent;
|
|
|
|
|
+import control.joystick.JoystickHandler;
|
|
|
|
|
+import control.joystick.Joystick.Position;
|
|
|
import data.io.SQLConnector;
|
|
import data.io.SQLConnector;
|
|
|
|
|
|
|
|
public class MenuState extends GameState {
|
|
public class MenuState extends GameState {
|
|
@@ -46,7 +48,7 @@ public class MenuState extends GameState {
|
|
|
private VolatileImage mainScreenBackground, subScreenBackground, subScreenForeground;
|
|
private VolatileImage mainScreenBackground, subScreenBackground, subScreenForeground;
|
|
|
|
|
|
|
|
int yPosDiffButton = 900;
|
|
int yPosDiffButton = 900;
|
|
|
- private int difSelect=0;
|
|
|
|
|
|
|
+ private int difSelect=0, oldDifSelect = -1;
|
|
|
Font textFont = new Font("OCR A Extended", Font.BOLD, 50);
|
|
Font textFont = new Font("OCR A Extended", Font.BOLD, 50);
|
|
|
Font textFontSmall = new Font("OCR A Extended", Font.BOLD, 15);
|
|
Font textFontSmall = new Font("OCR A Extended", Font.BOLD, 15);
|
|
|
BufferedImage aanwijzers = Images.getImage(ImageType.aanwijzers);
|
|
BufferedImage aanwijzers = Images.getImage(ImageType.aanwijzers);
|
|
@@ -69,6 +71,20 @@ public class MenuState extends GameState {
|
|
|
this.songs = sh.getSongs();
|
|
this.songs = sh.getSongs();
|
|
|
startanimation = true;
|
|
startanimation = true;
|
|
|
subscreen = false;
|
|
subscreen = false;
|
|
|
|
|
+
|
|
|
|
|
+ selected = 0;
|
|
|
|
|
+ oldselected = -1;
|
|
|
|
|
+
|
|
|
|
|
+ buttons2.clear();
|
|
|
|
|
+ int instanceNr = 0;
|
|
|
|
|
+ for(int i = selectedToSong(selected).getSongs().size(); i>0; i--){
|
|
|
|
|
+ if(sh.getCurrentSong().getSongs().size() == 0)
|
|
|
|
|
+ continue;
|
|
|
|
|
+ SongInstance si = selectedToSong(selected).getSongs().get(i-1);
|
|
|
|
|
+ buttons2.add(new DifficultyButton(yPosDiffButton-instanceNr,si.getDifficulty(), GameModel.colors[i-1]));
|
|
|
|
|
+ instanceNr += 100;
|
|
|
|
|
+ }
|
|
|
|
|
+ difSelect = 0;
|
|
|
|
|
|
|
|
generateMainScreenBackground();
|
|
generateMainScreenBackground();
|
|
|
generateSubScreenBackground();
|
|
generateSubScreenBackground();
|
|
@@ -79,6 +95,7 @@ public class MenuState extends GameState {
|
|
|
{
|
|
{
|
|
|
ButtonHandler.getButton(1).setColor(GameModel.colors[0]);
|
|
ButtonHandler.getButton(1).setColor(GameModel.colors[0]);
|
|
|
ButtonHandler.getButton(2).setColor(GameModel.colors[2]);
|
|
ButtonHandler.getButton(2).setColor(GameModel.colors[2]);
|
|
|
|
|
+ generateSubScreenForeground();
|
|
|
}
|
|
}
|
|
|
else
|
|
else
|
|
|
{
|
|
{
|
|
@@ -86,8 +103,11 @@ public class MenuState extends GameState {
|
|
|
|
|
|
|
|
ButtonHandler.getButton(5).setColor(GameModel.colors[1]);
|
|
ButtonHandler.getButton(5).setColor(GameModel.colors[1]);
|
|
|
ButtonHandler.getButton(6).setColor(GameModel.colors[4]);
|
|
ButtonHandler.getButton(6).setColor(GameModel.colors[4]);
|
|
|
|
|
+ JoystickHandler.REPEAT = true;
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
|
|
+
|
|
|
|
|
+
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
@Override
|
|
@Override
|
|
@@ -98,9 +118,9 @@ public class MenuState extends GameState {
|
|
|
startanimation = false;
|
|
startanimation = false;
|
|
|
}
|
|
}
|
|
|
}else if(subscreen){
|
|
}else if(subscreen){
|
|
|
- nextScreen();
|
|
|
|
|
|
|
+ //nextScreen();
|
|
|
}else{
|
|
}else{
|
|
|
- previousScreen();
|
|
|
|
|
|
|
+ //previousScreen();
|
|
|
}
|
|
}
|
|
|
if(selected != oldselected){
|
|
if(selected != oldselected){
|
|
|
for(int i = 0; i < buttons.size(); i++){
|
|
for(int i = 0; i < buttons.size(); i++){
|
|
@@ -108,17 +128,11 @@ public class MenuState extends GameState {
|
|
|
|
|
|
|
|
}
|
|
}
|
|
|
oldselected = selected;
|
|
oldselected = selected;
|
|
|
-
|
|
|
|
|
-
|
|
|
|
|
- buttons2.clear();
|
|
|
|
|
- int instanceNr = 0;
|
|
|
|
|
- for(int i = sh.getCurrentSong().getSongs().size(); i>0; i--){
|
|
|
|
|
- if(sh.getCurrentSong().getSongs().size() == 0)
|
|
|
|
|
- continue;
|
|
|
|
|
- SongInstance si = sh.getCurrentSong().getSongs().get(i-1);
|
|
|
|
|
- buttons2.add(new DifficultyButton(yPosDiffButton-instanceNr,si.getDifficulty(), GameModel.colors[i-1]));
|
|
|
|
|
- instanceNr += 100;
|
|
|
|
|
- }
|
|
|
|
|
|
|
+ }
|
|
|
|
|
+ if(difSelect != oldDifSelect)
|
|
|
|
|
+ {
|
|
|
|
|
+ oldDifSelect = difSelect;
|
|
|
|
|
+ generateSubScreenForeground();
|
|
|
}
|
|
}
|
|
|
index++;
|
|
index++;
|
|
|
|
|
|
|
@@ -173,12 +187,14 @@ public class MenuState extends GameState {
|
|
|
generateSubScreenForeground();
|
|
generateSubScreenForeground();
|
|
|
}else if(e.getButton().getButtonID() == 5){
|
|
}else if(e.getButton().getButtonID() == 5){
|
|
|
sh.sort(new SortALPHA());
|
|
sh.sort(new SortALPHA());
|
|
|
- oldselected = 1;
|
|
|
|
|
selected = 0;
|
|
selected = 0;
|
|
|
|
|
+ sh.set(songs.indexOf(selectedToSong(selected)));
|
|
|
|
|
+ sh.play();
|
|
|
}else if(e.getButton().getButtonID() == 6){
|
|
}else if(e.getButton().getButtonID() == 6){
|
|
|
sh.sort(new SortPLAYED());
|
|
sh.sort(new SortPLAYED());
|
|
|
- oldselected = 1;
|
|
|
|
|
selected = 0;
|
|
selected = 0;
|
|
|
|
|
+ sh.set(songs.indexOf(selectedToSong(selected)));
|
|
|
|
|
+ sh.play();
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
|
|
|
|
|
@@ -206,10 +222,13 @@ public class MenuState extends GameState {
|
|
|
difSelect = 0;
|
|
difSelect = 0;
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
-// System.out.println(difSelect);
|
|
|
|
|
|
|
+ //System.out.println(difSelect);
|
|
|
|
|
+ }
|
|
|
|
|
+ else if(e.getJoystick().getPos() == Position.CENTER)
|
|
|
|
|
+ {
|
|
|
|
|
+ sh.set(selectedToSong(selected).getSongs().get(difSelect));
|
|
|
}
|
|
}
|
|
|
- sh.set(sh.getCurrentSong().getSongs().get(difSelect));
|
|
|
|
|
- generateSubScreenForeground();
|
|
|
|
|
|
|
+ //generateSubScreenForeground();
|
|
|
}else{ //Screen for selecting song
|
|
}else{ //Screen for selecting song
|
|
|
if(e.getJoystick().getPos() == Joystick.Position.DOWN){
|
|
if(e.getJoystick().getPos() == Joystick.Position.DOWN){
|
|
|
selected++;
|
|
selected++;
|
|
@@ -261,8 +280,23 @@ public class MenuState extends GameState {
|
|
|
|
|
|
|
|
|
|
|
|
|
}
|
|
}
|
|
|
- sh.set(songs.indexOf(selectedToSong(selected)));
|
|
|
|
|
- sh.play();
|
|
|
|
|
|
|
+
|
|
|
|
|
+ else if(e.getJoystick().getPos() == Position.CENTER)
|
|
|
|
|
+ {
|
|
|
|
|
+ buttons2.clear();
|
|
|
|
|
+ int instanceNr = 0;
|
|
|
|
|
+ for(int i = selectedToSong(selected).getSongs().size(); i>0; i--){
|
|
|
|
|
+ if(sh.getCurrentSong().getSongs().size() == 0)
|
|
|
|
|
+ continue;
|
|
|
|
|
+ SongInstance si = selectedToSong(selected).getSongs().get(i-1);
|
|
|
|
|
+ buttons2.add(new DifficultyButton(yPosDiffButton-instanceNr,si.getDifficulty(), GameModel.colors[i-1]));
|
|
|
|
|
+ instanceNr += 100;
|
|
|
|
|
+ }
|
|
|
|
|
+ difSelect = 0;
|
|
|
|
|
+
|
|
|
|
|
+ sh.set(songs.indexOf(selectedToSong(selected)));
|
|
|
|
|
+ sh.play();
|
|
|
|
|
+ }
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
|
|
|
|
|
@@ -347,10 +381,44 @@ public class MenuState extends GameState {
|
|
|
g2.setFont(textFont);
|
|
g2.setFont(textFont);
|
|
|
g2.drawString(selectedToSong(selected).getTitle(), 30, 60);
|
|
g2.drawString(selectedToSong(selected).getTitle(), 30, 60);
|
|
|
|
|
|
|
|
|
|
+ g2.setColor(Color.WHITE);
|
|
|
|
|
+ g2.drawString("Author: " + selectedToSong(selected).getAuthor(), 30, 200);
|
|
|
|
|
|
|
|
|
|
+ boolean highscoresFound = true;
|
|
|
|
|
+ int HIGHSCORES_TO_DISPLAY = 5;
|
|
|
|
|
|
|
|
|
|
+ List<Highscore> highscores = sql.getHighscoresToday(selectedToSong(selected), sh.getCurrentSong().getSongs().get(difSelect));
|
|
|
|
|
+ if(highscores.isEmpty())
|
|
|
|
|
+ {
|
|
|
|
|
+ highscores = sql.getHighscores(selectedToSong(selected), sh.getCurrentSong().getSongs().get(difSelect));
|
|
|
|
|
+ if(highscores.isEmpty())
|
|
|
|
|
+ {
|
|
|
|
|
+ highscoresFound = false;
|
|
|
|
|
+ }
|
|
|
|
|
+ else
|
|
|
|
|
+ g2.drawString("All Time Highscores", 30, 300);
|
|
|
|
|
+ }
|
|
|
|
|
+ else
|
|
|
|
|
+ g2.drawString("Daily Highscore", 30, 300);
|
|
|
|
|
|
|
|
- List<Highscore> highscores = sql.getHighscore(selectedToSong(selected), sh.getCurrentSong().getSongs().get(difSelect));
|
|
|
|
|
|
|
+ if(highscoresFound)
|
|
|
|
|
+ {
|
|
|
|
|
+ HIGHSCORES_TO_DISPLAY = HIGHSCORES_TO_DISPLAY > highscores.size() ? highscores.size() : HIGHSCORES_TO_DISPLAY;
|
|
|
|
|
+
|
|
|
|
|
+ for(int i = 0; i<HIGHSCORES_TO_DISPLAY; i++)
|
|
|
|
|
+ {
|
|
|
|
|
+ Highscore hi = highscores.get(i);
|
|
|
|
|
+
|
|
|
|
|
+ g2.drawString(hi.getName() + " - " + hi.getScore(), 30, 400 + i*100);
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+ else
|
|
|
|
|
+ {
|
|
|
|
|
+ g2.drawString("No Highscores found", 30, 400);
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ /*
|
|
|
|
|
+ List<Highscore> highscores = sql.getHighscores(selectedToSong(selected), sh.getCurrentSong().getSongs().get(difSelect));
|
|
|
List<Highscore> dailyHighs = new ArrayList<Highscore>();
|
|
List<Highscore> dailyHighs = new ArrayList<Highscore>();
|
|
|
int highest = 0;
|
|
int highest = 0;
|
|
|
int oldHighest = 0;
|
|
int oldHighest = 0;
|
|
@@ -392,7 +460,7 @@ public class MenuState extends GameState {
|
|
|
g2.drawString("Daily Highscore: " + dailyHighest, 30, 500);
|
|
g2.drawString("Daily Highscore: " + dailyHighest, 30, 500);
|
|
|
g2.drawString("Daily Highscore by: : " + dailyName, 30, 600);
|
|
g2.drawString("Daily Highscore by: : " + dailyName, 30, 600);
|
|
|
|
|
|
|
|
-
|
|
|
|
|
|
|
+ */
|
|
|
|
|
|
|
|
|
|
|
|
|
for(DifficultyButton b : buttons2){
|
|
for(DifficultyButton b : buttons2){
|
|
@@ -447,6 +515,7 @@ public class MenuState extends GameState {
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
|
|
+ /*
|
|
|
public void nextScreen(){
|
|
public void nextScreen(){
|
|
|
if(buttons.get(0).getX() > -700){
|
|
if(buttons.get(0).getX() > -700){
|
|
|
for(MenuButton b:buttons){
|
|
for(MenuButton b:buttons){
|
|
@@ -462,6 +531,7 @@ public class MenuState extends GameState {
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
|
|
|
+ */
|
|
|
|
|
|
|
|
public Song selectedToSong(int s){
|
|
public Song selectedToSong(int s){
|
|
|
s %= songs.size();
|
|
s %= songs.size();
|