[ { "name": "ScenarioStructureBSPMaterialFlags", "type": "bitfield", "fields": [ "coplanar", "fog plane" ], "width": 16 }, { "name": "ScenarioStructureBSPClusterPortalFlags", "type": "bitfield", "fields": [ "ai can simply not hear through all this amazing stuff darn it" ], "width": 32 }, { "name": "ScenarioStructureBSPCollisionMaterial", "fields": [ { "name": "shader", "type": "TagReference", "non_null": true, "groups": [ "shader" ] }, { "type": "pad", "size": 2 }, { "name": "material", "type": "MaterialType", "cache_only": true } ], "type": "struct", "title": "shader", "read_only": true, "size": 20, "needs_postprocessed": true }, { "name": "ScenarioStructureBSPNode", "fields": [ { "name": "node stuff", "type": "uint16", "count": 3, "little_endian": true } ], "type": "struct", "read_only": true, "size": 6 }, { "name": "ScenarioStructureBSPLeaf", "fields": [ { "name": "vertices", "type": "uint16", "count": 3, "little_endian": true }, { "type": "pad", "size": 2 }, { "name": "cluster", "type": "Index" }, { "name": "surface reference count", "type": "int16" }, { "name": "surface references", "type": "int32" } ], "type": "struct", "read_only": true, "size": 16 }, { "name": "ScenarioStructureBSPSurfaceReference", "fields": [ { "name": "surface", "type": "int32" }, { "name": "node", "type": "int32" } ], "type": "struct", "read_only": true, "size": 8 }, { "name": "ScenarioStructureBSPSurface", "fields": [ { "name": "vertex0 index", "type": "Index" }, { "name": "vertex1 index", "type": "Index" }, { "name": "vertex2 index", "type": "Index" } ], "type": "struct", "read_only": true, "size": 6 }, { "name": "ScenarioStructureBSPMaterialUncompressedRenderedVertex", "fields": [ { "name": "position", "type": "Point3D" }, { "name": "normal", "type": "Vector3D" }, { "name": "binormal", "type": "Vector3D" }, { "name": "tangent", "type": "Vector3D" }, { "name": "texture coords", "type": "Point2D" } ], "type": "struct", "size": 56 }, { "name": "ScenarioStructureBSPMaterialCompressedRenderedVertex", "fields": [ { "name": "position", "type": "Point3D" }, { "name": "normal", "type": "uint32" }, { "name": "binormal", "type": "uint32" }, { "name": "tangent", "type": "uint32" }, { "name": "texture coords", "type": "Point2D" } ], "type": "struct", "size": 32 }, { "name": "ScenarioStructureBSPMaterialUncompressedLightmapVertex", "fields": [ { "name": "normal", "type": "Vector3D" }, { "name": "texture coords", "type": "Point2D" } ], "type": "struct", "size": 20 }, { "name": "ScenarioStructureBSPMaterialCompressedLightmapVertex", "fields": [ { "name": "normal", "type": "uint32" }, { "name": "texture coordinate x", "type": "int16" }, { "name": "texture coordinate y", "type": "int16" } ], "type": "struct", "size": 8 }, { "name": "ScenarioStructureBSPMaterial", "fields": [ { "name": "shader", "type": "TagReference", "non_null": true, "read_only": false, "groups": [ "shader" ] }, { "name": "shader permutation", "read_only": false, "type": "Index" }, { "name": "flags", "type": "ScenarioStructureBSPMaterialFlags" }, { "name": "surfaces", "type": "int32" }, { "name": "surface count", "type": "int32" }, { "name": "centroid", "type": "Point3D", "read_only": false }, { "name": "ambient color", "type": "ColorRGB", "read_only": false }, { "name": "distant light count", "type": "int16" }, { "type": "pad", "size": 2 }, { "name": "distant light 0 color", "read_only": false, "type": "ColorRGB" }, { "name": "distant light 0 direction", "read_only": false, "type": "Vector3D" }, { "name": "distant light 1 color", "read_only": false, "type": "ColorRGB" }, { "name": "distant light 1 direction", "read_only": false, "type": "Vector3D" }, { "type": "pad", "size": 12 }, { "name": "reflection tint", "read_only": false, "type": "ColorARGB" }, { "name": "shadow vector", "read_only": false, "type": "Vector3D" }, { "name": "shadow color", "read_only": false, "type": "ColorRGB" }, { "name": "plane", "type": "Plane3D", "read_only": false }, { "name": "breakable surface", "type": "Index" }, { "type": "pad", "size": 2 }, { "name": "rendered vertices type", "type": "VertexType", "cache_only": true }, { "type": "pad", "size": 2 }, { "name": "rendered vertices count", "type": "uint32" }, { "name": "rendered vertices offset", "type": "uint32", "cache_only": true }, { "type": "pad", "size": 4, "comment": "on PC, this gets changed to a pointer to something when the BSP is loaded in-game" }, { "name": "rendered vertices index pointer", "type": "Pointer", "cache_only": true, "comment": "(Xbox only) an indirect pointer to the rendered vertices" }, { "name": "lightmap vertices type", "type": "VertexType", "cache_only": true }, { "type": "pad", "size": 2 }, { "name": "lightmap vertices count", "type": "uint32" }, { "name": "lightmap vertices offset", "type": "uint32", "cache_only": true }, { "type": "pad", "size": 4 }, { "name": "lightmap vertices index pointer", "type": "Pointer", "cache_only": true, "comment": "(Xbox only) an indirect pointer to the lightmap vertices" }, { "name": "uncompressed vertices", "type": "Data", "ignore_cached": true, "maximum": 4864000 }, { "name": "compressed vertices", "type": "Data", "ignore_cached": true, "maximum": 2560000 } ], "type": "struct", "normalize": true, "read_only": true, "size": 256, "needs_preprocessed": true, "needs_reprocessed_on_extraction": true }, { "name": "ScenarioStructureBSPLightmap", "fields": [ { "name": "bitmap", "type": "Index" }, { "type": "pad", "size": 2 }, { "type": "pad", "size": 16 }, { "name": "materials", "type": "Reflexive", "struct": "ScenarioStructureBSPMaterial", "maximum": 2048 } ], "type": "struct", "read_only": true, "size": 32 }, { "name": "ScenarioStructureBSPLensFlare", "fields": [ { "name": "lens", "type": "TagReference", "groups": [ "lens_flare" ] } ], "type": "struct", "read_only": true, "size": 16 }, { "name": "ScenarioStructureBSPLensFlareMarker", "fields": [ { "name": "position", "type": "Point3D" }, { "name": "direction i component", "type": "int8" }, { "name": "direction j component", "type": "int8" }, { "name": "direction k component", "type": "int8" }, { "name": "lens flare index", "type": "int8" } ], "type": "struct", "read_only": true, "size": 16 }, { "name": "ScenarioStructureBSPSubclusterSurfaceIndex", "fields": [ { "name": "index", "type": "int32" } ], "type": "struct", "read_only": true, "size": 4 }, { "name": "ScenarioStructureBSPSubcluster", "fields": [ { "name": "world bounds x", "bounds": true, "type": "float" }, { "name": "world bounds y", "bounds": true, "type": "float" }, { "name": "world bounds z", "bounds": true, "type": "float" }, { "name": "surface indices", "type": "Reflexive", "struct": "ScenarioStructureBSPSubclusterSurfaceIndex", "maximum": 128 } ], "type": "struct", "read_only": true, "size": 36 }, { "name": "ScenarioStructureBSPClusterSurfaceIndex", "fields": [ { "name": "index", "type": "int32" } ], "type": "struct", "read_only": true, "size": 4 }, { "name": "ScenarioStructureBSPMirrorVertex", "fields": [ { "name": "point", "type": "Point3D" } ], "type": "struct", "read_only": true, "size": 12 }, { "name": "ScenarioStructureBSPMirror", "fields": [ { "name": "plane", "type": "Plane3D" }, { "type": "pad", "size": 20 }, { "name": "shader", "type": "TagReference", "groups": [ "shader" ] }, { "name": "vertices", "type": "Reflexive", "struct": "ScenarioStructureBSPMirrorVertex", "maximum": 512 } ], "type": "struct", "read_only": true, "size": 64 }, { "name": "ScenarioStructureBSPClusterPortalIndex", "fields": [ { "name": "portal", "type": "Index" } ], "type": "struct", "read_only": true, "size": 2 }, { "name": "ScenarioStructureBSPCluster", "fields": [ { "name": "sky", "read_only": false, "type": "Index" }, { "name": "fog", "read_only": false, "type": "Index" }, { "name": "background sound", "read_only": false, "type": "Index" }, { "name": "sound environment", "read_only": false, "type": "Index" }, { "name": "weather", "read_only": false, "type": "Index" }, { "name": "transition structure bsp", "read_only": false, "type": "Index" }, { "name": "first decal index", "type": "Index", "cache_only": true }, { "name": "decal count", "type": "uint16", "cache_only": true }, { "type": "pad", "size": 24 }, { "name": "predicted resources", "type": "Reflexive", "struct": "PredictedResource", "cache_only": true, "maximum": 1024 }, { "name": "subclusters", "type": "Reflexive", "struct": "ScenarioStructureBSPSubcluster", "maximum": 4096 }, { "name": "first lens flare marker index", "type": "Index" }, { "name": "lens flare marker count", "type": "int16" }, { "name": "surface indices", "type": "Reflexive", "struct": "ScenarioStructureBSPClusterSurfaceIndex", "maximum": 32768 }, { "name": "mirrors", "type": "Reflexive", "struct": "ScenarioStructureBSPMirror", "maximum": 16 }, { "name": "portals", "type": "Reflexive", "struct": "ScenarioStructureBSPClusterPortalIndex", "maximum": 128 } ], "type": "struct", "read_only": true, "size": 104 }, { "name": "ScenarioStructureBSPClusterPortalVertex", "fields": [ { "name": "point", "type": "Point3D" } ], "type": "struct", "read_only": true, "size": 12 }, { "name": "ScenarioStructureBSPClusterPortal", "fields": [ { "name": "front cluster", "type": "Index" }, { "name": "back cluster", "type": "Index" }, { "name": "plane index", "type": "int32" }, { "name": "centroid", "type": "Point3D" }, { "name": "bounding radius", "type": "float" }, { "name": "flags", "type": "ScenarioStructureBSPClusterPortalFlags" }, { "type": "pad", "size": 24 }, { "name": "vertices", "type": "Reflexive", "struct": "ScenarioStructureBSPClusterPortalVertex", "maximum": 128 } ], "type": "struct", "read_only": true, "size": 64 }, { "name": "ScenarioStructureBSPBreakableSurface", "fields": [ { "name": "centroid", "type": "Point3D" }, { "name": "radius", "type": "float" }, { "name": "collision surface index", "type": "int32" }, { "type": "pad", "size": 28 } ], "type": "struct", "read_only": true, "size": 48 }, { "name": "ScenarioStructureBSPFogPlaneVertex", "fields": [ { "name": "point", "type": "Point3D" } ], "type": "struct", "read_only": true, "size": 12 }, { "name": "ScenarioStructureBSPFogPlane", "fields": [ { "name": "front region", "type": "Index" }, { "name": "material type", "type": "MaterialType", "cache_only": true }, { "name": "plane", "type": "Plane3D" }, { "name": "vertices", "type": "Reflexive", "struct": "ScenarioStructureBSPFogPlaneVertex", "maximum": 4096 } ], "type": "struct", "read_only": true, "size": 32 }, { "name": "ScenarioStructureBSPFogRegion", "fields": [ { "type": "pad", "size": 36 }, { "name": "fog", "read_only": false, "type": "Index", "reflexive": "fog palette", "struct": "ScenarioStructureBSP" }, { "name": "weather palette", "read_only": false, "type": "Index", "reflexive": "weather palette", "struct": "ScenarioStructureBSP" } ], "type": "struct", "read_only": true, "size": 40 }, { "name": "ScenarioStructureBSPFogPalette", "fields": [ { "name": "name", "type": "String32" }, { "name": "fog", "type": "TagReference", "groups": [ "fog" ] }, { "type": "pad", "size": 4 }, { "name": "fog scale function", "type": "String32" }, { "type": "pad", "size": 52 } ], "type": "struct", "title": "name", "size": 136 }, { "name": "ScenarioStructureBSPWeatherPalette", "fields": [ { "name": "name", "type": "String32" }, { "name": "particle system", "type": "TagReference", "groups": [ "weather_particle_system" ] }, { "type": "pad", "size": 4 }, { "name": "particle system scale function", "type": "String32" }, { "type": "pad", "size": 44 }, { "name": "wind", "type": "TagReference", "groups": [ "wind" ] }, { "name": "wind direction", "type": "Vector3D" }, { "name": "wind magnitude", "type": "float" }, { "type": "pad", "size": 4 }, { "name": "wind scale function", "type": "String32" }, { "type": "pad", "size": 44 } ], "type": "struct", "title": "name", "size": 240 }, { "name": "ScenarioStructureBSPWeatherPolyhedronPlane", "fields": [ { "name": "plane", "type": "Plane3D" } ], "type": "struct", "read_only": true, "size": 16 }, { "name": "ScenarioStructureBSPWeatherPolyhedron", "fields": [ { "name": "bounding sphere center", "type": "Point3D" }, { "name": "bounding sphere radius", "type": "float" }, { "type": "pad", "size": 4 }, { "name": "planes", "type": "Reflexive", "struct": "ScenarioStructureBSPWeatherPolyhedronPlane", "maximum": 16 } ], "type": "struct", "read_only": true, "size": 32 }, { "name": "ScenarioStructureBSPPathfindingSurface", "fields": [ { "name": "data", "type": "int8" } ], "type": "struct", "read_only": true, "size": 1 }, { "name": "ScenarioStructureBSPPathfindingEdge", "fields": [ { "name": "midpoint", "type": "int8" } ], "type": "struct", "read_only": true, "size": 1 }, { "name": "ScenarioStructureBSPBackgroundSoundPalette", "fields": [ { "name": "name", "type": "String32" }, { "name": "background sound", "type": "TagReference", "groups": [ "sound_looping" ] }, { "type": "pad", "size": 4 }, { "name": "scale function", "type": "String32" }, { "type": "pad", "size": 32 } ], "type": "struct", "size": 116 }, { "name": "ScenarioStructureBSPSoundEnvironmentPalette", "fields": [ { "name": "name", "type": "String32" }, { "name": "sound environment", "type": "TagReference", "groups": [ "sound_environment" ] }, { "type": "pad", "size": 32 } ], "type": "struct", "size": 80 }, { "name": "ScenarioStructureBSPMarker", "fields": [ { "name": "name", "type": "String32" }, { "name": "rotation", "type": "Quaternion" }, { "name": "position", "type": "Point3D" } ], "type": "struct", "size": 60 }, { "name": "ScenarioStructureBSPGlobalDetailObjectCell", "fields": [ { "name": "cell x", "type": "int16" }, { "name": "cell y", "type": "int16" }, { "name": "cell z", "type": "int16" }, { "name": "offset z", "type": "int16" }, { "name": "valid layers flags", "type": "int32" }, { "name": "start index", "type": "int32" }, { "name": "count index", "type": "int32" }, { "type": "pad", "size": 12 } ], "type": "struct", "read_only": true, "size": 32 }, { "name": "ScenarioStructureBSPGlobalDetailObject", "fields": [ { "name": "position x", "type": "int8" }, { "name": "position y", "type": "int8" }, { "name": "position z", "type": "int8" }, { "name": "data", "type": "int8" }, { "name": "color", "type": "int16" } ], "type": "struct", "read_only": true, "size": 6 }, { "name": "ScenarioStructureBSPGlobalDetailObjectCount", "fields": [ { "name": "count", "type": "int16" } ], "type": "struct", "read_only": true, "size": 2 }, { "name": "ScenarioStructureBSPGlobalZReferenceVector", "fields": [ { "name": "z reference i", "type": "float" }, { "name": "z reference j", "type": "float" }, { "name": "z reference k", "type": "float" }, { "name": "z reference l", "type": "float" } ], "type": "struct", "read_only": true, "size": 16 }, { "name": "ScenarioStructureBSPDetailObjectData", "fields": [ { "name": "cells", "type": "Reflexive", "struct": "ScenarioStructureBSPGlobalDetailObjectCell", "maximum": 262144 }, { "name": "instances", "type": "Reflexive", "struct": "ScenarioStructureBSPGlobalDetailObject", "maximum": 2097152 }, { "name": "counts", "type": "Reflexive", "struct": "ScenarioStructureBSPGlobalDetailObjectCount", "maximum": 8388608 }, { "name": "z reference vectors", "type": "Reflexive", "struct": "ScenarioStructureBSPGlobalZReferenceVector", "maximum": 262144 }, { "name": "bullshit", "type": "uint8", "cache_only": true }, { "type": "pad", "size": 3 }, { "type": "pad", "size": 12 } ], "type": "struct", "read_only": true, "size": 64, "needs_preprocessed": true }, { "name": "ScenarioStructureBSPRuntimeDecal", "fields": [ { "name": "position", "type": "Point3D" }, { "name": "decal type", "type": "Index" }, { "name": "yaw", "type": "int8" }, { "name": "pitch", "type": "int8" } ], "type": "struct", "read_only": true, "size": 16 }, { "name": "ScenarioStructureBSPMapLeafFaceVertex", "fields": [ { "name": "vertex", "type": "Point2D" } ], "type": "struct", "read_only": true, "size": 8 }, { "name": "ScenarioStructureBSPMapLeafFace", "fields": [ { "name": "node index", "type": "int32" }, { "name": "vertices", "type": "Reflexive", "struct": "ScenarioStructureBSPMapLeafFaceVertex", "maximum": 64 } ], "type": "struct", "read_only": true, "size": 16 }, { "name": "ScenarioStructureBSPMapLeafPortalIndex", "fields": [ { "name": "portal index", "type": "int32" } ], "type": "struct", "read_only": true, "size": 4 }, { "name": "ScenarioStructureBSPGlobalMapLeaf", "fields": [ { "name": "faces", "type": "Reflexive", "struct": "ScenarioStructureBSPMapLeafFace", "maximum": 256 }, { "name": "portal indices", "type": "Reflexive", "struct": "ScenarioStructureBSPMapLeafPortalIndex", "maximum": 256 } ], "type": "struct", "read_only": true, "size": 24 }, { "name": "ScenarioStructureBSPLeafPortalVertex", "fields": [ { "name": "point", "type": "Point3D" } ], "type": "struct", "read_only": true, "size": 12 }, { "name": "ScenarioStructureBSPGlobalLeafPortal", "fields": [ { "name": "plane index", "type": "int32" }, { "name": "back leaf index", "type": "int32" }, { "name": "front leaf index", "type": "int32" }, { "name": "vertices", "type": "Reflexive", "struct": "ScenarioStructureBSPLeafPortalVertex", "maximum": 64 } ], "type": "struct", "read_only": true, "size": 24 }, { "name": "ScenarioStructureBSP", "fields": [ { "name": "lightmaps bitmap", "read_only": false, "type": "TagReference", "groups": [ "bitmap" ] }, { "name": "vehicle floor", "read_only": false, "unit": "world units", "type": "float" }, { "name": "vehicle ceiling", "read_only": false, "unit": "world units", "type": "float" }, { "type": "pad", "size": 20 }, { "name": "default ambient color", "read_only": false, "type": "ColorRGB" }, { "type": "pad", "size": 4 }, { "name": "default distant light 0 color", "read_only": false, "type": "ColorRGB" }, { "name": "default distant light 0 direction", "read_only": false, "type": "Vector3D" }, { "name": "default distant light 1 color", "read_only": false, "type": "ColorRGB" }, { "name": "default distant light 1 direction", "read_only": false, "type": "Vector3D" }, { "type": "pad", "size": 12 }, { "name": "default reflection tint", "read_only": false, "type": "ColorARGB" }, { "name": "default shadow vector", "read_only": false, "type": "Vector3D" }, { "name": "default shadow color", "read_only": false, "type": "ColorRGB" }, { "type": "pad", "size": 4 }, { "name": "collision materials", "type": "Reflexive", "struct": "ScenarioStructureBSPCollisionMaterial", "maximum": 512 }, { "name": "collision bsp", "type": "Reflexive", "struct": "ModelCollisionGeometryBSP", "maximum": 1 }, { "name": "nodes", "type": "Reflexive", "struct": "ScenarioStructureBSPNode", "maximum": 131072 }, { "name": "world bounds x", "bounds": true, "type": "float" }, { "name": "world bounds y", "bounds": true, "type": "float" }, { "name": "world bounds z", "bounds": true, "type": "float" }, { "name": "leaves", "type": "Reflexive", "struct": "ScenarioStructureBSPLeaf", "maximum": 65536 }, { "name": "leaf surfaces", "type": "Reflexive", "struct": "ScenarioStructureBSPSurfaceReference", "maximum": 262144 }, { "name": "surfaces", "type": "Reflexive", "struct": "ScenarioStructureBSPSurface", "maximum": 131072 }, { "name": "lightmaps", "type": "Reflexive", "struct": "ScenarioStructureBSPLightmap", "maximum": 128 }, { "type": "pad", "size": 12 }, { "name": "lens flares", "type": "Reflexive", "struct": "ScenarioStructureBSPLensFlare", "maximum": 256 }, { "name": "lens flare markers", "type": "Reflexive", "struct": "ScenarioStructureBSPLensFlareMarker", "maximum": 65536 }, { "name": "clusters", "type": "Reflexive", "struct": "ScenarioStructureBSPCluster", "maximum": 8192 }, { "name": "cluster data", "type": "Data", "maximum": 65536 }, { "name": "cluster portals", "type": "Reflexive", "struct": "ScenarioStructureBSPClusterPortal", "maximum": 512 }, { "type": "pad", "size": 12 }, { "name": "breakable surfaces", "type": "Reflexive", "struct": "ScenarioStructureBSPBreakableSurface", "maximum": 256 }, { "name": "fog planes", "type": "Reflexive", "struct": "ScenarioStructureBSPFogPlane", "maximum": 32 }, { "name": "fog regions", "type": "Reflexive", "struct": "ScenarioStructureBSPFogRegion", "maximum": 32 }, { "name": "fog palette", "type": "Reflexive", "struct": "ScenarioStructureBSPFogPalette", "read_only": false, "maximum": 32 }, { "type": "pad", "size": 24 }, { "name": "weather palette", "type": "Reflexive", "struct": "ScenarioStructureBSPWeatherPalette", "read_only": false, "maximum": 32 }, { "name": "weather polyhedra", "type": "Reflexive", "struct": "ScenarioStructureBSPWeatherPolyhedron", "maximum": 32 }, { "type": "pad", "size": 24 }, { "name": "pathfinding surfaces", "type": "Reflexive", "struct": "ScenarioStructureBSPPathfindingSurface", "maximum": 131072 }, { "name": "pathfinding edges", "type": "Reflexive", "struct": "ScenarioStructureBSPPathfindingEdge", "maximum": 262144 }, { "name": "background sound palette", "type": "Reflexive", "struct": "ScenarioStructureBSPBackgroundSoundPalette", "read_only": false, "maximum": 64 }, { "name": "sound environment palette", "type": "Reflexive", "struct": "ScenarioStructureBSPSoundEnvironmentPalette", "read_only": false, "maximum": 64 }, { "name": "sound pas data", "type": "Data", "maximum": 131072 }, { "type": "pad", "size": 24 }, { "name": "markers", "type": "Reflexive", "struct": "ScenarioStructureBSPMarker", "read_only": false, "maximum": 1024 }, { "name": "detail objects", "type": "Reflexive", "struct": "ScenarioStructureBSPDetailObjectData", "maximum": 1 }, { "name": "runtime decals", "type": "Reflexive", "struct": "ScenarioStructureBSPRuntimeDecal", "cache_only": true, "maximum": 6144 }, { "type": "pad", "size": 8 }, { "type": "pad", "size": 4 }, { "name": "leaf map leaves", "type": "Reflexive", "struct": "ScenarioStructureBSPGlobalMapLeaf", "non_cached": true, "maximum": 65536 }, { "name": "leaf map portals", "type": "Reflexive", "struct": "ScenarioStructureBSPGlobalLeafPortal", "non_cached": true, "maximum": 524288 } ], "type": "struct", "read_only": true, "size": 648, "group": "scenario_structure_bsp", "needs_preprocessed": true, "needs_postprocessed": true }, { "name": "ScenarioStructureBSPCompiledHeader", "fields": [ { "name": "pointer", "type": "Pointer", "comment": "points to the BSP tag struct", "cache_only": true }, { "name": "lightmap material count", "type": "uint32", "comment": "(Xbox only): number of lightmap materials", "cache_only": true }, { "name": "rendered vertices", "type": "Pointer", "comment": "(Xbox only): pointer to array of rendered vertices", "cache_only": true }, { "name": "lightmap material count again", "type": "uint32", "comment": "(Xbox only): number of lightmap materials (again)", "cache_only": true }, { "name": "lightmap vertices", "type": "Pointer", "comment": "(Xbox only): pointer to array of lightmap vertices", "cache_only": true }, { "name": "signature", "type": "FourCC", "cache_only": true } ], "type": "struct", "size": 24 }, { "name": "ScenarioStructureBSPCompiledHeaderCEA", "fields": [ { "name": "pointer", "type": "Pointer", "comment": "points to the BSP tag struct", "cache_only": true }, { "name": "lightmap vertex size", "type": "uint32", "comment": "(CEA only): size of vertex data", "cache_only": true }, { "name": "lightmap vertices", "type": "uint32", "comment": "(CEA only): file offset to vertex data", "cache_only": true }, { "type": "pad", "size": 8 }, { "name": "signature", "type": "FourCC", "cache_only": true } ], "type": "struct", "size": 24 } ]