1 #ifndef LEVEL_EDITOR_H_
2 #define LEVEL_EDITOR_H_
4 #include "game/level/level_editor/layer.h"
5 #include "game/level/level_editor/layer_picker.h"
6 #include "game/level/level_editor/undo_history.h"
7 #include "game/level/level_editor/action_picker.h"
8 #include "ui/wiggly_text.h"
11 typedef struct LevelEditor LevelEditor;
12 typedef struct RectLayer RectLayer;
13 typedef struct PointLayer PointLayer;
14 typedef struct LabelLayer LabelLayer;
15 typedef struct Edit_field Edit_field;
16 typedef struct Sound_samples Sound_samples;
19 LEVEL_EDITOR_IDLE = 0,
26 LevelEditorState state;
27 Vec2f camera_position;
29 Edit_field *edit_field_filename;
30 LayerPicker layer_picker;
31 FadingWigglyText notice;
33 RectLayer *boxes_layer;
34 RectLayer *platforms_layer;
35 RectLayer *back_platforms_layer;
36 PointLayer *goals_layer;
37 PlayerLayer player_layer;
38 RectLayer *lava_layer;
39 RectLayer *regions_layer;
40 BackgroundLayer background_layer;
41 LabelLayer *label_layer;
43 LayerPtr layers[LAYER_PICKER_N];
45 UndoHistory undo_history;
52 const char *file_name;
55 LevelEditor *create_level_editor(Cursor *cursor);
56 LevelEditor *create_level_editor_from_file(const char *file_name, Cursor *cursor);
57 void destroy_level_editor(LevelEditor *level_editor);
59 int level_editor_render(const LevelEditor *level_editor,
60 const Camera *camera);
61 int level_editor_event(LevelEditor *level_editor,
62 const SDL_Event *event,
64 int level_editor_focus_camera(LevelEditor *level_editor,
66 int level_editor_update(LevelEditor *level_editor, float delta_time);
67 void level_editor_sound(LevelEditor *level_editor, Sound_samples *sound_samples);
69 #endif // LEVEL_EDITOR_H_