#include "StdAfx.h" #include "RecipeManager.h" #include "CHCommonClasses/MacroFile.h" CRecipeManager::CRecipeManager() { Reset(); } CRecipeManager::CRecipeManager(const CString& strFilename) { ReadRecipeInfo(strFilename); } CRecipeManager::~CRecipeManager(void) { Reset(); } BOOL CRecipeManager::ReadRecipeInfo(const CString& strFilename) { CMacroFile macroFile; if (!macroFile.Read(strFilename)) { return FALSE; } Reset(); UINT nRecipeCount = 0; macroFile.GetItem(_T("RECIPE_COUNT"), nRecipeCount); CString strItem=_T(""), strRecipeFile=_T(""); CRecipeInfo recipeInfo; CRecipeTriangle recipeTriangle; for (UINT i=0; istrRecipeName); strItem.Format(_T("RECIPE_RECIPE_FILE_%02d"), nIndex); macroFile.SetItem(strItem, it->strRecipeFile); strItem.Format(_T("RECIPE_MODEL_FILE_%02d"), nIndex); macroFile.SetItem(strItem, it->strModelFile); strRecipeFile = TRIANGLE_RECIPE_PATH; strRecipeFile += it->strRecipeFile; m_vectorRecipeTriangle[nIndex].WriteRecipe(strRecipeFile); nIndex++; } return macroFile.Write(strFilename); } BOOL CRecipeManager::SetRecipeInfo(UINT nIndex, const CRecipeInfo& recipeInfo) { if (nIndex>=m_vectorRecipeInfo.size()) return FALSE; m_vectorRecipeInfo[nIndex] = recipeInfo; return TRUE; } void CRecipeManager::AddRecipe(const CRecipeInfo& recipeInfo, const CRecipeTriangle& recipeTrianlge) { m_vectorRecipeInfo.push_back(recipeInfo); m_vectorRecipeTriangle.push_back(recipeTrianlge); } void CRecipeManager::DeleteRecipe(UINT nIndex) { // delete recipe info if (nIndex < m_vectorRecipeInfo.size()) { // delete recipe file CString strFilename = TRIANGLE_RECIPE_PATH; strFilename += m_vectorRecipeInfo[nIndex].strRecipeFile; DeleteFile(strFilename); // delete recipe model file strFilename = TRIANGLE_RECIPE_PATH; strFilename += m_vectorRecipeInfo[nIndex].strModelFile; DeleteFile(strFilename); UINT nSize = (UINT)m_vectorRecipeInfo.size(); for (UINT i=nIndex; i