respawn.titanfall.Brush
's final unknown member
#81
Replies: 4 comments 7 replies
-
Beta Was this translation helpful? Give feedback.
-
>>> [(i, b.unknown_non_axial, b.num_plane_offsets) for i, b in enumerate(bsp.CM_BRUSHES) if b.unknown_non_axial != 0]
[(19, 2, 4), (20, 2, 4), (22, 2, 4), (23, 2, 4), (24, 2, 4), (26, 2, 4), (28, 2, 4), (29, 2, 4),
(34, 1, 1), (46, 1, 1), (57, 1, 1), (58, 1, 1)] 19 to 29 are VDU walls; 34 to 58 are ramps in the playable area of |
Beta Was this translation helpful? Give feedback.
-
>>> b34 = bsp.get_brush_sides(34)
>>> {print(axes[pl[0]], pr) for pl, pr in [*zip(b34["planes"], b34["properties"])][:6]}
X+ BrushSideProperty.4|2|1
X- BrushSideProperty.4|2|1
Y+ BrushSideProperty.4|2|1
Y- BrushSideProperty.4|2|1
Z+ BrushSideProperty.4|2|1
Z- BrushSideProperty.DISCARD|4|2|1
{None}
>>> {print(pl, pr) for pl, pr in [*zip(b34["planes"], b34["properties"])][6:]}
(vec3(-0.0, 0.5462678074836731, -0.8376106023788452), 636.2927856445312) BrushSideProperty.4|2|1
{None} (I should really mask out the
|
Beta Was this translation helpful? Give feedback.
-
Looking for more diverse brushes, r2_rise has a relatively low brushside count (~137K) >>> r2_rise = bsp_tool.load_bsp("E:/Mod/Titanfall2/maps/mp_rise.bsp")
>>> {print(f"{L:<32} {getattr(r2_rise, L)!r}") for L, h in r2_rise.headers.items() if h.length != 0 and "BRUSH" in L}
CM_BRUSHES <BspLump(7017 Brush) at 0x0000029C006C9A00>
CM_BRUSH_SIDE_PLANE_OFFSETS <BasicBspLump(95166 UnsignedShorts) at 0x0000029C006C9A90>
CM_BRUSH_SIDE_PROPERTIES <BasicBspLump(137268 BrushSideProperty) at 0x0000029C006C9AF0>
CM_BRUSH_SIDE_TEXTURE_VECTORS <BspLump(137268 TextureVector) at 0x0000029C006C9B50>
{None}
>>> bis = [(i, b.unknown_non_axial, b.num_plane_offsets) for i, b in enumerate(r2_rise.CM_BRUSHES)
if b.unknown_non_axial != 0]
>>> import collections
>>> dd = collections.defaultdict(set)
>>> for bi, una, npo in bis:
... dd[(una, npo)].add(bi)
...
>>> len(dd)
165 # non_axial values to compare Listing all 165 >>> dd2 = collections.defaultdict(set)
>>> for a, b in dd.keys():
... dd2[a].add(b)
...
>>> {print(a, sorted(dd2[a])) for a in sorted(dd2)}
# unknown_non_axial | [num_plane_offsets]
1 [3, 4, 5, 6, 7, 8, 9, 10, 11, 13]
2 [4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 23, 28]
3 [6, 7, 8, 10, 13, 14, 19, 21, 23, 24, 25, 27, 28, 31]
4 [4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33]
5 [8, 9, 10, 11, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 27, 28, 29, 31, 32, 33, 34, 35,
36, 37, 38, 39, 41, 42, 43]
6 [12, 14, 16, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39,
40, 41, 42, 43, 44, 46]
7 [35, 37, 39, 40]
8 [16, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 29, 30, 32, 33, 34, 36, 37, 38, 39, 40, 41, 43]
10 [21, 25, 30, 41, 42, 44] |
Beta Was this translation helpful? Give feedback.
-
Beta Was this translation helpful? Give feedback.
All reactions