load_datafile_callback - Loads a datafile into memory, calling a hook per
object. Allegro game programming library.
#include <allegro.h>
DATAFILE *load_datafile_callback(const char *filename,
void (*callback)(DATAFILE *d));
Loads a datafile into memory, calling the specified hook function once for each
object in the file, passing it a pointer to the object just read. You can use
this to implement very simple loading screens where every time the hook is
called, the screen is updated to let the user know your program is still
loading from disk:
void load_callback(DATAFILE *dat_obj)
{
static const char indicator[] = "-\\|/-.oOXOo.";
static int current = 0;
/* Show a different character every time. */
textprintf_ex(screen, font, 0, 0, makecol(0, 0, 0),
makecol(255, 255, 255), "%c Loading %c",
indicator[current], indicator[current]);
/* Increase index and check if we need to reset it. */
current++;
if (!indicator[current])
current = 0;
}
...
dat = load_datafile_callback("data.dat", load_callback);
Returns a pointer to the DATAFILE or NULL on error. Remember to free this
DATAFILE later to avoid memory leaks.
load_datafile(3), unload_datafile(3),
load_datafile_object(3), set_color_conversion(3),
fixup_datafile(3), packfile_password(3),
find_datafile_object(3), register_datafile_object(3)