Jump to content

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)
 
(26 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.


{| BORDER=0 WIDTH=100% CELLPADDING=2 CELLSPACING=1 BGCOLOR="#000000" border=1
==Some interesting doors==
|- BGCOLOR="#FFDDBB" ALIGN=CENTER
Doors below are given as "level #:door ID".
| WIDTH=15% | <B>Hex</B>
 
| WIDTH=15% | <B>Translation</B>
;Instances NOT using the "frame attachment" flag
| WIDTH=70% | <B>Meaning</B>
:2:26; 3:62; 6:1,41,42,43,45,46,47,48,49; 8:73; 18:97; 19:43,44
|- VALIGN=TOP ALIGN=CENTER BGCOLOR="#FFEEDD"
 
| BGCOLOR="#FF0000" | 43 4A 42 4F
;Instances using "mirrored door" flag:
| OBJC
:1:4,6,7,9,15,16,24,25,26,27,32,33,36,37,61,68,79,92,108;
| ALIGN=LEFT | object
:3:50; 6:29,31,33,46,47; 8:14; 10:11,14,18,20; 18:14,42,70
|- VALIGN=TOP ALIGN=CENTER BGCOLOR="#FFEEDD"
:The mirroring is complementary to the transformation in the [[ONLV]]'s [[OBOA]].
| BGCOLOR="#FFFF00" | 08 38 00 00
 
| 14344
;Tool Mode dialog
| ALIGN=LEFT | 14344 bytes is the length of the following door part from this position
|- VALIGN=TOP ALIGN=CENTER BGCOLOR="#FFEEDD"
| BGCOLOR="#00FF00" | 27 00 00 00
| 39
| ALIGN=LEFT | identification number for the weapon classes; in every level the same; do not change it
|- VALIGN=TOP ALIGN=CENTER BGCOLOR="#FFEEDD"
| 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)
|- ALIGN=CENTER VALIGN=TOP BGCOLOR="#000000"
| COLSPAN=3 | <FONT SIZE=2 COLOR="#FFFFFF">Below follows the first package.</FONT>
|- VALIGN=TOP ALIGN=CENTER BGCOLOR="#FFEEDD"
| BGCOLOR="#FFC8C8" | 52 4F 4F 44
| DOOR
| ALIGN=LEFT | door
|- VALIGN=TOP ALIGN=CENTER BGCOLOR="#FFEEDD"
| BGCOLOR="#FFFFC8" | 15 19 00 00
| 6421
| ALIGN=LEFT | old file ID
|- VALIGN=TOP ALIGN=CENTER BGCOLOR="#FFEEDD"
| BGCOLOR="#C8FFC8" | 08 00 00 00
| 8
| ALIGN=LEFT | unknown
|- VALIGN=TOP ALIGN=CENTER BGCOLOR="#FFEEDD"
| BGCOLOR="#C8FFFF" | 00 00 4F 43
| 207.000000
| ALIGN=LEFT | x-position of the bottom of the door
|- VALIGN=TOP ALIGN=CENTER BGCOLOR="#FFEEDD"
| BGCOLOR="#C8FFFF" | 00 00 D8 42
| 108.000000
| ALIGN=LEFT | y-position (height) of the bottom of the door
|- VALIGN=TOP ALIGN=CENTER BGCOLOR="#FFEEDD"
| BGCOLOR="#C8FFFF" | <NOBR>98 7F CC C3</NOBR>
| -408.996826
| ALIGN=LEFT | z-position of the bottom of the door
|- VALIGN=TOP ALIGN=CENTER BGCOLOR="#FFEEDD"
| BGCOLOR="#FFC8FF" | 00 00 00 00
| 0.000000
| ALIGN=LEFT | rotation on the x-axis in degrees
|- VALIGN=TOP ALIGN=CENTER BGCOLOR="#FFEEDD"
| BGCOLOR="#FFC8FF" | 67 85 25 3D
| 0,040410
| ALIGN=LEFT | rotation on the y-axis in degrees
|- VALIGN=TOP ALIGN=CENTER BGCOLOR="#FFEEDD"
| BGCOLOR="#FFC8FF" | 00 00 00 00
| 0.000000
| ALIGN=LEFT | rotation on the z-axis in degrees
|- VALIGN=TOP ALIGN=CENTER BGCOLOR="#FFEEDD"
| BGCOLOR="#FFC800" COLSPAN=2 | <TT>TCdouble</TT>
| ALIGN=LEFT | name of the door type (00957-TCdouble.<A HREF="oni_door.htm">DOOR</A> of level 0)
|- VALIGN=TOP ALIGN=CENTER BGCOLOR="#FFEEDD"
| BGCOLOR="#C800C8" | 01 00
| 1
| ALIGN=LEFT | door ID
|- VALIGN=TOP ALIGN=CENTER BGCOLOR="#FFEEDD"
| BGCOLOR="#C87C64" | 00 00
| 0
| ALIGN=LEFT | unknown
|- VALIGN=TOP ALIGN=CENTER BGCOLOR="#FFEEDD"
| BGCOLOR="#B0C3D4" | 15
| 21
| ALIGN=LEFT | option 1, it's a bitset, so the following options are possible (values in dec):
{| BORDER=0 CELLPADDING=0 CELLSPACING=0
|- VALIGN=TOP
| ALIGN=RIGHT | 0 -&nbsp;
| nothing
|- VALIGN=TOP
| ALIGN=RIGHT | 1 -&nbsp;
| door locked
|- VALIGN=TOP
| ALIGN=RIGHT | 2 -&nbsp;
| unknown
|- VALIGN=TOP
| ALIGN=RIGHT | 4 -&nbsp;
| unknown
|- VALIGN=TOP
| ALIGN=RIGHT | 8 -&nbsp;
| unknown
|- VALIGN=TOP
| ALIGN=RIGHT | 16 -&nbsp;
| open with [Ctrl]
|- VALIGN=TOP
| ALIGN=RIGHT | 32 -&nbsp;
| unknown
|- VALIGN=TOP
| ALIGN=RIGHT | 64 -&nbsp;
| unknown
|- VALIGN=TOP
| ALIGN=RIGHT | <NOBR>128 -&nbsp;</NOBR>
| double door
|}<P>
|- VALIGN=TOP ALIGN=CENTER BGCOLOR="#FFEEDD"
| BGCOLOR="#E7CEA5" | 00
| 0
| ALIGN=LEFT | option 2, it's a bitset, so the following options are possible (values in dec):<P>
{| BORDER=0 CELLPADDING=0 CELLSPACING=0
|- VALIGN=TOP
| ALIGN=RIGHT | 0 -&nbsp;
| nothing
|- VALIGN=TOP
| ALIGN=RIGHT | 1 -&nbsp;
| unknown
|- VALIGN=TOP
| ALIGN=RIGHT | 2 -&nbsp;
| one way door (one side locked, other side unlocked)
|- VALIGN=TOP
| ALIGN=RIGHT | 4 -&nbsp;
| reverse of the one way door (now the other side is locked)
|- VALIGN=TOP
| ALIGN=RIGHT | 8 -&nbsp;
| unknown
|- VALIGN=TOP
| ALIGN=RIGHT | 16 -&nbsp;
| unknown
|- VALIGN=TOP
| ALIGN=RIGHT | 32 -&nbsp;
| unknown
|- VALIGN=TOP
| ALIGN=RIGHT | 64 -&nbsp;
| unknown
|- VALIGN=TOP
| ALIGN=RIGHT | <NOBR>128 -&nbsp;</NOBR>
| unknown
|}<P>
|- VALIGN=TOP ALIGN=CENTER BGCOLOR="#FFEEDD"
| BGCOLOR="#FFDDDD" | 00 00 4F 43
| 207.000000
| ALIGN=LEFT | x-position of the center of the door
|- VALIGN=TOP ALIGN=CENTER BGCOLOR="#FFEEDD"
| BGCOLOR="#FFDDDD" | 00 00 F6 42
| 123.000000
| ALIGN=LEFT | y-position (height) of the center of the door
|- VALIGN=TOP ALIGN=CENTER BGCOLOR="#FFEEDD"
| BGCOLOR="#FFDDDD" | 98 7F CC C3
| -408.996826
| ALIGN=LEFT | z-position of the center of the door
|- VALIGN=TOP ALIGN=CENTER BGCOLOR="#FFEEDD"
| BGCOLOR="#64AAAA" | 00 00 61 44
| 900.000000
| ALIGN=LEFT | activation radius
|- VALIGN=TOP ALIGN=CENTER BGCOLOR="#FFEEDD"
| BGCOLOR="#EBEBEB" COLSPAN=2 | <TT>_DOOR_RL_FLOOR3</TT>
| ALIGN=LEFT | name of the first door texture (00216-_DOOR_RL_FLOOR3.<A HREF="oni.txmp.htm">TXMP</A>)
|- VALIGN=TOP ALIGN=CENTER BGCOLOR="#FFEEDD"
| BGCOLOR="#8C8CCC" COLSPAN=2 | 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}}