//
// // // // , CPtrArray,
// // LPBTNAREADESC
void
CGameMainMenu::LoadBtnAreas(CPtrArray* pAreasArray,
LPCTSTR txtAreasList)
{
if ( !pAreasArray || !txtAreasList ) //
// // // -
return;
LPBTNAREADESC btnArea;
CString strValue = L"";
CString ParamStr = L"";
TCHAR ControlAreasListFileFullName[MaxPath2] = L"";
//
StringCbCopy(ControlAreasListFileFullName, MaxPath2, AppRootDir);
StringCbCat(ControlAreasListFileFullName, MaxPath2, txtAreasList);
//
- -,
// // //
if ( !PathFileExists(ControlAreasListFileFullName))
{
CString texfile = ControlAreasListFileFullName;
AddLogResult(7, E_FAIL, &texfile);
g_d3dApp.CleanupAndDisplayError( DXUTERR_MEDIANOTFOUND );
PostMessage( g_d3dApp.m_hWndMain, WM_CLOSE, 0, 0 );
return;
}
//
, -
CStdioFile textFile(ControlAreasListFileFullName, CFile::modeRead);
if (textFile.GetLength() == 0)
{
g_d3dApp.CleanupAndDisplayError( DXUTERR_MEDIANOTFOUND );
PostMessage( g_d3dApp.m_hWndMain, WM_CLOSE, 0, 0 );
return;
}
//
,
// // // LPBTNAREADESC
//
,
// // // - !
int iItem = 0;
textFile.ReadString(ParamStr);
do
{
int ParamCharPos = 0;
btnArea = new BTNAREADESC;
SecureZeroMemory(btnArea, sizeof(btnArea));
//
ReadNextParam
ReadNextParam(&ParamStr, &ParamCharPos, &strValue);
btnArea->Name = new CString();
*btnArea->Name = strValue;
ReadNextParam(&ParamStr, &ParamCharPos, &strValue);
btnArea->Left = (float)_wtof(strValue);
ReadNextParam(&ParamStr, &ParamCharPos, &strValue);
btnArea->Top = (float)_wtof(strValue);
ReadNextParam(&ParamStr, &ParamCharPos, &strValue);
btnArea->Right = (float)_wtof(strValue);
ReadNextParam(&ParamStr, &ParamCharPos, &strValue);
btnArea->Bottom = (float)_wtof(strValue);
pAreasArray->Add((void*)btnArea);
iItem++;
textFile.ReadString(ParamStr);
} while (ParamStr != "");
} |