//-----------------------------------------------------------------------------
// Purpose: Builds a new value string for our parent's facelist key from our
//			current list of faces and submits the keyvalue to our parent for
//			storage.
//-----------------------------------------------------------------------------
void CMapSideList::UpdateParentKey(void)
{
	char szValue[KEYVALUE_MAX_VALUE_LENGTH];
	CMapWorld::FaceID_FaceListsToString(szValue, sizeof(szValue), &m_Faces, NULL);

	CMapEntity *pEntity = dynamic_cast<CMapEntity *>(Parent);
	if (pEntity != NULL)
	{
		pEntity->NotifyChildKeyChanged(this, m_szKeyName, szValue);
	}
}
//-----------------------------------------------------------------------------
// Purpose: 
//-----------------------------------------------------------------------------
void CMapSweptPlayerHull::UpdateParentKey(void)
{
	CMapEntity *pEntity = dynamic_cast <CMapEntity *> (m_pParent);
	if (pEntity != NULL)
	{
		Vector vecOrigin1;
		Vector vecOrigin2;
		m_Point[0]->GetOrigin(vecOrigin1);
		m_Point[1]->GetOrigin(vecOrigin2);

		vecOrigin1 -= playerFixup;
		vecOrigin2 -= playerFixup;

		PostUpdate(Notify_Changed);

		char szValue[KEYVALUE_MAX_VALUE_LENGTH];
		sprintf(szValue, "%g %g %g", (double)vecOrigin1.x, (double)vecOrigin1.y, (double)vecOrigin1.z );
		pEntity->NotifyChildKeyChanged(this, "point0", szValue);
		pEntity->NotifyChildKeyChanged(this, "origin", szValue);

		sprintf(szValue, "%g %g %g", (double)vecOrigin2.x, (double)vecOrigin2.y, (double)vecOrigin2.z);
		pEntity->NotifyChildKeyChanged(this, "point1", szValue);
	}
}
//-----------------------------------------------------------------------------
// Purpose: 
//-----------------------------------------------------------------------------
void CMapPointHandle::UpdateParentKey(void)
{
	// Snap to prevent error creep.
	for (int i = 0; i < 3; i++)
	{
		m_Origin[i] = rint(m_Origin[i] / 0.01f) * 0.01f;
	}

	if (m_szKeyName[0])
	{
		CMapEntity *pEntity = dynamic_cast <CMapEntity *> (m_pParent);
		if (pEntity != NULL)
		{
			char szValue[KEYVALUE_MAX_VALUE_LENGTH];
			sprintf(szValue, "%g %g %g", (double)m_Origin.x, (double)m_Origin.y, (double)m_Origin.z);
			pEntity->NotifyChildKeyChanged(this, m_szKeyName, szValue);

		}
	}
}