///save_game(filename)
var i = 0, l, b = buffer_create(1, buffer_grow, 1),
num_objects, obj, var_names, var_types, j, var_name, var_type;
with all
{l[++i] = id}
num_objects = i
buffer_write(b, buffer_u16, num objects)
i = 0
repeat num objects
{
obj = l[++i]
buffer_write(b, buffer_f32, x)
buffer_write(b, buffer_f32, y)
buffer_write(b, buffer_u16, obj.object_index)
buffer_write(b, buffer_u16, global.object_num_vars[obj.object_index])
var_names = global.object_var_names[obj.object_index]
var_types = global.object_var_types[obj.object_index]
j = 0
repeat global.object_num_vars[obj.object_index]
{
var_name = var_names[++j]
var_type = var_types[j]
buffer_write(b, buffer_string, var_name)
buffer_write(b, buffer_u8, var_type)
if var_type >= asset_type.object
{buffer_write(b, buffer_string, asset_get_name(variable_instance_get(obj, var_name), var_type))}
else
{buffer_write(b, var_type, variable_instance_get(obj, var_name))}
}
}
buffer_save(b, argument0)