summary refs log tree commit diff
path: root/src/main.zig
diff options
context:
space:
mode:
Diffstat (limited to 'src/main.zig')
-rw-r--r--src/main.zig9
1 files changed, 8 insertions, 1 deletions
diff --git a/src/main.zig b/src/main.zig
index 57ac609..4e93a8a 100644
--- a/src/main.zig
+++ b/src/main.zig
@@ -23,6 +23,7 @@ pub const c = @cImport({
 
 const Loca = @import("loca").Loca;
 const Window = gf.Window;
+const Scores = misc.Scores;
 const al = @import("zeal");
 const allocator = std.heap.c_allocator;
 const configuration = @import("config.zig");
@@ -30,6 +31,8 @@ const free = std.c.free;
 const gf = @import("gfz");
 const gl = @import("zgl");
 const misc = @import("misc.zig");
+const loadScores = misc.loadScores;
+const saveScores = misc.saveScores;
 const std = @import("std");
 
 var game: *c.Game = undefined;
@@ -63,7 +66,11 @@ pub fn main() !void {
                                      "Black Shades", .{}, .{});
     try window.makeCurrent();
 
-    game = c.makeGame(@bitCast(c.Config, config)).?;
+    game = c.makeGame(@bitCast(c.Config, config),
+                      @bitCast(c.Scores, try loadScores(loca.user_data))).?;
+    defer saveScores(loca.user_data, @bitCast(Scores, c.getScores(game)))
+        catch unreachable;
+
     try window.setSizeCallback(resizeWindow);
     try gf.swapInterval(@boolToInt(config.vsync));
     c.initGl(game);