]> git.lizzy.rs Git - nothing.git/blobdiff - src/game/level_picker.h
cursor -> items_cursor
[nothing.git] / src / game / level_picker.h
index 45e222abe2543b29fba2fcd79e10dab3d3443e96..5571b7844f941fec011c42b5a0e94bf2eeef564c 100644 (file)
@@ -1,20 +1,42 @@
 #ifndef LEVEL_PICKER_H_
 #define LEVEL_PICKER_H_
 
-#include <SDL2/SDL.h>
+#include <SDL.h>
 
-typedef struct LevelPicker LevelPicker;
-typedef struct Camera Camera;
+#include "game/camera.h"
+#include "game/level/background.h"
+#include "ui/wiggly_text.h"
+#include "dynarray.h"
 
-LevelPicker *create_level_picker(const char *dirpath);
-void destroy_level_picker(LevelPicker *level_picker);
+typedef struct {
+    Background background;
+    Vec2f camera_position;
+    WigglyText wiggly_text;
+    Dynarray items;
+    size_t items_cursor;
+    int selected_item;
+    Vec2f scroll;
+    Vec2f items_position;
+    Vec2f size;
+} LevelPicker;
+
+
+void level_picker_populate(LevelPicker *level_picker,
+                           const char *dirpath);
+
+static inline
+void destroy_level_picker(LevelPicker level_picker)
+{
+    free(level_picker.items.data);
+}
 
 int level_picker_render(const LevelPicker *level_picker,
-                        Camera *camera,
-                        SDL_Renderer *renderer);
+                        const Camera *camera);
 int level_picker_update(LevelPicker *level,
+                        Camera *camera,
                         float delta_time);
-int level_picker_event(LevelPicker *level_picker, const SDL_Event *event);
+int level_picker_event(LevelPicker *level_picker,
+                       const SDL_Event *event);
 int level_picker_input(LevelPicker *level_picker,
                        const Uint8 *const keyboard_state,
                        SDL_Joystick *the_stick_of_joy);
@@ -24,4 +46,5 @@ int level_picker_enter_camera_event(LevelPicker *level_picker,
 const char *level_picker_selected_level(const LevelPicker *level_picker);
 void level_picker_clean_selection(LevelPicker *level_picker);
 
+
 #endif  // LEVEL_PICKER_H_