OBD:BINA/OBJC/DOOR: Difference between revisions

From OniGalore
< OBD:BINA‎ | OBJC
Jump to navigation Jump to search
No edit summary
m (added family to footer template call)
 
(10 intermediate revisions by 4 users not shown)
Line 1: Line 1:
{{OBD OBJC Header | align=center | type=DOOR | prev=CONS | next=FLAG | name=Door}}
:''This is about door instances. For the door class resource, see [[OBD:DOOR]]
{{OBD OBJC Header | align=center | type=DOOR | prev=CONS | next=FLAG | name=Door|onistuff=b_do}}




[[image:bin_r_do.gif]]
[[Image:bin_r_do.gif]]




{{Table}}
{{Table}}
{{OBDth}}
{{OBDth}}
{{OBDtr| 0x00 | char[4]  |FF0000| 43 4A 42 4F | OBJC      | object collection }}
{{OBDtr| 0x00 | char[4]  |FF0000| 43 4A 42 4F | OBJC      | objects }}
{{OBDtr| 0x04 | int32    |FFFF00| 15 19 00 00 | 14344    | size of the complete door part from this postion in bytes }}
{{OBDtr| 0x04 | int32    |FFFF00| 15 19 00 00 | 14344    | size of the complete door part from this position in bytes }}
{{OBDtr| 0x08 | int32    |00FF00| 27 00 00 00 | 39        | object collection version }}
{{OBDtr| 0x08 | int32    |00FF00| 27 00 00 00 | 39        | object list version }}
{{OBDtr| 0x0C | int32    |00FFFF| FC 00 00 00 | 252      | size of the following element in bytes }}
{{OBDtr| 0x0C | int32    |00FFFF| FC 00 00 00 | 252      | size of the following element in bytes }}
{{OBDtrBK}}
{{OBDtrBK}}
{{OBDtr| 0x00 | char[4]  |FFC8C8| 52 4F 4F 44 | DOOR      | door }}
{{OBDtr| 0x00 | char[4]  |FFC8C8| 52 4F 4F 44 | DOOR      | door }}
{{OBDtr| 0x04 | int32    |FFFFC8| 57 12 00 00 | 6421      | old file ID }}
{{OBDtr| 0x04 | int32    |FFFFC8| 57 12 00 00 | 6421      | object ID }}
{{OBDtr| 0x08 | int32    |C8FFC8| 08 00 00 00 | 8        | unknown }}
{{OBDtr| 0x08 | int32    |C8FFC8| 08 00 00 00 | 8        | object flags }}
{{OBDtr| 0x0C | float    |C8FFFF| 00 00 4F 43 | 207.000000| x-position of the bottom of the door }}
{{OBDtr| 0x0C | float    |C8FFFF| 00 00 4F 43 | 207.000000| x-position of the bottom of the door }}
{{OBDtr| 0x10 | float    |C8FFFF| 00 00 D8 42 | 108.000000| y-position (height) of the bottom of the door }}
{{OBDtr| 0x10 | float    |C8FFFF| 00 00 D8 42 | 108.000000| y-position (height) of the bottom of the door }}
Line 23: Line 24:
{{OBDtr2|0x24 | char[63] |FFC800| TCdouble                | door type name (reference to 00957-TCdouble.[[OBD:DOOR|DOOR]] of level 0) }}
{{OBDtr2|0x24 | char[63] |FFC800| TCdouble                | door type name (reference to 00957-TCdouble.[[OBD:DOOR|DOOR]] of level 0) }}
{{OBDtr| 0x63 | int16    |C800C8| 01 00      | 1        | door ID }}
{{OBDtr| 0x63 | int16    |C800C8| 01 00      | 1        | door ID }}
{{OBDtr| 0x65 | int16    |C87C64| 00 00      | 0        | unknown }}
{{OBDtr| 0x65 | int16    |C87C64| 00 00      | 0        | key ID }}
{{OBDtr| 0x67 | bitset16 |B0C3D4| 15 00      | 21, 0    | door options; the following bits are possible:
{{OBDtr| 0x67 | bitset16 |B0C3D4| 15 00      | 21, 0    | door options; the following bits are possible:


 
:0x'''01''' 00 - "initially locked" (at level load or after calling [[reset_mechanics]])
:0x'''01'''00 - door locked
:0x'''02''' 00 - unknown; never used
:0x'''02'''00 - unknown
:0x'''04''' 00 - unknown; probably "locked" (whatever that means)?
:0x'''04'''00 - unknown
:0x'''08''' 00 - unknown; never used
:0x'''08'''00 - unknown
:0x'''10''' 00 - require player to press '''action''' to open door
:0x'''10'''00 - require player to press '''action''' to open door
:0x'''20''' 00 - unknown; never used
:0x'''20'''00 - unknown
:0x'''40''' 00 - unknown; never used
:0x'''40'''00 - unknown
:0x'''80''' 00 - double door
:0x'''80'''00 - double door
:0x00 '''01''' - "mirror door" (mirrored along door's Z axis)
:0x00'''01''' - unknown
:0x00 '''02''' - one way door (one side locked, other side unlocked)
:0x00'''02''' - one way door (one side locked, other side unlocked)
:0x00 '''04''' - reverse of the one way door (now the other side is locked)
:0x00'''04''' - reverse of the one way door (now the other side is locked)
:0x00 '''08''' - unknown; never used
:0x00'''08''' - unknown
:0x00 '''10''' - unknown; never used
:0x00'''10''' - unknown
:0x00 '''20''' - unknown; never used
:0x00'''20''' - unknown
:0x00 '''40''' - unknown; never used
:0x00'''40''' - unknown
:0x00 '''80''' - unknown; never used
:0x00'''80''' - unknown
 


}}
}}
Line 52: Line 51:
{{OBDtr2|0x79 | char[63] |EBEBEB| _DOOR_RL_FLOOR3          | first door texture (reference to 00216-_DOOR_RL_FLOOR3.[[OBD:TXMP|TXMP]]) }}
{{OBDtr2|0x79 | char[63] |EBEBEB| _DOOR_RL_FLOOR3          | first door texture (reference to 00216-_DOOR_RL_FLOOR3.[[OBD:TXMP|TXMP]]) }}
{{OBDtr2|0xA8 | char[63] |8C8CCC| unused                  | second door texture (reference to a [[OBD:TXMP|TXMP]] file) }}
{{OBDtr2|0xA8 | char[63] |8C8CCC| unused                  | second door texture (reference to a [[OBD:TXMP|TXMP]] file) }}
{{OBDtr |0xE7 | int16    |8C8CCC| 00 00      | 0          | number of door events }}
{{OBDtr |0xE7 | int16    |8C8CCC| 00 00      | 0          | number of events (executed when the door is opened) }}
{{OBDtr |0xE9 |          |8C8CCC|            |            | padding }}
{{OBDtr |0xE9 |          |8C8CCC|            |            | padding }}
|}
|}
;Instances NOT using bit 0x04 of bitset 0x67 ("locked"?)
:(level:door)
:2:26; 3:62; 6:1,41,42,43,45,46,47,48,49; 8:73; 18:97; 19:43,44
:It's not clear what the effect of a "locked" bit would be; "initially locked" is what matters at level load and when calling [[reset_mechanics]]. Maybe "locked" was part of a runtime dump, but is ignored by the engine?
;Instances using bit 0x100 of bitset 0x67 ("mirror door")
:(level:door)
:1:4,6,7,9,15,16,24,25,26,27,32,33,36,37,61,68,79,92,108;
:3:50; 6:29,31,33,46,47; 8:14; 10:11,14,18,20; 18:14,42,70
:The mirroring is complementary to the transformation in the [[ONLV]]'s [[OBOA]].


