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; }
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; }
bool CSMWorld::Columns::hasEnums (ColumnId column) { return getEnumNames (column)!=0 || column==ColumnId_RecordType; }