diff options
Diffstat (limited to 'src/config.zig')
-rw-r--r-- | src/config.zig | 15 |
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")) |