Template:OBD File Image
Offset |
Type |
Raw Hex |
Value |
Description
|
0x00 |
file id |
01 49 02 00 |
585 |
00585-.AGQG
|
0x04 |
level id |
01 00 00 06 |
3 |
level 3
|
0x08 |
unused (20) |
AD DE |
dead |
not used
|
0x1C |
int32 |
15 A8 00 00 |
35349 |
35349 quads in array
|
First quad (outlined in black)
|
0x00 |
int32 |
00 00 00 00 |
0 |
PNTA element for 1st vertex
|
0x04 |
int32 |
01 00 00 00 |
1 |
PNTA element for 2nd vertex
|
0x08 |
int32 |
02 00 00 00 |
2 |
PNTA element for 3rd vertex
|
0x0C |
int32 |
03 00 00 00 |
3 |
PNTA element for 4th vertex
|
0x10 |
int32 |
F5 0F 00 00 |
4085 |
TXCA element for 1st vertex
|
0x14 |
int32 |
F3 0F 00 00 |
4083 |
TXCA element for 2nd vertex
|
0x18 |
int32 |
F4 0F 00 00 |
4084 |
TXCA element for 3rd vertex
|
0x1C |
int32 |
F6 0F 00 00 |
4086 |
TXCA element for 4th vertex
|
0x20 |
color |
00 00 00 00 |
0, 0, 0, 0 |
byte-swapped ARGB color for 1st vertex
|
0x24 |
color |
00 00 00 00 |
0, 0, 0, 0 |
byte-swapped ARGB color for 2nd vertex
|
0x28 |
color |
02 07 09 00 |
2, 7, 9, 0 |
byte-swapped ARGB color for 3rd vertex
|
0x2C |
color |
06 15 1E 00 |
6, 21, 30, 0 |
byte-swapped ARGB color for 4th vertex
|
0x30 |
bit32 |
00 00 08 02 |
0, 0, 8, 2 |
flags (see below)
|
0x34 |
int16 |
FF FF |
-1 |
object ID (obsolete?)
|
0x36 |
int16 |
FF FF |
-1 |
object type (obsolete?)
|
- Objects
- Those IDs and types also appear in ONOA. Types are:
- 0x00 03 - door
- 0x00 05 - furniture
- 0x00 13 - trigger
- 0x00 14 - turret
- 0x00 15 - console
- They seem obsolete (but may be useful for selective viewing/extracting of environment)
- Triangles
- Many quads are in fact triangles: the last two vertices have the same PNTA and TXCA entries, and the ARGB color is (255, 205, 205, 205) (80% gray, 100% opaque). There is also a flag specifying that (see below).
- Flags
- 0x01 00 00 00 - unknown
- 0x02 00 00 00 - ghost (pathfinding volume separator, see AKVA etc)
- 0x04 00 00 00 - stairs up
- 0x08 00 00 00 - stairs down
- 0x10 00 00 00 - stairs
- 0x20 00 00 00 - set at runtime for Jell'Oed quads, never used in files
- 0x40 00 00 00 - triangle (see above)
- 0x80 00 00 00 - transparency (if 0 then alpha is ignored, color is just RGB shading)
- 0x00 01 00 00 - unknown, never used in files
- 0x00 02 00 00 - two-sided
- 0x00 04 00 00 - unknown, never used in files
- 0x00 08 00 00 - no collision
- 0x00 10 00 00 - unknown, never used in files
- 0x00 20 00 00 - invisible
- 0x00 40 00 00 - no object collision
- 0x00 80 00 00 - no character collision
- 0x00 00 01 00 - no occlusion
- 0x00 00 02 00 - danger
- 0x00 00 04 00 - set at runtime for quads hidden with env_show, never used in files
- 0x00 00 08 00 - floor - up to 70 degrees slope
- 0x00 00 10 00 - wall - > 70 degrees slope
- 0x00 00 20 00 - unknown, never used in files
- 0x00 00 40 00 - ignore grid
- 0x00 00 80 00 - no decal
- 0x00 00 00 01 - furniture
- 0x00 00 00 02 - projection plan bit 0, see below
- 0x00 00 00 04 - projection plan bit 1, see below
- 0x00 00 00 08 - sound-transparent
- 0x00 00 00 10 - impassable
- 0x00 00 00 20 - unknown, never used in files
- 0x00 00 00 40 - unknown, never used in files
- 0x00 00 00 80 - unknown, never used in files
- Projection plane flags
These 2 flags can be 00, 01, 10 and 11. That means the values 0,1,2 and 3 which have the following meanings:
- 0 - No projection plane specified. One can be computed if needed. Never used in files, may slow down the game if used.
- 1 - Project quad on XY plane.
- 2 - Project quad on XZ plane.
- 3 - Project quad on YZ plane.
- The projection plane is used to determine if a point is in a quad (this point is usually the result of an intersection between a ray and the quad plane).