]> git.lizzy.rs Git - nothing.git/blobdiff - src/game/level/level_editor/layer.h
(#824) Integrate UndoHistory with the LevelEditor
[nothing.git] / src / game / level / level_editor / layer.h
index 3aaa3866e905db13c2f1b2cc87454a28ffa1ad79..f3678fe0fee44172275101182e1601209021eca6 100644 (file)
@@ -1,21 +1,27 @@
 #ifndef LAYER_H_
 #define LAYER_H_
 
-typedef struct Layer Layer;
-typedef struct LineStream LineStream;
+typedef enum {
+    LAYER_RECT,
+    LAYER_POINT,
+    LAYER_PLAYER,
+    LAYER_COLOR_PICKER,
+    LAYER_LABEL
+} LayerType;
 
-Layer *create_layer(void);
-Layer *create_layer_from_line_stream(LineStream *line_stream);
-void destroy_layer(Layer *layer);
+typedef struct {
+    LayerType type;
+    void *ptr;
+} LayerPtr;
 
-int layer_render(const Layer *layer, Camera *camera);
-int layer_event(Layer *layer, const SDL_Event *event);
+typedef struct Camera Camera;
+typedef struct UndoHistory UndoHistory;
 
-int layer_add_rect(Layer *layer, Rect rect, Color color);
-int layer_delete_rect_at(Layer *layer, Vec position);
-
-size_t layer_count(const Layer *layer);
-const Rect *layer_rects(const Layer *layer);
-const Color *layer_colors(const Layer *layer);
+int layer_render(LayerPtr layer, Camera *camera, int active);
+int layer_event(LayerPtr layer,
+                const SDL_Event *event,
+                const Camera *camera,
+                UndoHistory *undo_history);
+int layer_dump_stream(LayerPtr layer, FILE *stream);
 
 #endif  // LAYER_H_