From 37865c5d5b53fd0427b6f22d0a13f830a74c3064 Mon Sep 17 00:00:00 2001 From: Simon Howard Date: Sun, 7 Sep 2008 21:03:09 +0000 Subject: Move dehacked code to doom/. Split dehacked string replacement code into common code and remove dependencies on deh_main.h. Subversion-branch: /branches/raven-branch Subversion-revision: 1210 --- src/doom/deh_defs.h | 68 +++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 68 insertions(+) create mode 100644 src/doom/deh_defs.h (limited to 'src/doom/deh_defs.h') diff --git a/src/doom/deh_defs.h b/src/doom/deh_defs.h new file mode 100644 index 00000000..a6650544 --- /dev/null +++ b/src/doom/deh_defs.h @@ -0,0 +1,68 @@ +// Emacs style mode select -*- C++ -*- +//----------------------------------------------------------------------------- +// +// Copyright(C) 2005 Simon Howard +// +// This program is free software; you can redistribute it and/or +// modify it under the terms of the GNU General Public License +// as published by the Free Software Foundation; either version 2 +// of the License, or (at your option) any later version. +// +// This program is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. +// +// You should have received a copy of the GNU General Public License +// along with this program; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA +// 02111-1307, USA. +// +//----------------------------------------------------------------------------- +// +// Definitions for use in the dehacked code +// +//----------------------------------------------------------------------------- + +#ifndef DEH_DEFS_H +#define DEH_DEFS_H + +#include "md5.h" + +typedef struct deh_context_s deh_context_t; +typedef struct deh_section_s deh_section_t; +typedef void (*deh_section_init_t)(void); +typedef void *(*deh_section_start_t)(deh_context_t *context, char *line); +typedef void (*deh_section_end_t)(deh_context_t *context, void *tag); +typedef void (*deh_line_parser_t)(deh_context_t *context, char *line, void *tag); +typedef void (*deh_md5_hash_t)(md5_context_t *context); + +struct deh_section_s +{ + char *name; + + // Called on startup to initialise code + + deh_section_init_t init; + + // This is called when a new section is started. The pointer + // returned is used as a tag for the following calls. + + deh_section_start_t start; + + // This is called for each line in the section + + deh_line_parser_t line_parser; + + // This is called at the end of the section for any cleanup + + deh_section_end_t end; + + // Called when generating an MD5 sum of the dehacked state + + deh_md5_hash_t md5_hash; +}; + +#endif /* #ifndef DEH_DEFS_H */ + + -- cgit v1.2.3