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:
@@ -92,9 +92,6 @@ public class Splash extends BaseOpsuState {
|
|||||||
// check if watch service newly enabled
|
// check if watch service newly enabled
|
||||||
this.watchServiceChange = Options.isWatchServiceEnabled() && BeatmapWatchService.get() == null;
|
this.watchServiceChange = Options.isWatchServiceEnabled() && BeatmapWatchService.get() == null;
|
||||||
|
|
||||||
// load Utils class first (needed in other 'init' methods)
|
|
||||||
Utils.init(displayContainer);
|
|
||||||
|
|
||||||
// fade in logo
|
// fade in logo
|
||||||
this.logoAlpha = new AnimatedValue(MIN_SPLASH_TIME, 0f, 1f, AnimationEquation.LINEAR);
|
this.logoAlpha = new AnimatedValue(MIN_SPLASH_TIME, 0f, 1f, AnimationEquation.LINEAR);
|
||||||
GameImage.MENU_LOGO.getImage().setAlpha(0f);
|
GameImage.MENU_LOGO.getImage().setAlpha(0f);
|
||||||
|
|||||||
@@ -20,6 +20,7 @@ package yugecin.opsudance.core;
|
|||||||
import itdelatrisu.opsu.GameData;
|
import itdelatrisu.opsu.GameData;
|
||||||
import itdelatrisu.opsu.GameImage;
|
import itdelatrisu.opsu.GameImage;
|
||||||
import itdelatrisu.opsu.Options;
|
import itdelatrisu.opsu.Options;
|
||||||
|
import itdelatrisu.opsu.Utils;
|
||||||
import itdelatrisu.opsu.audio.MusicController;
|
import itdelatrisu.opsu.audio.MusicController;
|
||||||
import itdelatrisu.opsu.beatmap.Beatmap;
|
import itdelatrisu.opsu.beatmap.Beatmap;
|
||||||
import itdelatrisu.opsu.downloads.DownloadList;
|
import itdelatrisu.opsu.downloads.DownloadList;
|
||||||
@@ -146,6 +147,7 @@ public class DisplayContainer implements ErrorDumpable, KeyListener, MouseListen
|
|||||||
@Override
|
@Override
|
||||||
public void onEvent(ResolutionOrSkinChangedEvent event) {
|
public void onEvent(ResolutionOrSkinChangedEvent event) {
|
||||||
destroyImages();
|
destroyImages();
|
||||||
|
Utils.init(DisplayContainer.this); // TODO this shouldn't be here
|
||||||
UI.revalidate(); // TODO this shouldn't be here
|
UI.revalidate(); // TODO this shouldn't be here
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|||||||
Reference in New Issue
Block a user