diff --git a/data/ui/xbox/platform_android_white.png b/data/ui/xbox/platform_android_white.png
new file mode 100644
index 00000000..342dd87b
Binary files /dev/null and b/data/ui/xbox/platform_android_white.png differ
diff --git a/data/ui/xbox/platform_desktop_white.png b/data/ui/xbox/platform_desktop_white.png
new file mode 100644
index 00000000..319801d0
Binary files /dev/null and b/data/ui/xbox/platform_desktop_white.png differ
diff --git a/data/ui/xbox/platform_mac_white.png b/data/ui/xbox/platform_mac_white.png
new file mode 100644
index 00000000..90907af5
Binary files /dev/null and b/data/ui/xbox/platform_mac_white.png differ
diff --git a/data/ui/xbox/platform_unknown_white.png b/data/ui/xbox/platform_unknown_white.png
new file mode 100644
index 00000000..07f54b8f
Binary files /dev/null and b/data/ui/xbox/platform_unknown_white.png differ
diff --git a/data/ui/xbox/platform_web_white.png b/data/ui/xbox/platform_web_white.png
new file mode 100644
index 00000000..d1e087d1
Binary files /dev/null and b/data/ui/xbox/platform_web_white.png differ
diff --git a/src/Console.hx b/src/Console.hx
index bba551de..0dad0f96 100644
--- a/src/Console.hx
+++ b/src/Console.hx
@@ -197,6 +197,10 @@ class Console {
MarbleGame.instance.fpsLimit = scale;
MarbleGame.instance.limitingFps = true;
log("Set FPS to " + scale);
+ } else if (cmdType == 'reload') {
+ #if sys
+ hl.Api.checkReload();
+ #end
} else {
error("Unknown command");
}
diff --git a/src/Marble.hx b/src/Marble.hx
index f8c1f7e8..67325e47 100644
--- a/src/Marble.hx
+++ b/src/Marble.hx
@@ -1784,6 +1784,8 @@ class Marble extends GameObject {
this.megaMarbleUseTick = p.megaTick;
// this.currentUp = p.gravityDirection;
this.level.setUp(cast this, p.gravityDirection, this.level.timeState);
+ if (this.outOfBounds && !p.oob && this.controllable)
+ @:privateAccess this.level.playGui.setCenterText('');
this.outOfBounds = p.oob;
this.camera.oob = p.oob;
if (p.powerUpId == 0x1FF) {
diff --git a/src/gui/MPServerListGui.hx b/src/gui/MPServerListGui.hx
index 0365aef0..1f436a05 100644
--- a/src/gui/MPServerListGui.hx
+++ b/src/gui/MPServerListGui.hx
@@ -64,15 +64,15 @@ class MPServerListGui extends GuiImage {
case "notready":
return ResourceLoader.getResource("data/ui/xbox/NotReady.png", ResourceLoader.getImage, this.imageResources).toTile();
case "pc":
- return ResourceLoader.getResource("data/ui/xbox/platform_desktop.png", ResourceLoader.getImage, this.imageResources).toTile();
+ return ResourceLoader.getResource("data/ui/xbox/platform_desktop_white.png", ResourceLoader.getImage, this.imageResources).toTile();
case "mac":
- return ResourceLoader.getResource("data/ui/xbox/platform_mac.png", ResourceLoader.getImage, this.imageResources).toTile();
+ return ResourceLoader.getResource("data/ui/xbox/platform_mac_white.png", ResourceLoader.getImage, this.imageResources).toTile();
case "web":
- return ResourceLoader.getResource("data/ui/xbox/platform_web.png", ResourceLoader.getImage, this.imageResources).toTile();
+ return ResourceLoader.getResource("data/ui/xbox/platform_web_white.png", ResourceLoader.getImage, this.imageResources).toTile();
case "android":
- return ResourceLoader.getResource("data/ui/xbox/platform_android.png", ResourceLoader.getImage, this.imageResources).toTile();
+ return ResourceLoader.getResource("data/ui/xbox/platform_android_white.png", ResourceLoader.getImage, this.imageResources).toTile();
case "unknown":
- return ResourceLoader.getResource("data/ui/xbox/platform_unknown.png", ResourceLoader.getImage, this.imageResources).toTile();
+ return ResourceLoader.getResource("data/ui/xbox/platform_unknown_white.png", ResourceLoader.getImage, this.imageResources).toTile();
}
return null;
}
@@ -84,9 +84,9 @@ class MPServerListGui extends GuiImage {
var serverList = new GuiMLTextListCtrl(arial14, serverDisplays, imgLoader);
serverList.selectedColor = 0xF29515;
- serverList.selectedFillColor = 0xEBEBEB;
+ serverList.selectedFillColor = 0x858585;
serverList.position = new Vector(25, 22);
- serverList.extent = new Vector(550, 480);
+ serverList.extent = new Vector(680, 480);
serverList.scrollable = true;
serverList.onSelectedFunc = (sel) -> {
curSelection = sel;
@@ -97,7 +97,7 @@ class MPServerListGui extends GuiImage {
var platformToString = ["unknown", "pc", "mac", "web", "android"];
function updateServerListDisplay() {
- serverDisplays = ourServerList.map(x -> return '
${x.name}');
+ serverDisplays = ourServerList.map(x -> return '
${x.name}');
serverList.setTexts(serverDisplays);
}
@@ -124,6 +124,20 @@ class MPServerListGui extends GuiImage {
backButton.pressedAction = (e) -> MarbleGame.canvas.setContent(new MainMenuGui());
bottomBar.addChild(backButton);
+ var refreshButton = new GuiXboxButton("Refresh", 220);
+ refreshButton.position = new Vector(750, 0);
+ refreshButton.vertSizing = Bottom;
+ refreshButton.horizSizing = Right;
+ refreshButton.pressedAction = (e) -> {
+ MasterServerClient.connectToMasterServer(() -> {
+ MasterServerClient.instance.getServerList((servers) -> {
+ ourServerList = servers;
+ updateServerListDisplay();
+ });
+ });
+ }
+ bottomBar.addChild(refreshButton);
+
var nextButton = new GuiXboxButton("Join", 160);
nextButton.position = new Vector(960, 0);
nextButton.vertSizing = Bottom;