예제 #1
0
파일: columns.cpp 프로젝트: OpenMW/openmw
std::vector<std::pair<int,std::string>>CSMWorld::Columns::getEnums (ColumnId column)
{
    std::vector<std::pair<int,std::string>> enums;

    if (const char **table = getEnumNames (column))
        for (int i=0; table[i]; ++i)
            enums.emplace_back(i, table[i]);
    else if (column==ColumnId_BloodType)
    {
        for (int i=0; i<8; i++)
        {
            const std::string& bloodName = Fallback::Map::getString("Blood_Texture_Name_" + std::to_string(i));
            if (!bloodName.empty())
                enums.emplace_back(i, bloodName);
        }
    }
    else if (column==ColumnId_RecordType)
    {
        enums.emplace_back(UniversalId::Type_None, ""); // none

        for (int i=UniversalId::Type_None+1; i<UniversalId::NumberOfTypes; ++i)
            enums.emplace_back (i, UniversalId (static_cast<UniversalId::Type> (i)).getTypeName());
    }

    return enums;
}
예제 #2
0
std::vector<std::string> CSMWorld::Columns::getEnums (ColumnId column)
{
    std::vector<std::string> enums;

    if (const char **table = getEnumNames (column))
        for (int i=0; table[i]; ++i)
            enums.push_back (table[i]);
    else if (column==ColumnId_RecordType)
    {
        enums.push_back (""); // none

        for (int i=UniversalId::Type_None+1; i<UniversalId::NumberOfTypes; ++i)
            enums.push_back (UniversalId (static_cast<UniversalId::Type> (i)).getTypeName());
    }

    return enums;
}
예제 #3
0
bool CSMWorld::Columns::hasEnums (ColumnId column)
{
    return getEnumNames (column)!=0 || column==ColumnId_RecordType;
}