From 80366fd4f3762acd10f38039f51ffd5bc0b965e1 Mon Sep 17 00:00:00 2001 From: SweetBandits_Dufour Date: Wed, 7 Nov 2018 14:24:08 -0500 Subject: [PATCH 1/5] Bugfix: Peer can not activate netsynced entities after disconnecting from server Fixes the issue where a peer disconnecting from a server could not automatically activate net-synced entities when loading a new local-only level. --- .../AzFramework/AzFramework/Network/NetBindingSystemImpl.h | 6 ++++++ .../Code/Source/CryAction/Network/GameContextBridge.cpp | 1 + 2 files changed, 7 insertions(+) diff --git a/dev/Code/Framework/AzFramework/AzFramework/Network/NetBindingSystemImpl.h b/dev/Code/Framework/AzFramework/AzFramework/Network/NetBindingSystemImpl.h index d2c473980b..84d3e910fd 100644 --- a/dev/Code/Framework/AzFramework/AzFramework/Network/NetBindingSystemImpl.h +++ b/dev/Code/Framework/AzFramework/AzFramework/Network/NetBindingSystemImpl.h @@ -266,6 +266,12 @@ namespace AzFramework m_overrideRootSliceLoadAuthoritative = true; } + void ClearRootSliceLoadModeOverride() + { + m_isAuthoritativeRootSliceLoad = false; + m_overrideRootSliceLoadAuthoritative = false; + } + private: /** * \brief True if the root slice is to be loaded authoritatively diff --git a/dev/Gems/CryLegacy/Code/Source/CryAction/Network/GameContextBridge.cpp b/dev/Gems/CryLegacy/Code/Source/CryAction/Network/GameContextBridge.cpp index a4feff60be..4fcfb5169b 100644 --- a/dev/Gems/CryLegacy/Code/Source/CryAction/Network/GameContextBridge.cpp +++ b/dev/Gems/CryLegacy/Code/Source/CryAction/Network/GameContextBridge.cpp @@ -126,6 +126,7 @@ void CGameContextBridge::OnContextBridgeDataDeactivated(CGameContextBridgeDataPt { AZ_Assert(m_netData == netData, "This is not our data!"); m_netData = nullptr; + ClearRootSliceLoadModeOverride(); } void CGameContextBridge::OnStartGameContext(const SGameStartParams* pGameStartParams) From 890fb850e38bd217fb244fb78e489af11af26f01 Mon Sep 17 00:00:00 2001 From: SweetBandits_Dufour Date: Sat, 10 Nov 2018 23:20:38 -0500 Subject: [PATCH 2/5] Update dev/Code/CryEngine/CryPhysics/utils.cpp Crashfix in BakeScaleIntoGeometry --- dev/Code/CryEngine/CryPhysics/utils.cpp | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/dev/Code/CryEngine/CryPhysics/utils.cpp b/dev/Code/CryEngine/CryPhysics/utils.cpp index 1a16aa3918..c16daeb56f 100644 --- a/dev/Code/CryEngine/CryPhysics/utils.cpp +++ b/dev/Code/CryEngine/CryPhysics/utils.cpp @@ -569,6 +569,11 @@ int BakeScaleIntoGeometry(phys_geometry*& pgeom, IGeomManager* pGeoman, const Ve IGeometry* pGeomScaled = 0; if (phys_geometry* pAdam = (phys_geometry*)pgeom->pGeom->GetForeignData(DATA_UNSCALED_GEOM)) { + if (!pAdam->pGeom) + { + return 0; + } + if (bReleaseOld) { pGeoman->UnregisterGeometry(pgeom), bReleaseOld = 0; From 4bffe4588da2a86bcf76cf2869ce400f9d78c718 Mon Sep 17 00:00:00 2001 From: SweetBandits_Dufour Date: Sat, 10 Nov 2018 23:41:24 -0500 Subject: [PATCH 3/5] Revert "Bugfix: Peer can not activate netsynced entities after disconnecting from server" This reverts commit 80366fd4f3762acd10f38039f51ffd5bc0b965e1. --- .../AzFramework/AzFramework/Network/NetBindingSystemImpl.h | 6 ------ .../Code/Source/CryAction/Network/GameContextBridge.cpp | 1 - 2 files changed, 7 deletions(-) diff --git a/dev/Code/Framework/AzFramework/AzFramework/Network/NetBindingSystemImpl.h b/dev/Code/Framework/AzFramework/AzFramework/Network/NetBindingSystemImpl.h index 84d3e910fd..d2c473980b 100644 --- a/dev/Code/Framework/AzFramework/AzFramework/Network/NetBindingSystemImpl.h +++ b/dev/Code/Framework/AzFramework/AzFramework/Network/NetBindingSystemImpl.h @@ -266,12 +266,6 @@ namespace AzFramework m_overrideRootSliceLoadAuthoritative = true; } - void ClearRootSliceLoadModeOverride() - { - m_isAuthoritativeRootSliceLoad = false; - m_overrideRootSliceLoadAuthoritative = false; - } - private: /** * \brief True if the root slice is to be loaded authoritatively diff --git a/dev/Gems/CryLegacy/Code/Source/CryAction/Network/GameContextBridge.cpp b/dev/Gems/CryLegacy/Code/Source/CryAction/Network/GameContextBridge.cpp index 4fcfb5169b..a4feff60be 100644 --- a/dev/Gems/CryLegacy/Code/Source/CryAction/Network/GameContextBridge.cpp +++ b/dev/Gems/CryLegacy/Code/Source/CryAction/Network/GameContextBridge.cpp @@ -126,7 +126,6 @@ void CGameContextBridge::OnContextBridgeDataDeactivated(CGameContextBridgeDataPt { AZ_Assert(m_netData == netData, "This is not our data!"); m_netData = nullptr; - ClearRootSliceLoadModeOverride(); } void CGameContextBridge::OnStartGameContext(const SGameStartParams* pGameStartParams) From 615a27f9a46804bc16fb825e87793eb106996947 Mon Sep 17 00:00:00 2001 From: CDufour909 Date: Wed, 11 Dec 2019 18:08:24 -0500 Subject: [PATCH 4/5] Added CVar Check in InitLocalization If language is already set in game or user.cfg, then try to use that language --- dev/Code/CryEngine/CrySystem/SystemInit.cpp | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/dev/Code/CryEngine/CrySystem/SystemInit.cpp b/dev/Code/CryEngine/CrySystem/SystemInit.cpp index 8b97b37ef2..03bf51e945 100644 --- a/dev/Code/CryEngine/CrySystem/SystemInit.cpp +++ b/dev/Code/CryEngine/CrySystem/SystemInit.cpp @@ -3258,6 +3258,22 @@ void CSystem::InitLocalization() } string language = m_pLocalizationManager->LangNameFromPILID(languageID); + + //Check if language was set in settings or user.cfg + pCVar = m_env.pConsole != 0 ? m_env.pConsole->GetCVar("g_language") : 0; + if (pCVar) + { + string languageInCvar = pCVar->GetString(); + if (m_pLocalizationManager->PILIDFromLangName(languageInCvar.c_str()) != ILocalizationManager::EPlatformIndependentLanguageID::ePILID_MAX_OR_INVALID) + { + language = languageInCvar; //Language was set and valid so we use that one + } + else + { + pCVar->Set(language); //Language is invalid, set default in CVar + } + } + m_pLocalizationManager->SetLanguage(language.c_str()); if (m_pLocalizationManager->GetLocalizationFormat() == 1) { From 8810a01de09ac14d6b56255c055a20b4b4fb719b Mon Sep 17 00:00:00 2001 From: CDufour909 Date: Wed, 11 Dec 2019 18:18:57 -0500 Subject: [PATCH 5/5] Update utils.cpp --- dev/Code/CryEngine/CryPhysics/utils.cpp | 5 ----- 1 file changed, 5 deletions(-) diff --git a/dev/Code/CryEngine/CryPhysics/utils.cpp b/dev/Code/CryEngine/CryPhysics/utils.cpp index c16daeb56f..1a16aa3918 100644 --- a/dev/Code/CryEngine/CryPhysics/utils.cpp +++ b/dev/Code/CryEngine/CryPhysics/utils.cpp @@ -569,11 +569,6 @@ int BakeScaleIntoGeometry(phys_geometry*& pgeom, IGeomManager* pGeoman, const Ve IGeometry* pGeomScaled = 0; if (phys_geometry* pAdam = (phys_geometry*)pgeom->pGeom->GetForeignData(DATA_UNSCALED_GEOM)) { - if (!pAdam->pGeom) - { - return 0; - } - if (bReleaseOld) { pGeoman->UnregisterGeometry(pgeom), bReleaseOld = 0;