| 163 | } |
| 164 | |
| 165 | string ToReadableLabel() { |
| 166 | std::stringstream stream; |
| 167 | stream << bitfield_to_string(material_category) << " "; |
| 168 | string adjective = ""; |
| 169 | string name = ""; |
| 170 | auto &itemdefs = world->raws.itemdefs; |
| 171 | switch (itemType) |
| 172 | { |
| 173 | case item_type::ARMOR: |
| 174 | adjective = itemdefs.armor[item_subtype]->adjective; |
| 175 | name = itemdefs.armor[item_subtype]->name; |
| 176 | break; |
| 177 | case item_type::SHOES: |
| 178 | adjective = itemdefs.shoes[item_subtype]->adjective; |
| 179 | name = itemdefs.shoes[item_subtype]->name; |
| 180 | break; |
| 181 | case item_type::HELM: |
| 182 | adjective = itemdefs.helms[item_subtype]->adjective; |
| 183 | name = itemdefs.helms[item_subtype]->name; |
| 184 | break; |
| 185 | case item_type::GLOVES: |
| 186 | adjective = itemdefs.gloves[item_subtype]->adjective; |
| 187 | name = itemdefs.gloves[item_subtype]->name; |
| 188 | break; |
| 189 | case item_type::PANTS: |
| 190 | adjective = itemdefs.pants[item_subtype]->adjective; |
| 191 | name = itemdefs.pants[item_subtype]->name; |
| 192 | break; |
| 193 | default: |
| 194 | break; |
| 195 | } |
| 196 | if (!adjective.empty()) |
| 197 | stream << adjective << " "; |
| 198 | stream << name << " "; |
| 199 | stream << needed_per_citizen; |
| 200 | |
| 201 | return stream.str(); |
| 202 | } |
| 203 | }; |
| 204 | |
| 205 |
no test coverage detected