codemp/game/surfaceflags.h

Go to the documentation of this file.
00001 // Copyright (C) 1999-2000 Id Software, Inc.
00002 //
00003 // This file must be identical in the quake and utils directories
00004 
00005 // contents flags are seperate bits
00006 // a given brush can contribute multiple content bits
00007 
00008 // these definitions also need to be in q_shared.h!
00009 
00010 #define CONTENTS_SOLID                  0x00000001      // Default setting. An eye is never valid in a solid
00011 #define CONTENTS_LAVA                   0x00000002
00012 #define CONTENTS_WATER                  0x00000004
00013 #define CONTENTS_FOG                    0x00000008
00014 #define CONTENTS_PLAYERCLIP             0x00000010
00015 #define CONTENTS_MONSTERCLIP    0x00000020      // Physically block bots
00016 #define CONTENTS_BOTCLIP                0x00000040      // A hint for bots - do not enter this brush by navigation (if possible)
00017 #define CONTENTS_SHOTCLIP               0x00000080
00018 #define CONTENTS_BODY                   0x00000100      // should never be on a brush, only in game
00019 #define CONTENTS_CORPSE                 0x00000200      // should never be on a brush, only in game
00020 #define CONTENTS_TRIGGER                0x00000400
00021 #define CONTENTS_NODROP                 0x00000800      // don't leave bodies or items (death fog, lava)
00022 #define CONTENTS_TERRAIN                0x00001000      // volume contains terrain data
00023 #define CONTENTS_LADDER                 0x00002000
00024 #define CONTENTS_ABSEIL                 0x00004000  // (SOF2) used like ladder to define where an NPC can abseil
00025 #define CONTENTS_OPAQUE                 0x00008000      // defaults to on, when off, solid can be seen through
00026 #define CONTENTS_OUTSIDE                0x00010000      // volume is considered to be in the outside (i.e. not indoors)
00027 
00028 #define CONTENTS_INSIDE                 0x10000000      // volume is considered to be inside (i.e. indoors)
00029 
00030 #define CONTENTS_SLIME                  0x00020000      // CHC needs this since we use same tools
00031 #define CONTENTS_LIGHTSABER             0x00040000      // ""
00032 #define CONTENTS_TELEPORTER             0x00080000      // ""
00033 #define CONTENTS_ITEM                   0x00100000      // ""
00034 #define CONTENTS_NOSHOT                 0x00200000      // shots pass through me
00035 #define CONTENTS_DETAIL                 0x08000000      // brushes not used for the bsp
00036 #define CONTENTS_TRANSLUCENT    0x80000000      // don't consume surface fragments inside
00037 
00038 #define SURF_SKY                                0x00002000      // lighting from environment map
00039 #define SURF_SLICK                              0x00004000      // affects game physics
00040 #define SURF_METALSTEPS                 0x00008000      // CHC needs this since we use same tools (though this flag is temp?)
00041 #define SURF_FORCEFIELD                 0x00010000      // CHC ""                       (but not temp)
00042 #define SURF_NODAMAGE                   0x00040000      // never give falling damage
00043 #define SURF_NOIMPACT                   0x00080000      // don't make missile explosions
00044 #define SURF_NOMARKS                    0x00100000      // don't leave missile marks
00045 #define SURF_NODRAW                             0x00200000      // don't generate a drawsurface at all
00046 #define SURF_NOSTEPS                    0x00400000      // no footstep sounds
00047 #define SURF_NODLIGHT                   0x00800000      // don't dlight even if solid (solid lava, skies)
00048 #define SURF_NOMISCENTS                 0x01000000      // no client models allowed on this surface
00049 
00050 
00051 #define MATERIAL_BITS                   5
00052 #define MATERIAL_MASK                   0x1f    // mask to get the material type
00053 
00054 #define MATERIAL_NONE                   0                       // for when the artist hasn't set anything up =)
00055 #define MATERIAL_SOLIDWOOD              1                       // freshly cut timber
00056 #define MATERIAL_HOLLOWWOOD             2                       // termite infested creaky wood
00057 #define MATERIAL_SOLIDMETAL             3                       // solid girders
00058 #define MATERIAL_HOLLOWMETAL    4                       // hollow metal machines
00059 #define MATERIAL_SHORTGRASS             5                       // manicured lawn
00060 #define MATERIAL_LONGGRASS              6                       // long jungle grass
00061 #define MATERIAL_DIRT                   7                       // hard mud
00062 #define MATERIAL_SAND                   8                       // sandy beach
00063 #define MATERIAL_GRAVEL                 9                       // lots of small stones
00064 #define MATERIAL_GLASS                  10                      // 
00065 #define MATERIAL_CONCRETE               11                      // hardened concrete pavement
00066 #define MATERIAL_MARBLE                 12                      // marble floors
00067 #define MATERIAL_WATER                  13                      // light covering of water on a surface
00068 #define MATERIAL_SNOW                   14                      // freshly laid snow
00069 #define MATERIAL_ICE                    15                      // packed snow/solid ice
00070 #define MATERIAL_FLESH                  16                      // hung meat, corpses in the world
00071 #define MATERIAL_MUD                    17                      // wet soil
00072 #define MATERIAL_BPGLASS                18                      // bulletproof glass
00073 #define MATERIAL_DRYLEAVES              19                      // dried up leaves on the floor
00074 #define MATERIAL_GREENLEAVES    20                      // fresh leaves still on a tree
00075 #define MATERIAL_FABRIC                 21                      // Cotton sheets
00076 #define MATERIAL_CANVAS                 22                      // tent material
00077 #define MATERIAL_ROCK                   23                      //
00078 #define MATERIAL_RUBBER                 24                      // hard tire like rubber
00079 #define MATERIAL_PLASTIC                25                      // 
00080 #define MATERIAL_TILES                  26                      // tiled floor
00081 #define MATERIAL_CARPET                 27                      // lush carpet
00082 #define MATERIAL_PLASTER                28                      // drywall style plaster
00083 #define MATERIAL_SHATTERGLASS   29                      // glass with the Crisis Zone style shattering
00084 #define MATERIAL_ARMOR                  30                      // body armor
00085 #define MATERIAL_COMPUTER               31                      // computers/electronic equipment
00086 #define MATERIAL_LAST                   32                      // number of materials
00087 
00088 // Defined as a macro here so one change will affect all the relevant files
00089 
00090 #define MATERIALS       \
00091         "none",                 \
00092         "solidwood",    \
00093         "hollowwood",   \
00094         "solidmetal",   \
00095         "hollowmetal",  \
00096         "shortgrass",   \
00097         "longgrass",    \
00098         "dirt",                 \
00099         "sand",                 \
00100         "gravel",               \
00101         "glass",                \
00102         "concrete",             \
00103         "marble",               \
00104         "water",                \
00105         "snow",                 \
00106         "ice",                  \
00107         "flesh",                \
00108         "mud",                  \
00109         "bpglass",              \
00110         "dryleaves",    \
00111         "greenleaves",  \
00112         "fabric",               \
00113         "canvas",               \
00114         "rock",                 \
00115         "rubber",               \
00116         "plastic",              \
00117         "tiles",                \
00118         "carpet",               \
00119         "plaster",              \
00120         "shatterglass", \
00121         "armor",                \
00122         "computer"/* this was missing, see enums above, plus ShaderEd2 pulldown options */