]> git.lizzy.rs Git - nothing.git/blobdiff - src/game/level/level_editor/layer.c
Merge pull request #998 from tsoding/824
[nothing.git] / src / game / level / level_editor / layer.c
index 19d0329f93fe6aeb4f73d587bcd8c5f2fa88c83c..d5a170bcb4673f58795211f02c844c2178ee0e87 100644 (file)
@@ -29,27 +29,25 @@ 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:
+        // TODO(#1000): undo history is not really applicable to color picker as layer
+        return color_picker_event(layer.ptr, event, NULL);
 
-    case LAYER_COLOR_PICKER: {
-        if (event->type == SDL_MOUSEBUTTONUP || event->type == SDL_MOUSEBUTTONDOWN) {
-            return color_picker_mouse_button(layer.ptr, &event->button, NULL);
-        } else {
-            return 0;
-        }
-    } break;
     case LAYER_LABEL:
-        return label_layer_event(layer.ptr, event, camera);
+        return label_layer_event(layer.ptr, event, camera, undo_history);
     }
 
     return -1;
@@ -69,7 +67,7 @@ int layer_dump_stream(LayerPtr layer,
         return player_layer_dump_stream(layer.ptr, stream);
 
     case LAYER_COLOR_PICKER: {
-        color_hex_to_stream(((ColorPicker*)layer.ptr)->color, stream);
+        color_hex_to_stream(color_picker_rgba(layer.ptr), stream);
         return fprintf(stream, "\n");
     }