Example #1
0
bool CActionEffectComboMgr::load(const string& fileName, bool reload)
{
	m_bReloadMode = reload;
	if (!m_bReloadMode && isLoadDone())
		return true;
	m_strCurrentFileName = chkFileNameExt(fileName, ".actcmb");

	CIni kIni;
	if (!kIni.openActionEffect(m_strCurrentFileName))
	{
		WriteConErr("[ERR-ActionEffectCmb] file=%s, load failed.\r\n",
			m_strCurrentFileName.c_str());
		return false;
	}

	string strCurTitle = "";
	CActionEffectCombo* pkCurActionEffectCombo = NULL;
	bool bNewTitle = false;

	// read first title
	string strTitle = "";
	string strLine = "";

	if (kIni.readTitle(strTitle, strLine))
	{
		checkRepeat(getFullTitle(strTitle));
		strCurTitle = strTitle;
		pkCurActionEffectCombo = addActionEffectCombo(strTitle);
		bNewTitle = true;
	}
	else
	{
		if (strLine.length() > 0)
			WriteConErr(
			"[ERR-ActionEffectCmb] file=%s expecting a title, line=%s\r\n",
			m_strCurrentFileName.c_str(), strLine.c_str());
		return false;
	}

	while (strCurTitle != "" && pkCurActionEffectCombo != NULL && kIni.readLine(strLine))
	{
		if (kIni.isTitle(strLine))
		{
			// meaning that we have moved to the next title,
			string title;
			kIni.parseTitle(strLine, title);
			checkRepeat(getFullTitle(title));
			strCurTitle = title;
			pkCurActionEffectCombo = addActionEffectCombo(title);
			bNewTitle = true;
		}
		else
		{
			if (bNewTitle)
			{
				parseLineFirst(pkCurActionEffectCombo, strLine, m_strCurrentFileName);
				bNewTitle = false;
			}
			else
			{
				parseLine(pkCurActionEffectCombo, strLine, m_strCurrentFileName);
			}
		}
	} //while

	return true;
}