#include	"global.h"

void	erase_block(int ex,int ey);
void	map_draw(void);
void	wall_setup(void);
void	break_animation(void);
void	b2(void);
void	goal_draw(int y,int x);

struct CHARA	block_break_s[10];
struct CHARA	block_break_b[10];

struct CHARA	key_draw_flag;

int		key_flag;

void	break_animation(void)
{
	for(i=0;i<10;i++)
	{
		if(block_break_s[i].flag)
		{
			if(block_break_s[i].flag==10)
			{
				screen_fill_char(SCREEN2,block_break_s[i].x,block_break_s[i].y,1,1,0x0a00|26);
				screen_fill_char(SCREEN2,block_break_s[i].x+1,block_break_s[i].y,1,1,0x0a00|27);
				screen_fill_char(SCREEN2,block_break_s[i].x,block_break_s[i].y+1,1,1,0x0a00|36);
				screen_fill_char(SCREEN2,block_break_s[i].x+1,block_break_s[i].y+1,1,1,0x0a00|37);
			}
			else if(block_break_s[i].flag==5)
			{
				screen_fill_char(SCREEN2,block_break_s[i].x,block_break_s[i].y,1,1,0x0a00|28);
				screen_fill_char(SCREEN2,block_break_s[i].x+1,block_break_s[i].y,1,1,0x0a00|29);
				screen_fill_char(SCREEN2,block_break_s[i].x,block_break_s[i].y+1,1,1,0x0a00|38);
				screen_fill_char(SCREEN2,block_break_s[i].x+1,block_break_s[i].y+1,1,1,0x0a00|39);
			}
			else if(block_break_s[i].flag==1)
			{
				screen_fill_char(SCREEN2,block_break_s[i].x,block_break_s[i].y,1,1,0x0400|146);
				screen_fill_char(SCREEN2,block_break_s[i].x+1,block_break_s[i].y,1,1,0x0400|147);
				screen_fill_char(SCREEN2,block_break_s[i].x,block_break_s[i].y+1,1,1,0x0400|156);
				screen_fill_char(SCREEN2,block_break_s[i].x+1,block_break_s[i].y+1,1,1,0x0400|157);
	
				if(key_draw_flag.flag==1&&key_draw_flag.x==block_break_s[i].x&&key_draw_flag.y==block_break_s[i].y)
				{
					screen_fill_char(SCREEN2,block_break_s[i].x,block_break_s[i].y,1,1,0x0c00|148);
					screen_fill_char(SCREEN2,block_break_s[i].x+1,block_break_s[i].y,1,1,0x0c00|149);
					screen_fill_char(SCREEN2,block_break_s[i].x,block_break_s[i].y+1,1,1,0x0c00|158);
					screen_fill_char(SCREEN2,block_break_s[i].x+1,block_break_s[i].y+1,1,1,0x0c00|159);
					key_draw_flag.flag=0;
					
					stage[key_draw_flag.y/2][key_draw_flag.x/2]=10;

					key_flag=1;
				}
			}
		
			block_break_s[i].flag--;
		}
	}

	b2();
}
void	b2(void)
{

	for(i=0;i<10;i++)
	{
		if(block_break_b[i].flag)
		{
			if(block_break_b[i].flag==10)
			{
				screen_fill_char(SCREEN2,block_break_b[i].x,block_break_b[i].y,1,1,0x0a00|46);
				screen_fill_char(SCREEN2,block_break_b[i].x+1,block_break_b[i].y,1,1,0x0a00|47);
				screen_fill_char(SCREEN2,block_break_b[i].x,block_break_b[i].y+1,1,1,0x0a00|56);
				screen_fill_char(SCREEN2,block_break_b[i].x+1,block_break_b[i].y+1,1,1,0x0a00|57);
	
				screen_fill_char(SCREEN2,block_break_b[i].x,block_break_b[i].y+2,1,1,0x0a00|68);
				screen_fill_char(SCREEN2,block_break_b[i].x+1,block_break_b[i].y+2,1,1,0x0a00|69);
				screen_fill_char(SCREEN2,block_break_b[i].x,block_break_b[i].y+3,1,1,0x0a00|78);
				screen_fill_char(SCREEN2,block_break_b[i].x+1,block_break_b[i].y+3,1,1,0x0a00|79);
			}
			else if(block_break_b[i].flag==5)
			{
				screen_fill_char(SCREEN2,block_break_b[i].x,block_break_b[i].y,1,1,0x0a00|48);
				screen_fill_char(SCREEN2,block_break_b[i].x+1,block_break_b[i].y,1,1,0x0a00|49);
				screen_fill_char(SCREEN2,block_break_b[i].x,block_break_b[i].y+1,1,1,0x0a00|58);
				screen_fill_char(SCREEN2,block_break_b[i].x+1,block_break_b[i].y+1,1,1,0x0a00|59);
	
				screen_fill_char(SCREEN2,block_break_b[i].x,block_break_b[i].y+2,1,1,0x0a00|68);
				screen_fill_char(SCREEN2,block_break_b[i].x+1,block_break_b[i].y+2,1,1,0x0a00|69);
				screen_fill_char(SCREEN2,block_break_b[i].x,block_break_b[i].y+3,1,1,0x0a00|78);
				screen_fill_char(SCREEN2,block_break_b[i].x+1,block_break_b[i].y+3,1,1,0x0a00|79);
			}
			else if(block_break_b[i].flag==1)
			{
				
				screen_fill_char(SCREEN2,block_break_b[i].x,block_break_b[i].y,1,1,0x0400|146);
				screen_fill_char(SCREEN2,block_break_b[i].x+1,block_break_b[i].y,1,1,0x0400|147);
				screen_fill_char(SCREEN2,block_break_b[i].x,block_break_b[i].y+1,1,1,0x0400|156);
				screen_fill_char(SCREEN2,block_break_b[i].x+1,block_break_b[i].y+1,1,1,0x0400|157);

				screen_fill_char(SCREEN2,block_break_b[i].x,block_break_b[i].y+2,1,1,0x0400|146);
				screen_fill_char(SCREEN2,block_break_b[i].x+1,block_break_b[i].y+2,1,1,0x0400|147);
				screen_fill_char(SCREEN2,block_break_b[i].x,block_break_b[i].y+3,1,1,0x0400|156);
				screen_fill_char(SCREEN2,block_break_b[i].x+1,block_break_b[i].y+3,1,1,0x0400|157);
			}

			block_break_b[i].flag--;
		}
	}

}

