about summary refs log tree commit diff stats
path: root/src/main.c
diff options
context:
space:
mode:
authorCharadon <dev@iotib.net>2022-06-13 19:30:46 -0400
committerCharadon <dev@iotib.net>2022-06-13 19:30:46 -0400
commit27a0d0856f33ddd927a5f8d9b7537d58433aad73 (patch)
treef419e4fa455685719e778b64449b3c8e37f8ed5e /src/main.c
parenta232dc6b19489adb361a178e07f4e3dc668a8cad (diff)
downloadPong-C-27a0d0856f33ddd927a5f8d9b7537d58433aad73.tar.gz
Revert "Attempt #2 at internal clock"
This reverts commit 141fb04b0d4d1ee07a8b7773824785248ec1c282.
Diffstat (limited to 'src/main.c')
-rw-r--r--src/main.c22
1 files changed, 15 insertions, 7 deletions
diff --git a/src/main.c b/src/main.c
index ef07c98..4886523 100644
--- a/src/main.c
+++ b/src/main.c
@@ -1,5 +1,4 @@
 #include "pong.h"
-#include <raylib.h>
 
 int Difficulty = 1;
 SDL_atomic_t Ticks;
@@ -55,16 +54,25 @@ static int internal_clock() {
 	struct timespec Remaining = {
 		0, 0
 	};
+	bool Lock = true;
 	while(GameGoing == true) {
 		SDL_AtomicAdd(&Ticks, 1);
-		double OldTime = GetTime();
 		nanosleep(&Delay, &Remaining);
-		double NewTime = GetTime();
-		printf("%lf,%lf,%d,%lf\n", OldTime, NewTime, SDL_AtomicGet(&Ticks), (NewTime-OldTime));
-		while((OldTime-NewTime) > (1.0/60.0f)) {
-			NewTime = GetTime();
-			printf("%lf\n", (OldTime-NewTime));
+		if (Remaining.tv_nsec != 0 && Remaining.tv_sec != 0) {
+			Lock = true;
+			double InitialTime = GetTime();
+			double TotalRemainingTime = (Remaining.tv_sec/1000000000.0f)+(Remaining.tv_nsec*1000000000.0f);
+			while(Lock == true) {
+				double CurrentTime = GetTime() - InitialTime;
+				TotalRemainingTime -= CurrentTime;
+				if(TotalRemainingTime <= 0) {
+					Lock = false;
+				}
+			}
+		} else {
+			Lock = false;
 		}
+		
 	}
 	return(0);
 }