summary refs log tree commit diff
path: root/src/config.zig
diff options
context:
space:
mode:
Diffstat (limited to 'src/config.zig')
-rw-r--r--src/config.zig15
1 files changed, 15 insertions, 0 deletions
diff --git a/src/config.zig b/src/config.zig
index eec36d7..86eb6d8 100644
--- a/src/config.zig
+++ b/src/config.zig
@@ -146,9 +146,14 @@ pub const Config = extern struct {
         backwards: c_int = @enumToInt(Key.S),
         left: c_int = @enumToInt(Key.A),
         right: c_int = @enumToInt(Key.D),
+        crouch: c_int = @enumToInt(Key.LEFT_CONTROL),
+        accelerate: c_int = @enumToInt(Key.LEFT_SHIFT),
+        dive: c_int = @enumToInt(Key.SPACE),
+        reload: c_int = @enumToInt(Key.R),
         aim: c_int = @enumToInt(Key.E),
         psychic_aim: c_int = @enumToInt(Key.Q),
         psychic: c_int = @enumToInt(Key.Z),
+        laser_sight: c_int = @enumToInt(Key.L),
     } = .{},
 
     levels: extern struct { ptr: [*]Level = undefined, len: usize = 0 } = .{},
@@ -206,12 +211,22 @@ pub fn parse(base_dir: []const u8) !Config {
                     config.key.left = parseKey(kv.value)
                 else if (eql(u8, kv.key, "right key"))
                     config.key.right = parseKey(kv.value)
+                else if (eql(u8, kv.key, "crouch key"))
+                    config.key.crouch = parseKey(kv.value)
+                else if (eql(u8, kv.key, "accelerate key"))
+                    config.key.accelerate = parseKey(kv.value)
+                else if (eql(u8, kv.key, "dive key"))
+                    config.key.dive = parseKey(kv.value)
+                else if (eql(u8, kv.key, "reload key"))
+                    config.key.reload = parseKey(kv.value)
                 else if (eql(u8, kv.key, "aim key"))
                     config.key.aim = parseKey(kv.value)
                 else if (eql(u8, kv.key, "psychic aim key"))
                     config.key.psychic_aim = parseKey(kv.value)
                 else if (eql(u8, kv.key, "psychic key"))
                     config.key.psychic = parseKey(kv.value)
+                else if (eql(u8, kv.key, "laser sight key"))
+                    config.key.laser_sight = parseKey(kv.value)
                 else return error.InvalidData;
             } else if (eql(u8, section, "misc")) {
                 if (eql(u8, kv.key, "custom levels"))