z_mirror/sdl-osu
git clone https://git.raiguard.me/z_mirror/sdl-osu
836a89c
trunk
1#pragma once 2#include "hitsound.h" 3#include <SDL3/SDL_stdinc.h> 4 5struct Osu_Beatmap ; 6struct Osu_Game ; 7struct Osu_Graphics ; 8 9// TODO: Read AR from beatmap file and use to calculate these values. 10static const Uint16 OSU_HITOBJECT_LEAD_IN = 500 ; 11static const Uint16 OSU_HITOBJECT_LEAD_OUT = 100 ; 12 13enum Osu_HitObjectType :Uint8 { 14OSU_HITOBJECT_TYPE_CIRCLE , 15OSU_HITOBJECT_TYPE_SLIDER , 16OSU_HITOBJECT_TYPE_SPINNER , 17}; 18 19struct Osu_HitObject { 20enum Osu_HitObjectType type ; 21Osu_HitSounds hitSounds ;// Which hit sounds should be played when the object is hit. 22float x ,y ;// Position in osu! pixels. 23Sint32 time ;// Time in ticks (milliseconds) when the object should be hit. 24}; 25 26// A collection of hit objects. 27struct Osu_HitObjects { 28struct Osu_HitObject * objects ; 29size_t len ; 30size_t cursor ; 31}; 32 33struct Osu_HitObjects * Osu_LoadHitObjectsFromBeatmap (struct Osu_Beatmap * beatmap ); 34void Osu_DestroyHitObjects (struct Osu_HitObjects * hitObjects ); 35 36void Osu_UpdateHitObjects (struct Osu_HitObjects * hitObjects ,struct Osu_Game * game ); 37void Osu_RenderHitObjects (struct Osu_HitObjects * hitObjects ,struct Osu_Graphics * graphics ,Sint32 tick );