#include	"global.h"
#include	"title.h"

void	opening(void);
int		clear(int key);
int		dead(int key);
void	ending(void);
void	roll(void);

void	title_draw(void);
void	movie_init(void);

int movie_count=0;

struct CHARA	f1,f2;
struct CHARA	seven,cherry;

extern void	zimen_draw(void);

void	movie_init(void)
{
	ship.x=0,ship.y=200;
	ball.x=0,ball.y=200;
	bar.x=0,bar.y=200;
	poti.x=0,poti.y=200;
	mike.x=0,mike.y=200;
	seven.x=0,seven.y=150;
	cherry.x=0,cherry.y=150;
	
/*	font_set_colordata(0,504,bmp_title);
	screen_fill_char(SCREEN2,0,0,28,18,511);*/

	movie_count=0;
}


void	opening(void)
{

}

int	clear(int key)
{
	if(movie_count==0)
	{
		font_init();
		font_set(0,12,1,14);

		ship.x=0,ship.y=70;
		poti.x=0,poti.y=150;
		mike.x=0,mike.y=150;
		
		f1.x=20,f1.y=140;
		f2.x=-20,f2.y=140;

		
	}
	else if(movie_count==23)
	{
		f1.y=-65;
		f2.y=110;


	}
	else if(movie_count>23&&movie_count<47)
	{
		f1.y+=4;
		f2.y-=4;
	
	}
	else if(movie_count>=47&&movie_count<65)
	{

	}
	
	else
	{
		if(ship.x<230)		ship.x+=5;
		if(f1.x<230||movie_count<47)		f1.x+=5;
		if(f2.x<230||movie_count<47)		f2.x+=5;

		if(movie_count>100)	return	1;

	}

	movie_chara_draw();
	
	movie_count++;

	return	0;

}

int	dead(int key)
{
	if(movie_count==0)
	{
		font_init();
		font_set(2,9,1,14);

		f1.x=224,f1.y=34;
		f2.x=-20,f2.y=140;

		ship.x=103,ship.y=64;
		poti.x=f1.x,poti.y=f1.y-16;
		mike.x=f1.x,mike.y=f1.y+76;
		
		seven.x=49,seven.y=10;
		cherry.x=49,cherry.y=114;

		zimen_draw();	
	}
	else if(ship.x==103)
	{
		f1.x-=5;
		poti.x-=5;
		mike.x-=5;
		if(f1.x<=ship.x+16)
		{
			movie_count=21;
			ship.x--;
		}
	
	}
	else if(ship.x>49)
	{
		
		ship.x-=movie_count-20;

	}
	else 
	{
		if(key==KEY_X1||key==KEY_Y1)
		{
			ship.y-=4;
			if(ship.y<=seven.y+10)	return	1;
		}
		if(key==KEY_X3||key==KEY_Y3)
		{
			ship.y+=4;
			if(ship.y>=cherry.y-10)	return	2;
		}
	
	}
	



	movie_chara_draw();
	movie_count++;

	return	0;
}

void	ending(void)
{
	if(movie_count==0)
	{
		font_init();
		font_set(8,18,9,16);

		f1.x=244,f1.y=0;
		f2.x=244,f2.y=0;

		ship.x=0,ship.y=64;
		poti.x=0,poti.y=150;
		mike.x=0,mike.y=150;

	}
	
	else if(movie_count<=40)
	{
		ship.x+=4;
		poti.x+=4;
		mike.x+=4;
	}

	else if(movie_count<=60)
	{
		if(movie_count==60)
		{
			poti.x-=16,mike.x-=16;
			poti.y=0,mike.y=128;
		}
	}
	
	else if (movie_count<=107)
	{
		poti.y++;
		mike.y--;
		if(movie_count==107)
		{
			f1.x=20,f1.y=0;
			f2.x=0,f2.y=6;
		}
	}
	else if(movie_count<=190)
	{
		f1.x+=1;
		f2.x+=1;
	
		if(movie_count==190)	sound_play(1);
	}
	else if(movie_count<=230);
	else 
	{
		if(ship.x<224)	ship.x++;
		if(poti.x<224)	poti.x++;
		if(mike.x<224)	mike.x++;
		if(f1.x<224)	f1.x++;
		if(f2.x<224)	f2.x++;
	}

	movie_chara_draw();
	movie_count++;

}

int k=0;
int n=0;
int	goe2=0;

