#include "rect_layer.h"
#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, float fa)
+int layer_render(LayerPtr layer, Camera *camera, int active)
{
switch (layer.type) {
case LAYER_RECT:
- return rect_layer_render(layer.ptr, camera, fa);
+ return rect_layer_render(layer.ptr, camera, active);
case LAYER_POINT:
- return point_layer_render(layer.ptr, camera, fa);
+ return point_layer_render(layer.ptr, camera, active);
case LAYER_PLAYER:
- return player_layer_render(layer.ptr, camera, fa);
+ return player_layer_render(layer.ptr, camera, active);
- case LAYER_COLOR_PICKER:
- return color_picker_render(layer.ptr, camera);
+ case LAYER_BACKGROUND:
+ return background_layer_render(layer.ptr, camera, active);
+
+ case LAYER_LABEL:
+ return label_layer_render(layer.ptr, camera, active);
}
return -1;
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, undo_history);
+
+ case LAYER_POINT:
+ return point_layer_event(layer.ptr, event, camera, undo_history);
+
+ case LAYER_PLAYER:
+ return player_layer_event(layer.ptr, event, camera, undo_history);
+
+ case LAYER_BACKGROUND:
+ return background_layer_event(layer.ptr, event, camera, undo_history);
+
+ case LAYER_LABEL:
+ return label_layer_event(layer.ptr, event, camera, undo_history);
+ }
+
+ return -1;
+}
+
+int layer_dump_stream(LayerPtr layer,
+ FILE *stream)
{
switch (layer.type) {
case LAYER_RECT:
- return rect_layer_event(layer.ptr, event, camera);
+ return rect_layer_dump_stream(layer.ptr, stream);
case LAYER_POINT:
- return point_layer_event(layer.ptr, event, camera);
+ return point_layer_dump_stream(layer.ptr, stream);
case LAYER_PLAYER:
- return player_layer_event(layer.ptr, event, camera);
-
- 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;
+ return player_layer_dump_stream(layer.ptr, stream);
+
+ case LAYER_BACKGROUND: {
+ return background_layer_dump_stream(layer.ptr, stream);
+ }
+
+ case LAYER_LABEL:
+ return label_layer_dump_stream(layer.ptr, stream);
}
return -1;