| Offset | 
Type | 
Raw Hex | 
Value | 
Description
 | 
| 0x00 | 
res_id | 
01 4E 02 00 | 
590 | 
00590-.AKVA
 | 
| 0x04 | 
lev_id | 
01 00 00 06 | 
3 | 
level 3
 | 
| 0x08 | 
char[20] | 
AD DE | 
dead | 
unused
 | 
| 0x1C | 
int32 | 
1E 01 00 00 | 
10000 | 
array size
 | 
| First element (black outline)
 | 
| 0x00 | 
int32 | 
00 00 00 00 | 
0 | 
index into AKBP array; BSP tree for this BNV
 | 
| 0x04 | 
int32 | 
00 00 00 00 | 
0 | 
BNV's ID (same as index in array)
 | 
| 0x08 | 
int32 | 
00 00 00 00 | 
0 | 
index into AKBA array; "side" range start
 | 
| 0x0C | 
int32 | 
06 00 00 00 | 
6 | 
index into AKBA array; "side" range end
 | 
| 0x10 | 
int32 | 
FF FF FF FF | 
-1 | 
index in array of child BNV
 | 
| 0x14 | 
int32 | 
FF FF FF FF | 
-1 | 
index in array of sibling BNV
 | 
| 0x18 | 
int32 | 
FF FF FF FF | 
-1 | 
unknown (always -1 in level 3; other levels not checked)
 | 
| 0x1C | 
int32 | 
C9 00 00 00 | 
201 | 
size of the pathfinding grid along x in tiles
 | 
| 0x20 | 
int32 | 
16 00 00 00 | 
22 | 
size of the pathfinding grid along z in tiles
 | 
| 0x24 | 
offset | 
A0 3A 47 00 | 
00 47 3A A0 | 
at this position starts the pathfinding grid part in the raw file
 | 
| 0x28 | 
int32 | 
F7 01 00 00 | 
503 | 
size of the pathfinding grid part in the raw file in bytes
 | 
| 0x2C | 
float | 
00 00 80 40 | 
4.000000 | 
tile size of the pathfinding grid
 | 
| 0x30 | 
float | 
00 00 20 41 | 
10.000000 | 
AABB X- (AABB = Axis-aligned bounding box)
 | 
| 0x34 | 
float | 
00 00 58 C1 | 
-13.500000 | 
AABB X-
 | 
| 0x38 | 
float | 
00 80 2A C4 | 
−682.000000 | 
AABB Z-
 | 
| 0x3C | 
float | 
00 40 47 44 | 
797.000000 | 
AABB X+
 | 
| 0x40 | 
float | 
00 00 22 42 | 
40.500000 | 
AABB Y+
 | 
| 0x44 | 
float | 
00 00 19 C4 | 
-612.000000 | 
AABB Z+
 | 
| 0x48 | 
int32 | 
FE FF FE FF | 
-65538 | 
unknown; always the same in level 3 (other levels not checked); maybe these 4 bytes are two shorts ==> then FEFF = -2
 | 
| 0x4C | 
int32 | 
00 00 00 00 | 
0 | 
BNV's ID again
 | 
| 0x50 | 
int32 | 
00 00 00 00 | 
0 | 
unknown, always zero
 | 
| 0x54 | 
int32 | 
00 00 00 00 | 
0 | 
unknown, always zero
 | 
| 0x58 | 
int32 | 
00 00 00 00 | 
0 | 
unknown, always zero (was it a raw file offset once?)
 | 
| 0x5C | 
bitset32 | 
04 00 00 00 | 
4 | 
identifier for the next five floats; see explanation below this table
 | 
| 0x60 | 
float | 
00 00 00 00 | 
0.000000 | 
if "sloped", x-component of floor/ceiling normal
 | 
| 0x64 | 
float | 
00 00 00 00 | 
0.000000 | 
if "sloped", y-component of floor/ceiling normal
 | 
| 0x68 | 
float | 
00 00 00 00 | 
0.000000 | 
if "sloped", z-component of floor/ceiling normal
 | 
| 0x6C | 
float | 
00 00 00 00 | 
0.000000 | 
if "sloped", distance of floor plane to origin
 | 
| 0x70 | 
float | 
00 00 00 00 | 
0.000000 | 
if "sloped", distance of ceiling plane to origin
 |