]> git.lizzy.rs Git - nothing.git/blobdiff - src/game/level/level_editor/layer.c
(#1139) Implement Move snap for Label Layer
[nothing.git] / src / game / level / level_editor / layer.c
index 783cec1ab2749802a467409702aa54600e122069..1c3e1b8eefd5323a2c880187235c3f5eb3a12e43 100644 (file)
@@ -3,9 +3,10 @@
 #include "point_layer.h"
 #include "player_layer.h"
 #include "label_layer.h"
+#include "background_layer.h"
 #include "./layer.h"
 
-int layer_render(LayerPtr layer, Camera *camera, int active)
+int layer_render(LayerPtr layer, const Camera *camera, int active)
 {
     switch (layer.type) {
     case LAYER_RECT:
@@ -17,8 +18,8 @@ int layer_render(LayerPtr layer, Camera *camera, int active)
     case LAYER_PLAYER:
         return player_layer_render(layer.ptr, camera, active);
 
-    case LAYER_COLOR_PICKER:
-        return active ? color_picker_render(layer.ptr, camera) : 0;
+    case LAYER_BACKGROUND:
+        return background_layer_render(layer.ptr, camera, active);
 
     case LAYER_LABEL:
         return label_layer_render(layer.ptr, camera, active);
@@ -29,23 +30,24 @@ int layer_render(LayerPtr layer, Camera *camera, int active)
 
 int layer_event(LayerPtr layer,
                 const SDL_Event *event,
-                const Camera *camera)
+                const Camera *camera,
+                UndoHistory *undo_history)
 {
     switch (layer.type) {
     case LAYER_RECT:
-        return rect_layer_event(layer.ptr, event, camera);
+        return rect_layer_event(layer.ptr, event, camera, undo_history);
 
     case LAYER_POINT:
-        return point_layer_event(layer.ptr, event, camera);
+        return point_layer_event(layer.ptr, event, camera, undo_history);
 
     case LAYER_PLAYER:
-        return player_layer_event(layer.ptr, event, camera);
+        return player_layer_event(layer.ptr, event, camera, undo_history);
 
-    case LAYER_COLOR_PICKER:
-        return color_picker_event(layer.ptr, event, NULL);
+    case LAYER_BACKGROUND:
+        return background_layer_event(layer.ptr, event, camera, undo_history);
 
     case LAYER_LABEL:
-        return label_layer_event(layer.ptr, event, camera);
+        return label_layer_event(layer.ptr, event, camera, undo_history);
     }
 
     return -1;
@@ -64,9 +66,8 @@ int layer_dump_stream(LayerPtr layer,
     case LAYER_PLAYER:
         return player_layer_dump_stream(layer.ptr, stream);
 
-    case LAYER_COLOR_PICKER: {
-        color_hex_to_stream(color_picker_rgba(layer.ptr), stream);
-        return fprintf(stream, "\n");
+    case LAYER_BACKGROUND: {
+        return background_layer_dump_stream(layer.ptr, stream);
     }
 
     case LAYER_LABEL: