Structs

Structs are a way to group related variables or lists together.

Declaration

struct my_struct {
    x,
    y,
    z
}

Usage

Declaring a struct variable

my_struct my_variable = value;

Declaring a struct list

list my_struct my_list;

Accessing struct fields

Accessing a struct variable field

my_variable.my_field

Accessing a struct argument field

$my_argument.my_field

Accessing a struct list field

my_list[index].my_field

Struct literals

Struct literals are a way to create structs.

my_struct my_variable = my_struct {
    x: 10,
    y: 20,
    z: 30
};

Passing structs

You can pass structs to procedures via arguments or variables.

list my_struct my_list;

proc my_procedure my_struct arg {
    # code
}

onflag {
    my_procedure my_struct {
        x: 10,
        y: 20,
        z: 30
    };
    my_procedure my_list[1];
}
onflag {
    my_struct foo = my_struct {
        x: 10,
        y: 20,
        z: 30
    };
    my_struct bar = foo;
}

Source