Esto es muy raro, porque según entiendo la especificación de la máquina Z, el argumento de
@erase_window es obligatorio, así que no estoy muy seguro de dónde está el bug, para reportarlo (¿parchment, el compilador, los otros intérpretes por aceptar algo (supuestamente) no válido?)
Así que la mejor solución que veo ahora mismo es recompilar indicando la ventana que se quiere realmente borrar, más o menos como ha hecho delacannon.
Citar:
VAR:237 D 4 erase_window window
Erases window with given number (to background colour); or if -1 it unsplits the screen and clears the lot; or if -2 it clears the screen without unsplitting it. In cases -1 and -2, the cursor may move (see S 8 for precise details).
He hecho alguna prueba e incluso gargoyle tiene problemas (muestra un error en tiempo de ejecución) con llamadas sueltas, pero con algo similar al código que hay en la aventura parece funcionar. Lo dicho: raro; algo se nos escapa (intuyo que nos hemos topado con un caso de
undefined behaviour).
Por referencia, el código en la aventura es:
Código:
[ dibujarlineaestado ;
@split_window 2;
@set_window 1;
@set_cursor 1 1;
@erase_window;
style reverse;
print " Por la Necedad Humana ";
style roman;
@set_window 0;
];