OBD:OBOA

From OniGalore
Jump to navigation Jump to search
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 - geometry displayed for this object
0x04 link 00 00 00 00 unused link to OBAN - animation played when the object is created, a different animation can be selected with env_setanim
0x08 link 00 00 00 00 unused link to ENVP - particles attached to this object, for example motorcycle headlight
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 - face collision; object uses a bounding box for collision detection (overrides 0x0004)
0x10 int32 46 89 00 00 35142 the index of the door frame GQ for door objects?
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 (same as 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 vector 00 00 4F 43 1F 05 F6 42 98 7F CC C3 207.0 123.010002 -408.996826 object position
0x2C quaternion F2 04 35 3F 74 BC 82 B9 74 BC 82 B9 F3 04 35 3F 0.707107 -0.000249 -0.000249 0.707107 object rotation
0x3C float 00 00 80 3F 1.0 object scale
0x40 matrix
FC FF 7F 3F 00 00 00 00 8A E3 38 BA
8A E3 38 BA 2E DE 4C 32 FC FF 7F BF
C9 F5 13 2D 00 00 80 3F 2B DE 4C 32
00 00 4F 43 1F 05 F6 42 98 7F CC C3
0.999999 0.0 -0.000705
-0.000705 0.0 -0.999999
0.0 1.0 0.0
207.0 123.010002 -408.996826
origin matrix
0x70 char[64] object_door_1 name of the object; informational only
0xB0 char[64] L3_Gunk.ENV file name from which this object was created; informational only

The primary use of this data is to display animated objects in the environment (cars, helis, fans etc.). "Physics" may also work but the implementation is buggy and incomplete, you may be able to add a object that can be pushed around but if you try to jump on it you fall.


Position, rotation and scale are used only when the object is not animated, otherwise the origin matrix is used instead.


Objects are not automatically created when a level is loaded, they need to be created from script using the obj_create command. After that they can be controlled with other commands like obj_show, obj_hide, obj_kill, env_anim and env_setanim. In some cases the object geometry has been baked into the environment and needs to be hidden (by using "env_show objectScriptID 0") before playing an animation.


ONI BINARY DATA
OBDC << Other file types >> OFGA
OBOA : Starting Object Array
Level file