OBD:OBOA: Difference between revisions

From OniGalore
Jump to navigation Jump to search
No edit summary
mNo edit summary
Line 63: Line 63:


{{OBD_File_Footer | type=OBOA | prev=OBDC | next=OFGA | name=Starting Object Array | family=Level}}
{{OBD_File_Footer | type=OBOA | prev=OBDC | next=OFGA | name=Starting Object Array | family=Level}}
{{OBD}}

Revision as of 00:15, 18 July 2010

ONI BINARY DATA
OBDC << Other file types >> OFGA
OBOA : Starting Object Array
switch to XML:OBOA page
Overview @ Oni Stuff
OBD.png


Oboa a.gif


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 OBAN
0x08 link 00 00 00 00 unused link to ENVP
0x0C bitset32 00 12 00 00 0, 18, 0, 0 flags; the following bits are used:
0x00 02 00 00 - element used
0x00 04 00 00 - no collision detection
0x00 08 00 00 - no gravity
0x00 10 00 00 - object uses a bounding box for collision detection (overrides 0x0004)
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 "physics type"; the following values are possible:
0 - none
1 - none
2 - has physics (somehow different than 4)
3 - is animated (no physics)
4 - has physics
0x1C int32 FF FF 00 00 65535 script ID; used by obj_create script function; (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