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/rect_layer.h"
8 #include "game/level/level_editor/point_layer.h"
9 #include "game/level/level_editor/label_layer.h"
10 #include "ui/wiggly_text.h"
11 #include "ui/cursor.h"
13 typedef struct LevelEditor LevelEditor;
14 typedef struct Sound_samples Sound_samples;
17 LEVEL_EDITOR_IDLE = 0,
23 LevelEditorState state;
24 Vec2f camera_position;
26 Edit_field edit_field_filename;
27 LayerPicker layer_picker;
28 FadingWigglyText notice;
30 RectLayer *boxes_layer;
31 RectLayer *platforms_layer;
32 RectLayer *back_platforms_layer;
33 PointLayer *goals_layer;
34 PlayerLayer player_layer;
35 RectLayer *lava_layer;
36 RectLayer *regions_layer;
37 BackgroundLayer background_layer;
38 LabelLayer *label_layer;
40 LayerPtr layers[LAYER_PICKER_N];
42 UndoHistory *undo_history;
52 LevelEditor *create_level_editor_from_memory(Memory *memory, Cursor *cursor);
53 LevelEditor *create_level_editor_from_file_with_memory(Memory *memory, Cursor *cursor, const char *file_name);
55 int level_editor_render(const LevelEditor *level_editor,
56 const Camera *camera);
57 int level_editor_event(LevelEditor *level_editor,
58 const SDL_Event *event,
61 int level_editor_focus_camera(LevelEditor *level_editor,
63 int level_editor_update(LevelEditor *level_editor, float delta_time);
64 void level_editor_sound(LevelEditor *level_editor, Sound_samples *sound_samples);
66 #endif // LEVEL_EDITOR_H_