about summary refs log tree commit diff stats
diff options
context:
space:
mode:
-rw-r--r--premake5.lua6
-rw-r--r--src/flatpak/flatpak_launch.sh5
-rw-r--r--src/marathon.c56
-rw-r--r--src/pong.h1
-rw-r--r--src/versus.c6
5 files changed, 62 insertions, 12 deletions
diff --git a/premake5.lua b/premake5.lua
index b00e007..8e86b50 100644
--- a/premake5.lua
+++ b/premake5.lua
@@ -8,8 +8,8 @@ project("Pong")
         execute = function()
 	    os.mkdir(string.format("%s/Pong/resources", prefix))
 	    os.executef("cp -r resources/* %s/Pong/resources/", prefix)
-            os.executef("install -m755 bin/*/Pong %s/Pong/pong", prefix)
-            os.exit(0)
+        os.executef("install -m755 bin/*/Pong %s/Pong/pong", prefix)
+        os.exit(0)
         end
     }
 
@@ -103,6 +103,6 @@ project("Pong")
     then
     else
         buildoptions {"`pkgconf --cflags raylib`", "`pkgconf --cflags glfw3`", "`pkgconf --cflags gl`", "`pkgconf --cflags sdl2`", "`pkgconf --cflags SDL2_mixer`", "`pkgconf --cflags glu`"}
-        linkoptions {"`pkgconf --libs raylib`", "`pkgconf --libs glfw3`", "`pkgconf --libs gl`", "`pkgconf --libs sdl2`", "`pkgconf --libs SDL2_mixer`", "`pkgconf --libs glu`"}  
+        linkoptions {"`pkgconf --libs raylib`", "`pkgconf --libs glfw3`", "`pkgconf --libs gl`", "`pkgconf --libs sdl2`", "`pkgconf --libs SDL2_mixer`", "`pkgconf --libs glu`"}
     end
     
diff --git a/src/flatpak/flatpak_launch.sh b/src/flatpak/flatpak_launch.sh
index 1312ef3..959858f 100644
--- a/src/flatpak/flatpak_launch.sh
+++ b/src/flatpak/flatpak_launch.sh
@@ -1,4 +1,5 @@
 #!/bin/sh
 # This file is only for flatpak.
-DIRECTORY="$(dirname $0)"
-cd $DIRECTORY/../Pong && ./pong $@
\ No newline at end of file
+DIRECTORY="$(dirname "$0")"
+RUN_COMMAND='./pong $@'
+cd "$DIRECTORY"/../Pong && $RUN_COMMAND
\ No newline at end of file
diff --git a/src/marathon.c b/src/marathon.c
index 319b425..904c645 100644
--- a/src/marathon.c
+++ b/src/marathon.c
@@ -1,7 +1,53 @@
 #include "pong.h"
+#include <raylib.h>
 
-void leaderboard_record() {
-    
+void leaderboard_record(int Score) {
+    bool LeaderBoardGoing = true;
+    struct {
+        char Name[256];
+        int Score;
+    } LeaderboardEntry;
+    LeaderboardEntry.Score = Score;
+    strcpy(LeaderboardEntry.Name, "\0");
+    uint16_t CharacterNumber = 0;
+    int Key = 0;
+    while(LeaderBoardGoing == true) {
+        BeginDrawing();
+        Key = GetKeyPressed();
+        switch(Key) {
+            case KEY_BACKSPACE:
+                if(CharacterNumber != 0) {
+                    LeaderboardEntry.Name[CharacterNumber] = '\0';
+                    CharacterNumber -= 1;
+                }
+                break;
+            case KEY_ENTER:
+                if(CharacterNumber != 0) {
+                    LeaderBoardGoing = false;
+                }
+                break;
+            default:
+                if (Key >= 33 && Key <= 126) {
+                    LeaderboardEntry.Name[CharacterNumber] = '\0'+Key;
+                    CharacterNumber += 1;
+                }
+                break;
+        }
+        printf("%d,%s\n", CharacterNumber, LeaderboardEntry.Name);
+        EndDrawing();
+    }
+    char *LeaderboardDirectory = SDL_GetPrefPath("iotib", "Pong");
+	char LeaderboardFilePath[8192];
+	snprintf(LeaderboardFilePath, sizeof(LeaderboardFilePath), "%s/leaderboard.txt", LeaderboardDirectory);
+	FILE *LeaderboardFile;
+    // Put save to file here.
+    if ((LeaderboardFile = fopen(LeaderboardFilePath, "a")) == NULL) {
+        fprintf(stderr, "Unable to create leaderboard file.\n");
+        return;
+    }
+    fprintf(LeaderboardFile, "%s %d\n", LeaderboardEntry.Name, Score);
+    fclose(LeaderboardFile);
+    return;
 }
 
 void marathon_main() {
@@ -86,6 +132,12 @@ void marathon_main() {
         //Updates hitbox with player's position.
 		Player.HitBox.y = Player.Y;
 
+        // End Game
+        if(Ball.X < 0) {
+            leaderboard_record(Player.Score);
+            MarathonGoing = false;
+        }
+
         BeginDrawing();
 			ClearBackground(BLACK);
 			BeginMode2D(MainCamera);
diff --git a/src/pong.h b/src/pong.h
index 25ac56b..eef1150 100644
--- a/src/pong.h
+++ b/src/pong.h
@@ -14,6 +14,7 @@
 #include <time.h>
 #include <setjmp.h>
 #include <string.h>
+#include <stdint.h>
 
 #include "sounds.h"
 
diff --git a/src/versus.c b/src/versus.c
index 6523974..45a796d 100644
--- a/src/versus.c
+++ b/src/versus.c
@@ -1,9 +1,5 @@
 #include "pong.h"
 
-static void game_thread() {
-	
-}
-
 void versus_main() {
     // Init Player Variables
 	struct Players Player;
@@ -130,7 +126,7 @@ void versus_main() {
 		//Turn Scores into strings.
 		snprintf(PlayerScore, 50, "Player: %d", Player.Score);
 		snprintf(EnemyScore, 50, "Enemy: %d", Enemy.Score);
-		
+		//fprintf(stdout, "%d\n", GetFPS());
 		BeginDrawing();
 			ClearBackground(BLACK);
 			BeginMode2D(MainCamera);