void	goal_draw(int y,int x)
{
	screen_fill_char(SCREEN2,(x)*2,(y)*2,1,1,0x0400|146);
	screen_fill_char(SCREEN2,(x)*2+1,(y)*2,1,1,0x0400|147);
	screen_fill_char(SCREEN2,(x)*2,(y)*2+1,1,1,0x0400|156);
	screen_fill_char(SCREEN2,(x)*2+1,(y)*2+1,1,1,0x0400|157);

	screen_fill_char(SCREEN2,26,8,1,1,0x0400|146);
	screen_fill_char(SCREEN2,27,8,1,1,0x0400|147);
	screen_fill_char(SCREEN2,26,9,1,1,0x0400|156);
	screen_fill_char(SCREEN2,27,9,1,1,0x0400|157);

	stage[y][x]=0;
	stage[4][13]=8;

}


void	erase_block(int ex,int ey)
{
	if(stage[ey][ex]<=2)
	{
		
		if(block_life[ey][ex])	block_life[ey][ex]--;
		
		if(block_life[ey][ex]==0)
		{
			if(stage[ey][ex]==2)
			{
				key_draw_flag.x=ex*2;
				key_draw_flag.y=ey*2;
				key_draw_flag.flag=1;
			}

			stage[ey][ex]=0;
			screen_fill_char(SCREEN2,ex*2,ey*2,2,2,0x0400|511);
			for(i=0;i<10;i++)
				if(block_break_s[i].flag==0)	break;
			block_break_s[i].x=ex*2;
			block_break_s[i].y=ey*2;
			block_break_s[i].flag=10;
		}
	}
	else
	{
		switch(stage[ey][ex])
		{
			case	3:
			case	5:
				if(block_life[ey][ex]){
					block_life[ey][ex]--;
					block_life[ey+1][ex]--;
				}
				if(block_life[ey][ex]==0)
				{
					stage[ey][ex]=0;
					stage[ey+1][ex]=0;
					screen_fill_char(SCREEN2,ex*2,ey*2,2,4,0x0400|511);

					for(i=0;i<10;i++)
						if(block_break_b[i].flag==0)	break;
					block_break_b[i].x=ex*2;
					block_break_b[i].y=ey*2;
					block_break_b[i].flag=10;
				}
				break;
			case	4:
			case	6:
				ey--;
				if(block_life[ey][ex]){
					block_life[ey][ex]--;
					block_life[ey+1][ex]--;
				}
				if(block_life[ey][ex]==0)
				{
					stage[ey][ex]=0;
					stage[ey+1][ex]=0;
					screen_fill_char(SCREEN2,ex*2,ey*2,2,4,0x0400|511);

					for(i=0;i<10;i++)
						if(block_break_b[i].flag==0)	break;
					block_break_b[i].x=ex*2;
					block_break_b[i].y=ey*2;
					block_break_b[i].flag=10;
				}
				break;
		}


	}
}


