Exemplo n.º 1
0
bool KItemCreate::_LoadCreateInfo(T_MAP& mapCreateInfo, const char* pFileName)
{
    KTabfileLoader& loader = KTabfileLoader::GetInstance();
    KTabFile2* pTF2 = loader.GetFileReader(pFileName);
    if(NULL == pTF2)
    {
        AssertFile(pFileName);
        return false;
    }
    KTabFile2& ItemTabFile = *pTF2;

    INT i = 0;
    while (true)
    {
        i++;
        int nRet = ItemTabFile.ReadLine();
        if(nRet == -1)
        {
            loader.CloseFileReader(pTF2);
            AssertFile(pFileName);
            return false;
        }
        if(nRet == 0) break;

        typename T_MAP::value_type item;
        //T_CreateInfo item;
        int nID = _LoadItemInfo(ItemTabFile, item);
        if(nID < 0)
        {
            Log(LOG_ERROR, "错误的物品ID:%s第%d行错误.", pFileName, i);
            continue;
        }

        if(mapCreateInfo.end() == mapCreateInfo.insert(nID, item))
        {
            Log(LOG_ERROR, "Item initilaze error, item id[%d] duplicate insert", nID);
            continue;
        }
    }

    loader.CloseFileReader(pTF2);
    printf("文件[%s]读取记录[%d]条。\n", pFileName, mapCreateInfo.size());
    return true;
}
Exemplo n.º 2
0
void deleteAndClear(T_MAP& map) {
    for (typename T_MAP::iterator i = map.begin(); i != map.end(); ++i) delete i->second;
    map.clear();
}
Exemplo n.º 3
0
 bool contains(T_MAP const map, std::string const value)
 {
     return (map.find(value) != map.end());
 }