Fixed console input, Left works now to load files
This commit is contained in:
+26
-35
@@ -67,6 +67,7 @@ export fn main() void = {
|
||||
} ];
|
||||
let state: *uxn::uxn = uxn::uxn_init(path)!;
|
||||
uxn::uxn_reset(state);
|
||||
uxn::uxn_console_argument(state);
|
||||
let next_refresh: u64 = 0;
|
||||
const perf_freq: u64 = sdl3::GetPerformanceFrequency();
|
||||
const frame_interval = perf_freq / 60;
|
||||
@@ -80,48 +81,38 @@ export fn main() void = {
|
||||
}else{
|
||||
if(state.console_vector != 0){
|
||||
// fmt::printf("Console!\n")!;
|
||||
let args = os::args[2..];
|
||||
let i: u8 = 0;
|
||||
let argcount = len(args): u8;
|
||||
for (let arg .. args){
|
||||
// fmt::println("Console input args")!;
|
||||
for(let char: u8 .. strings::toutf8(arg)){
|
||||
// fmt::printfln("Console input arg char: {:x}", char)!;
|
||||
match (uxn::console_input(char,2,state)) {
|
||||
case done =>
|
||||
yield done;
|
||||
case let val: u8 =>
|
||||
fmt::fatalf("Unhandled Opcode: {:x}", val);
|
||||
};
|
||||
};
|
||||
let ctype: u8 = if(i == (argcount - 1)){
|
||||
yield 4;
|
||||
} else {
|
||||
yield 3;
|
||||
};
|
||||
match (uxn::console_input('\n',ctype,state)) {
|
||||
case done =>
|
||||
yield done;
|
||||
case let val: u8 =>
|
||||
fmt::fatalf("Unhandled Opcode: {:x}", val);
|
||||
};
|
||||
i+=1; //TODO using i here seems inelegant
|
||||
};
|
||||
const pollr = unix::poll::poll(consolefd, unix::poll::NONBLOCK);
|
||||
const pollr: uint = match(unix::poll::poll(consolefd, unix::poll::NONBLOCK)){
|
||||
case let i: uint =>
|
||||
yield i;
|
||||
case =>
|
||||
yield 0;
|
||||
};
|
||||
if(pollr > 0){
|
||||
// fmt::println("Input!")!;
|
||||
let buf: [MAX_CONSOLE_INPUT]u8 = [0...];
|
||||
io::read(os::stdin_file, buf)!;
|
||||
for( let b .. buf ){
|
||||
// fmt::printfln("Input: {}",buf[0])!;
|
||||
// fmt::printfln("Input: {}",b: rune)!;
|
||||
if(b == 0){
|
||||
// fmt::printfln("Ending stdin argument")!;
|
||||
match (uxn::console_input('\n',4,state)) {
|
||||
case done =>
|
||||
yield done;
|
||||
case let val: u8 =>
|
||||
fmt::fatalf("Unhandled Opcode: {:x}", val);
|
||||
};
|
||||
// fmt::printfln("Finished stdin argument")!;
|
||||
break;
|
||||
};
|
||||
match (uxn::console_input(b,1,state)) {
|
||||
case done =>
|
||||
yield done;
|
||||
case let val: u8 =>
|
||||
fmt::fatalf("Unhandled Opcode: {:x}", val);
|
||||
};
|
||||
// uxn::console_input(b,1,state);
|
||||
case done =>
|
||||
yield done;
|
||||
case let val: u8 =>
|
||||
fmt::fatalf("Unhandled Opcode: {:x}", val);
|
||||
};
|
||||
};
|
||||
|
||||
// fmt::printfln("Finished stdin argument")!;
|
||||
};
|
||||
|
||||
};
|
||||
|
||||
Reference in New Issue
Block a user