[ { "name": "LensFlareRadiusScaledBy", "options": [ "none", "rotation", "rotation and strafing", "distance from center" ], "type": "enum" }, { "name": "LensFlareOcclusionOffsetDirection", "options": [ "toward viewer", "marker forward", "none" ], "type": "enum" }, { "name": "LensFlareRotationFunction", "options": [ "none", "rotation a", "rotation b", "rotation translation", "translation" ], "type": "enum" }, { "name": "LensFlareReflectionFlags", "type": "bitfield", "fields": [ "align rotation with screen center", "radius not scaled by distance", "radius scaled by occlusion factor", "occluded by solid objects" ], "width": 16 }, { "name": "LensFlareReflectionMoreFlags", "type": "bitfield", "fields": [ "interpolate colors in hsv", "more colors" ], "width": 16 }, { "name": "LensFlareFlags", "type": "bitfield", "fields": [ "sun", "no occlusion test", "only render in first person", "only render in third person", "fade in more quickly", "fade out more quickly", "scale by marker" ], "width": 16 }, { "name": "LensFlareReflection", "fields": [ { "name": "flags", "type": "LensFlareReflectionFlags" }, { "type": "pad", "size": 2 }, { "name": "bitmap index", "type": "Index" }, { "type": "pad", "size": 2 }, { "type": "pad", "size": 20 }, { "name": "position", "unit": "along flare axis", "type": "float" }, { "name": "rotation offset", "type": "float" }, { "type": "pad", "size": 4 }, { "name": "radius", "unit": "world units", "bounds": true, "type": "float" }, { "name": "radius scaled by", "type": "LensFlareRadiusScaledBy" }, { "type": "pad", "size": 2 }, { "name": "brightness", "minimum": 0.0, "maximum": 1.0, "bounds": true, "type": "Fraction" }, { "name": "brightness scaled by", "type": "LensFlareRadiusScaledBy" }, { "type": "pad", "size": 2 }, { "name": "tint color", "type": "ColorARGB" }, { "name": "color lower bound", "type": "ColorARGB" }, { "name": "color upper bound", "type": "ColorARGB" }, { "name": "more flags", "type": "LensFlareReflectionMoreFlags" }, { "name": "animation function", "type": "WaveFunction" }, { "name": "animation period", "type": "float", "unit": "seconds", "default": 1.0 }, { "name": "animation phase", "type": "float", "unit": "seconds" }, { "type": "pad", "size": 4 } ], "type": "struct", "size": 128 }, { "name": "LensFlare", "fields": [ { "name": "falloff angle", "type": "Angle" }, { "name": "cutoff angle", "type": "Angle" }, { "name": "cos falloff angle", "type": "float", "cache_only": true }, { "name": "cos cutoff angle", "type": "float", "cache_only": true }, { "name": "occlusion radius", "unit": "world units", "type": "float" }, { "name": "occlusion offset direction", "type": "LensFlareOcclusionOffsetDirection" }, { "type": "pad", "size": 2 }, { "name": "near fade distance", "unit": "world units", "type": "float" }, { "name": "far fade distance", "unit": "world units", "type": "float" }, { "name": "bitmap", "type": "TagReference", "groups": [ "bitmap" ] }, { "name": "flags", "type": "LensFlareFlags" }, { "type": "pad", "size": 2 }, { "type": "pad", "size": 76 }, { "name": "rotation function", "type": "LensFlareRotationFunction" }, { "type": "pad", "size": 2 }, { "name": "rotation function scale", "type": "Angle", "comment": "Prior to CEA's newer MCC Halo CE: Mod Tools, this was defaulted to 360 radians (as a bug), thus all Bungie, Gearbox, and early CEA releases had this scaled to 360 radians. As of MCC CEA, it's defaulted to 2*pi instead", "default": 6.283185307179586 }, { "type": "pad", "size": 24 }, { "name": "horizontal scale", "type": "float", "default": 1.0 }, { "name": "vertical scale", "type": "float", "default": 1.0 }, { "type": "pad", "size": 28 }, { "name": "reflections", "type": "Reflexive", "struct": "LensFlareReflection", "maximum": 32 }, { "type": "pad", "size": 32 } ], "type": "struct", "size": 240, "group": "lens_flare", "needs_preprocessed": true } ]