The logic for removing the world is working but when we send the map again the clients memory usage goes crazy.
This commit is contained in:
@@ -11,7 +11,25 @@ CapturePointSystem::CapturePointSystem(SystemParams params)
|
||||
EVENT_SUBSCRIBE_MEMBER(m_ETriggerLeave, &CapturePointSystem::OnTriggerLeave);
|
||||
EVENT_SUBSCRIBE_MEMBER(m_ECaptured, &CapturePointSystem::OnCaptured);
|
||||
}
|
||||
EVENT_SUBSCRIBE_MEMBER(m_EReset, &CapturePointSystem::OnReset);
|
||||
Init();
|
||||
}
|
||||
|
||||
void CapturePointSystem::Init()
|
||||
{
|
||||
m_WinnerWasFound = false;
|
||||
//need to track these variables for the captureSystem to work as per design!
|
||||
m_RedTeamNextPossibleCapturePoint = m_NotACapturePoint;
|
||||
m_BlueTeamNextPossibleCapturePoint = m_NotACapturePoint;
|
||||
m_RedTeamHomeCapturePoint = m_NotACapturePoint;
|
||||
m_BlueTeamHomeCapturePoint = m_NotACapturePoint;
|
||||
m_NumberOfCapturePoints = 0;
|
||||
m_ResetTimers = false;
|
||||
m_RecentlyCapturedNeedNextCapturePointNow = false;
|
||||
m_CapturePointNumberToEntityMap.clear();
|
||||
//vectors which will keep track of enter/leave changes
|
||||
m_ETriggerTouchVector.clear();
|
||||
m_ETriggerLeaveVector.clear();
|
||||
}
|
||||
|
||||
//here all capturepoints will update their component
|
||||
@@ -24,6 +42,9 @@ void CapturePointSystem::UpdateComponent(EntityWrapper& capturePointEntity, Comp
|
||||
if (m_WinnerWasFound) {
|
||||
return;
|
||||
}
|
||||
if (!capturePointEntity.Valid()) {
|
||||
return;
|
||||
}
|
||||
const int capturePointNumber = cCapturePoint["CapturePointNumber"];
|
||||
const bool hasTeamComponent = capturePointEntity.HasComponent("Team");
|
||||
|
||||
@@ -60,7 +81,7 @@ void CapturePointSystem::UpdateComponent(EntityWrapper& capturePointEntity, Comp
|
||||
}
|
||||
|
||||
//if we havent received all capturepoints yet, just return
|
||||
if (m_NumberOfCapturePoints == 0 || m_NumberOfCapturePoints != m_CapturePointNumberToEntityMap.size()) {
|
||||
if (m_NumberOfCapturePoints == 0 || m_NumberOfCapturePoints > m_CapturePointNumberToEntityMap.size()) {
|
||||
m_CapturePointNumberToEntityMap.insert(std::make_pair(capturePointNumber, capturePointEntity));
|
||||
return;
|
||||
}
|
||||
@@ -232,10 +253,10 @@ void CapturePointSystem::UpdateComponent(EntityWrapper& capturePointEntity, Comp
|
||||
|
||||
}
|
||||
|
||||
void CapturePointSystem::ChangeCapturePointModelsVisibility(EntityWrapper &capturePointModels, bool isOwner) {
|
||||
void CapturePointSystem::ChangeCapturePointModelsVisibility(EntityWrapper &capturePointModels, bool isOwner)
|
||||
{
|
||||
(bool&)capturePointModels["Model"]["Visible"] = isOwner;
|
||||
for (auto& capModel : capturePointModels.ChildrenWithComponent("Transform"))
|
||||
{
|
||||
for (auto& capModel : capturePointModels.ChildrenWithComponent("Transform")) {
|
||||
if (capModel.HasComponent("Model")) {
|
||||
(bool&)capModel["Model"]["Visible"] = isOwner;
|
||||
}
|
||||
@@ -269,3 +290,9 @@ bool CapturePointSystem::OnCaptured(const Events::Captured& e)
|
||||
m_ResetTimers = true;
|
||||
return true;
|
||||
}
|
||||
|
||||
bool CapturePointSystem::OnReset(const Events::Reset& e)
|
||||
{
|
||||
Init();
|
||||
return true;
|
||||
}
|
||||
Reference in New Issue
Block a user