OBD:BINA/OBJC/TRGV: Difference between revisions

From OniGalore
< OBD:BINA‎ | OBJC
Jump to navigation Jump to search
No edit summary
 
m (fixed Stuff link)
(9 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]] >> Trigger_Volume.BINA
{{OBD OBJC Header | align=center | type=TRGV | prev=SNDG | next=TRIG | name=Trigger Volume | stuff=b_tv}}




<CENTER>[[OBD:BINA/Sound|<==]] <FONT SIZE=5>Trigger_Volume.BINA</FONT> [[OBD:BINA/Trigger|==>]]</CENTER>
[[image:bin_r_tv.gif]]




http://www6.fh-eberswalde.de/user/dkriesch/onistuff/images/bin_r_tv.gif
{{Table}}
{{OBDth}}
{{OBDtr| 0x000 | char[4]  |FF0000| 43 4A 42 4F | OBJC      | objects }}
{{OBDtr| 0x004 | int32    |FFFF00| 7C 33 00 00 | 13180      | size of the complete neutral part from this position in bytes }}
{{OBDtr| 0x008 | int32    |00FF00| 27 00 00 00 | 39        | object list version }}
{{OBDtr| 0x00C | int32    |00FFFF| 60 01 00 00 | 352        | size of the following object in bytes }}
{{OBDtrBK|First object (grey outline}}
{{OBDtr| 0x000 | char[4]  |FFC8C8| 56 47 52 54 | TRGV      | trigger volume (TV) }}
{{OBDtr| 0x004 | int32    |FFFFC8| ED 1B 00 00 | 7149      | old file ID }}
{{OBDtr| 0x008 | int32    |C8FFC8| 00 00 00 00 | 0          | unknown }}
{{OBDtr| 0x00C | float    |C8FFFF| 5C 47 36 44 | 729.114990 | x-position of TV }}
{{OBDtr| 0x010 | float    |C8FFFF| 00 00 00 00 | 0.000000  | y-position (height) of TV }}
{{OBDtr| 0x014 | float    |C8FFFF| 73 D8 C9 C3 | -403.691009| z-position of TV }}
{{OBDtr| 0x018 | float    |FFC8FF| 00 00 00 00 | 0.000000  | rotation on the x-axis in degrees }}
{{OBDtr| 0x01C | float    |FFC8FF| 00 00 00 00 | 0.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 }}
{{OBDtr2|0x024 | char[63] |FFC800| trigger_volume_01        | name of TV }}
{{OBDtr2|0x063 | char[32] |C800C8| spawn_floor2_guards      | "entry" function; called up when character enters the TV }}
{{OBDtr2|0x083 | char[32] |C87C64| unused                  | "inside" function; called while character is inside the TV }}
{{OBDtr2|0x0A3 | char[32] |B0C3D4| unused                  | "exit" function; called up when character leaves the TV }}
{{OBDtr| 0x0C3 | bitset  |E7CEA5| 01          | 1          | teams that can fire off the TV; any combination of the following:


:0x01 - Konoko
:0x02 - TCTF
:0x04 - Syndicate
:0x08 - Neutral
:0x10 - SecurityGuard
:0x20 - RogueKonoko
:0x40 - Switzerland
:0x80 - SyndicateAccessory


{| BORDER=1 WIDTH=100% CELLPADDING=2 CELLSPACING=1 BGCOLOR="#000000"
}}
|- BGCOLOR="#FFDDBB" ALIGN=CENTER
{{OBDtr| 0x0C4 | int24    |FFDDDD| FF FF FF   | unknown   | always the same; probably padding }}
| WIDTH=15% | <B>Hex</B>
{{OBDtr| 0x0C7 | float    |64AAAA| 00 00 F8 41 | 31.000000 | x-dimension of the TV }}
| WIDTH=15% | <B>Translation</B>
{{OBDtr| 0x0CB | float    |64AAAA| 00 00 4C 42 | 51.000000 | y-dimension of the TV }}
| WIDTH=70% | <B>Meaning</B>
{{OBDtr| 0x0CF | float    |64AAAA| 00 00 08 42 | 34.000000 | z-dimension of the TV }}
|- VALIGN=TOP ALIGN=CENTER BGCOLOR="#FFEEDD"
{{OBDtr| 0x0D3 | int32    |EBEBEB| 01 00 00 00 | 1         | trigger volume ID }}
| BGCOLOR="#FF0000" | 43 4A 42 4F
{{OBDtr| 0x0D7 | int32    |8C8CCC| 00 00 00 00 | 0         | trigger volume ID of the parent TV, if this one is a child }}
| OBJC
{{OBDtr2|0x0DB | char[128]|FF00C8| unused                  | space for notes }}
| ALIGN=LEFT | object
{{OBDtr| 0x15B | int32    |F0F096| 81 00 00 00 | 0x80 + 0x01| flags; any combination of the following:
|- VALIGN=TOP ALIGN=CENTER BGCOLOR="#FFEEDD"
:0x01 - "entry" called only once (otherwise called every time character enters the TV)
| BGCOLOR="#FFFF00" | 7C 33 00 00
:0x02 - "inside" called only once (otherwise called at every frame while character is in the TV)
| 13180
:0x04 - "exit" called only once (otherwise called every time character leaves the TV)
| ALIGN=LEFT | 13180 bytes is the length of the following trigger volume part from this position
:0x08 - "entry" disabled (can be enabled with '''[[trigvolume_enable]] tv_name entry 1''')
|- VALIGN=TOP ALIGN=CENTER BGCOLOR="#FFEEDD"
:0x10 - "inside" disabled (can be enabled with '''[[trigvolume_enable]] tv_name inside 1''')
| BGCOLOR="#00FF00" | 27 00 00 00
:0x20 - "exit" disabled (can be enabled with '''[[trigvolume_enable]] tv_name exit 1''')
| 39
:0x40 - "all" disabled (master switch, can be enabled with '''[[trigvolume_enable]] tv_name all 1''')
| ALIGN=LEFT | identification number for the weapon classes; in every level the same; do not change it
:0x80 - additional restriction: only player characters can fire off the TV
|- VALIGN=TOP ALIGN=CENTER BGCOLOR="#FFEEDD"
}}
| BGCOLOR="#00FFFF" | 60 01 00 00
{{OBDtr| 0x15F |           |00C864| 00         | 0         | padding }}
| 352
| ALIGN=LEFT | 352 bytes (22 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" | 56 47 52 54
| TRGV
| ALIGN=LEFT | trigger volume
|- VALIGN=TOP ALIGN=CENTER BGCOLOR="#FFEEDD"
| BGCOLOR="#FFFFC8" | ED 1B 00 00
| 7149
| ALIGN=LEFT | old file ID
|- VALIGN=TOP ALIGN=CENTER BGCOLOR="#FFEEDD"
| BGCOLOR="#C8FFC8" | 00 00 00 00
| 0
| ALIGN=LEFT | unknown
|- VALIGN=TOP ALIGN=CENTER BGCOLOR="#FFEEDD"
| BGCOLOR="#C8FFFF" | 5C 47 36 44
| 729.114990
| ALIGN=LEFT | x-position of the trigger volume
|- VALIGN=TOP ALIGN=CENTER BGCOLOR="#FFEEDD"
| BGCOLOR="#C8FFFF" | 00 00 00 00
| 0.000000
| ALIGN=LEFT | y-position (height) of the trigger volume
|- VALIGN=TOP ALIGN=CENTER BGCOLOR="#FFEEDD"
| BGCOLOR="#C8FFFF" | 73 D8 C9 C3
| -403.691009
| ALIGN=LEFT | z-position of the trigger volume
|- 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" | 00 00 00 00
| 0.000000
| 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>trigger_volume_01</TT>
| ALIGN=LEFT | name of the trigger volume
|- VALIGN=TOP ALIGN=CENTER BGCOLOR="#FFEEDD"
| BGCOLOR="#C800C8" COLSPAN=2 | <TT>spawn_floor2_guards</TT>
| ALIGN=LEFT | name of the function, which is called up when you enter the trigger volume
|- VALIGN=TOP ALIGN=CENTER BGCOLOR="#FFEEDD"
| BGCOLOR="#C87C64" COLSPAN=2 | not used
| ALIGN=LEFT | name of the function, which is called up when you're inside the trigger volume
|- VALIGN=TOP ALIGN=CENTER BGCOLOR="#FFEEDD"
| BGCOLOR="#B0C3D4" COLSPAN=2 | not used
| ALIGN=LEFT | name of the function, which is called up when you leave the trigger volume
|- VALIGN=TOP ALIGN=CENTER BGCOLOR="#FFEEDD"
| BGCOLOR="#E7CEA5" | 01
| 1
| ALIGN=LEFT | teams, which can trigger off the trigger volume; it's a bitset; the following teams are possible (values in dec):<BR><BR>
{| BORDER=0 CELLPADDING=0 CELLSPACING=0
|- VALIGN=TOP
| ALIGN=RIGHT | 0 -&nbsp;
| no team
|- VALIGN=TOP
| ALIGN=RIGHT | 1 -&nbsp;
| Konoko
|- VALIGN=TOP
| ALIGN=RIGHT | 2 -&nbsp;
| TCTF
|- VALIGN=TOP
| ALIGN=RIGHT | 4 -&nbsp;
| Syndicate
|- VALIGN=TOP
| ALIGN=RIGHT | 8 -&nbsp;
| Neutral
|- VALIGN=TOP
| ALIGN=RIGHT | 16 -&nbsp;
| SecurityGuard
|- VALIGN=TOP
| ALIGN=RIGHT | 32 -&nbsp;
| RogueKonoko
|- VALIGN=TOP
| ALIGN=RIGHT | 64 -&nbsp;
| Switzerland
|- VALIGN=TOP
| ALIGN=RIGHT | 128 -&nbsp;
| SyndicateAccessory
|}<BR>(Thanks to geyser who figured that out.)<BR>
|- VALIGN=TOP ALIGN=CENTER BGCOLOR="#FFEEDD"
| BGCOLOR="#FFDDDD" | FF FF FF
| unknown
| ALIGN=LEFT | unknown, always the same; maybe only a filler
|- VALIGN=TOP ALIGN=CENTER BGCOLOR="#FFEEDD"
| BGCOLOR="#64AAAA" | 00 00 F8 41
| 31.000000
| ALIGN=LEFT | x-dimension of the trigger volume
|- VALIGN=TOP ALIGN=CENTER BGCOLOR="#FFEEDD"
| BGCOLOR="#64AAAA" | 00 00 4C 42
| 51.000000
| ALIGN=LEFT | y-dimension (height) of the trigger volume
|- VALIGN=TOP ALIGN=CENTER BGCOLOR="#FFEEDD"
| BGCOLOR="#64AAAA" | 00 00 08 42
| 34.000000
| ALIGN=LEFT | z-dimension of the trigger volume
|- VALIGN=TOP ALIGN=CENTER BGCOLOR="#FFEEDD"
| BGCOLOR="#EBEBEB" | 01 00 00 00
| 1
| ALIGN=LEFT | trigger volume ID
|- VALIGN=TOP ALIGN=CENTER BGCOLOR="#FFEEDD"
| BGCOLOR="#8C8CCC" | 00 00 00 00
| 0
| ALIGN=LEFT | trigger volume ID of the parent trigger volume, if this one is a child
|- VALIGN=TOP ALIGN=CENTER BGCOLOR="#FFEEDD"
| BGCOLOR="#FF00C8" COLSPAN=2 | not used
| ALIGN=LEFT | space for notes
|- VALIGN=TOP ALIGN=CENTER BGCOLOR="#FFEEDD"
| BGCOLOR="#F0F096" | 81
| 129
| ALIGN=LEFT | setting of the trigger volume; the settings are stored as bits, so the following settings are possible (values in dec):<BR><BR>
{| BORDER=0 CELLPADDING=0 CELLSPACING=0
|- VALIGN=TOP
| ALIGN=RIGHT | 0 -&nbsp;
| all functions reset
|- VALIGN=TOP
| ALIGN=RIGHT | 1 -&nbsp;
| entry function called up once, rest reset
|- VALIGN=TOP
| ALIGN=RIGHT | 2 -&nbsp;
| inside function called up once, rest reset
|- VALIGN=TOP
| ALIGN=RIGHT | 4 -&nbsp;
| exit function called up once, rest reset
|- VALIGN=TOP
| ALIGN=RIGHT | 8 -&nbsp;
| entry function disabled
|- VALIGN=TOP
| ALIGN=RIGHT | 16 -&nbsp;
| inside function disabled
|- VALIGN=TOP
| ALIGN=RIGHT | 32 -&nbsp;
| exit function disabled
|- VALIGN=TOP
| ALIGN=RIGHT | 64 -&nbsp;
| all functions disabled
|- VALIGN=TOP
| ALIGN=RIGHT | 128 -&nbsp;
| only the player character can fire off the trigger volume
|}<BR>(Thanks to geyser who figured that out.)<BR>
|- VALIGN=TOP ALIGN=CENTER BGCOLOR="#FFEEDD"
| BGCOLOR="#00C864" | 00 00 00 00
| 0
| ALIGN=LEFT | unknown, always zero; maybe only a filler
|}
|}
;Resetting the trigger volume
:'''[[trigvolume_reset]](string tv_name)''' resets the TV to its preset state. The primary use of this is to re-enable "entry", "inside" or "exit" calls once the TV has been triggered (only necessary if the respective trigger-only-once flags are set of course). Note that some or all the TV functions are disabled at level load, you'll have to enable them manually after resetting the TV.
;"Inside" event
:This one is triggered at every frame (60 times per second) unless the trigger-only-once flag is set. Continuous triggering is typically needed for fire or gas damage.


;Bluebox screenshot


<CENTER>[[OBD:BINA/Sound|<==]] <FONT SIZE=5>Trigger_Volume.BINA</FONT> [[OBD:BINA/Trigger|==>]]</CENTER>
http://ssg.oni2.net/subfold/bluebox/images/212_trigger_volume_properties.png




[[Main Page]] >> [[OBD:Oni Binary Data|Oni Binary Data]] >> [[OBD:File types|File types]] >> [[OBD:BINA|BINA]] >> Trigger_Volume.BINA
{{OBD OBJC Footer | type=TRGV | prev=SNDG | next=TRIG | name=Trigger Volume}}
 
{{OBD}}

Revision as of 20:59, 26 May 2020

ONI BINARY DATA
AKVA << Other file types >> CBPI
BINA : Binary data
TMBD << Other BINA >> ONIE
OBJC : Objects
SNDG << Other OBJC >> TRIG
TRGV : Trigger Volume
XML tutorial
Overview @ Oni Stuff
OBD.png


Bin r tv.gif


Offset Type Raw Hex Value Description
0x000 char[4] 43 4A 42 4F OBJC objects
0x004 int32 7C 33 00 00 13180 size of the complete neutral part from this position in bytes
0x008 int32 27 00 00 00 39 object list version
0x00C int32 60 01 00 00 352 size of the following object in bytes
First object (grey outline
0x000 char[4] 56 47 52 54 TRGV trigger volume (TV)
0x004 int32 ED 1B 00 00 7149 old file ID
0x008 int32 00 00 00 00 0 unknown
0x00C float 5C 47 36 44 729.114990 x-position of TV
0x010 float 00 00 00 00 0.000000 y-position (height) of TV
0x014 float 73 D8 C9 C3 -403.691009 z-position of TV
0x018 float 00 00 00 00 0.000000 rotation on the x-axis in degrees
0x01C float 00 00 00 00 0.000000 rotation on the y-axis in degrees
0x020 float 00 00 00 00 0.000000 rotation on the z-axis in degrees
0x024 char[63] trigger_volume_01 name of TV
0x063 char[32] spawn_floor2_guards "entry" function; called up when character enters the TV
0x083 char[32] unused "inside" function; called while character is inside the TV
0x0A3 char[32] unused "exit" function; called up when character leaves the TV
0x0C3 bitset 01 1 teams that can fire off the TV; any combination of the following:
0x01 - Konoko
0x02 - TCTF
0x04 - Syndicate
0x08 - Neutral
0x10 - SecurityGuard
0x20 - RogueKonoko
0x40 - Switzerland
0x80 - SyndicateAccessory


0x0C4 int24 FF FF FF unknown always the same; probably padding
0x0C7 float 00 00 F8 41 31.000000 x-dimension of the TV
0x0CB float 00 00 4C 42 51.000000 y-dimension of the TV
0x0CF float 00 00 08 42 34.000000 z-dimension of the TV
0x0D3 int32 01 00 00 00 1 trigger volume ID
0x0D7 int32 00 00 00 00 0 trigger volume ID of the parent TV, if this one is a child
0x0DB char[128] unused space for notes
0x15B int32 81 00 00 00 0x80 + 0x01 flags; any combination of the following:
0x01 - "entry" called only once (otherwise called every time character enters the TV)
0x02 - "inside" called only once (otherwise called at every frame while character is in the TV)
0x04 - "exit" called only once (otherwise called every time character leaves the TV)
0x08 - "entry" disabled (can be enabled with trigvolume_enable tv_name entry 1)
0x10 - "inside" disabled (can be enabled with trigvolume_enable tv_name inside 1)
0x20 - "exit" disabled (can be enabled with trigvolume_enable tv_name exit 1)
0x40 - "all" disabled (master switch, can be enabled with trigvolume_enable tv_name all 1)
0x80 - additional restriction: only player characters can fire off the TV
0x15F 00 0 padding
Resetting the trigger volume
trigvolume_reset(string tv_name) resets the TV to its preset state. The primary use of this is to re-enable "entry", "inside" or "exit" calls once the TV has been triggered (only necessary if the respective trigger-only-once flags are set of course). Note that some or all the TV functions are disabled at level load, you'll have to enable them manually after resetting the TV.
"Inside" event
This one is triggered at every frame (60 times per second) unless the trigger-only-once flag is set. Continuous triggering is typically needed for fire or gas damage.
Bluebox screenshot

212_trigger_volume_properties.png


ONI BINARY DATA
AKVA << Other file types >> CBPI
BINA : Binary data
TMBD << Other BINA >> ONIE
OBJC : Objects
SNDG << Other OBJC >> TRIG
TRGV : Trigger Volume
[[OBD:File types/{{{family}}}|{{{family}}} file]]