;Tool Mode dialog


;Bluebox screenshot
[[Image:Tool dialog - Door Properties.png]]


http://ssg.oni2.net/subfold/bluebox/images/221_door_properties.jpg


{{OBD OBJC Footer | type=DOOR | prev=CONS | next=FLAG | name=Door | family=Level}}


{{OBD OBJC Footer | type=DOOR | prev=CONS | next=FLAG | name=Door}}
{{OBD}}

Latest revision as of 21:18, 9 December 2023

This is about door instances. For the door class resource, see OBD:DOOR
ONI BINARY DATA
AKVA << Other file types >> CBPI
BINA : Binary data
TMBD << Other BINA >> ONIE
OBJC : Objects
CONS << Other OBJC >> FLAG
DOOR : Door
XML tutorial
Overview @ Oni Stuff
OBD.png


Bin r do.gif


Offset Type Raw Hex Value Description
0x00 char[4] 43 4A 42 4F OBJC objects
0x04 int32 15 19 00 00 14344 size of the complete door part from this position in bytes
0x08 int32 27 00 00 00 39 object list version
0x0C int32 FC 00 00 00 252 size of the following element in bytes
First element (black outline)
0x00 char[4] 52 4F 4F 44 DOOR door
0x04 int32 57 12 00 00 6421 object ID
0x08 int32 08 00 00 00 8 object flags
0x0C float 00 00 4F 43 207.000000 x-position of the bottom of the door
0x10 float 00 00 D8 42 108.000000 y-position (height) of the bottom of the door
0x14 float 98 7F CC C3 -408.996826 z-position of the bottom of the door
0x18 float 00 00 00 00 0.000000 rotation on the x-axis in degrees
0x1C float 67 85 25 3D 0.040410 rotation on the y-axis in degrees
0x20 float 00 00 00 00 0.000000 rotation on the z-axis in degrees
0x24 char[63] TCdouble door type name (reference to 00957-TCdouble.DOOR of level 0)
0x63 int16 01 00 1 door ID
0x65 int16 00 00 0 key ID
0x67 bitset16 15 00 21, 0 door options; the following bits are possible:
0x01 00 - "initially locked" (at level load or after calling reset_mechanics)
0x02 00 - unknown; never used
0x04 00 - unknown; probably "locked" (whatever that means)?
0x08 00 - unknown; never used
0x10 00 - require player to press action to open door
0x20 00 - unknown; never used
0x40 00 - unknown; never used
0x80 00 - double door
0x00 01 - "mirror door" (mirrored along door's Z axis)
0x00 02 - one way door (one side locked, other side unlocked)
0x00 04 - reverse of the one way door (now the other side is locked)
0x00 08 - unknown; never used
0x00 10 - unknown; never used
0x00 20 - unknown; never used
0x00 40 - unknown; never used
0x00 80 - unknown; never used


0x69 float 00 00 4F 43 207.000000 x-position of the center of the door
0x6D float 00 00 F6 42 123.000000 y-position (height) of the center of the door
0x71 float 98 7F CC C3 -408.996826 z-position of the center of the door
0x75 float 00 00 61 44 900.000000 activation radius (squared)
0x79 char[63] _DOOR_RL_FLOOR3 first door texture (reference to 00216-_DOOR_RL_FLOOR3.TXMP)
0xA8 char[63] unused second door texture (reference to a TXMP file)
0xE7 int16 00 00 0 number of events (executed when the door is opened)
0xE9 padding
Instances NOT using bit 0x04 of bitset 0x67 ("locked"?)
(level:door)
2:26; 3:62; 6:1,41,42,43,45,46,47,48,49; 8:73; 18:97; 19:43,44
It's not clear what the effect of a "locked" bit would be; "initially locked" is what matters at level load and when calling reset_mechanics. Maybe "locked" was part of a runtime dump, but is ignored by the engine?
Instances using bit 0x100 of bitset 0x67 ("mirror door")
(level:door)
1:4,6,7,9,15,16,24,25,26,27,32,33,36,37,61,68,79,92,108;
3:50; 6:29,31,33,46,47; 8:14; 10:11,14,18,20; 18:14,42,70
The mirroring is complementary to the transformation in the ONLV's OBOA.
Tool Mode dialog

Tool dialog - Door Properties.png


ONI BINARY DATA
AKVA << Other file types >> CBPI
BINA : Binary data
TMBD << Other BINA >> ONIE
OBJC : Objects
CONS << Other OBJC >> FLAG
DOOR : Door
Level file