From 2af0b575233ba3b04c1fa0f855b85a1c0c2cf82f Mon Sep 17 00:00:00 2001 From: mcmlxxix <> Date: Thu, 17 Jan 2013 19:45:09 +0000 Subject: [PATCH] fix game number prompt (hacky hack hack, this should be reworked eventually) --- xtrn/dicewarz2/game.js | 38 ++++++++++++++++++++++++++++++++++---- 1 file changed, 34 insertions(+), 4 deletions(-) diff --git a/xtrn/dicewarz2/game.js b/xtrn/dicewarz2/game.js index 16cda0e620..1d121013ad 100644 --- a/xtrn/dicewarz2/game.js +++ b/xtrn/dicewarz2/game.js @@ -31,7 +31,7 @@ function loadGraphic(filename) { f.open(); return f; } -function menuPrompt(string,append,keepOpen,hotkeys) { +function menuPrompt(string, append, keepOpen, hotkeys) { if(!append) promptFrame.clear(); if(!promptFrame.is_open) @@ -57,6 +57,37 @@ function menuPrompt(string,append,keepOpen,hotkeys) { promptFrame.close(); return cmd; } +function numberPrompt(string, append, keepOpen) { + if(!append) + promptFrame.clear(); + if(!promptFrame.is_open) + promptFrame.open(); + promptFrame.putmsg(string); + promptFrame.draw(); + + var cmd=[]; + while(!js.terminated) { + var k = console.getkey(K_NOECHO|K_NOCRLF|K_NUMBER|K_NOSPIN); + if(k == "\r") { + break; + } + else if(k == "\b") { + if(cmd.length > 0) { + cmd.pop(); + promptFrame.putmsg(k); + promptFrame.cycle(); + } + } + else { + cmd.push(k); + promptFrame.putmsg(k); + promptFrame.cycle(); + } + } + if(!keepOpen) + promptFrame.close(); + return cmd.join(""); +} function menuText(string,append) { if(!append) promptFrame.clear(); @@ -407,11 +438,9 @@ function lobby() { return false; } while(1) { - var num=menuPrompt("Game number: ",false,false); + var num=numberPrompt("Enter game # or Q to cancel: ",false,false); if(!num) break; - log("num: " + num); - log(data.games.toSource()); if(data.games[num]) { if(data.games[num].status>=0) { playGame(num); @@ -424,6 +453,7 @@ function lobby() { break; } else { menuPrompt("\1n\1c No such game! \1w[press any key]",true,false,true); + return false; } } return false; -- GitLab