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]] | ||
{{Table}} | {{Table}} | ||
{{OBDth}} | {{OBDth}} | ||
{{OBDtr| 0x000 | char[4] |FF0000| 43 4A 42 4F | OBJC | | {{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 | {{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 | {{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 }} | ||
{{ | {{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 | | {{OBDtr| 0x004 | int32 |FFFFC8| 57 12 00 00 | 5463 | object ID }} | ||
{{OBDtr| 0x008 | int32 |C8FFC8| 08 00 00 00 | 8 | | {{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 | {{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 | {{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 | {{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 | {{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 | {{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 | {{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 | {{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 | |||
: | :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 | ||
: | :0x08 - initially active | ||
:0x02 - | :0x10 - runtime: "new"; never used | ||
:0x04 - | :0x20 - punch animation: Konoko will use TRAMKONOKOconsole_punch, a slow punch animation; not used in-game, probably meant to destroy a console | ||
:0x08 - | :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 - | |||
:0x20 - use punch animation | |||
:0x40 - alarm console flag; AI can search for the console and use it | |||
}} | }} | ||
{{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. | {{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. | {{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 }} | ||
{{ | {{OBDtrgroup|1=First event (grey outline)}} | ||
{{OBDtr |0x126 | int16 |EBEBEB| 01 00 | 1 | event type; the following | {{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): | ||
:01 - script function | |||
:01 - | :04 - activate console | ||
:06 - activate alarm | |||
:08 - activate trigger | |||
:04 - | :09 - deactivate trigger | ||
:11 - unlock door | |||
:06 - | |||
:08 - | |||
:09 - | |||
:11 - | |||
}} | }} | ||
{{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 | |||
[[Image:Tool dialog - Console Properties.png]] | |||
{{OBD OBJC Footer | type=CONS | prev=CMBT | next=DOOR | name=Console | family=Level }} | |||
{{OBD | {{OBD}} |
Latest revision as of 02:00, 21 May 2025
- This is about console instances. For the console class resource, see OBD:CONS
|
![]() |
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:
|
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):
|
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 |