#pragma once #include struct Osu_BeatmapStore; struct Osu_Game; struct Osu_Graphics; union SDL_Event; struct Osu_BeatmapSelector { struct Osu_Beatmap** beatmaps; size_t beatmapsLen; struct Osu_Beatmap* selectedBeatmap; char searchText[1024]; struct TTF_Text** beatmapTexts; // len is beatmapsLen double beatmapYOffset; }; struct Osu_BeatmapSelector* Osu_CreateBeatmapSelector(struct Osu_Game* game, struct Osu_BeatmapStore* beatmapStore); void Osu_DestroyBeatmapSelector(struct Osu_Game* game, struct Osu_BeatmapSelector* selector); void Osu_HandleBeatmapSelectorEvent(struct Osu_Game* game, struct Osu_BeatmapSelector* selector, union SDL_Event* event); void Osu_RenderBeatmapSelector(struct Osu_BeatmapSelector* selector, struct Osu_Graphics* graphics);