OBD:BINA/OBJC/TRGV: Difference between revisions

From OniGalore
< OBD:BINA‎ | OBJC
Jump to navigation Jump to search
No edit summary
(fixing a few things, but not all of them yet)
Line 12: Line 12:
{{OBDtr| 0x00C | int32    |00FFFF| 60 01 00 00 | 352        | size of the following object in bytes }}
{{OBDtr| 0x00C | int32    |00FFFF| 60 01 00 00 | 352        | size of the following object in bytes }}
{{OBDtrBK|First object (grey outline}}
{{OBDtrBK|First object (grey outline}}
{{OBDtr| 0x000 | char[4]  |FFC8C8| 56 47 52 54 | TRGV      | trigger volume }}
{{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| 0x004 | int32    |FFFFC8| ED 1B 00 00 | 7149      | old file ID }}
{{OBDtr| 0x008 | int32    |C8FFC8| 00 00 00 00 | 0          | unknown }}
{{OBDtr| 0x008 | int32    |C8FFC8| 00 00 00 00 | 0          | unknown }}
{{OBDtr| 0x00C | float    |C8FFFF| 5C 47 36 44 | 729.114990 | x-position of trigger volume }}
{{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 trigger volume }}
{{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 trigger volume }}
{{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| 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| 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 }}
{{OBDtr| 0x020 | float    |FFC8FF| 00 00 00 00 | 0.000000  | rotation on the z-axis in degrees }}
{{OBDtr2|0x024 | char[63] |FFC800| Give VDG Pistol ...      | trigger volume name }}
{{OBDtr2|0x024 | char[63] |FFC800| trigger_volume_01        | name of TV }}
{{OBDtr2|0x063 | char[32] |C800C8| spawn_floor2_guards      | enter function; called up when you enter the trigger volume }}
{{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 up when you're inside the trigger volume }}
{{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 you leave the trigger volume }}
{{OBDtr2|0x0A3 | char[32] |B0C3D4| unused                  | "exit" function; called up when character leaves the TV }}
{{OBDtr| 0x0C3 | bitset  |E7CEA5| 01          | 1          | teams, which can trigger off the trigger volume; the following bits are possible:
{{OBDtr| 0x0C3 | bitset  |E7CEA5| 01          | 1          | teams that can fire off the TV; any combination of the following:
 
 
:00 - no team
:01 - Konoko
:02 - TCTF
:04 - Syndicate
:08 - Neutral
:10 - SecurityGuard
:20 - RogueKonoko
:40 - Switzerland
:80 - SyndicateAccessory


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


}}
}}
{{OBDtr| 0x0C4 | int24    |FFDDDD| FF FF FF    | unknown    | unknown, always the same; maybe only a filler }}
{{OBDtr| 0x0C4 | int24    |FFDDDD| FF FF FF    | unknown    | always the same; probably padding }}
{{OBDtr| 0x0C7 | float    |64AAAA| 00 00 F8 41 | 31.000000  | x-dimension of the trigger volume }}
{{OBDtr| 0x0C7 | float    |64AAAA| 00 00 F8 41 | 31.000000  | x-dimension of the TV }}
{{OBDtr| 0x0CB | float    |64AAAA| 00 00 4C 42 | 51.000000  | y-dimension of the trigger volume }}
{{OBDtr| 0x0CB | float    |64AAAA| 00 00 4C 42 | 51.000000  | y-dimension of the TV }}
{{OBDtr| 0x0CF | float    |64AAAA| 00 00 08 42 | 34.000000  | z-dimension of the trigger volume }}
{{OBDtr| 0x0CF | float    |64AAAA| 00 00 08 42 | 34.000000  | z-dimension of the TV }}
{{OBDtr| 0x0D3 | int32    |EBEBEB| 01 00 00 00 | 1          | trigger volume ID }}
{{OBDtr| 0x0D3 | int32    |EBEBEB| 01 00 00 00 | 1          | trigger volume ID }}
{{OBDtr| 0x0D7 | int32    |8C8CCC| 00 00 00 00 | 0          | trigger volume ID of the parent trigger volume, if this one is a child }}
{{OBDtr| 0x0D7 | int32    |8C8CCC| 00 00 00 00 | 0          | trigger volume ID of the parent TV, if this one is a child }}
{{OBDtr2|0x0DB | char[128]|FF00C8| unused                  | space for notes }}
{{OBDtr2|0x0DB | char[128]|FF00C8| unused                  | space for notes }}
{{OBDtr| 0x15B | bitset  |F0F096| 81          | 129        | trigger volume flags; the following bits are possible:
{{OBDtr| 0x15B | bitset  |F0F096| 81          | 0x80 + 0x01| flags; any combination of the following:
 
 
:00 - all functions reset
:01 - entry function called up once, rest reset
:02 - inside function called up once, rest reset
:04 - exit function called up once, rest reset
:08 - entry function disabled
:10 - inside function disabled
:20 - exit function disabled
:40 - all functions disabled
:80 - only the player character can fire off the trigger volume


: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


}}
}}
{{OBDtr| 0x15C | int32    |00C864| 00 00 00 00 | 0          | unknown, always zero; maybe only a filler }}
{{OBDtr| 0x15C | int32    |00C864| 00 00 00 00 | 0          | 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
;Bluebox screenshot
 
:(replacing this with a nicer-looking one ASAP)
http://ssg.oni2.net/subfold/bluebox/images/212_trigger_volume_properties.jpg
http://ssg.oni2.net/subfold/bluebox/images/212_trigger_volume_properties.jpg



Revision as of 11:20, 22 March 2008

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 object collection
0x004 int32 7C 33 00 00 13180 size of the complete neutral part from this postion in bytes
0x008 int32 27 00 00 00 39 object collection 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 bitset 81 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


0x15C int32 00 00 00 00 0 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
(replacing this with a nicer-looking one ASAP)

212_trigger_volume_properties.jpg

Wahl = Choose
Abbrechen = Cancel
Speichern = Save
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]]