92 lines
No EOL
2.2 KiB
Text
92 lines
No EOL
2.2 KiB
Text
//------------------------------------------------
|
|
//--- 010 Editor v11.0.1 Binary Template
|
|
//
|
|
// File: vt2_network_config_new.bt
|
|
// Authors: Lucas Schwiderski
|
|
// Version:
|
|
// Purpose:
|
|
// Category: Vermintide 2
|
|
// File Mask: *.network_config
|
|
// ID Bytes: 23 00 00 00
|
|
// History:
|
|
//------------------------------------------------
|
|
|
|
typedef enum<BYTE> {
|
|
Bool,
|
|
Int,
|
|
Float,
|
|
Vector3,
|
|
Quaternion,
|
|
String,
|
|
Int64 = 0x07,
|
|
Array,
|
|
GamerObjectId = 0x34
|
|
} Primitive;
|
|
|
|
typedef struct {
|
|
uint32 name_hash;
|
|
uint32 padding;
|
|
uint32 data_1;
|
|
Primitive primitive;
|
|
uint16 bits;
|
|
byte unknown_1;
|
|
uint32 min; // Possibly 'min' for number values
|
|
uint32 max;
|
|
} Type;
|
|
|
|
typedef struct {
|
|
uint32 index;
|
|
} ObjectField;
|
|
|
|
typedef struct {
|
|
uint32 index;
|
|
} ObjectFieldType;
|
|
|
|
typedef struct {
|
|
uint32 name;
|
|
} ObjectFieldName;
|
|
|
|
typedef struct {
|
|
uint32 name_hash;
|
|
uint32 unknown_1;
|
|
uint32 unknown_2;
|
|
float priority;
|
|
float update_rate;
|
|
uint32 num_field_types <hidden=true>;
|
|
ObjectFieldType object_field_types[num_field_types];
|
|
uint32 num_field_names <hidden=true>;
|
|
if (num_field_names != num_field_types)
|
|
return "Number of objects types and names doesn't match";
|
|
ObjectFieldName object_field_names[num_field_names];
|
|
} Object;
|
|
|
|
// Templates don't support defining an array of null-terminated strings,
|
|
// so we need to wrap it into a struct
|
|
typedef struct {
|
|
string name;
|
|
} ObjectName;
|
|
|
|
uint32 version;
|
|
uint32 reliable_send_buffer_size;
|
|
uint32 reliable_receive_buffer_size;
|
|
|
|
uint32 num_types <hidden=true>;
|
|
Type types[num_types];
|
|
|
|
uint32 num_object_names <hidden=true>;
|
|
uint16 object_start_positions[num_object_names] <hidden=true>;
|
|
uint32 total_names_length <hidden=true>;
|
|
|
|
// By default the array would be optimized to truncate every entry
|
|
// to the length of the first one.
|
|
ObjectName object_names[num_object_names] <optimize=false, open=false, hidden=true>;
|
|
|
|
uint32 padding_length <hidden=true>;
|
|
FSkip(padding_length);
|
|
|
|
uint32 num_objects <hidden=false>;
|
|
|
|
if (num_object_names != num_objects)
|
|
return "Number of objects and names doesn't match";
|
|
|
|
Object objects[num_objects] <optimize=false, open=false>; |