diff options
author | Elias Fleckenstein <eliasfleckenstein@web.de> | 2021-06-13 20:41:37 +0200 |
---|---|---|
committer | Elias Fleckenstein <eliasfleckenstein@web.de> | 2021-06-13 20:41:37 +0200 |
commit | 178089f47710ff90f71a8a2a553ed0700b198ed3 (patch) | |
tree | c1ed5d07431163868e38bfcfc7e376a96e9b1cab /plugins | |
parent | bfcda608695b83ce6a3caefceaa79c8e392405d7 (diff) | |
download | dungeon_game-178089f47710ff90f71a8a2a553ed0700b198ed3.tar.xz |
Public calculate_dtime function
Diffstat (limited to 'plugins')
-rw-r--r-- | plugins/game/game.c | 8 | ||||
-rw-r--r-- | plugins/game/game.h | 2 |
2 files changed, 8 insertions, 2 deletions
diff --git a/plugins/game/game.c b/plugins/game/game.c index 5d5c31a..152a5c9 100644 --- a/plugins/game/game.c +++ b/plugins/game/game.c @@ -3,7 +3,6 @@ #include <unistd.h> #include <assert.h> #include <ctype.h> -#include <time.h> #include <signal.h> #include <termios.h> #include <math.h> @@ -125,6 +124,11 @@ void *make_buffer(void *ptr, size_t size) return buf; } +double calculate_dtime(struct timespec from, struct timespec to) +{ + return (double) (to.tv_sec - from.tv_sec) + (double) (to.tv_nsec - from.tv_nsec) / 1000000000.0; +} + /* Game-related utility functions */ void quit() @@ -517,7 +521,7 @@ void game() while (running) { clock_gettime(CLOCK_REALTIME, &ts); - double dtime = (double) (ts.tv_sec - ts_old.tv_sec) + (double) (ts.tv_nsec - ts_old.tv_nsec) / 1000000000.0; + double dtime = calculate_dtime(ts_old, ts); ts_old = ts; bool dead = player_dead(); diff --git a/plugins/game/game.h b/plugins/game/game.h index 7ae9344..60c1d61 100644 --- a/plugins/game/game.h +++ b/plugins/game/game.h @@ -4,6 +4,7 @@ #include <stdbool.h> #include <sys/ioctl.h> #include <stddef.h> +#include <time.h> #define MAP_HEIGHT 1000 #define MAP_WIDTH 1000 #define LIGHT 10 @@ -111,6 +112,7 @@ int clamp(int v, int max, int min); int max(int a, int b); int min(int a, int b); void *make_buffer(void *ptr, size_t size); +double calculate_dtime(struct timespec from, struct timespec to); void quit(); bool player_dead(); |