#include <stdio.h>
#include <allegro5/allegro5.h>
#include <allegro5/allegro_font.h>

void init_all(ALLEGRO_TIMER** timer, ALLEGRO_EVENT_QUEUE** queue, ALLEGRO_DISPLAY** disp, ALLEGRO_FONT** font)
{
	if (!al_init())
	{
		printf("couldn't initialize allegro\n");
		exit(1);
	}

	if (!al_install_keyboard())
	{
		printf("couldn't initialize keyboard\n");
		exit(1);
	}

	*timer = al_create_timer(1.0 / 60.0);
	if (!*timer)
	{
		printf("couldn't initialize timer\n");
		exit(1);
	}

	*queue = al_create_event_queue();
	if (!*queue)
	{
		printf("couldn't initialize queue\n");
		exit(1);
	}

	*disp = al_create_display(800, 600);
	if (!*disp)
	{
		printf("couldn't initialize display\n");
		exit(1);
	}

	*font = al_create_builtin_font();
	if (!*font)
	{
		printf("couldn't initialize font\n");
		exit(1);
	}

	al_register_event_source(*queue, al_get_keyboard_event_source());
	al_register_event_source(*queue, al_get_display_event_source(*disp));
	al_register_event_source(*queue, al_get_timer_event_source(*timer));
}
