diff options
author | Simon Howard | 2010-02-07 02:59:25 +0000 |
---|---|---|
committer | Simon Howard | 2010-02-07 02:59:25 +0000 |
commit | e22d6a0d26b08e2e7c69972fed1cb96f300ef523 (patch) | |
tree | fe3e21703bfe2b20f6af9542934cae613c7ddd11 /src/deh_mapping.h | |
parent | b786d601aeaaa20167f408be56f7e8d13ecc2f8c (diff) | |
download | chocolate-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.h | 22 |
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); |