From e22d6a0d26b08e2e7c69972fed1cb96f300ef523 Mon Sep 17 00:00:00 2001 From: Simon Howard Date: Sun, 7 Feb 2010 02:59:25 +0000 Subject: Refactor dehacked structure mapping code to support string fields in addition to integer fields. Subversion-branch: /branches/raven-branch Subversion-revision: 1856 --- src/deh_mapping.h | 22 +++++++++++++++++----- 1 file changed, 17 insertions(+), 5 deletions(-) (limited to 'src/deh_mapping.h') 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); -- cgit v1.2.3