]> git.lizzy.rs Git - nothing.git/blob - src/game/level_picker.h
size -> items_size
[nothing.git] / src / game / level_picker.h
1 #ifndef LEVEL_PICKER_H_
2 #define LEVEL_PICKER_H_
3
4 #include <SDL.h>
5
6 #include "game/camera.h"
7 #include "game/level/background.h"
8 #include "ui/wiggly_text.h"
9 #include "dynarray.h"
10
11 typedef struct {
12     Background background;
13     Vec2f camera_position;
14     WigglyText wiggly_text;
15     Dynarray items;
16     size_t items_cursor;
17     int selected_item;
18     Vec2f items_scroll;
19     Vec2f items_position;
20     Vec2f items_size;
21 } LevelPicker;
22
23
24 void level_picker_populate(LevelPicker *level_picker,
25                            const char *dirpath);
26
27 static inline
28 void destroy_level_picker(LevelPicker level_picker)
29 {
30     free(level_picker.items.data);
31 }
32
33 int level_picker_render(const LevelPicker *level_picker,
34                         const Camera *camera);
35 int level_picker_update(LevelPicker *level,
36                         Camera *camera,
37                         float delta_time);
38 int level_picker_event(LevelPicker *level_picker,
39                        const SDL_Event *event);
40 int level_picker_input(LevelPicker *level_picker,
41                        const Uint8 *const keyboard_state,
42                        SDL_Joystick *the_stick_of_joy);
43 int level_picker_enter_camera_event(LevelPicker *level_picker,
44                                     Camera *camera);
45
46 const char *level_picker_selected_level(const LevelPicker *level_picker);
47 void level_picker_clean_selection(LevelPicker *level_picker);
48
49
50 #endif  // LEVEL_PICKER_H_