/********************************************************************************
					-------------------------
				 	 Ultra 64 MARIO Brothers
					-------------------------

					File		: pathextyougan.s
					Description	: yougan moving BG program
					Date		: 1995.
					Author		: H.yajima

 ********************************************************************************/


/*################*/
#ifdef ASSEMBLER
/*################*/

/********************************************************************************
	==========
	 UKISIMA 
	==========
 ********************************************************************************/
e_ukishima:
	p_initialize(moveBG)
	p_setbit(flag,stf_moveON )
	p_setshapeinfo(e2_ukishima_check_info)
	p_save_nowpos
	p_while
		p_program(s_ukishima)
		p_program(stMainMoveBG)
	p_loop

/********************************************************************************
	===========
	 AMI & BOU
	===========
 ********************************************************************************/
e_nobori_ami:
	p_initialize(moveBG)
	p_setbit(flag,stf_moveON )
	p_setshapeinfo(e2_amiyuka_check_info)
	p_save_nowpos
	p_makeshape(S_movebg04,e_nobori_bou)
	p_while
		p_program(s_nobori_ami)
		p_program(stMainMoveBG)
	p_loop


e_nobori_bou:
	p_initialize(player_friend)
	p_setbit(flag,stf_moveON )
	p_setd(objname,OBJNAME_BAR)
	p_sethitbox(80,710)
	p_hitON
	p_while
		p_program(s_rendo_mother)
		p_program(s_tree)
	p_loop


/********************************************************************************
	===========
	 
	===========
 ********************************************************************************/

e_ext3_guragura:
	p_initialize(moveBG)
	p_setbit( flag,stf_moveON | stf_YangleSAME | stf_playerdistON )
	p_setshapeinfo(e2_gura_check_info)
	p_save_nowpos
	p_program(s_movebg_1_init)
	p_while
		p_program(s_movebg_1)			/* moving bg program (1)	*/
		p_program(stMainMoveBG)
	p_loop


e_ext3_nobiru:
	p_initialize(moveBG)
	p_setbit( flag,stf_moveON | stf_YangleSAME | stf_playerdistON )
	p_setshapeinfo(e2_nobiru_check_info)
	p_setf(movebg_checkdist,10000)
	p_program(s_movebg_1_init)
	p_while
		p_program(s_ext3_nobiru)
		p_program(stMainMoveBG)
	p_loop




/*################*/
#else
/*################*/




/********************************************************************************
		C Program (extyougan)
 ********************************************************************************/
extern void s_ext3_nobiru(void)
{
	execstp->map.scale[1] = 0.4 + (sin(obj_work0)+1.0)*(0.3);
	obj_work0 += 0x80;
}

/********************************************************************************
		ukishima
 ********************************************************************************/
extern void s_ukishima(void)
{
	obj_worldY	-= sin(obj_work0)* 0.58;
	obj_work0 	+= 0x100;
}

/********************************************************************************
		noboriami
 ********************************************************************************/

extern void s_rendo_mother(void)
{
	s_copy_worldXYZ_angleXYZ( execstp, execstp->motherobj);
}


extern void s_nobori_ami(void)
{
	if ( obj_programselect ){
		if ( obj_timer == 0 )	obj_worldY -= 300;
		obj_worldY	+= sin(obj_work0) *  7;
	} else {
	 	obj_worldY	-= sin(obj_work0) *  3;
	}
	obj_work0 	+= 0x100;
}






/*################*/
#endif
/*################*/
/*===============================================================================
		end end end end end end end end 
===============================================================================*/



