France.trigs
France.trigs
contains trigger zones.
To be extended!
Kaitai Format
PC
meta:
id: france_trigs
file-extension: trigs
endian: le
encoding: UTF-8
seq:
- id: fourcc
contents: "JGRT"
- id: trigger_count
type: u4
- id: triggers
type: trigger
repeat: expr
repeat-expr: trigger_count
types:
trigger:
seq:
- id: type_crc
type: u4
enum: trigger_type
- id: data
type:
switch-on: type_crc
cases:
trigger_type::unknown: trigger_unknown
trigger_type::sound_trigger: trigger_sound_trigger
trigger_type::box: trigger_box
trigger_type::zone: trigger_zone
trigger_type::district: trigger_district
trigger_type::polygon: trigger_polygon
trigger_unknown:
seq:
- id: name_crc
type: u4
- id: height
type: f4
- id: polygon_volume_count
type: u2
- id: polygon_volumes
type: polygon_volume
repeat: expr
repeat-expr: polygon_volume_count
- id: unk
type: u4
trigger_sound_trigger:
seq:
- id: name_crc
type: u4
- id: sen_tag_crc
type: u4
- id: enabled
type: u2
- id: height
type: f4
- id: polygon_volume_count
type: u2
- id: polygon_volumes
type: polygon_volume
repeat: expr
repeat-expr: polygon_volume_count
- id: string_length
type: u2
- id: string
type: strz
size: string_length
- id: unk
type: u4
- id: sub1s
type: trigger_sound_trigger_sub1
repeat: expr
repeat-expr: 5
- id: unk2
type: f4
- id: unk3
type: f4
- id: sub2s
type: trigger_sound_trigger_sub2
repeat: expr
repeat-expr: 3
- id: sub1s2
type: trigger_sound_trigger_sub1
repeat: expr
repeat-expr: 4
trigger_sound_trigger_sub1:
seq:
- id: string_length
type: u2
- id: string
type: strz
size: string_length
- id: unk
type: u4
trigger_sound_trigger_sub2:
seq:
- id: sub3_count
type: u2
- id: sub3s
type: trigger_sound_trigger_sub3
repeat: expr
repeat-expr: sub3_count
trigger_sound_trigger_sub3:
seq:
- id: string_length
type: u2
- id: string
type: strz
size: string_length
- id: unk1
type: u4
- id: unk2
type: f4
- id: unk3
type: u1
- id: unk4
type: f4
trigger_box:
seq:
- id: name_crc
type: u4
- id: mat_0_x
type: f4
- id: mat_0_y
type: f4
- id: mat_0_z
type: f4
- id: mat_1_x
type: f4
- id: mat_1_y
type: f4
- id: mat_1_z
type: f4
- id: mat_2_x
type: f4
- id: mat_2_y
type: f4
- id: mat_2_z
type: f4
- id: mat_3_x
type: f4
- id: mat_3_y
type: f4
- id: mat_3_z
type: f4
- id: unk_x
type: f4
- id: unk_z
type: f4
- id: script_name_length
type: u2
- id: script_name
type: strz
size: script_name_length > 128 ? 128 : script_name_length
- id: unkshort1
type: u2
- id: unkshort2
type: u2
trigger_zone:
seq:
- id: name_crc
type: u4
- id: height
type: f4
- id: polygon_volume_count
type: u2
- id: polygon_volumes
type: polygon_volume
repeat: expr
repeat-expr: polygon_volume_count
- id: unk_count
type: u4
- id: unks
type: u4
repeat: expr
repeat-expr: unk_count
- id: strings
type: trigger_zone_strings
repeat: expr
repeat-expr: 2
- id: unk6
type: u4
- id: unk7
type: u2
trigger_zone_strings:
seq:
- id: string1_length
type: u2
- id: string1
type: strz
size: string1_length > 128 ? 128 : string1_length
- id: string2_length
type: u2
- id: string2
type: strz
size: string2_length > 128 ? 128 : string2_length
trigger_district:
seq:
- id: name_crc
type: u4
- id: unk1
type: u1
- id: unk2
type: f4
- id: polygon_volume_count
type: u2
- id: polygon_volumes
type: polygon_volume
repeat: expr
repeat-expr: polygon_volume_count
- id: unk3
type: u4
- id: unk4
type: u2
trigger_polygon:
seq:
- id: name_crc
type: u4
- id: sen_tag_crc
type: u4
- id: enabled
type: u2
- id: height
type: f4
- id: polygon_volume_count
type: u2
- id: polygon_volumes
type: polygon_volume
repeat: expr
repeat-expr: polygon_volume_count
- id: string_length
type: u2
- id: string
type: strz
size: string_length > 128 ? 128 : string_length
- id: flags
type: u2
polygon_volume:
seq:
- id: point_count
type: u2
- id: points
type: vector3
repeat: expr
repeat-expr: point_count
vector3:
seq:
- id: x
type: f4
- id: y
type: f4
- id: z
type: f4
enums:
trigger_type:
0x976F2D35: "unknown"
0x9C8E92D2: "unknown2"
0x9EE26816: "sound_trigger"
0xA0787FC8: "box"
0x0A0AFF97: "zone"
0xA13E6F5F: "district"
0xAF36A899: "polygon"