OBD:BINA/OBJC/DOOR: Difference between revisions

m
corrected link due to section being moved to another page
mNo edit summary
m (corrected link due to section being moved to another page)
 
(24 intermediate revisions by 4 users not shown)
Line 1: Line 1:
{{OBD OBJC Header|align=right|type=DOOR|prev=CONS|next=FLAG|name=Door|onistuff=b_do}}
:''This is about door instances. For the door class resource, see [[OBD:DOOR]]
;Blue Box Beta WMDD
{{OBD OBJC Header | align=center | type=DOOR | prev=CONS | next=FLAG | name=Door|onistuff=b_do}}
http://www6.fh-eberswalde.de/user/dkriesch/oni/bina_door.gif




----
[[Image:bin_r_do.gif]]
----
http://www6.fh-eberswalde.de/user/dkriesch/onistuff/images/bin_r_do.gif




{|{{OBDtable}}
{{Table}}
|align=center|
{{OBDth}}
{|{{OBDtable}}
{{OBDtr| 0x00 | char[4]  |FF0000| 43 4A 42 4F | OBJC      | objects }}
|- bgcolor="#FFDDBB" align="CENTER"
{{OBDtr| 0x04 | int32    |FFFF00| 08 38 00 00 | 14344    | size of the complete door part from this position in bytes }}
!width="15%" | Hex
{{OBDtr| 0x08 | int32    |00FF00| 27 00 00 00 | 39        | object list version }}
!width="15%" | Translation
{{OBDtr| 0x0C | int32    |00FFFF| FC 00 00 00 | 252      | size of the following element in bytes }}
!width="70%" | Meaning
{{OBDtrgroup}}
|-
{{OBDtrsubgroup}}
| bgcolor="#FFC8C8" | 52 4F 4F 44
{{OBDtr| 0x00 | char[4]  |FFC8C8| 52 4F 4F 44 | DOOR     | door }}
| DOOR
{{OBDtr| 0x04 | int32    |FFFFC8| 15 19 00 00 | 6421     | object ID }}
| align="LEFT" | door
{{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 }}
| bgcolor="#FFFFC8" | 15 19 00 00
{{OBDtr| 0x10 | float    |C8FFFF| 00 00 D8 42 | 108.000000| y position (height) of the bottom of the door }}
| 6421
{{OBDtr| 0x14 | float    |C8FFFF| 98 7F CC C3 |-408.996826| z position of the bottom of the door }}
| align="LEFT" | old file ID
{{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 }}
| bgcolor="#C8FFC8" | 08 00 00 00
{{OBDtr| 0x20 | float    |FFC8FF| 00 00 00 00 | 0.000000 | rotation on the z axis in degrees }}
| 8
{{OBDtrsubgroup|end}}
| align="LEFT" | unknown
{{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 }}
| bgcolor="#C8FFFF" | 00 00 4F 43
{{OBDtr| 0x65 | int16    |C87C64| 00 00       | 0         | key ID }}
| 207.000000
{{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>
| align="LEFT" | x-position of the bottom of the door
:0x'''01''' 00 - initially locked (at level load or after calling [[reset_mechanics]])
|-
:0x'''02''' 00 - runtime: currently locked
| bgcolor="#C8FFFF" | 00 00 D8 42
: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)
| 108.000000
:0x'''10''' 00 - "manual"; require player to press action key to open door
| align="LEFT" | y-position (height) of the bottom of the door
:0x'''20''' 00 - runtime: door is in process of opening/closing
|-
:0x'''40''' 00 - runtime: "test mode" (apparently was a test of new door code, but is now always on)
| bgcolor="#C8FFFF" |
:0x'''80''' 00 - double door
98 7F CC C3
:0x00 '''01''' - mirrored door (one of the double doors is flipped along Y axis relative to the other)
| -408.996826
:0x00 '''02''' - one way door (one side is locked, other side unlocked)
| align="LEFT" | z-position of the bottom of the door
:0x00 '''04''' - one way door, reverse (now the other side is locked)
|-
:0x00 '''08''' - runtime: jammed (controlled by script via [[door_jam]] and [[door_unjam]])
| bgcolor="#FFC8FF" | 00 00 00 00
:0x00 '''10''' - "initially open" (unimplemented feature)
| 0.000000
:0x00 '''20''' - runtime: "give up on collision" (unimplemented)
| align="LEFT" | rotation on the x-axis in degrees
}}
|-
{{OBDtr |0x69 | float    |FFDDDD| 00 00 4F 43 | 207.000000 | x-position of the center of the door }}
| bgcolor="#FFC8FF" | 67 85 25 3D
{{OBDtr |0x6D | float    |FFDDDD| 00 00 F6 42 | 123.000000 | y-position (height) of the center of the door }}
| 0,040410
{{OBDtr |0x71 | float    |FFDDDD| 98 7F CC C3 | -408.996826| z-position of the center of the door }}
| align="LEFT" | rotation on the y-axis in degrees
{{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]]) }}
| bgcolor="#FFC8FF" | 00 00 00 00
{{OBDtr2|0xA8 | char[63] |8C8CCC| unused                  | second door texture (reference to a [[OBD:TXMP|TXMP]] file) }}
| 0.000000
{{OBDtr |0xE7 | int16    |8C8CCC| 00 00      | 0          | number of event blocks following; see below }}
| align="LEFT" | rotation on the z-axis in degrees
{{OBDtr |0xE9 | uint32  |8C8CCC| 00 00 00    |            | alignment padding }}
|-
| colspan="2" bgcolor="#FFC800" | <tt>TCdouble</tt>
| align="LEFT" |name of the door type (00957-TCdouble.[[OBD:DOOR|DOOR]] of level 0)
|-
| bgcolor="#C800C8" | 01 00
| 1
| align="LEFT" | door ID
|-
| bgcolor="#C87C64" | 00 00
| 0
| align="LEFT" | unknown
|-
| bgcolor="#B0C3D4" | 15
| 21
| align="LEFT" |option bitset 1 (see below)
|-
| bgcolor="#E7CEA5" | 00
| 0
| align="LEFT" |option bitset 2 (see below)
|-
| bgcolor="#FFDDDD" | 00 00 4F 43
| 207.000000
| align="LEFT" | x-position of the center of the door
|-
| bgcolor="#FFDDDD" | 00 00 F6 42
| 123.000000
| align="LEFT" | y-position (height) of the center of the door
|-
| bgcolor="#FFDDDD" | 98 7F CC C3
| -408.996826
| align="LEFT" | z-position of the center of the door
|-
| bgcolor="#64AAAA" | 00 00 61 44
| 900.000000
| align="LEFT" | activation radius
|-
| colspan="2" bgcolor="#EBEBEB" | <tt>_DOOR_RL_FLOOR3</tt>
| align="LEFT" |name of the first door texture (00216-_DOOR_RL_FLOOR3.[[OBD:TXMP|TXMP]])
|-
| colspan="2" bgcolor="#8C8CCC" | not used
| align="LEFT" | name of the second door texture
|}
|}
|}
;Option bitset 1
:1 - door locked
:2 - unknown
:4 - unknown
:8 - unknown
:16 - require player to press '''action''' to open door
:32 - unknown
:64 - unknown
:128 - double door
;Option bitset 2
:1 - unknown
:2 - one way door (one side locked, other side unlocked)
:4 - reverse of the one way door (now the other side is locked)
:8 - unknown
:16 - unknown
:32 - unknown
:64 - unknown
:128 - unknown


==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
[[Image:Tool dialog - Door Properties.png]]
{{OBD OBJC Footer | type=DOOR | prev=CONS | next=FLAG | name=Door | family=Level}}


----
{{OBD}}
----
{{OBD TXT|align=center|size=53|onistuff=bina_doors}}
----
----
{{OBD OBJC Footer|type=DOOR|prev=CONS|next=FLAG|name=Door}}