diff --git a/Cargo.lock b/Cargo.lock index 519427e..6db1aee 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -553,7 +553,7 @@ checksum = "7da8b5736845d9f2fcb837ea5d9e2628564b3b043a70948a3f0b778838c5fb4f" [[package]] name = "svc16" -version = "0.2.0" +version = "0.3.0" dependencies = [ "anyhow", "clap", diff --git a/Cargo.toml b/Cargo.toml index 0196e9b..514156e 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "svc16" -version = "0.2.0" +version = "0.3.0" edition = "2021" authors = ["Jan Neuendorf"] description = "An emulator for a simple virtual computer" diff --git a/src/main.rs b/src/main.rs index 9a22a08..912ca4c 100644 --- a/src/main.rs +++ b/src/main.rs @@ -90,15 +90,30 @@ fn get_input_code(window: &Window) -> (u16, u16) { let mp = window.get_mouse_pos(minifb::MouseMode::Clamp).unwrap(); let pos_code = mp.1 as u16 * 256 + mp.0 as u16; let mut key_code = 0_u16; - if window.get_mouse_down(minifb::MouseButton::Left) - || window.is_key_down(Key::A) - || window.is_key_down(Key::Space) - { + if window.get_mouse_down(minifb::MouseButton::Left) || window.is_key_down(Key::Space) { key_code += 1; } if window.get_mouse_down(minifb::MouseButton::Right) || window.is_key_down(Key::B) { key_code += 2; } + if window.is_key_down(Key::Up) || window.is_key_down(Key::W) { + key_code += 4; + } + if window.is_key_down(Key::Down) || window.is_key_down(Key::S) { + key_code += 8; + } + if window.is_key_down(Key::Left) || window.is_key_down(Key::A) { + key_code += 16; + } + if window.is_key_down(Key::Right) || window.is_key_down(Key::D) { + key_code += 32; + } + if window.is_key_down(Key::N) { + key_code += 64; + } + if window.is_key_down(Key::M) { + key_code += 128; + } (pos_code, key_code) }