Esempio n. 1
0
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;
}
Esempio n. 2
0
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);
    }
}
Esempio n. 3
0
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);
}
Esempio n. 4
0
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);
    }
}
Esempio n. 5
0
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;
}
Esempio n. 6
0
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;
}
Esempio n. 7
0
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);
    }

}
Esempio n. 8
0
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;
}