void	map_draw(void)
{
	
	for(i=0;i<9;i++)
		for(j=0;j<14;j++)
		{
			switch(stage[i][j])
			{
				case	1:
					screen_fill_char(SCREEN2,(j)*2,(i)*2,1,1,0x0800|22);
					screen_fill_char(SCREEN2,(j)*2+1,(i)*2,1,1,0x0800|23);
					screen_fill_char(SCREEN2,(j)*2,(i)*2+1,1,1,0x0800|32);
					screen_fill_char(SCREEN2,(j)*2+1,(i)*2+1,1,1,0x0800|33);
					block_life[i][j]=1;
					break;
				case	2:
					screen_fill_char(SCREEN2,(j)*2,(i)*2,1,1,0x0a00|24);
					screen_fill_char(SCREEN2,(j)*2+1,(i)*2,1,1,0x0a00|25);
					screen_fill_char(SCREEN2,(j)*2,(i)*2+1,1,1,0x0a00|34);
					screen_fill_char(SCREEN2,(j)*2+1,(i)*2+1,1,1,0x0a00|35);
					block_life[i][j]=2;
					break;
				case	3:
					screen_fill_char(SCREEN2,(j)*2,(i)*2,1,1,0x0800|42);
					screen_fill_char(SCREEN2,(j)*2+1,(i)*2,1,1,0x0800|43);
					screen_fill_char(SCREEN2,(j)*2,(i)*2+1,1,1,0x0800|52);
					screen_fill_char(SCREEN2,(j)*2+1,(i)*2+1,1,1,0x0800|53);
					block_life[i][j]=3;
					break;
				case	4:
					screen_fill_char(SCREEN2,(j)*2,(i)*2,1,1,0x0800|62);
					screen_fill_char(SCREEN2,(j)*2+1,(i)*2,1,1,0x0800|63);
					screen_fill_char(SCREEN2,(j)*2,(i)*2+1,1,1,0x0800|72);
					screen_fill_char(SCREEN2,(j)*2+1,(i)*2+1,1,1,0x0800|73);
					block_life[i][j]=3;
					break;
				case	5:
					screen_fill_char(SCREEN2,(j)*2,(i)*2,1,1,0x0a00|44);
					screen_fill_char(SCREEN2,(j)*2+1,(i)*2,1,1,0x0a00|45);
					screen_fill_char(SCREEN2,(j)*2,(i)*2+1,1,1,0x0a00|54);
					screen_fill_char(SCREEN2,(j)*2+1,(i)*2+1,1,1,0x0a00|55);
					block_life[i][j]=4;
					break;
				case	6:
					screen_fill_char(SCREEN2,(j)*2,(i)*2,1,1,0x0a00|64);
					screen_fill_char(SCREEN2,(j)*2+1,(i)*2,1,1,0x0a00|65);
					screen_fill_char(SCREEN2,(j)*2,(i)*2+1,1,1,0x0a00|74);
					screen_fill_char(SCREEN2,(j)*2+1,(i)*2+1,1,1,0x0a00|75);
					block_life[i][j]=4;
					break;
			
				case	7:
					screen_fill_char(SCREEN2,(j)*2,(i)*2,1,1,0x0800|62);
					screen_fill_char(SCREEN2,(j)*2+1,(i)*2,1,1,0x0800|63);
					screen_fill_char(SCREEN2,(j)*2,(i)*2+1,1,1,0x0800|72);
					screen_fill_char(SCREEN2,(j)*2+1,(i)*2+1,1,1,0x0800|73);
					break;

				case	9:
					screen_fill_char(SCREEN2,(j)*2,(i)*2,1,1,0x0600|120);
					screen_fill_char(SCREEN2,(j)*2+1,(i)*2,1,1,0x0600|121);
					screen_fill_char(SCREEN2,(j)*2,(i)*2+1,1,1,0x0600|130);
					screen_fill_char(SCREEN2,(j)*2+1,(i)*2+1,1,1,0x0600|131);
					break;

				
				case	0:
					screen_fill_char(SCREEN2,(j)*2,(i)*2,1,1,0x0400|146);
					screen_fill_char(SCREEN2,(j)*2+1,(i)*2,1,1,0x0400|147);
					screen_fill_char(SCREEN2,(j)*2,(i)*2+1,1,1,0x0400|156);
					screen_fill_char(SCREEN2,(j)*2+1,(i)*2+1,1,1,0x0400|157);
					break;
			}

		}

	key_draw_flag.flag=0;

	for(i=0;i<10;i++)
	{
		block_break_s[i].flag=0;
		block_break_b[i].flag=0;
	}
}

void	wall_setup(void)
{

/*	for(i=0;i<28;i++)
	{
		if(i%2==0)
		{
			screen_fill_char(SCREEN2,i,0,1,1,120);
			screen_fill_char(SCREEN2,i,1,1,1,121);
		
			screen_fill_char(SCREEN2,i,16,1,1,120);
			screen_fill_char(SCREEN2,i,17,1,1,121);
		}
		else
		{
			screen_fill_char(SCREEN2,i,0,1,1,130);
			screen_fill_char(SCREEN2,i,1,1,1,131);

			screen_fill_char(SCREEN2,i,16,1,1,130);
			screen_fill_char(SCREEN2,i,17,1,1,131);
		}
	}


	for(i=0;i<18;i++)
	{

		if(i%2==0)
		{
			screen_fill_char(SCREEN2,26,i,1,1,120);
			screen_fill_char(SCREEN2,27,i,1,1,121);
		}
		else
		{
			screen_fill_char(SCREEN2,26,i,1,1,130);
			screen_fill_char(SCREEN2,27,i,1,1,131);
		}

	}*/
}


