@@ -132,23 +132,29 @@ { noMessageFilter(); this.keyDown ~= &my_keydown; } + + void do_manual_command(char c) + { + solver.force(c); + fn(c); + } void my_keydown(Control c, KeyEventArgs ev) { switch(ev.keyCode) { - case Keys.DOWN: fn('D'); break; - case Keys.UP: fn('U'); break; - case Keys.LEFT: fn('L'); break; - case Keys.RIGHT: fn('R'); break; - case Keys.W: fn('W'); break; - case Keys.S: fn('S'); break; - case Keys.A: fn('A'); break; + case Keys.DOWN: do_manual_command('D'); break; + case Keys.UP: do_manual_command('U'); break; + case Keys.LEFT: do_manual_command('L'); break; + case Keys.RIGHT: do_manual_command('R'); break; + case Keys.W: do_manual_command('W'); break; + case Keys.S: do_manual_command('S'); break; + case Keys.A: do_manual_command('A'); break; case Keys.G: fn(solver.single_step()); break; default: break; } } Solver solver; }