OBD:OBOA
|
Offset | Type | Raw Hex | Value | Description |
---|---|---|---|---|
0x00 | res_id | 01 55 02 00 | 597 | 00597-.OBOA |
0x04 | lev_id | 01 00 00 06 | 3 | level 3 |
0x08 | char[22] | AD DE | dead | unused |
0x1E | int16 | 62 00 | 98 | arrray size |
First element (black outline) | ||||
0x00 | int32 | 01 56 02 00 | 1 | link to 00598-.M3GA |
0x04 | link | 00 00 00 00 | unused | link to an OBAN file |
0x08 | link | 00 00 00 00 | unused | link to an ENVP file |
0x0C | bitset32 | 00 12 00 00 | 0, 18, 0, 0 | flags; the following bits are used:
|
0x10 | int32 | 46 89 00 00 | 35142 | unknown |
0x14 | int32 | 01 00 00 00 | 1 | door ID; only used for doors; in the case of double doors both doors have the same id but one of the door identifiers has bit 12 set |
0x18 | int32 | 00 00 00 00 | 0 | unknown; the following values are used:
|
0x1C | int32 | FF FF 00 00 | 65535 | object ID (65535 = not used) |
0x20 | float | 00 00 4F 43 | 207.000000 | initial x-position |
0x24 | float | 1F 05 F6 42 | 123.010002 | initial y-position (height) |
0x28 | float | 98 7F CC C3 | -408.996826 | initial z-position |
0x2C | float | F2 04 35 3F | 0.707107 | x component of the initial rotation quaternion |
0x30 | float | 74 BC 82 B9 | -0.000249 | y component of the initial rotation quaternion |
0x34 | float | 74 BC 82 B9 | -0.000249 | z component of the initial rotation quaternion |
0x38 | float | F3 04 35 3F | 0.707107 | w component of the initial rotation quaternion |
0x3C | float | 00 00 80 3F | 1.000000 | initial scale of the object |
0x40 | float | FC FF 7F 3F | 0.999999 | m11 element of the initial position transform matrix |
0x44 | float | 00 00 00 00 | 0.000000 | m21 element of the initial position transform matrix |
0x48 | float | 8A E3 38 BA | -0.000705 | m31 element of the initial position transform matrix |
0x4C | float | 8A E3 38 BA | -0.000705 | m12 element of the initial position transform matrix |
0x50 | float | 2E DE 4C 32 | 0.000000... | m22 element of the initial position transform matrix |
0x54 | float | FC FF 7F BF | -0.999999 | m32 element of the initial position transform matrix |
0x58 | float | C9 F5 13 2D | 0.000000... | m13 element of the initial position transform matrix |
0x5C | float | 00 00 80 3F | 1.000000 | m23 element of the initial position transform matrix |
0x60 | float | 2B DE 4C 32 | 0.000000... | m33 element of the initial position transform matrix |
0x64 | float | 00 00 4F 43 | 207.000000 | m14 element of the initial position transform matrix (x-position) |
0x68 | float | 1F 05 F6 42 | 123.010002 | m24 element of the initial position transform matrix (y-position, height) |
0x6C | float | 98 7F CC C3 | -408.996826 | m34 element of the initial position transform matrix (z-position) |
0x70 | char[64] | object_door_1 | name of the object | |
0xB0 | char[64] | L3_Gunk.ENV | internal object file name; maybe an old development relict |
Elements m41, m42, m43, m44 of both transform matrices are missing. m41, m42 and m43 are the projection transform coefficients and they are not needed so they are 0.0 and the m44 element is always 1.0 for a transform matrix. (column major transform matrices like in Open GL, for Direct 3D they need to be transposed)
The initial position transform is used the place the object in the environment. For object that have an animation attached to them this is also the starting position of the animation sequence. The initial x,y and z position value together with the initial rotation quaternion and the initial scale factor contain basically the same information as the initial transform matrix and combining them in a transform matrix should result in the initial transform matrix (less the differences due to floating point computation errors)
ONI BINARY DATA |
---|
OBDC << Other file types >> OFGA |
OBOA : Starting Object Array |
Level file |