|
|
|
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.