Преглед изворни кода

Adjusts engine cleanup ordering on shaderFeatureMgr to avoid periodic crashes on Mac ARM machines
Adds missing disconnect/timeout handling callbacks to the clientServer core module
Adds page refresh function to UINavigation to be able to selectively nudge the current page to refresh its contents if needbe

JeffR пре 3 година
родитељ
комит
1acf4b2dae

+ 1 - 1
Engine/source/shaderGen/featureMgr.cpp

@@ -32,7 +32,7 @@
 MODULE_BEGIN( ShaderGenFeatureMgr )
 
    MODULE_INIT_BEFORE( ShaderGen )
-   MODULE_SHUTDOWN_AFTER( Sim ) // allow registered features to be removed before destroying singleton
+   MODULE_SHUTDOWN_AFTER(Scene)
 
    MODULE_INIT
    {

+ 14 - 0
Templates/BaseGame/game/core/clientServer/scripts/client/connectionToServer.tscript

@@ -71,6 +71,20 @@ function GameConnection::onControlObjectChange(%this)
    //turnOffZoom();
 }
 
+function GameConnection::onConnectionTimedOut(%this)
+{
+   // Called when an established connection times out
+   disconnectedCleanup();
+   MessageBoxOK( "TIMED OUT", "The server connection has timed out.");
+}
+
+function GameConnection::onConnectionDropped(%this, %msg)
+{
+   // Established connection was dropped by the server
+   disconnectedCleanup();
+   MessageBoxOK( "DISCONNECT", "The server has dropped the connection: " @ %msg);
+}
+
 function GameConnection::onConnectionError(%this, %msg)
 {
    // General connection error, usually raised by ghosted objects

+ 2 - 0
Templates/BaseGame/game/data/UI/guis/mainMenu.tscript

@@ -35,6 +35,8 @@ function MainMenuGui::onWake(%this)
    //This will ultimately call MainMenuButtons::onOpen(), so to see where the navigation
    //chain continues, see that function.
    %this.setRootPage(MainMenuButtons);
+   
+   %this.refreshPage();
 }
 
 function MainMenuButtonHolder::onWake(%this)

+ 15 - 1
Templates/BaseGame/game/data/UI/scripts/menuNavigation.tscript

@@ -287,4 +287,18 @@ function UINavigation::getPageCount(%this)
       %count++;
       
    return %count;
-}
+}
+
+//==============================================================================
+/// Summary:
+/// Force the page to reprocess to ensure it's status is up to date
+function UINavigation::refreshPage(%this)
+{
+   %page = %this.getCurrentPage();
+   if(!isObject(%page))
+      return;
+      
+   if(%page.isMethod("onOpen"))
+      %page.call("onOpen");
+}
+