From 4f9d4b7045b904fa343c73d85b087516453eae9d Mon Sep 17 00:00:00 2001 From: Gene Walters Date: Mon, 6 Dec 2021 09:02:15 -0800 Subject: [PATCH 1/3] Improved logged to print entity name if improperly deleted; helps when debugging to find the problem entity Signed-off-by: Gene Walters --- .../Code/Source/Components/NetBindComponent.cpp | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/Gems/Multiplayer/Code/Source/Components/NetBindComponent.cpp b/Gems/Multiplayer/Code/Source/Components/NetBindComponent.cpp index ceb9412408..9e22338bcf 100644 --- a/Gems/Multiplayer/Code/Source/Components/NetBindComponent.cpp +++ b/Gems/Multiplayer/Code/Source/Components/NetBindComponent.cpp @@ -167,7 +167,14 @@ namespace Multiplayer void NetBindComponent::Deactivate() { - AZ_Assert(m_needsToBeStopped == false, "Entity appears to have been improperly deleted. Use MarkForRemoval to correctly clean up a networked entity."); + if (m_needsToBeStopped) + { + AZ_Assert( + false, + "Entity (%s) appears to have been improperly deleted. Use MarkForRemoval to correctly clean up a networked entity.", + GetEntity()->GetName().c_str()); + + } m_handleLocalServerRpcMessageEventHandle.Disconnect(); if (NetworkRoleHasController(m_netEntityRole)) { From b50739f55eb876555e01a7541ad72b54af65a4c0 Mon Sep 17 00:00:00 2001 From: Gene Walters Date: Mon, 6 Dec 2021 09:06:04 -0800 Subject: [PATCH 2/3] Small tweak to assert back to match existing format Signed-off-by: Gene Walters --- .../Code/Source/Components/NetBindComponent.cpp | 9 +-------- 1 file changed, 1 insertion(+), 8 deletions(-) diff --git a/Gems/Multiplayer/Code/Source/Components/NetBindComponent.cpp b/Gems/Multiplayer/Code/Source/Components/NetBindComponent.cpp index 9e22338bcf..72226d8740 100644 --- a/Gems/Multiplayer/Code/Source/Components/NetBindComponent.cpp +++ b/Gems/Multiplayer/Code/Source/Components/NetBindComponent.cpp @@ -167,14 +167,7 @@ namespace Multiplayer void NetBindComponent::Deactivate() { - if (m_needsToBeStopped) - { - AZ_Assert( - false, - "Entity (%s) appears to have been improperly deleted. Use MarkForRemoval to correctly clean up a networked entity.", - GetEntity()->GetName().c_str()); - - } + AZ_Assert(m_needsToBeStopped == false, "Entity (%s) appears to have been improperly deleted. Use MarkForRemoval to correctly clean up a networked entity.", GetEntity()->GetName().c_str()); m_handleLocalServerRpcMessageEventHandle.Disconnect(); if (NetworkRoleHasController(m_netEntityRole)) { From b19f96f1fe44a4f77fc15089a2c4bf64394af369 Mon Sep 17 00:00:00 2001 From: Gene Walters Date: Mon, 6 Dec 2021 09:53:41 -0800 Subject: [PATCH 3/3] Small safety check. It's unlikely, but possible, that a component is created and not assigned to an entity. Signed-off-by: Gene Walters --- Gems/Multiplayer/Code/Source/Components/NetBindComponent.cpp | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/Gems/Multiplayer/Code/Source/Components/NetBindComponent.cpp b/Gems/Multiplayer/Code/Source/Components/NetBindComponent.cpp index 72226d8740..e7cf297f1e 100644 --- a/Gems/Multiplayer/Code/Source/Components/NetBindComponent.cpp +++ b/Gems/Multiplayer/Code/Source/Components/NetBindComponent.cpp @@ -167,7 +167,10 @@ namespace Multiplayer void NetBindComponent::Deactivate() { - AZ_Assert(m_needsToBeStopped == false, "Entity (%s) appears to have been improperly deleted. Use MarkForRemoval to correctly clean up a networked entity.", GetEntity()->GetName().c_str()); + AZ_Assert( + m_needsToBeStopped == false, + "Entity (%s) appears to have been improperly deleted. Use MarkForRemoval to correctly clean up a networked entity.", + GetEntity() ? GetEntity()->GetName().c_str() : "null"); m_handleLocalServerRpcMessageEventHandle.Disconnect(); if (NetworkRoleHasController(m_netEntityRole)) {