12/10/2009 BETA 5.6
---------------------------
- + Añadido: nuevos overloads en la función MAP_APPLY_FX para indicar un color de máscara a utilizar con los FX blend's y alpha:
- INT MAP_APPLY_FX(INT fpg_id, INT graph, INT flags, INT alpha, INT fxmode, INT mask_color)
- INT MAP_APPLY_FX(INT fpg_id, INT graph, INT flags, INT alpha, INT fxmode, INT fxcolor, INT fxintensity, INT mask_color)
- + Añadido: soporte de gráficos con canal alpha para el scroll
- + Añadido: soporte de tablas y estructuras de hasta 256 dimensiones (3 en DIV2)
- + Añadido: opción de compilación _USE_CSTYLE_MATRIX la cual permite utilizar la sintaxis estilo C para tablas y estructuras multidimensionales (ej: array[3][3] en lugar de array[2,2])
NOTA: esta opción de compilación rompe la compatibilidad con los programas DIV2 - + Añadido: opción de compilación _USE_CSTYLE_CONDITIONS la cual permite utilizar las condiciones estilo C donde 0 es FALSE y cualquier otro numero es TRUE
NOTA: esta opción de compilación rompe la compatibilidad con los programas DIV2 - + Añadido: nueva palabra clave INCLUDE al lenguaje, para poder modularizar el programa en varios ficheros de código fuente
- + Añadido: error de ejecución (aceso fuera de rango) cuando se intenta acceder a un array o estructura con un índice fuera de límite
- + Añadido: soporte en FROM para variables y arrays enteros de cualquier tipo
- + Añadido: nuevos tipos de datos al lenguaje:
- SBYTE (signed integer 8bits)
- SHORT (signed integer 16bits)
- DWORD (unsigned integer 32bits)
- min_sbyte
- max_sbyte
- min_short
- max_short
- min_dword
- max_dword
- + Añadido: potenciado el sistema de punteros, ahora se usa un sistema real donde se soportan más operaciones y operadores en expresiones complejas (estilo C)
- + Añadido: soporte de valores size (size, size_x, size_y) negativos, permitiendo así conseguir efectos de espejado/volteado de forma sencilla
- + Añadido: nuevas variables LOCAL SHEAR_X y SHEAR_Y para efectos de distorsión del gráfico
nueva variable LOCAL TFMORDER que permite indicar el orden de las transformaciones a aplicar al gráfico, por medio de las siguientes constantes:- tfm_hsr (Shear-Scale-Rotate)
- tfm_hrs (Shear-Rotate-Scale)
- tfm_shr (Scale-Shear-Rotate)
- tfm_srh (Scale-Rotate-Shear)
- tfm_rhs (Rotate-Shear-Scale)
- tfm_rsh (Rotate-Scale-Shear)
- DRAW_GRAPHIC
- MAP_XXPUT
- XXPUT
- + Añadido: soporte de SHEAR_X, SHEAR_Y y TFMORDER al mouse
- + Añadido: nuevas variables GLOBAL para los textos:
- text_shear_x
- text_shear_y
- text_tfmorder
- SET_TEXT_TFMORDER
- SET_TEXT_SHEAR
- txt_shear_x
- txt_shear_y
- txt_tfmorder
- + Añadido: versiones con nombre UK de algunas funciones y constantes
- * Arreglado: bug en CLONE_MAP que llevaba a la interrupción del programa cuando se creaban mas de 255 clones
- * Arreglado: bug al usar los FX SCALE's en 32bits en rendering MMX
- * Arreglado: bug en GET_DIRINFO el cual usaba los flags pasados como parámetro de forma erronea
- * Arreglado: bug que impedía utilizar el teclado para utilizar el mouse cuando se establecía mouse.cursor = 1
- * Arreglado: bug en la función MAP_APPLY_FX al usar un valor en flags distinto de 0 y con otras combinaciones
- * Arreglado: bug en la función DRAW que llevaba al crash del programa al dibujar un rectángulo vacío (2) cuando uno de los 4 vértices estaban fuera de los límites de la pantalla
- * Arreglado: bug al actualizar correctamente los colores de las primitivas gráficas (DRAW) cuando se cambiaba la paleta en 8bits
- * Arreglado: problema al pasar valores negativos a FRAME (ej: FRAME(-10)) que llevaba al bloqueo o interrupción del programa, ahora los valores se convierten automaticamente a positivos
- * Arreglado: bug en las funciones:
- STOP_MIDI
- UNLOAD_MIDI
- STOP_MUSIC
- UNLOAD_MUSIC
- STOP_SONG
- UNLOAD_SONG
- * Arreglado: bug en la función SET_SCREEN_COLOR en modalidad SOFT al setear un color distinto al elegido
- * Arreglado: bug en la función PUT_SCREEN al limpiar correctamente la pantalla con el color establecido por SET_SCREEN_COLOR
- * Arreglado: unos mensajes de errores sobre la compilación de estructuras
- * Arreglado: bug en scale2x de rendering incorrecto de la primera y última linea de la pantalla en algunas resoluciones
- * Arreglado: bug que portaba a una visualización desfasada de la pantalla o a la interrupción del programa en algunas resoluciones hibridas
- * Arreglado: bug al establecer correctamente la variable SHIFT_STATUS cuando se pulsaban LSHIFT o RSHIFT, devolviendo los valores al reves
- * Arreglado: constantes: _L_BRACHET y _R_BRACHET -> _L_BRACKET y _R_BRACKET
- * Arreglado: bug en COLLISION cuando eran usadas algunas combinaciones de ANGLE y SIZE, tanto con mouse como entre procesos
- * Arreglado: bug que provocaba algunos artefactos en el gráfico cuando este estaba parcialmente fuera de la región cuando se usaba SIZE y/o ANGLE
- * Arreglado: bug en OVERLAP, ahora la función devuelve un overlap real de los procesos cuando estos estan transformados (size, angle, shear)
- * Arreglado: bug en OUT_REGION que provocaba imprecisiones en ciertos casos, ahora la función devuelve un out_region real de los procesos cuando estos estan transformados (size, angle, shear)
- ! Información: optimizada función COLLISION, más rápida del 20 ~ 80%
- ! Información: optimizadas las siguientes funciones, más rápidas del 30 ~ 90%:
- ADD_FPG_MAP
- CLONE_FPG
- CLONE_MAP
- LOAD_FPG
- LOAD_FPG_MAP
- LOAD_MAP
- LOAD_PCX
- NEW_FPG_MAP
- NEW_MAP
- ! Información: optimizado sistema DUMP/RESTORE_TYPE, más rápido del 10 ~ 30%
- ! Información: optimizado filtro de renderizado scale2x, más rápido del 8 ~ 250%
- ! Información: optimizados FX a 32bits, más rápidos del 5 ~ 50%
