varios:tabla_de_flags_del_sistema [Superglús]
 Superglús   Sistema de autoría de aventuras conversacionales Inicio





Flags del sistema

Este es un listado de los flags del sistema de Superglús. Algunos pueden ser usados en las aventuras, otros sólo leídos.

Los flags de auto-decremento (2 a 10) están libres para uso, pero se debe estar seguro de para qué se usan. Otros flags solo deberían ser modificados usando la acción adecuada, o siendo muy cuidadoso con sus contenidos.

FlagUtilidad
000 Cuando no es cero indica que el juego está oscuro
001 Guarda la cantidad de objetos que el jugador lleva (no puestos)
002 Decrementado si no vale 0 cuando se describe una localidad
003 Decrementado si no vale 0 cuando se describe una localidad y está oscuro
004 Decrementado si no vale 0 cuando se describe una localidad y está oscuro y no hay objetos con luz presentes
005 Decrementado cada turno
006 Decrementado cada turno
007 Decrementado cada turno
008 Decrementado cada turno
009 Decrementado cada turno que está oscuro
010 Decrementado cada turno que está oscuro y no hay objetos con luz presentes
011 Flag de apoyo a secuencias de escape en mensajes
012 Flag de control del analizador de frases (parser). Bit 0: Si activado (valor por defecto) el parser atiende a terminaciones pronominales. Bit 1: Si activado indica que al analizar la frase anterior se encontro una palabra desconocida después de haber encontrado el verbo. Bit 2: Si activado indica que la primera preposición de la frase se encontró después de encontrar el primer nombre. Bit 3: Si activado (valor por defecto) los objetos con atributo NPC no son considerados en los condactos OBJAT, LISTAT, DOALL, etc. Bit 4: Se pone a 1 si hay un evento “arrange” (ver graficos_y_sonido) y a 0 cada vez que se ejecuta el_proceso_de_interrupcion
013 Reservados para su uso por librerías base
014 Reservado para su uso por librerías base
015 Reservado para su uso por librerías base
016-029 Reservados
030 La puntuación del jugador en %
031 Byte menos significativo de los turnos del jugador
032 Byte más significativo de los turnos del jugador 1)
033 Guarda el verbo de la SL actual
034 Guarda el primer nombre de la SL actual
035 Guarda el adjetivo de la SL actual
036 Guarda el adverbio de la SL actual
037 Guarda el numero máximo de objetos que el jugador puede llevar (inicialmente 4). Se cambia con la acción ABILITY.
038 Guarda la localidad actual del jugador
039
040 Guarda el modo de pantalla, se cambia con la acción MODE. Bit 0. Impide que se borre la pantalla en un DESC
041 Reservado
042 Guarda el prompt a usar (un numero de mensaje del sistema - 0 selecciona uno de cuatro mensajes aleatoriamente). Se cambia con la orden condactos:PROMPT.
043 Guarda la preposición de la SL actual
044 Guarda el segundo nombre de la SL actual
045 Guarda el adjetivo para el segundo nombre de la SL actual
046 Guarda el nombre para el pronombre de la SL actual
047 Guarda el adjetivo para el pronombre de la SL actual
048 Guarda la duración del timeout
049 Guarda los indicadores de control del timeout: Bit 7 - Activo si ocurrió un timeout el ultimo turno,Bit 2 - Activado si el timeout puede ocurrir en ANYKEY, Bit 0 - Activar para que el timeout solo pueda ocurrir al inicio del input. Se cambia usando TIME (al igual que el flag 48), TIMEOUT comprueba el bit 7 de este flag.
050 Guarda el objeto para el bucle DOALL. Es decir, el valor que sigue en DOALL
051 Guarda el objeto referenciado por el primer nombre y adjetivos de la SL actual, o 255 si no se referencia a ninguno. Este objeto será el escrito en lugar del de la secuencia de escape “guión bajo” en los textos.
052 Guarda la fuerza del jugador (el máximo peso de los objetos llevados o puestos, inicialmente 10)
053 Guarda los indicadores de escritura de objetos en listados: Bit 7 -Activar si cualquier objeto se ha impreso como parte de LISTOBJ o LISTAT, Bit 6 -Activar para forzar listado de objetos continuo. Es decir, LET 53 64 hará que Superglús liste los objetos todos en la misma línea formando una frase válida.
054 Guarda la localidad actual del objeto actualmente referenciado
055 Guarda el peso del objeto actualmente referenciado
056 Guarda los 32 indicadores mas bajos del objeto actualmente referenciado. (0-31)
057 Guarda los 32 indicadores mas altos del objeto actualmente referenciado. (32-63)
058 Reservado
059 Reservado


Los flags 16 a 28, 39, 41, 58 y 59 están reservados. Todos los flags reservados lo están porque

  1. Fueron útiles en PAW y no tienen sentido en Superglús, se pide que no se usen por compatibilidad.
  2. Se prevé que ampliaciones de Superglús pudieran usarlos.

En caso de extrema necesidad, al no disponer de más flags sin usar (cosa difícil, pero bueno) se recomienda se utilicen los flags 16 a 29 comenzando por el 29 en orden descendente. Si aun se necesitan más, usar el 58 y 59. No obstante en esos casos, se recomienda mirar la documentacion de los condactos BSET, BCLEAR,BNEG, BZERO y [`condactos:condiciones:valor_de_bits_de_flags:bnotzero]], dado que permite utilizar un flag para hasta 32 funciones si estas son del tipo si/no.

Los Flags 13 ,14 y 15 no los usa el parser, están libres para su uso por la librería base, es decir, sólo deben usarse si lo que estamos diseñando es una librería base, y su uso, salvo que sea auxiliar, deberá documentarse en dicha librería.

1) En PAW los flags sólo podían contener valores entre 0 y 255, y por eso se utilizaba este sistema que hacia que el valor del flag 31 más el valor del flag 32 multiplicado por 256 fuera el numero de turnos del jugador. Por herencia Paguaglús y Superglús mantienen dicho sistema, aunque sus flags pueden contener valores mucho mayores.
 

varios/tabla_de_flags_del_sistema.txt · Última modificación: 2010/01/27 10:57 por csanchez71