From b0b4cbd4bfca33ed5d8359a268ad9d3bc52dcccb Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Deuc=D0=B5?= <shurd@sasktel.net> Date: Wed, 24 Feb 2021 01:48:08 -0500 Subject: [PATCH] Erase/redrw character when x/y variables are set directly Fixes glitch when giving the guard at the bridge an apple to get to Castle Coldrake. --- xtrn/lord2/lord2.js | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/xtrn/lord2/lord2.js b/xtrn/lord2/lord2.js index e04cbab363..b54b1c56b2 100644 --- a/xtrn/lord2/lord2.js +++ b/xtrn/lord2/lord2.js @@ -595,8 +595,8 @@ var vars = { '`d':{type:'const', val:'\b'}, '`\\':{type:'const', val:'\r\n'}, '`*':{type:'const', val:dk.connection.node}, - x:{type:'fn', get:function() { return player.x }, set:function(x) { player.x = clamp_integer(x, 's8') } }, - y:{type:'fn', get:function() { return player.y }, set:function(y) { player.y = clamp_integer(y, 's8') } }, + x:{type:'fn', get:function() { return player.x }, set:function(x) { erase (player.x-1, player.y-1); player.x = clamp_integer(x, 's8'); update(true); } }, + y:{type:'fn', get:function() { return player.y }, set:function(y) { erase (player.x-1, player.y-1); player.y = clamp_integer(y, 's8'); update(true); } }, map:{type:'fn', get:function() { return player.map }, set:function(map) { player.map = clamp_integer(map, 's16') } }, dead:{type:'fn', get:function() { return player.dead }, set:function(dead) { player.dead = clamp_integer(dead, 's8') } }, sexmale:{type:'fn', get:function() { return player.sexmale }, set:function(sexmale) { player.sexmale = clamp_integer(sexmale, 's16') } }, @@ -1757,7 +1757,6 @@ function run_ref(sec, fname) player.name = getvar('`s10'); }, 'moveback':function(args) { - // TODO: After giving the guard north of Stoneport or whatever an apple from the left, you "stick" erase(player.x - 1, player.y - 1); player.x = player.lastx; player.y = player.lasty; -- GitLab