fix nullptr when revalidating UI for the first time, because stuff only init in the splash screen, by moving said init call to the first subscriber of the resolution/skin changed event (displaycontainer). Basically it needs to be called before the UI gets revalidated.

This commit is contained in:
yugecin 2017-02-02 01:34:37 +01:00
parent a7813e1ffe
commit 284cebb063
2 changed files with 2 additions and 3 deletions

View File

@ -92,9 +92,6 @@ public class Splash extends BaseOpsuState {
// check if watch service newly enabled
this.watchServiceChange = Options.isWatchServiceEnabled() && BeatmapWatchService.get() == null;
// load Utils class first (needed in other 'init' methods)
Utils.init(displayContainer);
// fade in logo
this.logoAlpha = new AnimatedValue(MIN_SPLASH_TIME, 0f, 1f, AnimationEquation.LINEAR);
GameImage.MENU_LOGO.getImage().setAlpha(0f);

View File

@ -20,6 +20,7 @@ package yugecin.opsudance.core;
import itdelatrisu.opsu.GameData;
import itdelatrisu.opsu.GameImage;
import itdelatrisu.opsu.Options;
import itdelatrisu.opsu.Utils;
import itdelatrisu.opsu.audio.MusicController;
import itdelatrisu.opsu.beatmap.Beatmap;
import itdelatrisu.opsu.downloads.DownloadList;
@ -146,6 +147,7 @@ public class DisplayContainer implements ErrorDumpable, KeyListener, MouseListen
@Override
public void onEvent(ResolutionOrSkinChangedEvent event) {
destroyImages();
Utils.init(DisplayContainer.this); // TODO this shouldn't be here
UI.revalidate(); // TODO this shouldn't be here
}
});