From 08cb8d6a585dd552b69a488d9db1be123f01467a Mon Sep 17 00:00:00 2001 From: tech kaczynski Date: Tue, 22 Sep 2026 22:38:57 +1000 Subject: initial commit. --- game.c | 46 ++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 46 insertions(+) create mode 100644 game.c (limited to 'game.c') diff --git a/game.c b/game.c new file mode 100644 index 0000000..53b68cf --- /dev/null +++ b/game.c @@ -0,0 +1,46 @@ +#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); +} -- cgit v1.2.3