Jump to content

OBD:BINA/OBJC/DOOR: Difference between revisions

m
corrected link due to section being moved to another page
m (fixed typo)
m (corrected link due to section being moved to another page)
 
(21 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| 08 38 00 00 | 14344    | size of the complete door part from this position in bytes }}
{{OBDtr| 0x08 | int32    |00FF00| 27 00 00 00 | 39        | unknown; do not change it }}
{{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}}
{{OBDtrgroup}}
{{OBDtrsubgroup}}
{{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| 15 19 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; only used at runtime in Tool mode }}
{{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 }}
{{OBDtr| 0x14 | float    |C8FFFF| 98 7F CC C3 |-408.996826| z-position of the bottom of the door }}
{{OBDtr| 0x14 | float    |C8FFFF| 98 7F CC C3 |-408.996826| z position of the bottom of the door }}
{{OBDtr| 0x18 | float    |FFC8FF| 00 00 00 00 | 0.000000  | rotation on the x-axis in degrees }}
{{OBDtr| 0x18 | float    |FFC8FF| 00 00 00 00 | 0.000000  | rotation on the x axis in degrees }}
{{OBDtr| 0x1C | float    |FFC8FF| 67 85 25 3D | 0.040410  | rotation on the y-axis in degrees }}
{{OBDtr| 0x1C | float    |FFC8FF| 67 85 25 3D | 0.040410  | rotation on the y axis in degrees }}
{{OBDtr| 0x20 | float    |FFC8FF| 00 00 00 00 | 0.000000  | rotation on the z-axis in degrees }}
{{OBDtr| 0x20 | float    |FFC8FF| 00 00 00 00 | 0.000000  | rotation on the z axis in degrees }}
{{OBDtr2|0x24 | char[63] |FFC800| TCdouble                | door type name (reference to 00957-TCdouble.[[OBD:DOOR|DOOR]] of level 0) }}
{{OBDtrsubgroup|end}}
{{OBDtr2|0x24 | char[63] |FFC800| TCdouble                | door class 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, but note that the "runtime" flags are not stored in data but only used by the engine at runtime to track door states:<br>
 
:0x'''01''' 00 - initially locked (at level load or after calling [[reset_mechanics]])
 
:0x'''02''' 00 - runtime: currently locked
:0x'''01'''00 - door locked
:0x'''04''' 00 - "in door frame"; door has a frame attachment (this is the norm, see below for exceptions; the frame geometry is defined in [[AKDA]] and will be looked up from DOOR's position above, which is identical to the related AKDA quads)
:0x'''02'''00 - unknown
:0x'''10''' 00 - "manual"; require player to press action key to open door
:0x'''04'''00 - unknown
:0x'''20''' 00 - runtime: door is in process of opening/closing
:0x'''08'''00 - unknown
:0x'''40''' 00 - runtime: "test mode" (apparently was a test of new door code, but is now always on)
:0x'''10'''00 - require player to press '''action''' to open door
:0x'''80''' 00 - double door
:0x'''20'''00 - unknown
:0x00 '''01''' - mirrored door (one of the double doors is flipped along Y axis relative to the other)
:0x'''40'''00 - unknown
:0x00 '''02''' - one way door (one side is locked, other side unlocked)
:0x'''80'''00 - double door
:0x00 '''04''' - one way door, reverse (now the other side is locked)
:0x00'''01''' - unknown
:0x00 '''08''' - runtime: jammed (controlled by script via [[door_jam]] and [[door_unjam]])
:0x00'''02''' - one way door (one side locked, other side unlocked)
:0x00 '''10''' - "initially open" (unimplemented feature)
:0x00'''04''' - reverse of the one way door (now the other side is locked)
:0x00 '''20''' - runtime: "give up on collision" (unimplemented)
:0x00'''08''' - unknown
:0x00'''10''' - unknown
:0x00'''20''' - unknown
:0x00'''40''' - unknown
:0x00'''80''' - unknown
 
 
}}
}}
{{OBDtr |0x69 | float    |FFDDDD| 00 00 4F 43 | 207.000000 | x-position of the center of the door }}
{{OBDtr |0x69 | float    |FFDDDD| 00 00 4F 43 | 207.000000 | x-position of the center of the door }}
{{OBDtr |0x6D | float    |FFDDDD| 00 00 F6 42 | 123.000000 | y-position (height) of the center of the door }}
{{OBDtr |0x6D | float    |FFDDDD| 00 00 F6 42 | 123.000000 | y-position (height) of the center of the door }}
{{OBDtr |0x71 | float    |FFDDDD| 98 7F CC C3 | -408.996826| z-position of the center of the door }}
{{OBDtr |0x71 | float    |FFDDDD| 98 7F CC C3 | -408.996826| z-position of the center of the door }}
{{OBDtr |0x75 | float    |64AAAA| 00 00 61 44 | 900.000000 | activation radius }}
{{OBDtr |0x75 | float    |64AAAA| 00 00 61 44 | 900.000000 | activation radius (squared) }}
{{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[68] |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 event blocks following; see below }}
{{OBDtr |0xE9 | uint32  |8C8CCC| 00 00 00    |            | alignment padding }}
|}
|}


==Events==
An event can be executed when a door is locked or unlocked. No events are attached to this sample DOOR, so see [[OBD:BINA/OBJC/CONS#Events|BINA/OBJC/CONS]] for examples and documentation of the event feature.
==Some interesting doors==
Doors below are given as "level #:door ID".
;Instances NOT using the "frame attachment" flag
:2:26; 3:62; 6:1,41,42,43,45,46,47,48,49; 8:73; 18:97; 19:43,44
;Instances using "mirrored door" flag:
: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}}