Este log iniciado a partir de la revisión 001008, los cambios anteriores no han sido documentados. El log aparece en orden cronológico inverso, es decir, la versión más reciente es la primera en ser explicada. ================================================================ Version [010515] (15 de Mayo de 2001) - El fichero Mensajes.h ahora solo es incluido por la librería si el programador no ha incluido ya otro que defina su propia función MLIdioma. Esto hace más sencillo el poder incluir ficheros de mensajes personalizados. Basta hacer un include del fichero en cuestión antes del include Gramatica. Si no se hace, Gramatica se ocupa de incluir el Mensajes.h estandar. [Zak, sobre sugerencias de Akbarr y Presi] - Arreglados una serie de problemas con el uso de la conjunción Y como separadora de frases. Ahora Y se entiende como un separador de sustantivos siempre que la palabra que va a continuación sea una palabra tipo nombre aplicable a algún objeto cercano, y en cambio se tomará como separador de frases si la palabra que le sigue es un verbo. Así, en el juego de ejemplo, en el que hay una letra Q, la frase: COGE X Y Q, será interpretada como <>, <> si la letra Q está cerca. Si no, será interpretada como <> <> (pues en ese caso se entiende Q como verbo). [bug detectado por Presi] - Arreglado un bug que impedía compilar los juegos en modo no-debug. [detectado por Presi] - Arreglado un bug al imprimir la forma infinitiva de "mete", que escribía "meterte" en lugar de "meter". [detectado por Presi] - Modificado un mensaje ("Difícilmente podría cargar con eso") en Msg1P.h - Arreglado un bug por el cual, si el parser generaba el error "Has puesto demasiadas palabras ¿Quieres ?", en una frase que llevara la conjunción "Y", el siguiente comando no era interpretado correctamente. [detectado por Zak] ================================================================ Version [010510] (10 de Mayo de 2001) - Se suministra un fichero alternativo a Mensajes.h, que contiene todos los mensajes de librería escritos en primera persona. Este fichero ha sido realizado por Presi. Para usarlo, renombrar el Mensajes.h original como Msg2P.h, y el Msg1P.h como Mensajes.h [Presi] - Corregido un bug en Mensajes.h que escribia un numero en lugar de "Has ganado" o "Has muerto". Algunos otros mensajes de librería han sido corregidos. [detectado por Presi y Morgul] - Corregido un bug que causaba un Stack Overflow en la máquina Z cuando se activaba el comando de depuración "Cambios" (y también en "Acciones" si se había compilado para el modo Strict). [detectado por Jose Miguel] - Corregido un bug por el cual, cuando el jugador ponía un comando incompleto, el parser lo completaba con el último objeto que el jugador había mencionado. Así, por ejemplo, antes ocurría: > NORTE Llegas al comedor. > COME (primero intentas coger el norte) No está disponible. Un desagradable efecto secundario es que después de haber caminado en una dirección, por ejemplo NORTE, SIENTATE generará en realidad la acción "Sientate Norte", que causaba que el jugador se fuera de nuevo hacia el norte. Este efecto secundario me fue señalado por Morgul. Ahora esto ya no ocurre: > NORTE Llegas al comedor > COME ¿Qué quieres comer? > SIENTATE ¿Dónde quieres sentarte? - COGE TODO y DEJA TODO parecen funcionar mejor ahora, y se excluyen los objetos de escenario de la lista "TODO". [petición de Dhan] Aún queda por saber si los cambios en el parser para el manejo de "TODO" pueden tener algún efecto secundario. ================================================================ [001114] (14 de Noviembre de 2000) - Corregido un bug introducido por la anterior revision, que impedia compilar para Glulx al faltar las declaraciones de bufferaux y parseaux para este caso [Bug detectado por JSJ] - Cambiadas unas cuantas partes del parser para que el comando DEJA TODO se comporte de forma más lógica (no intenta dejar los objetos que no están en poder del jugador, ni tampoco intenta dejar al propio jugador). Estos cambios afectan al corazón del parser, es posible que hayan introducido nuevos bugs, (que podrían manifestarse si el juego define nuevos verbos que usen el token "multiheld") [Zak] - Separados los mensajes de librería a un nuevo fichero Mensajes.h para que sea más sencilla su modificación. Además se han cambiado unos cuantos para adaptarlos a los gustos del público. [Zak] - Nueva variable en el parser (parser_listo) que por defecto vale 1. Afecta a cómo el parser trata los comandos en los que sobran palabras al final del comando (como en QUITATE ZAPATOS RAPIDAMENTE, en donde le sobra eso de RAPIDAMENTE). Antes decia una frase como "Has puesto demasiadas palabras, solo entendí que quieres quitarte los zapatos". Ahora, si parser_listo es 1 (por defecto), escribe "No entendí la parte final ¿Quieres quitarte los zapatos?" y espera a que el jugador ponga Si o No. Si pone "si", la acción que el parser ha sugerido será ejecutada. Si parser_listo vale 0 (puede ponerse este valor en Inicializar), entonces el mensaje será simplemente "No entendí la parte final" y no se sugerirá acción alguna al jugador. [Zak] - Nueva acción Quitar, generada por el verbo "quita" o "quitale". Los programas no necesitan capturar esta acción, porque la librería en su rutina QuitarSub la reconvierte en una acción Desvestir, Sacar o Coger, según detecte el tipo de objeto a que se refiere. (Objeto en poder del jugador -> Desvestir, Especificado un segundo objeto -> sacar, otro caso -> Coger). Por ejemplo: Puedes ver un enano (que lleva un hacha) y una mesa. >I Llevas una gorra (puesta) y una linterna. >QUITA GORRA Te quitas la gorra. >QUITA LINTERNA No llevas puesto eso. >QUITA LA GORRA DE LA LINTERNA ¡Pero si no está ahí ahora! >QUITA HACHA A ENANO Parece pertenecer al enano. >PON LINTERNA EN LA MESA Pones la linterna sobre la mesa. >QUITA LA LINTERNA Cogida. >QUITA LA LINTERNA No llevas puesto eso. De todas formas, un objeto puede capturar la acción Quitar, y reaccionar de forma más adecuada para el juego. ================================================================ [001108] (8 de Noviembre de 2000) - Modificada la función BuscarEnDiccionario para que use un buffer que no interfiera con el buffer de comandos incompletos. Tal como estaba antes, causaba un bug al usar infinitivos como respuesta a una pregunta del parser, del estilo de: > COGER CANICA ¿Cuál concretamente, la canica roja o la canica verde? > COGER CANICA VERDE ¿Qué quieres coger? [Bug detectado por 'Presi'] - Corregido un bug por el cual el parser no reconocía los pronombres -me -te -se, en comandos como EXAMINATE, COGETE (no se trata de verbos reflexivos declarados como tal en la gramática, sino de verbos normales a los que se les añade -TE como se les podía añadir -LA, -LO) [Bug detectado por Sirrus] ================================================================ [001101] (1 de Noviembre de 2000) - Corregidos bugs relacionados con ciertos verbos de depuración (IRDONDE, XROBA, XMUEVE). - Añadido un nuevo verbo de depuración XLISTA, que es análogo a XARBOL pero no incluye en la lista los objetos de librería ni los verbos irregulares, con lo que su salida es mucho más limpia y útil. - Además, me hacía ilusión sacar una versión 001101 que es 13 en binario, para probar que no soy supersticioso :-) ================================================================ [001030] 30 de Octubre de 2000 Corregidos bugs: - La acción Meterse Puerta, no generaba una acción Ir direcc_puerta, que es lo que se explicaba en DocumentatE. Ahora si lo hace. [Bug detectado por 'Presi'] - La acción Meterse tenía bugs que impedían que funcionase (pues daba lugar a la acción Entrar, que no es la misma, ya que entrar es simplemente un sinonimo de , por lo que no movia realmente al jugador a ningun sitio. [Bug detectado por 'Presi'] - El género y número de un objeto con nombres de diferentes géneros y números no era correctamente fijado. Por ejemplo, si un objeto tenia dos nombre: 'pantalones' (en nombre_mp) y 'ropa' (en nombre_f), al poner COGE ROPA, el mensaje era "Cogido", en lugar de "Cogida" Esto se ha arreglado (en Gramatica.h) [Bug detectado por Zak] Mejorados algunos mensajes estándar: - El mensaje por defecto "No puede ir por ahi", cambiado a "No puedes ir por ahi" (en Espanol.h) [Bug detectado por 'Presi'] - Cambiado el mensaje estándar cuando se intenta dejar un objeto que ya está dejado. Antes era "El objeto ya estaba aqui." Ahora es "Para dejar el objeto deberías tenerlo." [Zak] - Cambiado el mensaje estándar cuando se intenta entrar en un objeto del inventario. Antes era "Sólo puedes meterte en algo firmemente apoyado". Ahora es "No puedes meterte ahí mientras no lo sueltes". [Zak] ================================================================ [001008] Versión inicial. 8 de Octubre de 2000