OBD:BINA/OBJC/CONS: Difference between revisions

< OBD:BINA‎ | OBJC
m (bluebox jpg to png (+ content is now complete in English))
(explained flags; added Events section)
 
(8 intermediate revisions by 2 users not shown)
Line 1: Line 1:
{{OBD OBJC Header | align=center | type=CONS | prev=CMBT | next=DOOR | name=Console}}
:''This is about console instances. For the console class resource, see [[OBD:CONS]]
{{OBD OBJC Header | align=center | type=CONS | prev=CMBT | next=DOOR | name=Console | stuff=b_co}}




[[image:bin_r_co.gif]]
[[Image:bin_r_co.gif]]




{{Table}}
{{Table}}
{{OBDth}}
{{OBDth}}
{{OBDtr| 0x000 | char[4]  |FF0000| 43 4A 42 4F | OBJC      | object collection }}
{{OBDtr| 0x000 | char[4]  |FF0000| 43 4A 42 4F | OBJC      | objects }}
{{OBDtr| 0x004 | int32    |FFFF00| 4C 0E 00 00 | 5463      | size of the complete console part from this postion in bytes }}
{{OBDtr| 0x004 | int32    |FFFF00| 4C 0E 00 00 | 5463      | size of the complete console part from this position in bytes }}
{{OBDtr| 0x008 | int32    |00FF00| 27 00 00 00 | 39        | object collection version }}
{{OBDtr| 0x008 | int32    |00FF00| 27 00 00 00 | 39        | object list version }}
{{OBDtr| 0x00C | int32    |00FFFF| 48 01 00 00 | 328      | size of the following element in bytes }}
{{OBDtr| 0x00C | int32    |00FFFF| 48 01 00 00 | 328      | size of the following element in bytes }}
{{OBDtrBK}}
{{OBDtrgroup}}
{{OBDtrsubgroup}}
{{OBDtr| 0x000 | char[4]  |FFC8C8| 53 4E 4F 43 | CONS      | console }}
{{OBDtr| 0x000 | char[4]  |FFC8C8| 53 4E 4F 43 | CONS      | console }}
{{OBDtr| 0x004 | int32    |FFFFC8| 57 12 00 00 | 5463      | old file ID }}
{{OBDtr| 0x004 | int32    |FFFFC8| 57 12 00 00 | 5463      | object ID }}
{{OBDtr| 0x008 | int32    |C8FFC8| 08 00 00 00 | 8        | unknown }}
{{OBDtr| 0x008 | int32    |C8FFC8| 08 00 00 00 | 8        | object flags; only used at runtime in Tool mode }}
{{OBDtr| 0x00C | float    |C8FFFF| 71 0C 6C 44 | 944.194396| x-position of the console }}
{{OBDtr| 0x00C | float    |C8FFFF| 71 0C 6C 44 | 944.194396| x position of the console }}
{{OBDtr| 0x010 | float    |C8FFFF| 00 00 D8 C1 | -27.000000| y-position (height) of the console }}
{{OBDtr| 0x010 | float    |C8FFFF| 00 00 D8 C1 | -27.000000| y position (height) of the console }}
{{OBDtr| 0x014 | float    |C8FFFF| 68 05 EB 41 | 29.377639 | z-position of the console }}
{{OBDtr| 0x014 | float    |C8FFFF| 68 05 EB 41 | 29.377639| z position of the console }}
{{OBDtr| 0x018 | float    |FFC8FF| 42 FD 17 38 | 0.000036 | rotation on the x-axis in degrees }}
{{OBDtr| 0x018 | float    |FFC8FF| 42 FD 17 38 |   0.000036| rotation on the x axis in degrees }}
{{OBDtr| 0x01C | float    |FFC8FF| 00 00 87 43 | 270.000000| rotation on the y-axis in degrees }}
{{OBDtr| 0x01C | float    |FFC8FF| 00 00 87 43 | 270.000000| rotation on the y axis in degrees }}
{{OBDtr| 0x020 | float    |FFC8FF| 00 00 00 00 | 0.000000 | rotation on the z-axis in degrees }}
{{OBDtr| 0x020 | float    |FFC8FF| 00 00 00 00 |   0.000000| rotation on the z axis in degrees }}
{{OBDtr2|0x024 | char[63] |FFC800| console_data            | console type name (reference to 00761-console_data.[[OBD:CONS|CONS]] of level 0) }}
{{OBDtrsubgroup|end}}
{{OBDtr2|0x024 | char[63] |FFC800| console_data            | console class name (reference to 00761-console_data.[[OBD:CONS|CONS]] of level 0) }}
{{OBDtr| 0x063 | int16    |C800C8| 01 00      | 1        | console ID }}
{{OBDtr| 0x063 | int16    |C800C8| 01 00      | 1        | console ID }}
{{OBDtr| 0x065 | bitset16 |C87C64| 08 00      | 8        | console options; the following bits are possible:
{{OBDtr| 0x065 | bitset16 |C87C64| 08 00      | 8        | console options; the following bits are possible:
 
:0x01 - runtime: "initialized"; never used
 
:0x02 - runtime: console has been used
:0x00 - console deactivated
:0x04 - runtime: console is active (can be used); occurs when <tt>[[console_activate]]</tt> is called, or by calling <tt>[[console_reset]]</tt> if the "initially active" flag is set
:0x01 - unknown, never used
:0x08 - initially active
:0x02 - unknown, never used
:0x10 - runtime: "new"; never used
:0x04 - unknown, never used
:0x20 - punch animation: Konoko will use TRAMKONOKOconsole_punch, a slow punch animation; not used in-game, probably meant to destroy a console
:0x08 - console active at level load
:0x40 - alarm console flag; AI can search for the console and use it on its own (no scripting required) when certain conditions ([[OBD:BINA/OBJC/CMBT#Alarm part|CMBT]] alarm behavior) are met
:0x10 - unknown, never used
:0x20 - use punch animation (KONOKOconsole_punch.[[OBD:TRAM|TRAM]])
:0x40 - alarm console flag; AI can search for the console and use it ON ITS OWN (no scripting) when certain conditions ([[OBD:BINA/OBJC/CMBT#Alarm part|CMBT]] alarm behavior) are met
:0x80 - unknown, never used
 
 
}}
}}
{{OBDtr2|0x067 | char[63] |B0C3D4| _con_INFO              | "console deactivated" texture name (reference to 00800-_CON_INFO.[[OBD:TXMP|TXMP]] of level 0) }}
{{OBDtr2|0x067 | char[63] |B0C3D4| _con_INFO              | "console deactivated" texture name (reference to 00800-_CON_INFO.[[OBD:TXMP|TXMP]] of level 0) }}
{{OBDtr2|0x0A6 | char[63] |E7CEA5| _con_INFO              | "console activated" texture name (reference to 00800-_CON_INFO.[[OBD:TXMP|TXMP]] of level 0) }}
{{OBDtr2|0x0A6 | char[63] |E7CEA5| _con_INFO              | "console activated" texture name (reference to 00800-_CON_INFO.TXMP of level 0) }}
{{OBDtr2|0x0E5 | char[63] |FFDDDD| _con_INFO              | "console used" texture name (reference to 00800-_CON_INFO.[[OBD:TXMP|TXMP]] of level 0) }}
{{OBDtr2|0x0E5 | char[63] |FFDDDD| _con_INFO              | "console used" texture name (reference to 00800-_CON_INFO.TXMP of level 0) }}
{{OBDtr |0x124 | int16    |64AAAA| 01 00      | 1        | number of events }}
{{OBDtr |0x124 | int16    |64AAAA| 01 00      | 1        | number of events }}
{{OBDtrBK|1=First event (grey outline)}}
{{OBDtrgroup|1=First event (grey outline)}}
{{OBDtr |0x126 | int16    |EBEBEB| 01 00      | 1        | event type; the following types are possible (values in dec):
{{OBDtr |0x126 | int16    |EBEBEB| 01 00      | 1        | event type; the following values are used in the vanilla game data (see "Events" below for all values):
:00 - nothing
:01 - script function
:01 - script function (32 byte string)
:04 - activate console
:02 - activate turret (short)
:06 - activate alarm
:03 - deactivate turret (short)
:08 - activate trigger
:04 - activate console (short)
:09 - deactivate trigger
:05 - deactivate console (short)
:11 - unlock door
:06 - activate alarm (short)
:07 - deactivate alarm (short)
:08 - activate trigger (short)
:09 - deactivate trigger (short)
:10 - lock door (short)
:11 - unlock door (short)
}}
}}
{{OBDtr2|0x128 | char[32] |8C8CCC| level3c                | event parameter; here, the name of the script function to be called when the console is used }}
{{OBDtr2|0x128 | char[32] |8C8CCC| level3c                | event parameter; here, the name of the script function to be called when the console is used }}
|}
|}


==Events==
Three OBJC types can trigger an event: a [[OBD:BINA/OBJC/CONS|console]] when activated, a [[OBD:BINA/OBJC/DOOR|door]] when opened, and a [[OBD:BINA/OBJC/TRIG|trigger laser]] when tripped. This is the full set of event types they can execute:
:1 - call script function
:2 - activate turret
:3 - deactivate turret
:4 - activate console
:5 - deactivate console
:6 - activate alarm
:7 - deactivate alarm
:8 - activate trigger
:9 - deactivate trigger
:10 - lock door
:11 - unlock door
This allows all sorts of odd combinations, e.g. a trigger laser could activate another trigger laser or unlock a door, but Oni never does anything that unusual in the vanilla game data.
The data size of the parameter assigned to each of these events is a 2-byte int, except for "call script function" which provides space for a 32-byte string.
;Tool Mode dialog


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


http://ssg.oni2.net/subfold/bluebox/images/219_console_properties.png


{{OBD OBJC Footer | type=CONS | prev=CMBT | next=DOOR | name=Console | family=Level }}


{{OBD OBJC Footer | type=CONS | prev=CMBT | next=DOOR | name=Console }}
{{OBD}}

Latest revision as of 02:00, 21 May 2025

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


Bin r co.gif


Offset Type Raw Hex Value Description
0x000 char[4] 43 4A 42 4F OBJC objects
0x004 int32 4C 0E 00 00 5463 size of the complete console part from this position in bytes
0x008 int32 27 00 00 00 39 object list version
0x00C int32 48 01 00 00 328 size of the following element in bytes
First element (black outline)
Generic object data
0x000 char[4] 53 4E 4F 43 CONS console
0x004 int32 57 12 00 00 5463 object ID
0x008 int32 08 00 00 00 8 object flags; only used at runtime in Tool mode
0x00C float 71 0C 6C 44 944.194396 x position of the console
0x010 float 00 00 D8 C1 -27.000000 y position (height) of the console
0x014 float 68 05 EB 41 29.377639 z position of the console
0x018 float 42 FD 17 38 0.000036 rotation on the x axis in degrees
0x01C float 00 00 87 43 270.000000 rotation on the y axis in degrees
0x020 float 00 00 00 00 0.000000 rotation on the z axis in degrees
Object-specific data
0x024 char[63] console_data console class name (reference to 00761-console_data.CONS of level 0)
0x063 int16 01 00 1 console ID
0x065 bitset16 08 00 8 console options; the following bits are possible:
0x01 - runtime: "initialized"; never used
0x02 - runtime: console has been used
0x04 - runtime: console is active (can be used); occurs when console_activate is called, or by calling console_reset if the "initially active" flag is set
0x08 - initially active
0x10 - runtime: "new"; never used
0x20 - punch animation: Konoko will use TRAMKONOKOconsole_punch, a slow punch animation; not used in-game, probably meant to destroy a console
0x40 - alarm console flag; AI can search for the console and use it on its own (no scripting required) when certain conditions (CMBT alarm behavior) are met
0x067 char[63] _con_INFO "console deactivated" texture name (reference to 00800-_CON_INFO.TXMP of level 0)
0x0A6 char[63] _con_INFO "console activated" texture name (reference to 00800-_CON_INFO.TXMP of level 0)
0x0E5 char[63] _con_INFO "console used" texture name (reference to 00800-_CON_INFO.TXMP of level 0)
0x124 int16 01 00 1 number of events
First event (grey outline)
0x126 int16 01 00 1 event type; the following values are used in the vanilla game data (see "Events" below for all values):
01 - script function
04 - activate console
06 - activate alarm
08 - activate trigger
09 - deactivate trigger
11 - unlock door
0x128 char[32] level3c event parameter; here, the name of the script function to be called when the console is used

Events

Three OBJC types can trigger an event: a console when activated, a door when opened, and a trigger laser when tripped. This is the full set of event types they can execute:

1 - call script function
2 - activate turret
3 - deactivate turret
4 - activate console
5 - deactivate console
6 - activate alarm
7 - deactivate alarm
8 - activate trigger
9 - deactivate trigger
10 - lock door
11 - unlock door

This allows all sorts of odd combinations, e.g. a trigger laser could activate another trigger laser or unlock a door, but Oni never does anything that unusual in the vanilla game data.

The data size of the parameter assigned to each of these events is a 2-byte int, except for "call script function" which provides space for a 32-byte string.

Tool Mode dialog

 


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