jkxr/Projects/Android/jni/OpenJK/codeJK2/game/surfaceflags.h
Simon 4597b03873 Initial Commit
Opens in Android Studio but haven't even tried to build it yet (it won't.. I know that much!)
2022-09-18 16:37:21 +01:00

171 lines
7.5 KiB
C

/*
===========================================================================
Copyright (C) 1999 - 2005, id Software, Inc.
Copyright (C) 2000 - 2013, Raven Software, Inc.
Copyright (C) 2001 - 2013, Activision, Inc.
Copyright (C) 2013 - 2015, OpenJK contributors
This file is part of the OpenJK source code.
OpenJK is free software; you can redistribute it and/or modify it
under the terms of the GNU General Public License version 2 as
published by the Free Software Foundation.
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, see <http://www.gnu.org/licenses/>.
===========================================================================
*/
// This file must be identical in the quake and utils directories
// contents flags are seperate bits
// a given brush can contribute multiple content bits
// these definitions also need to be in q_shared.h!
#define CONTENTS_NONE (0x00000000u)
#define CONTENTS_SOLID (0x00000001u) // Default setting. An eye is never valid in a solid
#define CONTENTS_LAVA (0x00000002u) //
#define CONTENTS_WATER (0x00000004u) //
#define CONTENTS_FOG (0x00000008u) //
#define CONTENTS_PLAYERCLIP (0x00000010u) // Player physically blocked
#define CONTENTS_MONSTERCLIP (0x00000020u) // NPCs cannot physically pass through
#define CONTENTS_BOTCLIP (0x00000040u) // do not enter - NPCs try not to enter these
#define CONTENTS_SHOTCLIP (0x00000080u) // shots physically blocked
#define CONTENTS_BODY (0x00000100u) // should never be on a brush, only in game
#define CONTENTS_CORPSE (0x00000200u) // should never be on a brush, only in game
#define CONTENTS_TRIGGER (0x00000400u) //
#define CONTENTS_NODROP (0x00000800u) // don't leave bodies or items (death fog, lava)
#define CONTENTS_TERRAIN (0x00001000u) // volume contains terrain data
#define CONTENTS_LADDER (0x00002000u) //
#define CONTENTS_ABSEIL (0x00004000u) // used like ladder to define where an NPC can abseil
#define CONTENTS_OPAQUE (0x00008000u) // defaults to on, when off, solid can be seen through
#define CONTENTS_OUTSIDE (0x00010000u) // volume is considered to be in the outside (i.e. not indoors)
#define CONTENTS_SLIME (0x00020000u) // CHC needs this since we use same tools
#define CONTENTS_LIGHTSABER (0x00040000u) // ""
#define CONTENTS_TELEPORTER (0x00080000u) // ""
#define CONTENTS_ITEM (0x00100000u) // ""
#define CONTENTS_UNUSED00200000 (0x00200000u) //
#define CONTENTS_UNUSED00400000 (0x00400000u) //
#define CONTENTS_UNUSED00800000 (0x00800000u) //
#define CONTENTS_UNUSED01000000 (0x01000000u) //
#define CONTENTS_UNUSED02000000 (0x02000000u) //
#define CONTENTS_UNUSED04000000 (0x04000000u) //
#define CONTENTS_DETAIL (0x08000000u) // brushes not used for the bsp
#define CONTENTS_INSIDE (0x10000000u) // volume is considered to be inside (i.e. indoors)
#define CONTENTS_UNUSED20000000 (0x20000000u) //
#define CONTENTS_UNUSED40000000 (0x40000000u) //
#define CONTENTS_TRANSLUCENT (0x80000000u) // don't consume surface fragments inside
#define CONTENTS_ALL (0xFFFFFFFFu)
#define SURF_NONE (0x00000000u)
#define SURF_UNUSED00000001 (0x00000001u) //
#define SURF_UNUSED00000002 (0x00000002u) //
#define SURF_UNUSED00000004 (0x00000004u) //
#define SURF_UNUSED00000008 (0x00000008u) //
#define SURF_UNUSED00000010 (0x00000010u) //
#define SURF_UNUSED00000020 (0x00000020u) //
#define SURF_UNUSED00000040 (0x00000040u) //
#define SURF_UNUSED00000080 (0x00000080u) //
#define SURF_UNUSED00000100 (0x00000100u) //
#define SURF_UNUSED00000200 (0x00000200u) //
#define SURF_UNUSED00000400 (0x00000400u) //
#define SURF_UNUSED00000800 (0x00000800u) //
#define SURF_UNUSED00001000 (0x00001000u) //
#define SURF_SKY (0x00002000u) // lighting from environment map
#define SURF_SLICK (0x00004000u) // affects game physics
#define SURF_METALSTEPS (0x00008000u) // CHC needs this since we use same tools (though this flag is temp?)
#define SURF_FORCEFIELD (0x00010000u) // CHC "" (but not temp)
#define SURF_UNUSED00020000 (0x00020000u) //
#define SURF_NODAMAGE (0x00040000u) // never give falling damage
#define SURF_NOIMPACT (0x00080000u) // don't make missile explosions
#define SURF_NOMARKS (0x00100000u) // don't leave missile marks
#define SURF_NODRAW (0x00200000u) // don't generate a drawsurface at all
#define SURF_NOSTEPS (0x00400000u) // no footstep sounds
#define SURF_NODLIGHT (0x00800000u) // don't dlight even if solid (solid lava, skies)
#define SURF_NOMISCENTS (0x01000000u) // no client models allowed on this surface
#define SURF_FORCESIGHT (0x02000000u) // not visible without Force Sight
#define SURF_UNUSED04000000 (0x04000000u) //
#define SURF_UNUSED08000000 (0x08000000u) //
#define SURF_UNUSED10000000 (0x10000000u) //
#define SURF_UNUSED20000000 (0x20000000u) //
#define SURF_UNUSED40000000 (0x40000000u) //
#define SURF_UNUSED80000000 (0x80000000u) //
#define MATERIAL_BITS 5
#define MATERIAL_MASK 0x1f // mask to get the material type
#define MATERIAL_NONE 0 // for when the artist hasn't set anything up =)
#define MATERIAL_SOLIDWOOD 1 // freshly cut timber
#define MATERIAL_HOLLOWWOOD 2 // termite infested creaky wood
#define MATERIAL_SOLIDMETAL 3 // solid girders
#define MATERIAL_HOLLOWMETAL 4 // hollow metal machines
#define MATERIAL_SHORTGRASS 5 // manicured lawn
#define MATERIAL_LONGGRASS 6 // long jungle grass
#define MATERIAL_DIRT 7 // hard mud
#define MATERIAL_SAND 8 // sandy beach
#define MATERIAL_GRAVEL 9 // lots of small stones
#define MATERIAL_GLASS 10 //
#define MATERIAL_CONCRETE 11 // hardened concrete pavement
#define MATERIAL_MARBLE 12 // marble floors
#define MATERIAL_WATER 13 // light covering of water on a surface
#define MATERIAL_SNOW 14 // freshly laid snow
#define MATERIAL_ICE 15 // packed snow/solid ice
#define MATERIAL_FLESH 16 // hung meat, corpses in the world
#define MATERIAL_MUD 17 // wet soil
#define MATERIAL_BPGLASS 18 // bulletproof glass
#define MATERIAL_DRYLEAVES 19 // dried up leaves on the floor
#define MATERIAL_GREENLEAVES 20 // fresh leaves still on a tree
#define MATERIAL_FABRIC 21 // Cotton sheets
#define MATERIAL_CANVAS 22 // tent material
#define MATERIAL_ROCK 23 //
#define MATERIAL_RUBBER 24 // hard tire like rubber
#define MATERIAL_PLASTIC 25 //
#define MATERIAL_TILES 26 // tiled floor
#define MATERIAL_CARPET 27 // lush carpet
#define MATERIAL_PLASTER 28 // drywall style plaster
#define MATERIAL_SHATTERGLASS 29 // glass with the Crisis Zone style shattering
#define MATERIAL_ARMOR 30 // body armor
#define MATERIAL_COMPUTER 31 // computers/electronic equipment
#define MATERIAL_LAST 32 // number of materials
// Defined as a macro here so one change will affect all the relevant files
#define MATERIALS \
"none", \
"solidwood", \
"hollowwood", \
"solidmetal", \
"hollowmetal", \
"shortgrass", \
"longgrass", \
"dirt", \
"sand", \
"gravel", \
"glass", \
"concrete", \
"marble", \
"water", \
"snow", \
"ice", \
"flesh", \
"mud", \
"bpglass", \
"dryleaves", \
"greenleaves", \
"fabric", \
"canvas", \
"rock", \
"rubber", \
"plastic", \
"tiles", \
"carpet", \
"plaster", \
"shatterglass", \
"armor", \
"computer"/* this was missing, see enums above, plus ShaderEd2 pulldown options */