From: Christian Heller Date: Sun, 25 Oct 2020 02:12:42 +0000 (+0100) Subject: Add line breaks and indentation logic. X-Git-Url: https://plomlompom.com/repos/%7B%7Bdb.prefix%7D%7D/static/%7B%7Bprefix%7D%7D/blog?a=commitdiff_plain;h=4266e21186335b53deb2f92deded0f18cb9d4b29;p=plomrogue2-experiments Add line breaks and indentation logic. --- diff --git a/new2/rogue_chat.html b/new2/rogue_chat.html index 5af97da..10e5ee2 100644 --- a/new2/rogue_chat.html +++ b/new2/rogue_chat.html @@ -125,9 +125,20 @@ let tui = { terminal.drawBox(terminal.rows - 1, terminal.cols / 2, 1, terminal.cols / 2, 'black'); terminal.write(terminal.rows - 1, terminal.cols / 2, chat.input_line); }, - log_msg: function(msg) { - chat.history.unshift(msg); + log_msg: function(msg, indent=0) { + let line_length = (terminal.cols / 2) - indent; + let chunk = ""; + for (let i = 0, x = 0; i < msg.length; i++, x++) { + if (x >= line_length) { + chat.history.unshift(' '.repeat(indent) + chunk); + chunk = ""; + x = 0; + }; + chunk += msg[i]; + } + chat.history.unshift(' '.repeat(indent) + chunk); if (chat.history.length > terminal.rows - 2) { + chat.history.pop(); }; this.draw_history(); @@ -143,15 +154,15 @@ let game = { let chat = { input_line:"", - history: ["visible ASCII char in the input prompt.", - "To write on the map, enter on a single", - "contain whitespace, escape them with \\.", - "Use double quotes for strings that", - "Use arrow keys to move your avatar.", - " QUERY USER TEXT - send TEXT to USER", - " ALL TEXT - send TEXT to all users", - " LOGIN USER - register as USER", - "commands:"] + history: [" visible ASCII char in the input prompt.", + " To write on the map, enter on a single", + " contain whitespace, escape them with \\.", + " Use double quotes for strings that", + " Use arrow keys to move your avatar.", + " QUERY USER TEXT - send TEXT to USER", + " ALL TEXT - send TEXT to all users", + " LOGIN USER - register as USER", + " commands:"] } terminal.initialize() @@ -205,7 +216,7 @@ websocket.onmessage = function (event) { tui.draw_map(); tui.draw_map(); } else if (tokens[0] === 'LOG') { - tui.log_msg(' ' + tokens[1]); + tui.log_msg(tokens[1], 1); } else if (tokens[0] === 'UNHANDLED_INPUT') { tui.log_msg('unknown command'); } else if (tokens[0] === 'GAME_ERROR') {