summaryrefslogtreecommitdiff
path: root/library/DataDefs.cpp
diff options
context:
space:
mode:
authorAlexander Gavrilov2012-03-15 20:46:08 +0400
committerAlexander Gavrilov2012-03-15 20:46:08 +0400
commitf84b1539a8ebd7267acc06fbe2f4dd2394fccce9 (patch)
treec5b02295686b5475bd4263dd1920d78401fa9dcf /library/DataDefs.cpp
parente5efbc589525d34c5205065514f82a054a92a128 (diff)
downloaddfhack-f84b1539a8ebd7267acc06fbe2f4dd2394fccce9.tar.gz
dfhack-f84b1539a8ebd7267acc06fbe2f4dd2394fccce9.tar.bz2
dfhack-f84b1539a8ebd7267acc06fbe2f4dd2394fccce9.tar.xz
Change to the traits representation of enum and bitfield properties.
Diffstat (limited to 'library/DataDefs.cpp')
-rw-r--r--library/DataDefs.cpp16
1 files changed, 13 insertions, 3 deletions
diff --git a/library/DataDefs.cpp b/library/DataDefs.cpp
index 77b15920..2396e03f 100644
--- a/library/DataDefs.cpp
+++ b/library/DataDefs.cpp
@@ -169,7 +169,7 @@ std::string DFHack::bitfieldToString(const void *p, int size, const bitfield_ite
std::string res;
const char *data = (const char*)p;
- for (int i = 0; i < size*8; i++) {
+ for (int i = 0; i < size; i++) {
unsigned v;
if (items[i].size > 1) {
@@ -199,12 +199,22 @@ std::string DFHack::bitfieldToString(const void *p, int size, const bitfield_ite
return res;
}
-int DFHack::findBitfieldField(const std::string &name, int size, const bitfield_item_info *items)
+int DFHack::findBitfieldField_(const std::string &name, int size, const bitfield_item_info *items)
{
- for (int i = 0; i < size*8; i++) {
+ for (int i = 0; i < size; i++) {
if (items[i].name && items[i].name == name)
return i;
}
return -1;
}
+
+int DFHack::findEnumItem_(const std::string &name, int size, const char *const *items)
+{
+ for (int i = 0; i < size; i++) {
+ if (items[i] && items[i] == name)
+ return i;
+ }
+
+ return -1;
+}