Fix so other screens show up correctly

This commit is contained in:
drdev
2015-05-09 21:46:22 +00:00
parent 3435c13365
commit e258549ef3
8 changed files with 15 additions and 42 deletions

View File

@@ -24,6 +24,7 @@ import forge.properties.ForgePreferences.FPref;
import forge.screens.FScreen;
import forge.screens.SplashScreen;
import forge.screens.home.HomeScreen;
import forge.screens.home.NewGameMenu;
import forge.screens.match.MatchController;
import forge.sound.MusicPlaylist;
import forge.sound.SoundSystem;
@@ -118,6 +119,10 @@ public class Forge implements ApplicationListener {
Gdx.input.setCatchMenuKey(true);
openScreen(HomeScreen.instance);
splashScreen = null;
if (isLandscapeMode()) { //open preferred new game screen by default if landscape mode
NewGameMenu.getPreferredScreen().open();
}
}
public static Clipboard getClipboard() {

View File

@@ -135,7 +135,7 @@ public abstract class FScreen extends FContainer {
//draw landscape backdrop first if needed
FScreen backdrop = getLandscapeBackdropScreen();
if (backdrop != null) {
backdrop.draw(g);
g.draw(backdrop);
//temporarily shift into position for drawing in front of backdrop
setLeft(Forge.getScreenWidth() - getWidth());
g.draw(this);

View File

@@ -45,10 +45,6 @@ public class AchievementsScreen extends FScreen {
Forge.openScreen(achievementsScreen);
}
public static boolean isCurrentScreen() {
return Forge.getCurrentScreen() == achievementsScreen;
}
private final FComboBox<AchievementCollection> cbCollections = add(new FComboBox<AchievementCollection>());
private final TrophyCase trophyCase = add(new TrophyCase());

View File

@@ -32,6 +32,7 @@ public class HomeScreen extends FScreen {
private final FLabel lblLogo = add(new FLabel.Builder().icon(FSkinImage.LOGO).iconInBackground().iconScaleFactor(1).build());
private final ArrayList<MenuButton> buttons = new ArrayList<MenuButton>();
private int activeButtonIndex;
private FDeckChooser deckManager;
private HomeScreen() {
@@ -40,24 +41,28 @@ public class HomeScreen extends FScreen {
addButton("New Game", new FEventHandler() {
@Override
public void handleEvent(FEvent e) {
activeButtonIndex = 0;
NewGameMenu.getPreferredScreen().open();
}
});
addButton("Load Game", new FEventHandler() {
@Override
public void handleEvent(FEvent e) {
activeButtonIndex = 1;
LoadGameMenu.getPreferredScreen().open();
}
});
addButton("Play Online", new FEventHandler() {
@Override
public void handleEvent(FEvent e) {
activeButtonIndex = 2;
OnlineMenu.getPreferredScreen().open();
}
});
addButton("Deck Manager", new FEventHandler() {
@Override
public void handleEvent(FEvent e) {
activeButtonIndex = 3;
if (deckManager == null) {
deckManager = new FDeckChooser(GameType.DeckManager, false, null);
deckManager.setHeaderCaption("Deck Manager");
@@ -68,12 +73,14 @@ public class HomeScreen extends FScreen {
addButton("Achievements", new FEventHandler() {
@Override
public void handleEvent(FEvent e) {
activeButtonIndex = 4;
AchievementsScreen.show();
}
});
addButton("Settings", new FEventHandler() {
@Override
public void handleEvent(FEvent e) {
activeButtonIndex = 5;
SettingsScreen.show();
}
});
@@ -139,31 +146,12 @@ public class HomeScreen extends FScreen {
if (w > h) {
w = h * MAIN_MENU_WIDTH_FACTOR;
MenuButton activeButton = null;
if (NewGameMenu.getPreferredScreen().isCurrentScreen()) {
activeButton = buttons.get(0);
}
else if (LoadGameMenu.getPreferredScreen().isCurrentScreen()) {
activeButton = buttons.get(1);
}
else if (OnlineMenu.getPreferredScreen().isCurrentScreen()) {
activeButton = buttons.get(2);
}
else if (Forge.getCurrentScreen() == deckManager) {
activeButton = buttons.get(3);
}
else if (AchievementsScreen.isCurrentScreen()) {
activeButton = buttons.get(4);
}
else if (SettingsScreen.isCurrentScreen()) {
activeButton = buttons.get(5);
}
float y1 = 0;
float h1 = h;
float y2 = 0;
float h2 = 0;
if (activeButton != null) {
if (activeButtonIndex != -1) {
MenuButton activeButton = buttons.get(activeButtonIndex);
h1 = activeButton.getTop();
y2 = activeButton.getBottom();
h2 = h - y2;

View File

@@ -63,10 +63,6 @@ public class LoadGameMenu extends FPopupMenu {
initializeScreen();
Forge.setBackScreen(screen);
}
public boolean isCurrentScreen() {
return Forge.getCurrentScreen() == screen;
}
}
private static final ForgePreferences prefs = FModel.getPreferences();

View File

@@ -65,10 +65,6 @@ public class NewGameMenu extends FPopupMenu {
initializeScreen();
Forge.setBackScreen(screen);
}
public boolean isCurrentScreen() {
return Forge.getCurrentScreen() == screen;
}
}
private static final ForgePreferences prefs = FModel.getPreferences();

View File

@@ -55,10 +55,6 @@ public class OnlineMenu extends FPopupMenu {
initializeScreen();
Forge.setBackScreen(screen);
}
public boolean isCurrentScreen() {
return Forge.getCurrentScreen() == screen;
}
}
private static final ForgePreferences prefs = FModel.getPreferences();

View File

@@ -23,10 +23,6 @@ public class SettingsScreen extends TabPageScreen<SettingsScreen> {
Forge.openScreen(settingsScreen);
}
public static boolean isCurrentScreen() {
return Forge.getCurrentScreen() == settingsScreen;
}
@SuppressWarnings("unchecked")
private SettingsScreen() {
super(new TabPage[] {