diff options
Diffstat (limited to 'test/rl.rs')
-rw-r--r-- | test/rl.rs | 44 |
1 files changed, 21 insertions, 23 deletions
@@ -1,53 +1,51 @@ extern mod term; use term::{KeyCharacter,KeyEscape,KeyUp,KeyDown,KeyLeft,KeyRight}; -fn term_app (body: &fn (r: &mut term::Reader, w: &mut term::Writer)) { - let mut writer = term::Writer(true); - let mut reader = term::Reader(true); +fn term_app (body: &fn (r: &mut term::Term)) { + let mut term = term::Term(true); do term::ios::preserve { - writer.alternate_screen(true); - body(&mut reader, &mut writer); + term.alternate_screen(true); + body(&mut term); } } -fn draw_map (w: &mut term::Writer, rows: uint, cols: uint) { +fn draw_map (term: &mut term::Term, rows: uint, cols: uint) { for uint::range(0, rows) |i| { - w.move(0, i); - w.write(str::repeat(".", cols)); + term.move(0, i); + term.write(str::repeat(".", cols)); } } -fn draw_character (w: &mut term::Writer, x: uint, y: uint) { - w.move(x, y); - w.write("@"); - w.move(x, y); +fn draw_character (term: &mut term::Term, x: uint, y: uint) { + term.move(x, y); + term.write("@"); + term.move(x, y); } -fn draw_ground (w: &mut term::Writer, x: uint, y: uint) { - w.move(x, y); - w.write("."); +fn draw_ground (term: &mut term::Term, x: uint, y: uint) { + term.move(x, y); + term.write("."); } fn main () { let (cols, rows) = term::size(); - do term_app |r, w| { + do term_app |term| { term::cbreak(); term::echo(false); - w.clear(); + term.clear(); - draw_map(w, rows, cols); + draw_map(term, rows, cols); let mut (x, y) = (0u, 0u); let mut cursor = true; loop { - draw_character(w, x, y); - w.flush(); - let k = match r.read() { + draw_character(term, x, y); + let k = match term.read() { Some(key) => key, None => break, }; - draw_ground(w, x, y); + draw_ground(term, x, y); match k { KeyCharacter('q') | KeyEscape => { break } @@ -57,7 +55,7 @@ fn main () { KeyCharacter('k') | KeyUp if y > 0 => { y -= 1 } KeyCharacter('l') | KeyRight if x < cols - 1 => { x += 1 } - KeyCharacter(' ') => { w.cursor(cursor); cursor = !cursor } + KeyCharacter(' ') => { term.cursor(cursor); cursor = !cursor } _ => { } } |