]> git.lizzy.rs Git - nothing.git/blob - src/game/level/level_editor/point_layer.h
81a9d40fa96febdf42b0a74e4d2491d5fb961bd9
[nothing.git] / src / game / level / level_editor / point_layer.h
1 #ifndef POINT_LAYER_H_
2 #define POINT_LAYER_H_
3
4 #include "math/vec.h"
5 #include "color.h"
6 #include "layer.h"
7
8 #define ID_MAX_SIZE 36
9
10 typedef struct PointLayer PointLayer;
11 typedef struct LineStream LineStream;
12
13 LayerPtr point_layer_as_layer(PointLayer *point_layer);
14 // NOTE: create_point_layer and create_point_layer_from_line_stream do
15 // not own id_name_prefix
16 PointLayer *create_point_layer(const char *id_name_prefix);
17 PointLayer *create_point_layer_from_line_stream(LineStream *line_stream,
18                                                 const char *id_name_prefix);
19 PointLayer *chop_point_layer(Memory *memory,
20                              String *input,
21                              const char *id_name_prefix);
22 void destroy_point_layer(PointLayer *point_layer);
23
24 int point_layer_render(const PointLayer *point_layer,
25                        const Camera *camera,
26                        int active);
27 int point_layer_event(PointLayer *point_layer,
28                       const SDL_Event *event,
29                       const Camera *camera,
30                       UndoHistory *undo_history);
31
32 int point_layer_dump_stream(const PointLayer *point_layer,
33                             FILE *filedump);
34
35 size_t point_layer_count(const PointLayer *point_layer);
36 const Vec2f *point_layer_positions(const PointLayer *point_layer);
37 const Color *point_layer_colors(const PointLayer *point_layer);
38 const char *point_layer_ids(const PointLayer *point_layer);
39
40 #endif  // POINT_LAYER_H_