Fixes debug console's "quit" issues (#4975)

* Fixes a crash caused when attempting to ‘quit’ the launcher from the debug console. The change simply ensures that the underlying font data the OnRenderTick() function relies on has not yet been released from memory.

Signed-off-by: ffarahmand-DPS <ffarahmand@digitalpilgrims.com>

* Fixes a crash caused when attempting to ‘quit’ the launcher from the debug console. An object created on the heap was never deleted, causing a chain reaction.

Signed-off-by: ffarahmand-DPS <ffarahmand@digitalpilgrims.com>

* Some quick clean-up for safety.

Signed-off-by: ffarahmand-DPS <ffarahmand@digitalpilgrims.com>

* Changes !defined(DEDICATED_SERVER) to a runtime check since macro is no longer defined.

Signed-off-by: ffarahmand-DPS <ffarahmand@digitalpilgrims.com>
This commit is contained in:
ffarahmand-DPS
2021-10-29 11:28:42 -07:00
committed by GitHub
parent 72d6f2972e
commit 971e24285f
2 changed files with 29 additions and 10 deletions
@@ -115,17 +115,20 @@ CViewSystem::CViewSystem(ISystem* pSystem)
, m_useDeferredViewSystemUpdate(false)
, m_bControlsAudioListeners(true)
{
#if !defined(_RELEASE) && !defined(DEDICATED_SERVER)
if (!s_debugCamera)
#if !defined(_RELEASE)
if (!gEnv->IsDedicated())
{
s_debugCamera = new DebugCamera;
}
if (!s_debugCamera)
{
s_debugCamera = new DebugCamera;
}
REGISTER_COMMAND("debugCameraToggle", ToggleDebugCamera, VF_DEV_ONLY, "Toggle the debug camera.\n");
REGISTER_COMMAND("debugCameraInvertY", ToggleDebugCameraInvertY, VF_DEV_ONLY, "Toggle debug camera Y-axis inversion.\n");
REGISTER_COMMAND("debugCameraMove", DebugCameraMove, VF_DEV_ONLY, "Move the debug camera the specified distance (x y z).\n");
gEnv->pConsole->CreateKeyBind("ctrl_keyboard_key_punctuation_backslash", "debugCameraToggle");
gEnv->pConsole->CreateKeyBind("alt_keyboard_key_punctuation_backslash", "debugCameraInvertY");
REGISTER_COMMAND("debugCameraToggle", ToggleDebugCamera, VF_DEV_ONLY, "Toggle the debug camera.\n");
REGISTER_COMMAND("debugCameraInvertY", ToggleDebugCameraInvertY, VF_DEV_ONLY, "Toggle debug camera Y-axis inversion.\n");
REGISTER_COMMAND("debugCameraMove", DebugCameraMove, VF_DEV_ONLY, "Move the debug camera the specified distance (x y z).\n");
gEnv->pConsole->CreateKeyBind("ctrl_keyboard_key_punctuation_backslash", "debugCameraToggle");
gEnv->pConsole->CreateKeyBind("alt_keyboard_key_punctuation_backslash", "debugCameraInvertY");
}
#endif
REGISTER_CVAR2("cl_camera_noise", &m_fCameraNoise, -1, 0,
@@ -167,6 +170,21 @@ CViewSystem::~CViewSystem()
{
m_pSystem->GetILevelSystem()->RemoveListener(this);
}
#if !defined(_RELEASE)
if (!gEnv->IsDedicated())
{
UNREGISTER_COMMAND("debugCameraToggle");
UNREGISTER_COMMAND("debugCameraInvertY");
UNREGISTER_COMMAND("debugCameraMove");
if (s_debugCamera)
{
delete s_debugCamera;
s_debugCamera = nullptr;
}
}
#endif
}
//------------------------------------------------------------------------