void	roll(void)
{
	if(movie_count==0)
	{
		goe2=0;

		font_init();
		font_set(3,8,6,9);

		f1.x=244,f1.y=0;
		f2.x=244,f2.y=0;

		ship.x=243,ship.y=64;
		poti.x=0,poti.y=150;
		mike.x=0,mike.y=150;

	}
	
	else if(movie_count<=30)
	{
		ship.x-=4;
		if(movie_count==30)
		{
			f1.x=ship.x;
			f1.y=144;
		}
	}
	else if(movie_count<=70)
	{
		if(f1.y>=20)	f1.y-=6;
		
		if(f1.y<=ship.y+16)		k=1;

		if(k==1&&ship.y>-16)	ship.y-=8;
	
		if(movie_count==70)
		{
			f2.x=0,f2.y=65;
			k=0;
		}
	}
	else if(movie_count<=120)
	{
		if(f2.x<80)	f2.x+=3;
		if(movie_count==120)
		{
			poti.x=f1.x,poti.y=f1.y-18;
			mike.x=f2.x,mike.y=f2.y+70;
		}
	}
	else if(movie_count<=180)
	{
		if(poti.y<128)
		{
			poti.y+=4;
			f1.y+=4;
		}
		if(mike.y>0)
		{
			mike.y-=4;
			f2.y-=4;
		}
	
		if(movie_count==180)
		{
			font_set(5,7,7,14);
			f2.y-=44;
		}
	}
	else if(movie_count<=240)
	{
		if(poti.y>5)
		{
			poti.y-=4;
			f1.y-=4;
		}
		if(mike.y<123)
		{
			mike.y+=4;
			f2.y+=4;
		}
	
		if(movie_count==240)
		{
			ship.y=poti.y;
			ship.x=224;
		}
	}
	
	else if(movie_count<=410)
	{
		switch(k)
		{
			case	0:
				ship.x-=8;
				if(ship.x<poti.x+16)
				{	poti.x-=8;
					f1.x-=8;
				}
				if(ship.x<=5){
					k=1;
					f1.x=244,f1.y=0;
					poti.y=145;
				}
				break;
			case	1:
				ship.y+=8;
				if(ship.y>=mike.y)	k=2,ship.y=mike.y;
				break;
			case	2:
				ship.x+=8;
				if(ship.x+16>=mike.x)
				{
					mike.x+=8;
					f2.x+=8;
				}
				if(ship.x>=200)
				{
					k=3;
					f2.x=244,f2.y=0;
					mike.y=145;
				}
				break;

			case	3:
				ship.y-=3;
				if(ship.y<=65)	k=4;
				break;
			case	4:
				ship.x-=3;
				if(ship.x<80)	k=5;
				break;
		}
		
		if(movie_count==410)
		{
			font_set(4,15,6,9);
			f1.x=224,f1.y=10;
			f2.x=-16,f2.y=30;
			k=4;
		}
	}
	
	else if(movie_count<=700)
	{
		
		if(n==0)	ship.x++;
		if(n==1)	if(ship.x>20)	ship.x-=6;
		if(n==2)
		{
			ship.x--;
			f1.x--;
			if(ship.x<=0)
			{
				n=3;
				f2.x=ship.x-16;
			}
		}
		
		if(n==3)
		{
			ship.x+=3;
			f1.x+=3;
			f2.x+=3;
			
			if(ship.x>120)
			{
				n=4;
			}
		}
		
		if(n==4)
		{
			if(ship.y<144)	ship.y+=6;
			else			n=5;
		}

		if(n==5)
		{
			if(f1.y>=0)		f1.y--;
			if(f2.y<=70)	f2.y++;
		}

		if(movie_count>450)
		{
			if(n==0)	f1.x-=6;

			if(f1.x<=ship.x+8&&n==0)
			{
				n=1;
				f1.x=ship.x+16;
			}

		}

		if(n==1)
		{
			f1.x+=k;
			if(movie_count%2)	k--;
		
			if(f1.x<ship.x+16)
			{
				n=2;
				f1.x=ship.x+16;
			}
		}
	
		if(movie_count==700)
		{
			poti.x=0,poti.y=0;
			mike.x=208,mike.y=128;
			k=0,n=0;
		}
	
	}

	else if(movie_count<=950)
	{
		if(n==0)
		{
			if(poti.x+16>=f1.x)	f1.x+=4;
			if(mike.x<=f2.x+16)	f2.x-=4;

			poti.x+=4;
			mike.x-=4;

			if(mike.x<=0)
			{
				n=1;
				poti.x=208;
				mike.x=0;
			}
		}
		else if(n==1)
		{
			poti.x-=2;
			mike.x+=2;
			if(poti.x<=mike.x)
			{
				bgm_fadeout();
				n=2;
				poti.x=mike.x;
				ship.x=224;
				ship.y=64;
			}
		}
		else if(n==2)
		{
			if(ship.x>140)	ship.x--;
			if(poti.y<30)
			{
				poti.y++;
				mike.y--;
			}
			else
			{
				n=3;
			}
		}
		
		else if(n==3)
		{
			if(ship.x>120)	ship.x--;
		}
	
		if(movie_count==950)
		{
			font_set(11,18,10,18);
			f1.x=-16,f1.y=0;
			f2.x=-32,f2.y=0;
		}
	}

	else 
	{
		if(f1.x<=55)
		{
			f1.x++;
			f2.x++;
		}
		else if(goe2==0)
		{
			sound_play(2);
			goe2++;
		}
	}
	
	movie_chara_draw();
	movie_count++;

}

void	title_draw(void)
{

	font_set_colordata(0,504,bmp_title);
	screen_fill_char(SCREEN2,0,0,28,18,511);
	
	sprite_set_range(0,0);
	
	for(j=0;j<18;j++)
		for(i=0;i<28;i++)
			screen_fill_char(SCREEN2,i,j,1,1,0x0200|(i+28*j));
}
