X-Git-Url: https://git.lizzy.rs/?a=blobdiff_plain;f=src%2Fgame%2Flevel%2Flevel_editor%2Flayer.h;h=e0b55a1173e6dd360f14d8e62c41e6b1ca78adfc;hb=7f0af414bc6587e837c6ecf72b869d4ec158dfc5;hp=b5589b380a523587dad216687ccdbf1cffd8abde;hpb=fbab88099d6dbaf5422ccdf6421bb64063ac293b;p=nothing.git diff --git a/src/game/level/level_editor/layer.h b/src/game/level/level_editor/layer.h index b5589b38..e0b55a11 100644 --- a/src/game/level/level_editor/layer.h +++ b/src/game/level/level_editor/layer.h @@ -1,22 +1,23 @@ #ifndef LAYER_H_ #define LAYER_H_ -// TODO(#836): Layer should be called RectLayer -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; -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); +int layer_dump_stream(LayerPtr layer, FILE *stream); #endif // LAYER_H_