]> git.lizzy.rs Git - nothing.git/blobdiff - src/game/level/level_editor/layer.h
Merge pull request #1046 from tsoding/704
[nothing.git] / src / game / level / level_editor / layer.h
index 3aaa3866e905db13c2f1b2cc87454a28ffa1ad79..6a7011c898368dd576aa0a83b2a898fe65b3c972 100644 (file)
@@ -1,21 +1,28 @@
 #ifndef LAYER_H_
 #define LAYER_H_
 
-typedef struct Layer Layer;
-typedef struct LineStream LineStream;
+#include "undo_history.h"
 
-Layer *create_layer(void);
-Layer *create_layer_from_line_stream(LineStream *line_stream);
-void destroy_layer(Layer *layer);
+typedef enum {
+    LAYER_RECT,
+    LAYER_POINT,
+    LAYER_PLAYER,
+    LAYER_BACKGROUND,
+    LAYER_LABEL
+} LayerType;
 
-int layer_render(const Layer *layer, Camera *camera);
-int layer_event(Layer *layer, const SDL_Event *event);
+typedef struct {
+    LayerType type;
+    void *ptr;
+} LayerPtr;
 
-int layer_add_rect(Layer *layer, Rect rect, Color color);
-int layer_delete_rect_at(Layer *layer, Vec position);
+typedef struct Camera Camera;
 
-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_