BSPParser
Simple and modern library for parsing the Valve BSP format
Loading...
Searching...
No Matches
limits.hpp
1#pragma once
2
3#include <cstdint>
4#include <cstddef>
5
6namespace BspParser::Limits {
7 constexpr size_t MIN_MAP_DISP_POWER = 2;
8 constexpr size_t MAX_MAP_DISP_POWER = 4;
9
13 constexpr size_t MAX_DISP_CORNER_NEIGHBORS = 4;
14
15#define NUM_DISP_POWER_VERTS(power) (((1 << (power)) + 1) * ((1 << (power)) + 1))
16#define NUM_DISP_POWER_TRIS(power) ((1 << (power)) * (1 << (power)) * 2)
17
18 constexpr size_t MAX_MAP_MODELS = 1024;
19 constexpr size_t MAX_MAP_BRUSHES = 8192;
20 constexpr size_t MAX_MAP_ENTITIES = 8192;
21 constexpr size_t MAX_MAP_TEXINFO = 12288;
22 constexpr size_t MAX_MAP_TEXDATA = 2048;
23 constexpr size_t MAX_MAP_DISPINFO = 2048;
24 constexpr size_t MAX_MAP_DISP_VERTS =
25 MAX_MAP_DISPINFO * ((1 << MAX_MAP_DISP_POWER) + 1) * ((1 << MAX_MAP_DISP_POWER) + 1);
26 constexpr size_t MAX_MAP_DISP_TRIS = (1 << MAX_MAP_DISP_POWER) * (1 << MAX_MAP_DISP_POWER) * 2;
27 constexpr size_t MAX_DISPVERTS = NUM_DISP_POWER_VERTS(MAX_MAP_DISP_POWER);
28 constexpr size_t MAX_DISPTRIS = NUM_DISP_POWER_TRIS(MAX_MAP_DISP_POWER);
29 constexpr size_t MAX_MAP_AREAS = 256;
30 constexpr size_t MAX_MAP_AREA_BYTES = MAX_MAP_AREAS / 8;
31 constexpr size_t MAX_MAP_AREAPORTALS = 1024;
32 constexpr size_t MAX_MAP_PLANES = 65536;
33 constexpr size_t MAX_MAP_NODES = 65536;
34 constexpr size_t MAX_MAP_BRUSHSIDES = 65536;
35 constexpr size_t MAX_MAP_LEAFS = 65536;
36 constexpr size_t MAX_MAP_VERTS = 65536;
37 constexpr size_t MAX_MAP_VERTNORMALS = 256000;
38 constexpr size_t MAX_MAP_VERTNORMALINDICES = 256000;
39 constexpr size_t MAX_MAP_FACES = 65536;
40 constexpr size_t MAX_MAP_LEAFFACES = 65536;
41 constexpr size_t MAX_MAP_LEAFBRUSHES = 65536;
42 constexpr size_t MAX_MAP_PORTALS = 65536;
43 constexpr size_t MAX_MAP_CLUSTERS = 65536;
44 constexpr size_t MAX_MAP_LEAFWATERDATA = 32768;
45 constexpr size_t MAX_MAP_PORTALVERTS = 128000;
46 constexpr size_t MAX_MAP_EDGES = 256000;
47 constexpr size_t MAX_MAP_SURFEDGES = 512000;
48 constexpr size_t MAX_MAP_LIGHTING = 0x1000000;
49 constexpr size_t MAX_MAP_VISIBILITY = 0x1000000;
50 constexpr size_t MAX_MAP_TEXTURES = 1024;
51 constexpr size_t MAX_MAP_WORLDLIGHTS = 8192;
52 constexpr size_t MAX_MAP_CUBEMAPSAMPLES = 1024;
53 constexpr size_t MAX_MAP_OVERLAYS = 512;
54 constexpr size_t MAX_MAP_WATEROVERLAYS = 16384;
55 constexpr size_t MAX_MAP_TEXDATA_STRING_DATA = 256000;
56 constexpr size_t MAX_MAP_TEXDATA_STRING_TABLE = 65536;
57 constexpr size_t MAX_MAP_PRIMITIVES = 32768;
58 constexpr size_t MAX_MAP_PRIMVERTS = 65536;
59 constexpr size_t MAX_MAP_PRIMINDICES = 65536;
60
61 constexpr uint8_t DETAIL_NAME_LENGTH = 128;
62 constexpr uint8_t STATIC_PROP_NAME_LENGTH = 128;
63
64#undef NUM_DISP_POWER_VERTS
65#undef NUM_DISP_POWER_TRIS
66}