From 4471a80aa9bb0bec5ee744cecf19b356efe5d1d7 Mon Sep 17 00:00:00 2001 From: Eric Wasylishen Date: Tue, 3 Oct 2017 18:17:10 -0600 Subject: [PATCH] common: add q2 content types (from: https://github.com/id-software/quake-2-tools ) --- include/common/bspfile.hh | 43 +++++++++++++++++++++++++++++++++++++++ 1 file changed, 43 insertions(+) diff --git a/include/common/bspfile.hh b/include/common/bspfile.hh index 4a276760..4a0b206c 100644 --- a/include/common/bspfile.hh +++ b/include/common/bspfile.hh @@ -193,6 +193,8 @@ typedef struct { int32_t type; } dplane_t; +// Q1 contents + #define CONTENTS_EMPTY -1 #define CONTENTS_SOLID -2 #define CONTENTS_WATER -3 @@ -201,6 +203,47 @@ typedef struct { #define CONTENTS_SKY -6 #define CONTENTS_MIN CONTENTS_SKY +// Q2 contents (from qfiles.h) + +// contents flags are seperate bits +// a given brush can contribute multiple content bits +// multiple brushes can be in a single leaf + +// these definitions also need to be in q_shared.h! + +// lower bits are stronger, and will eat weaker brushes completely +#define Q2_CONTENTS_SOLID 1 // an eye is never valid in a solid +#define Q2_CONTENTS_WINDOW 2 // translucent, but not watery +#define Q2_CONTENTS_AUX 4 +#define Q2_CONTENTS_LAVA 8 +#define Q2_CONTENTS_SLIME 16 +#define Q2_CONTENTS_WATER 32 +#define Q2_CONTENTS_MIST 64 +#define Q2_LAST_VISIBLE_CONTENTS 64 + +// remaining contents are non-visible, and don't eat brushes + +#define Q2_CONTENTS_AREAPORTAL 0x8000 + +#define Q2_CONTENTS_PLAYERCLIP 0x10000 +#define Q2_CONTENTS_MONSTERCLIP 0x20000 + +// currents can be added to any other contents, and may be mixed +#define Q2_CONTENTS_CURRENT_0 0x40000 +#define Q2_CONTENTS_CURRENT_90 0x80000 +#define Q2_CONTENTS_CURRENT_180 0x100000 +#define Q2_CONTENTS_CURRENT_270 0x200000 +#define Q2_CONTENTS_CURRENT_UP 0x400000 +#define Q2_CONTENTS_CURRENT_DOWN 0x800000 + +#define Q2_CONTENTS_ORIGIN 0x1000000 // removed before bsping an entity + +#define Q2_CONTENTS_MONSTER 0x2000000 // should never be on a brush, only in game +#define Q2_CONTENTS_DEADMONSTER 0x4000000 +#define Q2_CONTENTS_DETAIL 0x8000000 // brushes to be added after vis leafs +#define Q2_CONTENTS_TRANSLUCENT 0x10000000 // auto set if any surface has trans +#define Q2_CONTENTS_LADDER 0x20000000 + typedef struct { int32_t planenum; int16_t children[2]; /* negative numbers are -(leafs+1), not nodes */