/*******************************************************************
BITMAP : Charger une image depuis un fichier .bmp vers une BITMAP
         et afficher cette BITMAP au milieu de l'écran

         L'image s'apppelle "mon_image.bmp" et doit être mise
         au niveau du répertoire de projet (avec le main.c)
         à moins de modifier le chemin d'accès ci dessous...

         Appuyer sur espace pour ajouter des copies multiples
*******************************************************************/

#include <allegro.h>
#include <time.h>

int main()
{
    // Déclaration du pointeur sur BITMAP devant recevoir l'image
    BITMAP *image;

    // Il y aura un peu de hasard...
    srand(time(NULL));

    // Lancer allegro et le mode graphique
    allegro_init();
    install_keyboard();

    set_color_depth(desktop_color_depth());
    if (set_gfx_mode(GFX_AUTODETECT_WINDOWED,800,600,0,0)!=0)
    {
        allegro_message("prb gfx mode");
        allegro_exit();
        exit(EXIT_FAILURE);
    }

    // Chargement de l'image (l'allocation a lieu en même temps)
    image=load_bitmap("mon_image.bmp",NULL);

    // Vérification que l'image est bien chargée (dans le cas contraire image vaut NULL)
    // TOUJOURS LE FAIRE CAR ON N'EST JAMAIS CERTAIN DE BIEN TROUVER L'IMAGE
    if (!image)
    {
        allegro_message("pas pu trouver/charger mon_image.bmp");
        allegro_exit();
        exit(EXIT_FAILURE);
    }

    // Affichage de l'image sur l'écran au milieu
    blit(image,screen,0,0, (SCREEN_W-image->w)/2, (SCREEN_H-image->h)/2, image->w, image->h);

    // Boucle interactive
    while (!key[KEY_ESC])
    {
        if (key[KEY_SPACE])
            blit(image,screen,0,0, rand()%(SCREEN_W-image->w), rand()%(SCREEN_H-image->h), image->w, image->h);
    }

    return 0;
}
END_OF_MAIN();