summaryrefslogtreecommitdiff
path: root/src/deh_mapping.h
diff options
context:
space:
mode:
authorSimon Howard2010-02-07 02:59:25 +0000
committerSimon Howard2010-02-07 02:59:25 +0000
commite22d6a0d26b08e2e7c69972fed1cb96f300ef523 (patch)
treefe3e21703bfe2b20f6af9542934cae613c7ddd11 /src/deh_mapping.h
parentb786d601aeaaa20167f408be56f7e8d13ecc2f8c (diff)
downloadchocolate-doom-e22d6a0d26b08e2e7c69972fed1cb96f300ef523.tar.gz
chocolate-doom-e22d6a0d26b08e2e7c69972fed1cb96f300ef523.tar.bz2
chocolate-doom-e22d6a0d26b08e2e7c69972fed1cb96f300ef523.zip
Refactor dehacked structure mapping code to support string fields in
addition to integer fields. Subversion-branch: /branches/raven-branch Subversion-revision: 1856
Diffstat (limited to 'src/deh_mapping.h')
-rw-r--r--src/deh_mapping.h22
1 files changed, 17 insertions, 5 deletions
diff --git a/src/deh_mapping.h b/src/deh_mapping.h
index 4862dec9..129ddcfd 100644
--- a/src/deh_mapping.h
+++ b/src/deh_mapping.h
@@ -42,17 +42,23 @@
#define DEH_MAPPING(deh_name, fieldname) \
{deh_name, &deh_mapping_base.fieldname, \
- sizeof(deh_mapping_base.fieldname)},
+ sizeof(deh_mapping_base.fieldname), \
+ false},
+
+#define DEH_MAPPING_STRING(deh_name, fieldname) \
+ {deh_name, &deh_mapping_base.fieldname, \
+ sizeof(deh_mapping_base.fieldname), \
+ true},
#define DEH_UNSUPPORTED_MAPPING(deh_name) \
- {deh_name, NULL, -1},
-
+ {deh_name, NULL, -1, false},
+
#define DEH_END_MAPPING \
{NULL, NULL, -1} \
} \
};
-
+
#define MAX_MAPPING_ENTRIES 32
@@ -73,6 +79,10 @@ struct deh_mapping_entry_s
// field size
int size;
+
+ // if true, this is a string value.
+
+ boolean is_string;
};
struct deh_mapping_s
@@ -81,8 +91,10 @@ struct deh_mapping_s
deh_mapping_entry_t entries[MAX_MAPPING_ENTRIES];
};
-boolean DEH_SetMapping(deh_context_t *context, deh_mapping_t *mapping,
+boolean DEH_SetMapping(deh_context_t *context, deh_mapping_t *mapping,
void *structptr, char *name, int value);
+boolean DEH_SetStringMapping(deh_context_t *context, deh_mapping_t *mapping,
+ void *structptr, char *name, char *value);
void DEH_StructMD5Sum(md5_context_t *context, deh_mapping_t *mapping,
void *structptr);