diff options
author | Andrei Karas <akaras@inbox.ru> | 2016-06-01 17:07:23 +0300 |
---|---|---|
committer | Andrei Karas <akaras@inbox.ru> | 2016-06-01 19:53:54 +0300 |
commit | ff53770b5a3d4c9911ffba93f9a62697dd5b6d81 (patch) | |
tree | b192af38dc0c1b20e72cfae300427f7075044ea6 /src/resources/db/itemdb.cpp | |
parent | 5cf2b1abffc97e6d0d79dec6088a3b59e07bc490 (diff) | |
download | manaplus-ff53770b5a3d4c9911ffba93f9a62697dd5b6d81.tar.gz manaplus-ff53770b5a3d4c9911ffba93f9a62697dd5b6d81.tar.bz2 manaplus-ff53770b5a3d4c9911ffba93f9a62697dd5b6d81.tar.xz manaplus-ff53770b5a3d4c9911ffba93f9a62697dd5b6d81.zip |
Move item field type class into separate file.
Diffstat (limited to 'src/resources/db/itemdb.cpp')
-rw-r--r-- | src/resources/db/itemdb.cpp | 29 |
1 files changed, 7 insertions, 22 deletions
diff --git a/src/resources/db/itemdb.cpp b/src/resources/db/itemdb.cpp index 8729e54b5..9cea2b551 100644 --- a/src/resources/db/itemdb.cpp +++ b/src/resources/db/itemdb.cpp @@ -32,6 +32,8 @@ #include "resources/iteminfo.h" #include "resources/itemtypemapdata.h" +#include "resources/item/itemfieldtype.h" + #include "resources/sprite/spritereference.h" #include "resources/db/itemdbstat.h" @@ -77,26 +79,7 @@ static int parseDirectionName(const std::string &name); namespace { - struct FieldType final - { -#ifdef ADVGCC - FieldType(const char *const name0, - const char *const description0, - const bool sign0) : - name(name0), - description(description0), - sign(sign0) - { } - - A_DELETE_COPY(FieldType) -#endif - - const char *name; - const char *description; - const bool sign; - }; - - static const FieldType fields[] = + static const ItemFieldType fields[] = { // TRANSLATORS: item info label (attack) { "attack", N_("Attack %s"), true }, @@ -573,14 +556,16 @@ void ItemDB::loadXmlFile(const std::string &fileName, std::string effect; for (size_t i = 0; i < sizeof(fields) / sizeof(fields[0]); ++ i) { - std::string value = XML::getProperty(node, fields[i].name, ""); + std::string value = XML::getProperty(node, + fields[i].name.c_str(), + ""); if (value.empty()) continue; if (!effect.empty()) effect.append(" / "); if (fields[i].sign && isDigit(value)) value = "+" + value; - effect.append(strprintf(gettext(fields[i].description), + effect.append(strprintf(gettext(fields[i].description.c_str()), value.c_str())); } FOR_EACH (std::vector<Stat>::const_iterator, it, extraStats) |