#include "font.h"

FONT fonts[LAST_FONT];


void font_init()
{
	int i;
	char buffer[30];

	strcpy(fonts[FONT01].filename,FONT01NAME);
	fonts[FONT01].w=FONT01W;
	fonts[FONT01].h=FONT01H;
	strcpy(fonts[FONT01].charorder,FONT01CHARS);

	strcpy(fonts[FONT02].filename,FONT02NAME);
	fonts[FONT02].w=FONT02W;
	fonts[FONT02].h=FONT02H;
	strcpy(fonts[FONT02].charorder,FONT02CHARS);

	strcpy(fonts[FONT03].filename,FONT03NAME);
	fonts[FONT03].w=FONT03W;
	fonts[FONT03].h=FONT03H;
	strcpy(fonts[FONT03].charorder,FONT03CHARS);

	for(i=0;i<LAST_FONT;i++) {
		strcpy(buffer,"system/");
		strcat(buffer,fonts[i].filename);
		fonts[i].fontimg=loadImage(buffer);
	}
}

void draw_string(char *text,int fontnr, int x, int y)
{
	unsigned int i,j;

	for(i=0;i<strlen(text);i++) {

		for(j=0;j<strlen(fonts[fontnr].charorder);j++) 
			if(text[i]==fonts[fontnr].charorder[j]) break;
		
		if (fonts[fontnr].fontimg!=NULL)
			blitAlphaImageToScreen(j*fonts[fontnr].w,0,fonts[fontnr].w,fonts[fontnr].h,fonts[fontnr].fontimg,i*fonts[fontnr].w+x,y);
	}
}

void draw_big_string(char *text, int x, int y)
{
	unsigned int i,j,k;

	for(i=0;i<strlen(text);i++) {

		for(j=0;j<strlen(fonts[FONT03].charorder);j++) 
			if(text[i]==fonts[FONT03].charorder[j]) break;
		if(j>25) {
			j-=26;
			k=16;
		} else
			k=0;
	
		if (fonts[FONT03].fontimg!=NULL)
			blitAlphaImageToScreen(j*fonts[FONT03].w,k,fonts[FONT03].w,fonts[FONT03].h,fonts[FONT03].fontimg,i*fonts[FONT03].w+x,y);
	}
}
