#include "game.h" GameData game = {0}; void game_init(void) { game.time.secs = 12 * GAME_SECS_PER_HOUR; game.time.day_len = 600; game.time.scale = 5; game.paused = false; } void game_exit(void) { } void game_update(void) { if (game.paused || game.time.day_len <= 0) { return; } f64 rate = (f64)GAME_SECS_PER_DAY / game.time.day_len; game.time.secs += GetFrameTime() * rate * game.time.scale; } void game_time_set(u32 hour, u32 min, f64 sec) { hour = MIN(hour, 24); min = MIN(min, 60); sec = CLAMP(sec, 0.0, 60.0); } f64 game_time_of_day(void) { f64 time = fmod(game.time.secs, (f64)GAME_SECS_PER_DAY); if (time < 0.0) { time += GAME_SECS_PER_DAY; } return time; } u32 game_time_day(void) { return (u32)floor(game.time.secs / GAME_SECS_PER_DAY); }