- Lt *lt = create_lt();
-
- PointLayer *point_layer = PUSH_LT(lt, nth_calloc(1, sizeof(PointLayer)), free);
- if (point_layer == NULL) {
- RETURN_LT(lt, NULL);
- }
- point_layer->lt = lt;
-
- point_layer->state = POINT_LAYER_IDLE;
-
- point_layer->positions = create_dynarray(sizeof(Vec2f));
- point_layer->colors = create_dynarray(sizeof(Color));
- point_layer->ids = create_dynarray(sizeof(char) * ID_MAX_SIZE);
-
- point_layer->edit_field = PUSH_LT(
- lt,
- create_edit_field(
- POINT_LAYER_ID_TEXT_SIZE,
- POINT_LAYER_ID_TEXT_COLOR),
- destroy_edit_field);
- if (point_layer->edit_field == NULL) {
- RETURN_LT(lt, NULL);
- }
+ PointLayer result = {0};
+ result.state = POINT_LAYER_IDLE;
+ result.positions = create_dynarray(sizeof(Vec2f));
+ result.colors = create_dynarray(sizeof(Color));
+ result.ids = create_dynarray(sizeof(char) * ID_MAX_SIZE);
+ result.edit_field.font_size = POINT_LAYER_ID_TEXT_SIZE;
+ result.edit_field.font_color = POINT_LAYER_ID_TEXT_COLOR;
+ result.id_name_prefix = id_name_prefix;
+ return result;
+}