LTBOOL CFolderHostLevels::FillLevelList(CListCtrl *pList, char* sDir)
{
	// Sanity checks...

    if (!pList) return(LTFALSE);
    if (!sDir) return(LTFALSE);

    FileEntry* pFiles = g_pLTClient->GetFileList(sDir);
	if (!pFiles) return(FALSE);

	FileEntry* ptr = pFiles;

	// Array of controls to add to the list
	CMoArray<CString *>	m_levels;
	m_levels.SetSize(0);



	while (ptr)
	{
		if (ptr->m_Type == TYPE_FILE)
		{
			if (strnicmp(&ptr->m_pBaseFilename[strlen(ptr->m_pBaseFilename) - 4], ".dat", 4) == 0)
			{
				char sLevel[128];
				strcpy(sLevel, ptr->m_pBaseFilename);
				int len = strlen(sLevel);
				if (len > 4) sLevel[len - 4] = '\0';

				CString *pStr = debug_new1(CString, sLevel);


				m_levels.Add(pStr);

			}
		}

		ptr = ptr->m_pNext;
	}

    g_pLTClient->FreeFileList(pFiles);

	while (m_levels.GetSize())
	{
		uint32 nCur = 0;
		uint32 nTest = 1;
		while (nTest < m_levels.GetSize())
		{
		
			if (m_levels[nTest]->CompareNoCase((char *)(LPCTSTR)(*m_levels[nCur])) < 0)
			{
				nCur = nTest;
			}
			nTest++;
		}

		
		CStaticTextCtrl *pCtrl = CreateStaticTextItem((char *)(LPCTSTR)(*m_levels[nCur]),LTNULL,LTNULL,(int)pList->GetParam1(),GetSmallFont()->GetHeight(),LTFALSE,GetSmallFont());
		pList->AddControl(pCtrl);
		debug_delete(m_levels[nCur]);
		m_levels.Remove(nCur);

	}


    return (LTTRUE);
}
示例#2
0
CRagDollConstraint* CRagDollAbovePlaneOnEdgeConstraint::Clone() const
{
	return debug_new1(CRagDollAbovePlaneOnEdgeConstraint, *this);
}
示例#3
0
CRagDollConstraint* CRagDollDistanceConstraint::Clone() const
{
	return debug_new1(CRagDollDistanceConstraint, *this);
}
示例#4
0
CRagDollConstraint* CRagDollInPlaneConstraint::Clone() const
{
	return debug_new1(CRagDollInPlaneConstraint, *this);
}