|
@@ -46,6 +46,8 @@ AZ_POP_DISABLE_WARNING
|
|
#include <AzCore/StringFunc/StringFunc.h>
|
|
#include <AzCore/StringFunc/StringFunc.h>
|
|
#include <AzCore/Utils/Utils.h>
|
|
#include <AzCore/Utils/Utils.h>
|
|
#include <AzCore/Console/IConsole.h>
|
|
#include <AzCore/Console/IConsole.h>
|
|
|
|
+#include <AzCore/EBus/IEventScheduler.h>
|
|
|
|
+#include <AzCore/Name/Name.h>
|
|
|
|
|
|
// AzFramework
|
|
// AzFramework
|
|
#include <AzFramework/Components/CameraBus.h>
|
|
#include <AzFramework/Components/CameraBus.h>
|
|
@@ -2466,6 +2468,25 @@ void CCryEditApp::OnViewSwitchToGame()
|
|
{
|
|
{
|
|
return;
|
|
return;
|
|
}
|
|
}
|
|
|
|
+
|
|
|
|
+ // If switching on game mode...
|
|
|
|
+ if (!GetIEditor()->IsInGameMode())
|
|
|
|
+ {
|
|
|
|
+ // If simulation mode is enabled...
|
|
|
|
+ uint32 flags = GetIEditor()->GetDisplaySettings()->GetSettings();
|
|
|
|
+ if (flags & SETTINGS_PHYSICS)
|
|
|
|
+ {
|
|
|
|
+ // Disable simulation mode
|
|
|
|
+ OnSwitchPhysics();
|
|
|
|
+
|
|
|
|
+ // Schedule for next frame to enable game mode
|
|
|
|
+ AZ::Interface<AZ::IEventScheduler>::Get()->AddCallback(
|
|
|
|
+ [this] { OnViewSwitchToGame(); },
|
|
|
|
+ AZ::Name("Enable Game Mode"), AZ::Time::ZeroTimeMs);
|
|
|
|
+ return;
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+
|
|
// close all open menus
|
|
// close all open menus
|
|
auto activePopup = qApp->activePopupWidget();
|
|
auto activePopup = qApp->activePopupWidget();
|
|
if (qobject_cast<QMenu*>(activePopup))
|
|
if (qobject_cast<QMenu*>(activePopup))
|