diff --git a/rlgterm.js b/rlgterm.js index 66e55b5..8e26dd2 100644 --- a/rlgterm.js +++ b/rlgterm.js @@ -704,12 +704,19 @@ function wsWatch(gamenumber) { ws.onopen = function (event) { session.id = true; session.sock = ws; - message("You are now watching game #" + gamenumber + "."); setmode("watch"); }; ws.onmessage = function (event) { var msgObject = JSON.parse(event.data); - if (msgObject.t == 'd') { + if (msgObject.t == 'w') { + termemu.resize(msgObject.h, msgObject.w); + termemu.reset(); + termemu.toAltBuf(); + var pname = msgObject.p; + var gname = games[msgObject.g].name; + message("You are now watching " + pname + " play " + gname + "."); + } + else if (msgObject.t == 'd') { writeData(msgObject.d); } }; diff --git a/rlgwebd.js b/rlgwebd.js index ade7831..a9df6eb 100755 --- a/rlgwebd.js +++ b/rlgwebd.js @@ -390,6 +390,10 @@ function wsWatcher(conn, session) { session.removeListener('exit', exitH); tslog("A WebSocket watcher has left game %d", session.sessid); }); + conn.sendUTF(JSON.stringify({ + "t": "w", "w": session.w, "h": session.h, + "p": session.pname, "g": session.game.uname + })); conn.sendUTF(JSON.stringify({"t": "d", "d": session.framebuf.toString("hex", 0, session.frameoff)})); }