No lo he probado. O sea, no sé si funciona. Lo he hecho demasiado rápido, además. Vas a ser mi conejillo de indias. No tengo tiempo de montar nada para probarlo, así que... En cuanto tengas tu juego montado, si no funciona me pasas toda la carpeta /dev y lo arreglo.
Cruza los dedos
Todo se basa en tilanim.h. Este archivo se incluye si se define en config.h la directiva ENABLE_TILANIMS. Además, el valor de esta directiva es el que define el número de tile menor que se considera animado.
En tilanim.h hay, además de la definición de datos, dos funciones:
- void add_tilanim (unsigned char x, unsigned char y, unsigned char t) se llama desde la función que pinta la pantalla actual si detecta que el tile que va a pintar es >= ENABLE_TILANIMS. Añade un tile animado a la lista de tiles.
- void do_tilanims (void) se llama desde el bucle principal. Básicamente selecciona un tile animado al azar entre todos los almacenados, le cambia el frame (de 0 a 1, de 1 a 0) y lo dibuja.
Para usarlo sólo tienes que definir en config.h la directiva ENABLE_TILANIMS con el tile animado menor. Por ejemplo, si tus cuatro últimas parejas de tiles (8 en total) son los animados, pon el valor 40. Luego, en el mapa, se tiene que poner el tile menor de la pareja, o sea, el tile 40 para 40-41, el 42 para 42-43... Si no lo haces así pasarán cosas divertidas. El código es (tiene que ser) minimal, no se comprueba nada, así que cuidao.
Como te digo, no está probado. Como funcione a la primera, me debes un bocata de morcilla