summaryrefslogtreecommitdiff
path: root/src/resources/db
diff options
context:
space:
mode:
authorAndrei Karas <akaras@inbox.ru>2016-06-01 17:07:23 +0300
committerAndrei Karas <akaras@inbox.ru>2016-06-01 19:53:54 +0300
commitff53770b5a3d4c9911ffba93f9a62697dd5b6d81 (patch)
treeb192af38dc0c1b20e72cfae300427f7075044ea6 /src/resources/db
parent5cf2b1abffc97e6d0d79dec6088a3b59e07bc490 (diff)
downloadmanaplus-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')
-rw-r--r--src/resources/db/itemdb.cpp29
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)