#include "system/lt.h"
#include "system/nth_alloc.h"
#include "str.h"
+#include "game/level/background.h"
+
+/* TODO(#606): LevelPicker doesn't allow to select any levels */
struct LevelPicker
{
Lt *lt;
const char *dirpath;
+ Background *background;
+ Vec camera_position;
};
LevelPicker *create_level_picker(const char *dirpath)
RETURN_LT(lt, NULL);
}
+ level_picker->background = PUSH_LT(
+ lt,
+ create_background(hexstr("073642")),
+ destroy_background);
+ if (level_picker->background == NULL) {
+ RETURN_LT(lt, NULL);
+ }
+
+ level_picker->camera_position = vec(0.0f, 0.0f);
+
return level_picker;
}
}
int level_picker_render(const LevelPicker *level_picker,
+ Camera *camera,
SDL_Renderer *renderer)
{
trace_assert(level_picker);
trace_assert(renderer);
+
+ if (background_render(level_picker->background, camera) < 0) {
+ return -1;
+ }
+
return 0;
}
-int level_picker_update(LevelPicker *level,
+int level_picker_update(LevelPicker *level_picker,
float delta_time)
{
- trace_assert(level);
- (void) delta_time;
+ trace_assert(level_picker);
+
+ vec_add(&level_picker->camera_position,
+ vec(50.0f * delta_time, 0.0f));
+
return 0;
}
{
trace_assert(level_picker);
}
+
+int level_picker_enter_camera_event(LevelPicker *level_picker,
+ Camera *camera)
+{
+ camera_center_at(camera, level_picker->camera_position);
+ return 0;
+}