package com.mygame; public class StateLevelSelect extends GameState { private int fadeOutTicks; private int levelOffset; private Sprite levelSelectButton; private Button levelSelectButtonBack; private Sprite levelSelectButtonDefault; private java.util.ArrayList<Button> levelSelectLevels = new java.util.ArrayList<Button>(); private Sprite levelSelectLock; private Sprite levelselectpanel; private int mainLevelSelect; private Sprite menubg; private Sprite numberSprite; private boolean trial; private Sprite trialFullBig; public StateLevelSelect(GameCore parent) { super.initState(parent); this.levelSelectButton = new Sprite("levelnormalselection", 2, 1, 9, true); this.levelSelectButtonDefault = new Sprite("leveldefault1002", 2, 1, 9, true); this.levelSelectLock = new Sprite("lock10", 1, 1, 9, true); this.levelSelectButtonBack = new Button(EButtonTypes.ENormal, "btnback", 9, 0); this.numberSprite = new Sprite("numbers3", 10, 1, 9, true); this.menubg = new Sprite("menubg", 1, 1, 9, true); this.trialFullBig = new Sprite("trial-fullbig", 1, 1, 0x12, true); } @Override public void activateState() { this.trial = super.game.isTrial(); this.fadeOutTicks = -1; this.mainLevelSelect = super.game.getValue(EValues.EValueSelectedMainLevel); this.levelOffset = this.mainLevelSelect * 15; this.refreshButtons(); if (this.mainLevelSelect == 0) { this.levelselectpanel = new Sprite("levelselectpanel1", 1, 1, 9, false); } else if (this.mainLevelSelect == 1) { this.levelselectpanel = new Sprite("levelselectpanel2", 1, 1, 9, false); } else { this.levelselectpanel = new Sprite("levelselectpanel3", 1, 1, 9, false); } this.levelSelectButtonBack.disable(false); super.game.startMenuMusic(false); } @Override public void backButtonPressed() { super.game.changeState(EStates.EGameStateMainLevelSelect); } @Override public void deactivateState() { this.levelSelectLevels.clear(); this.levelselectpanel = null; } @Override public void paint(Painter painter) { int w = super.game.getW(); int h = super.game.getH(); for (int i = 0; i < w; i += this.menubg.getWidth()) { this.menubg.Paint(painter, (float) i, 0f, 0, 0f); } int num4 = -1; int num5 = 0; int num6 = 50; int num7 = 0xe0; int num8 = 110; int num9 = 0x90; for (int j = 0; j < this.levelSelectLevels.size(); j++) { num5++; if (this.trial && (j == 5)) { painter.setOpacity(0.5f); } if ((j % 5) == 0) { num4++; num5 = 0; } if (this.levelSelectLevels.get(j).paint(painter, super.game, num7 + (num8 * num5), num6 + (num4 * num9))) { super.game.clearMouseStatus(); super.game.setValue(EValues.EValueSelectedLevel, (j + 1) + this.levelOffset); this.fadeOutTicks = 0; super.game.doButtonPressSound(); for (int k = 0; k < this.levelSelectLevels.size(); k++) { this.levelSelectLevels.get(k).disable(true); } this.levelSelectButtonBack.disable(true); super.game.stopMenuMusic(false); } if (this.levelSelectLevels.get(j).m_flags == 1) { this.levelSelectLock.Paint(painter, (float)((((this.levelSelectLevels.get(j).getW() / 2) + num7) + (num8 * num5)) + 8), (float)((((this.levelSelectLevels.get(j).getH() / 2) + num6) + (num4 * num9)) + 8), 0); } if (((j + 1) + this.levelOffset) < 10) { int num12 = (num7 + (num8 * num5)) + ((this.levelSelectLevels.get(j).getW() / 2) - (this.numberSprite.getWidth() / 2)); int num13 = (num6 + (num9 * num4)) + ((this.levelSelectLevels.get(j).getH() / 2) - (this.numberSprite.getHeight() / 2)); this.numberSprite.Paint(painter, (float) num12, (float) num13, (1 + j) + this.levelOffset); } else { int num14 = (num7 + (num8 * num5)) + ((this.levelSelectLevels.get(j).getW() / 2) - this.numberSprite.getWidth()); int num15 = (num6 + (num9 * num4)) + ((this.levelSelectLevels.get(j).getH() / 2) - (this.numberSprite.getHeight() / 2)); this.numberSprite.Paint(painter, (float) num14, (float) num15, ((1 + j) + this.levelOffset) / 10); this.numberSprite.Paint(painter, (float)(num14 + this.numberSprite.getWidth()), (float) num15, ((1 + j) + this.levelOffset) % 10); } } if (this.trial) { painter.setOpacity(1.0f); this.trialFullBig.Paint(painter, (float)(num7 + ((w - num7) / 2)), (float)(num6 + ((num9 * 0x10) / 10)), 0); if (super.game.isMouseUp()) { int num16 = super.game.getMouseX(); int num17 = super.game.getMouseY(); if ((num16 > (num7 + 10)) && (num17 > (num6 + ((num9 * 11) / 10)))) { super.game.clearMouseStatus(); super.game.setValue(EValues.EValueTrialClickedFrom, 50); super.game.changeState(EStates.EGameStateTrial); } } } this.levelselectpanel.Paint(painter, 0f, 0f, 0); if (this.levelSelectButtonBack.paint(painter, super.game, this.levelSelectButtonBack.getW() / 12, h - ((this.levelSelectButtonBack.getH() * 13) / 12))) { super.game.changeState(EStates.EGameStateMainLevelSelect); super.game.clearMouseStatus(); super.game.doButtonPressSound(); } if (this.fadeOutTicks != -1) { this.fadeOutTicks++; if (this.fadeOutTicks >= 0x1c) { this.fadeOutTicks = 0x1c; super.game.changeState(EStates.EGameStateGame); } } } private void refreshButtons() { this.levelSelectLevels.clear(); boolean flag = true; for (int i = 0; i < 15; i++) { Button button; if ((super.game.getSettings().m_levels.get(i + this.levelOffset) > 0) && flag) { button = new Button(EButtonTypes.ENormal, this.levelSelectButton, 9, 5, false); } else if (flag) { flag = false; if (this.trial && (i == 5)) { button = new Button(EButtonTypes.ENormal, this.levelSelectButton, 9, 5, true); button.m_flags = 1; } else { button = new Button(EButtonTypes.ENormal, this.levelSelectButtonDefault, 9, 5, false); } } else { button = new Button(EButtonTypes.ENormal, this.levelSelectButton, 9, 5, true); button.m_flags = 1; } this.levelSelectLevels.add(button); } } @Override public void tick() { } }