bool CModelInfoClient::LoadConfig(const string& szFileName) { InitMapClassType(); InitMapClassString(); CTxtTableFile TabFile; if (!TabFile.Load(PATH_ALIAS_CFG.c_str(), szFileName.c_str())) return false; for( int i = 1; i < TabFile.GetHeight(); ++i ) { CModelInfoClient ModelInfo; ModelInfo.m_strName = TabFile.GetString(i, "名称"); trimend(ModelInfo.m_strName); ModelInfo.m_strPieceName = TabFile.GetString(i, "部位"); trimend(ModelInfo.m_strPieceName); ModelInfo.m_strHidePiece = TabFile.GetString(i, "遮挡关系"); trimend(ModelInfo.m_strHidePiece); ModelInfo.m_strModelFileName = TabFile.GetString(i, "模型文件名"); trimend(ModelInfo.m_strModelFileName); ModelInfo.m_strFXFileName = TabFile.GetString(i, "特效文件名"); trimend(ModelInfo.m_strFXFileName); ModelInfo.m_strStyleName = TabFile.GetString(i, "样式名"); trimend(ModelInfo.m_strStyleName); string strModelClass = TabFile.GetString(i, "对应职业"); trimend(strModelClass); vector<string> vecModelClassTable = CBaseFX::Split(strModelClass, ","); vector<string>::iterator it = vecModelClassTable.begin(); for (;it!=vecModelClassTable.end();++it) { MapModelClassType::iterator it_Map = ms_mapModelClassType.find(*it); EModelClassType eModelClass = it_Map->second; if (eModelClass<eMCT_Count) { CModelInfoClient* pExpendModelInfo = new CModelInfoClient(&ModelInfo); pExpendModelInfo->MakeFXFile(eModelClass); ms_mapModelInfo.insert(make_pair(make_pair(pExpendModelInfo->m_strName,eModelClass),pExpendModelInfo)); } else if(eMCT_Male_Human == eModelClass ) { uint32 eExpendClass = eMCT_Male_Warrior; for ( ;eExpendClass<=eMCT_Male_Priest;++eExpendClass) { CModelInfoClient* pExpendModelInfo = new CModelInfoClient(&ModelInfo); pExpendModelInfo->MakeFXFile((EModelClassType)eExpendClass); ms_mapModelInfo.insert(make_pair(make_pair(pExpendModelInfo->m_strName,(EModelClassType)eExpendClass),pExpendModelInfo)); } } else if(eMCT_Female_Human ==eModelClass ) { uint32 eExpendClass = eMCT_Female_Warrior; for ( ;eExpendClass<=eMCT_Female_Priest;++eExpendClass) { CModelInfoClient* pExpendModelInfo = new CModelInfoClient(&ModelInfo); pExpendModelInfo->MakeFXFile((EModelClassType)eExpendClass); ms_mapModelInfo.insert(make_pair(make_pair(pExpendModelInfo->m_strName,(EModelClassType)eExpendClass),pExpendModelInfo)); } } } } return true; }
void ReadMixedItem(CCfgCalc*& tReader, const TCHAR* sTitle, bool bCanEmpty, const string& tDefault) { SetItemTitle(sTitle); string sValue = g_pTabFile->GetString(g_iLine, sTitle); trimend(sValue); CheckEmpty(tReader, sValue, bCanEmpty, tDefault); if(!sValue.empty()) { SetValue(tReader, sValue, false); } }
void ReadItem(string& tReader, const TCHAR* sTitle, bool bCanEmpty, const string& tDefault, FIELD_CHECKER_STRING pFunFieldChecker) { SetItemTitle(sTitle); string sValue = g_pTabFile->GetString(g_iLine, sTitle); size_t l = sValue.size(); if(l > 1 && sValue[0] == '"' && sValue[l - 1] == '"') sValue = sValue.substr(1, l - 2); trimend(sValue); CheckEmpty(tReader, sValue, bCanEmpty, tDefault); if(!sValue.empty()) { SetValue(tReader, sValue); } CheckField(tReader, pFunFieldChecker); }
void ReadItem(CCfgCalc*& tReader, const TCHAR* sTitle, bool bCanEmpty, float tDefault, FIELD_CHECKER pFunFieldChecker, float fFieldCheckerParam) { SetItemTitle(sTitle); string sValue = g_pTabFile->GetString(g_iLine, sTitle); trimend(sValue); CheckEmpty(tReader, sValue, bCanEmpty, tDefault); if(!sValue.empty()) { SetValue(tReader, sValue); } if(pFunFieldChecker && tReader->IsSingleNumber()) { float fTemp = float(tReader->GetDblValue()); CheckField(fTemp, pFunFieldChecker, fFieldCheckerParam); } }
bool CCfgSkillBaseCheck::CheckOverlap(string strColName, int32 nRowNum) { CfgChk::SetLineNo(nRowNum); string strName; CfgChk::ReadItem(strName, strColName.c_str(), CANEMPTY); trimend(strName); SetRowName::iterator iter = ms_setRowName.find(strName); if (iter != ms_setRowName.end()) { stringstream ExpStr; ExpStr << " 配置表: " << m_strTableName << " 第 " << nRowNum << " 行的 " << strColName << "["<< strName << "]" << "重复"; CfgChk::GenExpInfo(ExpStr.str()); } else { ms_setRowName.insert(strName); } return true; }
bool CPositionMagicCfgClient::LoadConfig(const TCHAR* cfgFile) { CTxtTableFile TabFile; CPositionMagicCfgClient* pCfgNode; if (!TabFile.Load(PATH_ALIAS_CFG.c_str(), cfgFile)) return false; ClearMap(m_mapCfgById); for(int32 i=1; i<TabFile.GetHeight(); i++) { pCfgNode = new CPositionMagicCfgClient; pCfgNode->m_uId = i; pCfgNode->m_sFX = TabFile.GetString(i, szMagic_FxName); trimend(pCfgNode->m_sFX); CPositionMagicCfgClientSharedPtr* pCfgNodeSharedPtr = new CPositionMagicCfgClientSharedPtr(pCfgNode); m_mapCfgById.insert(make_pair(pCfgNode->m_uId, pCfgNodeSharedPtr)); } return true; }
void testeval() { char expr01[] = "3e-3"; char expr11[] = "10+20*30"; char expr12[] = "1*(2+3)"; char expr13[] = "(1*2)+3"; char expr14[] = "(1+2)*3"; char expr15[] = "1+(2+3)"; char expr3[] = "1*2^8+3"; char expr4[] = "1*(2^8)+3"; char expr51[] = "2*sin(1)"; char expr52[] = "2*hypot(1,2+3)"; char buffa[256]; RPNEntry** rpn; RPNEntry out; int nrpn; int e; EVALPRINT(expr01,rpn,nrpn,out,e); EVALPRINT(expr11,rpn,nrpn,out,e); EVALPRINT(expr12,rpn,nrpn,out,e); EVALPRINT(expr13,rpn,nrpn,out,e); EVALPRINT(expr14,rpn,nrpn,out,e); EVALPRINT(expr15,rpn,nrpn,out,e); EVALPRINT(expr3,rpn,nrpn,out,e); EVALPRINT(expr4,rpn,nrpn,out,e); EVALPRINT(expr51,rpn,nrpn,out,e); EVALPRINT(expr52,rpn,nrpn,out,e); for(;;) { printf(":"); trimend(fgets(buffa, 255, stdin)); EVALPRINT(buffa, rpn, nrpn,out,e); } }
bool CCastingProcessCfgClient::LoadConfig(const TCHAR* cfgFile) { CSkillCfg::InitMapCastingType(); CSkillCfg::InitMapCastingInterruptType(); CTxtTableFile TabFile; CCastingProcessCfgClient* pCfgNode; if (!TabFile.Load(PATH_ALIAS_CFG.c_str(), cfgFile)) return false; ClearMap(m_mapCfgById); for(int32 i=1; i<TabFile.GetHeight(); i++) { pCfgNode = new CCastingProcessCfgClient; pCfgNode->m_uId = i; pCfgNode->m_sName = TabFile.GetString(i,szCasting_Name); trimend(pCfgNode->m_sName); string strCastingType = TabFile.GetString(i, szCasting_Type); trimend(strCastingType); pCfgNode->m_eCastingType = CSkillCfg::ms_mapCastingType[strCastingType]; pCfgNode->m_pCastingTime = new CCfgCalc(); string sCastingTime = TabFile.GetString(i, szCastingTime); trimend(sCastingTime); pCfgNode->m_pCastingTime->InputString(sCastingTime) ; pCfgNode->m_sProcessAction = TabFile.GetString(i, szProcessAction); trimend(pCfgNode->m_sProcessAction); pCfgNode->m_sProcessEffect = TabFile.GetString(i, szProcessEffect); trimend(pCfgNode->m_sProcessEffect); //ReadItem(pCfgNode->m_bMoveInterrupt, szCasting_MoveInterrupt, CANEMPTY, NO); string strMoveInterrupt = TabFile.GetString(i,szCasting_InterruptType); trimend(strMoveInterrupt); pCfgNode->m_eCastingInterruptType = CSkillCfg::ms_mapCastingInterruptType[strMoveInterrupt]; string strLinkEffect = TabFile.GetString(i,szLinkEffect); trimend(strLinkEffect); pCfgNode->m_bLinkEffect= strLinkEffect.compare("ÊÇ") == 0 ? true : false; CCastingProcessCfgClientSharedPtr* pCfgNodeSharedPtr = new CCastingProcessCfgClientSharedPtr(pCfgNode); m_mapCfgById.insert(make_pair(pCfgNode->m_uId, pCfgNodeSharedPtr)); m_mapCfgByName.insert(make_pair(pCfgNode->m_sName, pCfgNodeSharedPtr)); } return true; }