Update menu to support Reforged

This commit is contained in:
Retera 2021-04-11 16:27:33 -04:00
parent 9fa895dde2
commit 574c8996f7
3 changed files with 23 additions and 10 deletions

View File

@ -221,6 +221,10 @@ public final class GameUI extends AbstractUIFrame implements UIFrame {
} }
} }
public boolean hasSkinField(String file) {
return (file != null) && this.skin.hasField(file);
}
public String getSkinField(String file) { public String getSkinField(String file) {
if ((file != null) && this.skin.hasField(file)) { if ((file != null) && this.skin.hasField(file)) {
file = this.skin.getField(file); file = this.skin.getField(file);

View File

@ -149,6 +149,7 @@ public class MenuUI {
private String mapFilepathToStart; private String mapFilepathToStart;
private LoadingMap loadingMap; private LoadingMap loadingMap;
private SpriteFrame loadingBackground; private SpriteFrame loadingBackground;
private boolean unifiedCampaignInfo = false;
public MenuUI(final DataSource dataSource, final Viewport uiViewport, final Scene uiScene, final MdxViewer viewer, public MenuUI(final DataSource dataSource, final Viewport uiViewport, final Scene uiScene, final MdxViewer viewer,
final WarsmashGdxMultiScreenGame screenManager, final SingleModelScreen menuScreen, final WarsmashGdxMultiScreenGame screenManager, final SingleModelScreen menuScreen,
@ -179,6 +180,7 @@ public class MenuUI {
else { else {
try (InputStream campaignStringStream = dataSource.getResourceAsStream("UI\\CampaignInfoClassic.txt")) { try (InputStream campaignStringStream = dataSource.getResourceAsStream("UI\\CampaignInfoClassic.txt")) {
this.campaignStrings.readTXT(campaignStringStream, true); this.campaignStrings.readTXT(campaignStringStream, true);
unifiedCampaignInfo = true;
} }
catch (final IOException e) { catch (final IOException e) {
throw new RuntimeException(e); throw new RuntimeException(e);
@ -593,8 +595,8 @@ public class MenuUI {
MenuUI.this.missionSelectFrame.setVisible(true); MenuUI.this.missionSelectFrame.setVisible(true);
MenuUI.this.menuState = MenuState.MISSION_SELECT; MenuUI.this.menuState = MenuState.MISSION_SELECT;
} }
MenuUI.this.rootFrame.setText(missionName, campaign.getName()); MenuUI.this.rootFrame.setDecoratedText(missionName, campaign.getName());
MenuUI.this.rootFrame.setText(missionNameHeader, campaign.getHeader()); MenuUI.this.rootFrame.setDecoratedText(missionNameHeader, campaign.getHeader());
} }
}); });
if (campaign == MenuUI.this.currentCampaign) { if (campaign == MenuUI.this.currentCampaign) {
@ -843,8 +845,7 @@ public class MenuUI {
this.menuState = MenuState.GOING_TO_CAMPAIGN_PART2; this.menuState = MenuState.GOING_TO_CAMPAIGN_PART2;
break; break;
case GOING_TO_CAMPAIGN_PART2: { case GOING_TO_CAMPAIGN_PART2: {
final String currentCampaignBackgroundModel = this.rootFrame final String currentCampaignBackgroundModel = getCurrentBackgroundModel();
.getSkinField(this.currentCampaign.getBackground() + "_V" + WarsmashConstants.GAME_VERSION);
final String currentCampaignAmbientSound = this.rootFrame final String currentCampaignAmbientSound = this.rootFrame
.trySkinField(this.currentCampaign.getAmbientSound()); .trySkinField(this.currentCampaign.getAmbientSound());
this.menuScreen.setModel(currentCampaignBackgroundModel); this.menuScreen.setModel(currentCampaignBackgroundModel);
@ -867,8 +868,7 @@ public class MenuUI {
this.campaignRootMenuUI.setVisible(true); this.campaignRootMenuUI.setVisible(true);
break; break;
case GOING_TO_MISSION_SELECT: { case GOING_TO_MISSION_SELECT: {
final String currentCampaignBackgroundModel = this.rootFrame final String currentCampaignBackgroundModel = getCurrentBackgroundModel();
.getSkinField(this.currentCampaign.getBackground() + "_V" + WarsmashConstants.GAME_VERSION);
final String currentCampaignAmbientSound = this.rootFrame final String currentCampaignAmbientSound = this.rootFrame
.trySkinField(this.currentCampaign.getAmbientSound()); .trySkinField(this.currentCampaign.getAmbientSound());
this.menuScreen.setModel(currentCampaignBackgroundModel); this.menuScreen.setModel(currentCampaignBackgroundModel);
@ -1087,8 +1087,7 @@ public class MenuUI {
break; break;
case CAMPAIGN: case CAMPAIGN:
case MISSION_SELECT: case MISSION_SELECT:
final String currentCampaignBackgroundModel = this.rootFrame final String currentCampaignBackgroundModel = getCurrentBackgroundModel();
.getSkinField(this.currentCampaign.getBackground() + "_V" + WarsmashConstants.GAME_VERSION);
final String currentCampaignAmbientSound = this.rootFrame final String currentCampaignAmbientSound = this.rootFrame
.trySkinField(this.currentCampaign.getAmbientSound()); .trySkinField(this.currentCampaign.getAmbientSound());
this.menuScreen.setModel(currentCampaignBackgroundModel); this.menuScreen.setModel(currentCampaignBackgroundModel);
@ -1105,6 +1104,16 @@ public class MenuUI {
// this.menuState = MenuState.MISSION_SELECT; // this.menuState = MenuState.MISSION_SELECT;
} }
private String getCurrentBackgroundModel() {
String background = this.currentCampaign.getBackground();
String versionedBackground = background + "_V" + WarsmashConstants.GAME_VERSION;
if(this.rootFrame.hasSkinField(versionedBackground)) {
return this.rootFrame.getSkinField(versionedBackground);
}
return this.rootFrame
.getSkinField(background );
}
private static final class LoadingMap { private static final class LoadingMap {
private final War3MapViewer viewer; private final War3MapViewer viewer;

View File

@ -34,11 +34,11 @@ public class CampaignMenuUI extends SimpleFrame {
final StringFrame headerText = (StringFrame) this.rootFrame.createFrame("StandardSmallTextTemplate", final StringFrame headerText = (StringFrame) this.rootFrame.createFrame("StandardSmallTextTemplate",
campaignButtonUI, 0, 0); campaignButtonUI, 0, 0);
this.rootFrame.setText(headerText, header); this.rootFrame.setDecoratedText(headerText, header);
campaignButtonUI.add(headerText); campaignButtonUI.add(headerText);
final StringFrame nameText = (StringFrame) this.rootFrame.createFrame("StandardValueTextTemplate", final StringFrame nameText = (StringFrame) this.rootFrame.createFrame("StandardValueTextTemplate",
campaignButtonUI, 0, 0); campaignButtonUI, 0, 0);
this.rootFrame.setText(nameText, name); this.rootFrame.setDecoratedText(nameText, name);
headerText.addSetPoint(new SetPoint(FramePoint.TOPLEFT, campaignArrowButton, FramePoint.TOPRIGHT, 0, 0)); headerText.addSetPoint(new SetPoint(FramePoint.TOPLEFT, campaignArrowButton, FramePoint.TOPRIGHT, 0, 0));
nameText.addSetPoint(new SetPoint(FramePoint.TOPLEFT, headerText, FramePoint.BOTTOMLEFT, 0, 0)); nameText.addSetPoint(new SetPoint(FramePoint.TOPLEFT, headerText, FramePoint.BOTTOMLEFT, 0, 0));
campaignButtonUI.add(nameText); campaignButtonUI.add(nameText);