struct LevelPicker
{
Lt *lt;
- Background *background;
+ Background background;
Vec2f camera_position;
LevelFolder *level_folder;
WigglyText wiggly_text;
- Slider volume_slider;
- Vec2f volume_slider_scale;
ListSelector *list_selector;
};
}
level_picker->lt = lt;
- level_picker->background = PUSH_LT(
- lt,
- create_background(hexstr("073642")),
- destroy_background);
- if (level_picker->background == NULL) {
- RETURN_LT(lt, NULL);
- }
+ level_picker->background = create_background(hexstr("073642"));
level_picker->camera_position = vec(0.0f, 0.0f);
.color = COLOR_WHITE,
};
- level_picker->volume_slider = (Slider) {
- .drag = 0,
- .value = 80.0f,
- .max_value = 100.0f,
- };
- level_picker->volume_slider_scale = vec(0.25f, 0.10f);
-
level_picker->list_selector = PUSH_LT(
lt,
create_list_selector(
const Rect viewport = camera_view_port_screen(camera);
- if (background_render(level_picker->background, camera) < 0) {
+ if (background_render(&level_picker->background, camera) < 0) {
return -1;
}
}
}
- {
- /* CSS volume */
- const Rect position = {
- .w = viewport.w * level_picker->volume_slider_scale.x,
- .h = viewport.h * level_picker->volume_slider_scale.y,
- .x = viewport.w - viewport.w * level_picker->volume_slider_scale.x - 5.0f,
- .y = 5.0f,
- };
-
- /* HTML volume */
- if (slider_render(&level_picker->volume_slider, camera, position) < 0) {
- return -1;
- }
- }
return 0;
}
trace_assert(level_picker);
trace_assert(event);
- {
- const Rect viewport = camera_view_port_screen(camera);
- const Rect position = {
- .w = viewport.w * level_picker->volume_slider_scale.x,
- .h = viewport.h * level_picker->volume_slider_scale.y,
- .x = viewport.w - viewport.w * level_picker->volume_slider_scale.x - 5.0f,
- .y = 5.0f,
- };
- int selected = 0;
- if (slider_event(
- &level_picker->volume_slider,
- event,
- position,
- &selected) < 0) {
- return -1;
- }
- if(selected){
- return 0;
- }
- }
switch (event->type) {
case SDL_WINDOWEVENT: {
switch (event->window.event) {
camera_center_at(camera, level_picker->camera_position);
return 0;
}
-
-float level_picker_get_volume(LevelPicker *level_picker)
-{
- trace_assert(level_picker);
- return level_picker->volume_slider.value;
-}