OBD:BINA/OBJC/DOOR: Difference between revisions

m
corrected link due to section being moved to another page
No edit summary
m (corrected link due to section being moved to another page)
 
(25 intermediate revisions by 4 users not shown)
Line 1: Line 1:
[[Main Page]] >> [[OBD:Oni Binary Data|Oni Binary Data]] >> [[OBD:File types|File types]] >> [[OBD:BINA|BINA]] >> Door.BINA
:''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}}




<CENTER>[[OBD:BINA/Console|<==]] <FONT SIZE=5>Door.BINA</FONT> [[OBD:BINA/Flag|==>]]</CENTER>
[[Image:bin_r_do.gif]]




http://www6.fh-eberswalde.de/user/dkriesch/onistuff/images/bin_r_do.gif
{{Table}}
{{OBDth}}
{{OBDtr| 0x00 | char[4]  |FF0000| 43 4A 42 4F | OBJC      | objects }}
{{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        | object list version }}
{{OBDtr| 0x0C | int32    |00FFFF| FC 00 00 00 | 252      | size of the following element in bytes }}
{{OBDtrgroup}}
{{OBDtrsubgroup}}
{{OBDtr| 0x00 | char[4]  |FFC8C8| 52 4F 4F 44 | DOOR      | door }}
{{OBDtr| 0x04 | int32    |FFFFC8| 15 19 00 00 | 6421      | object ID }}
{{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| 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| 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| 0x20 | float    |FFC8FF| 00 00 00 00 | 0.000000  | rotation on the z axis in degrees }}
{{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| 0x65 | int16    |C87C64| 00 00      | 0        | key ID }}
{{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'''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'''10''' 00 - "manual"; require player to press action key to open 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)
:0x'''80''' 00 - double door
:0x00 '''01''' - mirrored door (one of the double doors is flipped along Y axis relative to the other)
:0x00 '''02''' - one way door (one side is locked, other side unlocked)
: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]])
:0x00 '''10''' - "initially open" (unimplemented feature)
:0x00 '''20''' - runtime: "give up on collision" (unimplemented)
}}
{{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 |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 (squared) }}
{{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) }}
{{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.


{| width="100%" cellspacing="1" cellpadding="2" bgcolor="#000000" border=1
==Some interesting doors==
|- bgcolor="#FFDDBB" align="CENTER"
Doors below are given as "level #:door ID".
| width="15%" | '''Hex'''
| width="15%" | '''Translation'''
| width="70%" | '''Meaning'''
|- bgcolor="#FFEEDD" align="CENTER" valign="TOP"
| bgcolor="#FF0000" | 43 4A 42 4F
| OBJC
| align="LEFT" | object
|- bgcolor="#FFEEDD" align="CENTER" valign="TOP"
| bgcolor="#FFFF00" | 08 38 00 00
| 14344
| align="LEFT" | 14344 bytes is the length of the following door part from this position
|- bgcolor="#FFEEDD" align="CENTER" valign="TOP"
| bgcolor="#00FF00" | 27 00 00 00
| 39
| align="LEFT" | identification number for the weapon classes; in every level the same; do not change it
|- bgcolor="#FFEEDD" align="CENTER" valign="TOP"
| bgcolor="#00FFFF" | FC 00 00 00
| 252
| align="LEFT" | 252 bytes (15.75 lines) is the lenght of the following package (area edged in black)
|- bgcolor="#000000" align="CENTER" valign="TOP"
| colspan="3" | <font size="2" color="#FFFFFF">Below follows the first package.</font>
|- bgcolor="#FFEEDD" align="CENTER" valign="TOP"
| bgcolor="#FFC8C8" | 52 4F 4F 44
| DOOR
| align="LEFT" | door
|- bgcolor="#FFEEDD" align="CENTER" valign="TOP"
| bgcolor="#FFFFC8" | 15 19 00 00
| 6421
| align="LEFT" | old file ID
|- bgcolor="#FFEEDD" align="CENTER" valign="TOP"
| bgcolor="#C8FFC8" | 08 00 00 00
| 8
| align="LEFT" | unknown
|- bgcolor="#FFEEDD" align="CENTER" valign="TOP"
| bgcolor="#C8FFFF" | 00 00 4F 43
| 207.000000
| align="LEFT" | x-position of the bottom of the door
|- bgcolor="#FFEEDD" align="CENTER" valign="TOP"
| bgcolor="#C8FFFF" | 00 00 D8 42
| 108.000000
| align="LEFT" | y-position (height) of the bottom of the door
|- bgcolor="#FFEEDD" align="CENTER" valign="TOP"
| bgcolor="#C8FFFF" |
98 7F CC C3
| -408.996826
| align="LEFT" | z-position of the bottom of the door
|- bgcolor="#FFEEDD" align="CENTER" valign="TOP"
| bgcolor="#FFC8FF" | 00 00 00 00
| 0.000000
| align="LEFT" | rotation on the x-axis in degrees
|- bgcolor="#FFEEDD" align="CENTER" valign="TOP"
| bgcolor="#FFC8FF" | 67 85 25 3D
| 0,040410
| align="LEFT" | rotation on the y-axis in degrees
|- bgcolor="#FFEEDD" align="CENTER" valign="TOP"
| bgcolor="#FFC8FF" | 00 00 00 00
| 0.000000
| align="LEFT" | rotation on the z-axis in degrees
|- bgcolor="#FFEEDD" align="CENTER" valign="TOP"
| colspan="2" bgcolor="#FFC800" | <tt>TCdouble</tt>
| align="LEFT" |
name of the door type (00957-TCdouble.[[OBD:DOOR|DOOR]] of level 0)
|- bgcolor="#FFEEDD" align="CENTER" valign="TOP"
| bgcolor="#C800C8" | 01 00
| 1
| align="LEFT" | door ID
|- bgcolor="#FFEEDD" align="CENTER" valign="TOP"
| bgcolor="#C87C64" | 00 00
|
| align="LEFT" | unknown
|- bgcolor="#FFEEDD" align="CENTER" valign="TOP"
| bgcolor="#B0C3D4" | 15
| 21
| align="LEFT" |
option 1, it's a bitset, so the following options are possible (values in dec):


{|
;Instances NOT using the "frame attachment" flag
|- valign="TOP"
:2:26; 3:62; 6:1,41,42,43,45,46,47,48,49; 8:73; 18:97; 19:43,44
| align="RIGHT" | 0 -
 
| nothing
;Instances using "mirrored door" flag:
|- valign="TOP"
:1:4,6,7,9,15,16,24,25,26,27,32,33,36,37,61,68,79,92,108;
| align="RIGHT" | 1 -
:3:50; 6:29,31,33,46,47; 8:14; 10:11,14,18,20; 18:14,42,70
| door locked
:The mirroring is complementary to the transformation in the [[ONLV]]'s [[OBOA]].
|- valign="TOP"
| align="RIGHT" | 2 -
| unknown
|- valign="TOP"
| align="RIGHT" | 4 -
| unknown
|- valign="TOP"
| align="RIGHT" | 8 -
| unknown
|- valign="TOP"
| align="RIGHT" | 16 -
| open with [Ctrl]
|- valign="TOP"
| align="RIGHT" | 32 -
| unknown
|- valign="TOP"
| align="RIGHT" | 64 -
| unknown
|- valign="TOP"
| align="RIGHT" |
128 -
| double door
|}
|- bgcolor="#FFEEDD" align="CENTER" valign="TOP"
| bgcolor="#E7CEA5" | 00
|
| align="LEFT" |
option 2, it's a bitset, so the following options are possible (values in dec):


{|
;Tool Mode dialog
|- valign="TOP"
| align="RIGHT" | 0 -
| nothing
|- valign="TOP"
| align="RIGHT" | 1 -
| unknown
|- valign="TOP"
| align="RIGHT" | 2 -
| one way door (one side locked, other side unlocked)
|- valign="TOP"
| align="RIGHT" | 4 -
| reverse of the one way door (now the other side is locked)
|- valign="TOP"
| align="RIGHT" | 8 -
| unknown
|- valign="TOP"
| align="RIGHT" | 16 -
| unknown
|- valign="TOP"
| align="RIGHT" | 32 -
| unknown
|- valign="TOP"
| align="RIGHT" | 64 -
| unknown
|- valign="TOP"
| align="RIGHT" |
128 -
| unknown
|}
|- bgcolor="#FFEEDD" align="CENTER" valign="TOP"
| bgcolor="#FFDDDD" | 00 00 4F 43
| 207.000000
| align="LEFT" | x-position of the center of the door
|- bgcolor="#FFEEDD" align="CENTER" valign="TOP"
| bgcolor="#FFDDDD" | 00 00 F6 42
| 123.000000
| align="LEFT" | y-position (height) of the center of the door
|- bgcolor="#FFEEDD" align="CENTER" valign="TOP"
| bgcolor="#FFDDDD" | 98 7F CC C3
| -408.996826
| align="LEFT" | z-position of the center of the door
|- bgcolor="#FFEEDD" align="CENTER" valign="TOP"
| bgcolor="#64AAAA" | 00 00 61 44
| 900.000000
| align="LEFT" | activation radius
|- bgcolor="#FFEEDD" align="CENTER" valign="TOP"
| colspan="2" bgcolor="#EBEBEB" | <tt>_DOOR_RL_FLOOR3</tt>
| align="LEFT" |
name of the first door texture (00216-_DOOR_RL_FLOOR3.[[OBD:TXMP|TXMP]])
|- bgcolor="#FFEEDD" align="CENTER" valign="TOP"
| colspan="2" bgcolor="#8C8CCC" | not used
| align="LEFT" | name of the second door texture
|}


[[Image:Tool dialog - Door Properties.png]]


<CENTER>[[OBD:BINA/Console|<==]] <FONT SIZE=5>Door.BINA</FONT> [[OBD:BINA/Flag|==>]]</CENTER>


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


[[Main Page]] >> [[OBD:Oni Binary Data|Oni Binary Data]] >> [[OBD:File types|File types]] >> [[OBD:BINA|BINA]] >> Door.BINA
{{OBD}}