play_memory_fli − Plays a FLI or FLC animation from memory. Allegro game programming library.
int play_memory_fli(const void *fli_data, BITMAP *bmp, int loop, int (*callback)());
Plays an Autodesk Animator FLI or FLC animation on the specified BITMAP, reading the data from a copy of the file which is held in memory. You can obtain the ‘fli_data’ pointer by allocating a block of memory and reading an FLI file into it, or by importing an FLI into a grabber datafile. If ‘loop’ is not zero, the player will cycle when it reaches the end of the file, otherwise it will play through the animation once and then return. Read the beginning of chapter "FLIC routines" for a description of the callback parameter.
Playing animations from memory is obviously faster than cuing them directly from disk, and is particularly useful with short, looped FLI’s. Animations can easily get very large, though, so in most cases you will probably be better just using play_fli(). You can think of this function as a wrapper on top of open_memory_fli(), next_fli_frame() and close_fli(). Example:
int ret = play_memory_fli(anim_data, screen, 0, NULL);
if (ret == FLI_ERROR)
abort_on_error("Corrupted animation data?");
The FLI player returns FLI_OK if it reached the end of the file, FLI_ERROR if something went wrong, and the value returned by the callback function if that was what stopped it.