TitanFall BSPInspect

Posted on Nov 10, 2014

banner

Like I said months ago I would be looking into the BSP map format for titanfall. Well I’m calling the subtool BSPInspect. In the process of making some fancy UI for it currently and actually parsing the file format.

Like ata4 described on the Valve Developers Wiki the BSP fileformat for Titanfall differs as the core lumps usually used in source engine titles are now unused and depreciated. This is made evident in the bsppack dll provided in titanfall.

Heres a list of all the current lumps I have discovered in titanfall:

        public enum lumpType : int
        {
            LUMP_UNKNOWN            = -1,
            LUMP_ENTITIES           = 0,    //Deprecated
            LUMP_PLANES             = 1,
            LUMP_TEXDATA            = 2,
            LUMP_VERTEXES           = 3,
            LUMP_DEPRECATED_4       = 4,
            LUMP_DEPRECATED_5       = 5,
            LUMP_DEPRECATED_10      = 10,
            LUMP_MODELS             = 14,
            LUMP_DEPRECATED_16      = 16,
            LUMP_DEPRECATED_20      = 20,
            LUMP_DEPRECATED_21      = 21,
            LUMP_DEPRECATED_22      = 22,
            LUMP_DEPRECATED_23      = 23,
            LUMP_ENTITYPARTITIONS   = 24,
            LUMP_PHYSCOLLIDE        = 29,
            LUMP_VERTNORMALS        = 30,
            LUMP_GAME_LUMP          = 35,
            LUMP_LEAFWATERDATA      = 36,
            LUMP_PAKFILE            = 40,
            LUMP_DEPRECATED_41      = 41,
            LUMP_CUBEMAPS           = 42,
            LUMP_TEXDATA_STRING_DATA    = 43,
            LUMP_TEXDATA_STRING_TABLE   = 44,
            LUMP_DEPRECATED_46      = 45,
            LUMP_DEPRECATED_53      = 53,
            LUMP_WORLDLIGHTS_HDR    = 54,
            LUMP_DEPRECATED_59      = 59,
            LUMP_PHYSLEVEL          = 62,
            LUMP_TRICOLL_TRIS       = 66,
            LUMP_TRICOLL_NODES      = 68,
            LUMP_TRICOLL_HEADERS    = 69,
            LUMP_PHYSTRIS           = 70,
            LUMP_VERTS_UNLIT        = 71,
            LUMP_VERTS_LIT_FLAT     = 72,
            LUMP_VERTS_LIT_BUMP     = 73,
            LUMP_VERTS_UNLIT_TS     = 74,
            LUMP_VERTS_BLINN_PHONG  = 75,
            LUMP_VERTS_RESERVED_5   = 76,
            LUMP_VERTS_RESERVED_6   = 77,
            LUMP_VERTS_RESERVED_7   = 78,
            LUMP_MESH_INDICES       = 79,
            LUMP_MESHES             = 80,
            LUMP_MESH_BOUNDS        = 81,
            LUMP_MATERIAL_SORT      = 82,
            LUMP_LIGHTMAP_HEADERS   = 83,
            LUMP_LIGHTMAP_DATA_DXT5 = 84,
            LUMP_CM_GRID            = 85,
            LUMP_CM_GRIDCELLS       = 86,
            LUMP_CM_GEO_SETS        = 87,
            LUMP_CM_GEO_SET_BOUNDS  = 88,
            LUMP_CM_PRIMS           = 89,
            LUMP_CM_PRIM_BOUNDS     = 90,
            LUMP_CM_UNIQUE_CONTENTS = 91,
            LUMP_CM_BRUSHES         = 92,
            LUMP_CM_BRUSH_SIDE_PLANE_OFFSETS = 93,
            LUMP_CM_BRUSH_SIDE_PROPS         = 94,
            LUMP_CM_BRUSH_TEX_VECS           = 95,
            LUMP_TRICOLL_BEVEL_STARTS        = 96,
            LUMP_TRICOLL_BEVEL_INDEXES       = 97,
            LUMP_LIGHTMAP_DATA_SKY           =98,
            LUMP_CSM_AABB_NODES              =99,
            LUMP_CSM_OBJ_REFS                =100,
            LUMP_LIGHTPROBES                 =101,
            LUMP_STATIC_PROP_LIGHTPROBE_INDEX    =102,
            LUMP_LIGHTPROBETREE                  =103,
            LUMP_LIGHTPROBEREFS                  =104,
            LUMP_LIGHTMAP_DATA_REAL_TIME_LIGHTS  =105,
            LUMP_CELL_BSP_NODES                  =106,
            LUMP_CELLS                           =107,
            LUMP_PORTALS                         =108,
            LUMP_PORTAL_VERTS                    =109,
            LUMP_PORTAL_EDGES                    =110,
            LUMP_PORTAL_VERT_EDGES               =111,
            LUMP_PORTAL_VERT_REFS                =112,
            LUMP_PORTAL_EDGE_REFS                =113,
            LUMP_PORTAL_EDGE_ISECT_EDGE          =114,
            LUMP_PORTAL_EDGE_ISECT_AT_VERT       =115,
            LUMP_PORTAL_EDGE_ISECT_HEADER        =116,
            LUMP_OCCLUSIONMESH_VERTS             =117,
            LUMP_OCCLUSIONMESH_INDICES           =118,
            LUMP_CELL_AABB_NODES                 =119,
            LUMP_OBJ_REFS                        =120,
            LUMP_OBJ_REF_BOUNDS                  =121,
            LUMP_DEPRECATED_122                  =122,
            LUMP_LEVEL_INFO                      =123,
            LUMP_SHADOW_MESH_OPAQUE_VERTS        =124,
            LUMP_SHADOW_MESH_ALPHA_VERTS         =125,
            LUMP_SHADOW_MESH_INDICES             =126,
            LUMP_SHADOW_MESH_MESHES              =127
        }