summaryrefslogtreecommitdiff
path: root/src/heretic/doomdata.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/heretic/doomdata.h')
-rw-r--r--src/heretic/doomdata.h200
1 files changed, 200 insertions, 0 deletions
diff --git a/src/heretic/doomdata.h b/src/heretic/doomdata.h
new file mode 100644
index 00000000..ac84ec46
--- /dev/null
+++ b/src/heretic/doomdata.h
@@ -0,0 +1,200 @@
+// Emacs style mode select -*- C++ -*-
+//-----------------------------------------------------------------------------
+//
+// Copyright(C) 1993-1996 Id Software, Inc.
+// Copyright(C) 1993-2008 Raven Software
+// Copyright(C) 2008 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.
+//
+//-----------------------------------------------------------------------------
+// DoomData.h
+
+// all external data is defined here
+// most of the data is loaded into different structures at run time
+
+#ifndef __DOOMDATA__
+#define __DOOMDATA__
+
+#include "doomtype.h"
+
+/*
+===============================================================================
+
+ map level types
+
+===============================================================================
+*/
+
+// lump order in a map wad
+enum
+{
+ ML_LABEL,
+ ML_THINGS,
+ ML_LINEDEFS,
+ ML_SIDEDEFS,
+ ML_VERTEXES,
+ ML_SEGS,
+ ML_SSECTORS,
+ ML_NODES,
+ ML_SECTORS,
+ ML_REJECT,
+ ML_BLOCKMAP
+};
+
+
+typedef struct
+{
+ short x, y;
+} PACKEDATTR mapvertex_t;
+
+typedef struct
+{
+ short textureoffset;
+ short rowoffset;
+ char toptexture[8], bottomtexture[8], midtexture[8];
+ short sector; // on viewer's side
+} PACKEDATTR mapsidedef_t;
+
+typedef struct
+{
+ short v1, v2;
+ short flags;
+ short special, tag;
+ short sidenum[2]; // sidenum[1] will be -1 if one sided
+} PACKEDATTR maplinedef_t;
+
+#define ML_BLOCKING 1
+#define ML_BLOCKMONSTERS 2
+#define ML_TWOSIDED 4 // backside will not be present at all
+ // if not two sided
+
+// if a texture is pegged, the texture will have the end exposed to air held
+// constant at the top or bottom of the texture (stairs or pulled down things)
+// and will move with a height change of one of the neighbor sectors
+// Unpegged textures allways have the first row of the texture at the top
+// pixel of the line for both top and bottom textures (windows)
+#define ML_DONTPEGTOP 8
+#define ML_DONTPEGBOTTOM 16
+
+#define ML_SECRET 32 // don't map as two sided: IT'S A SECRET!
+#define ML_SOUNDBLOCK 64 // don't let sound cross two of these
+#define ML_DONTDRAW 128 // don't draw on the automap
+#define ML_MAPPED 256 // set if allready drawn in automap
+
+
+typedef struct
+{
+ short floorheight, ceilingheight;
+ char floorpic[8], ceilingpic[8];
+ short lightlevel;
+ short special, tag;
+} PACKEDATTR mapsector_t;
+
+typedef struct
+{
+ short numsegs;
+ short firstseg; // segs are stored sequentially
+} PACKEDATTR mapsubsector_t;
+
+typedef struct
+{
+ short v1, v2;
+ short angle;
+ short linedef, side;
+ short offset;
+} PACKEDATTR mapseg_t;
+
+#define NF_SUBSECTOR 0x8000
+typedef struct
+{
+ short x, y, dx, dy; // partition line
+ short bbox[2][4]; // bounding box for each child
+ unsigned short children[2]; // if NF_SUBSECTOR its a subsector
+} PACKEDATTR mapnode_t;
+
+typedef struct
+{
+ short x, y;
+ short angle;
+ short type;
+ short options;
+} PACKEDATTR mapthing_t;
+
+#define MTF_EASY 1
+#define MTF_NORMAL 2
+#define MTF_HARD 4
+#define MTF_AMBUSH 8
+
+/*
+===============================================================================
+
+ texture definition
+
+===============================================================================
+*/
+
+typedef struct
+{
+ short originx;
+ short originy;
+ short patch;
+ short stepdir;
+ short colormap;
+} PACKEDATTR mappatch_t;
+
+typedef struct
+{
+ char name[8];
+ boolean masked;
+ short width;
+ short height;
+ int obsolete;
+ short patchcount;
+ mappatch_t patches[1];
+} PACKEDATTR maptexture_t;
+
+
+/*
+===============================================================================
+
+ graphics
+
+===============================================================================
+*/
+
+// a pic is an unmasked block of pixels
+typedef struct
+{
+ byte width, height;
+ byte data;
+} pic_t;
+
+
+
+
+/*
+===============================================================================
+
+ status
+
+===============================================================================
+*/
+
+
+
+
+#endif // __DOOMDATA__