BSP flags (Quake and GoldSrc): Difference between revisions
SirYodaJedi (talk | contribs) m (→Contents types) |
SirYodaJedi (talk | contribs) m (→Contents types) |
||
Line 20: | Line 20: | ||
== Contents types == | == Contents types == | ||
Contents are stored as a signed 32-bit integer, and are always negative. | Contents are stored as a signed 32-bit integer, and are always negative. | ||
Some entities, such as {{ent|func_illusionary|eng=goldsrc}} and {{ent|func_water|eng=goldsrc}}, allow using the {{code|skin}} KV to override the contents of the entity. | |||
{{clarify|Contents are stored in visleaves somehow, not directly in clipnodes.}} | {{clarify|Contents are stored in visleaves somehow, not directly in clipnodes.}} | ||
{| class="wikitable" | {| class="wikitable" | ||
Line 38: | Line 39: | ||
|- | |- | ||
| -7 || CONTENTS_ORIGIN || removed at csg time || Replaces an entity's {{code|origin}} KV, then is removed by CSG (does not exist in compiled BSP). | | -7 || CONTENTS_ORIGIN || removed at csg time || Replaces an entity's {{code|origin}} KV, then is removed by CSG (does not exist in compiled BSP). | ||
In GoldSrc, if a brush has this contents at runtime, it will be treated like water. | In GoldSrc, if a brush has this contents at runtime, it will be treated like water (and is referred . | ||
|- | |- | ||
| -8 || CONTENTS_CLIP || changed to contents_solid || | | -8 || CONTENTS_CLIP || changed to contents_solid || |
Revision as of 09:27, 6 June 2024

Remember to check for any notes left by the tagger at this article's talk page.

Surface flags
Despite having a 32-bit integer available to be used, most flags go unused. Vanilla Quake engines and GoldSrc only use TEX_SPECIAL.
Bit | Name | Dev comment | Notes |
---|---|---|---|
0x00000001 | TEX_SPECIAL | sky or slime, no lightmap or 256 subdivision | Surface does not have a lightmap.
Used by |
0x00000002 | TEX_MISSING | johnfitz -- this texinfo does not have a texture | Used by fitzquake and derivatives to indicate a missing texture |
0x00000800 | ??? | N/A | Used by VERTEXNORMALS BSPX lump to indicate a face that should have smooth shading based upon its vertex normals. |
Contents types
Contents are stored as a signed 32-bit integer, and are always negative. Some entities, such as func_illusionary and func_water, allow using the skin KV to override the contents of the entity.
Ambient Types
Ambients are stored as an array of 4 unsigned bytes, indicating volume. Only Quake uses them, and it only uses AMBIENT_SKY and AMBIENT_WATER, which are hardcoded in the engine to play specific sounds when a visleaf containing the given ambient type is in the current PVS.
Index | Header text | Header text |
---|---|---|
0 | AMBIENT_WATER | |
1 | AMBIENT_SKY | |
2 | AMBIENT_SLIME | |
3 | AMBIENT_LAVA |