std.prog: INSTEAD программирование

From: kolobod (syscall,30) 31.01.20 21:17 UTC
To: All
Subject: еще вопросец (СТИД 2)
Доброй ночи всем, кто не спит) Есть еще дурацкий вопрос.
====
БАЗА = room {
       pic = function(s)
             pr 'pic/ГОРЫ.jpg'  --общий фон картинки для этой локации
		
	         if СЛУЧИЛОСЬ_СОБЫТИЕ then 
                    pr ';pic/АЛАРМ.jpg@500,100' --показать поверх общей картинки локации табличку "у нас событие!"
		 end;
       end;
       
       click = function(s, x, y) 
	       if x > 500 and x < 700 and y > 200 and y < 30 and СЛУЧИЛОСЬ_СОБЫТИЕ and ГОТОВ_ДИАЛОГ then --клик на табличку отправляет в диалог
                  walk 'НУЖНЫЙ_ДИАЛОГ';	
	          return true;			   
    	       end;
       end;	
}
====
Собственно, такая штука. Есть комната. Для иллюстрации происходящего в ней - задана картинка. При срабатывании условия СЛУЧИЛОСЬ_СОБЫТИЕ = true; поверх этой картинки появляется другая (табличка с приглашением запустить некое событие). И если при этом включено условие ГОТОВ_ДИАЛОГ = true; то клик на табличку запускать диалог НУЖНЫЙ_ДИАЛОГ.
В заданной конструкции все работает прекрасно. Но вот диалог заканчивается и я выпускаю из него игрока, ставя при выходе [[ СЛУЧИЛОСЬ_СОБЫТИЕ = false; ГОТОВ_ДИАЛОГ = true; walkback(); return true; ]]
То есть, на выходе я полностью убираю все условия и для отображения таблички, и для перехода снова в этот диалог. Но табличка не убирается и висит на месте, а если кликнуть на нее - снова попадаешь в диалог из которого вышел. Не могу понять почему?
[177 / 187]