diff --git a/src/ProfilerUI.hx b/src/ProfilerUI.hx index 901b9beb..5c4495e3 100644 --- a/src/ProfilerUI.hx +++ b/src/ProfilerUI.hx @@ -107,7 +107,10 @@ class ProfilerUI { lastSentMove = @:privateAccess Net.clientConnection.moveManager.queuedMoves[Net.clientConnection.moveManager.queuedMoves.length - 1].id; } - if (Net.isClient) { + if (Net.isClient + && lastSentMove != null + && @:privateAccess MarbleGame.instance.world.lastMoves != null + && @:privateAccess MarbleGame.instance.world.lastMoves.myMarbleUpdate != null) { instance.networkStats.text = 'Client World Ticks: ${MarbleGame.instance.world.timeState.ticks}\n' + 'Client Marble Ticks: ${@:privateAccess MarbleGame.instance.world.marble.serverTicks}\n' + 'Server Ticks: ${@:privateAccess MarbleGame.instance.world.lastMoves.myMarbleUpdate.serverTicks}\n' diff --git a/src/gui/PlayGui.hx b/src/gui/PlayGui.hx index 97f80c79..46775350 100644 --- a/src/gui/PlayGui.hx +++ b/src/gui/PlayGui.hx @@ -74,7 +74,6 @@ class PlayGui { var blastFillUltra:GuiImage; var blastFrame:GuiImage; - var playerListContainerOuter:GuiControl; var playerListContainer:GuiControl; var playerListCtrl:GuiMLTextListCtrl; var playerListScoresCtrl:GuiMLTextListCtrl; @@ -104,6 +103,19 @@ class PlayGui { if (_init) { playGuiCtrlOuter.dispose(); + if (playerListContainer != null) { + playerListContainer.dispose(); + playerListContainer = null; + playerListCtrl.dispose(); + playerListCtrl = null; + playerListShadowCtrl.dispose(); + playerListShadowCtrl = null; + playerListScoresCtrl.dispose(); + playerListScoresCtrl = null; + playerListScoresShadowCtrl.dispose(); + playerListScoresShadowCtrl = null; + } + for (textureResource in textureResources) { textureResource.release(); } diff --git a/src/net/Net.hx b/src/net/Net.hx index 1d283370..868f31cb 100644 --- a/src/net/Net.hx +++ b/src/net/Net.hx @@ -415,10 +415,20 @@ class Net { if (wsAccum >= 20.0) { wsAccum = 0; if (Net.isHost) { - MasterServerClient.instance.sendServerInfo(serverInfo); // Heartbeat + if (MasterServerClient.instance != null) + MasterServerClient.instance.sendServerInfo(serverInfo); // Heartbeat + else + MasterServerClient.connectToMasterServer(() -> { + MasterServerClient.instance.sendServerInfo(serverInfo); // Heartbeat + }); } if (Net.isClient) { - MasterServerClient.instance.heartBeat(); + if (MasterServerClient.instance != null) + MasterServerClient.instance.heartBeat(); + else + MasterServerClient.connectToMasterServer(() -> { + MasterServerClient.instance.heartBeat(); + }); } } }