/********************************************************************************
					-------------------------
				 	 Ultra 64 MARIO Brothers
					-------------------------

					File		: pathhagetaka.s
					Description	: 
					Date		: 1995.
					Author		: H.yajima

 ********************************************************************************/


#define ANM_hagetaka_fly  		 	0
#define ANM_hagetaka_attack  		2

/*################*/
#ifdef ASSEMBLER
/*################*/

e_hagetaka:
	p_initialize(option)
	p_setbit(flag,stf_moveON | stf_YangleSAME | stf_playerdistON | stf_playerangleON )
	p_set_pointer(skelanime,hagetaka_anime)
	p_set_skelanime_number(0)
	p_setmovedata(30,-400,-50,0,0,200,0,0)
	p_save_nowpos
	p_while
		p_program(s_hagetaka)
	p_loop


/*################*/
#else
/*################*/

#define		HAGETAKA_OFF			0
#define		HAGETAKA_HAVE_HAT		1
#define		HAGETAKA_HAVE_POLYSTAR	2
#define		HAGETAKA_HAVE_SHADESTAR	3

#define			hagetaka_dy	(execstp->s[stw_work0].f)

/********************************************************************************
		----------------------
		 C Program (hagetaka)
		----------------------
 ********************************************************************************/

extern unsigned long CtrlCoord(int code,MapNode *node, void *data)
{

	if (code == MAP_CBACK_EXEC) {
#if 0
		((MapCoord *)(node->next))->position[0] = effect_p0;
		((MapCoord *)(node->next))->position[1] = effect_p1;
		((MapCoord *)(node->next))->position[2] = effect_p2;
#endif
		((MapCoord *)(node->next))->position[0] = 300;
		((MapCoord *)(node->next))->position[1] = 300;
		((MapCoord *)(node->next))->position[2] = 0;

	}

	return(0);

}

/********************************************************************************
		hagetaka waitting
 ********************************************************************************/

static void hagetaka_waitloop(void)
{
	short angleY = s_calc_returnangle();
	float dst = s_distanceXZ_obj2obj(execstp,player1stp);

	obj_gravity 		= 0;	/* G ... 0 */
	obj_animecounter 	= 0;
	obj_speedF		 	= 10;

	obj_animecounter = effect_p0;
	s_set_skelanimeNo(ANM_hagetaka_fly);
	s_chase_angleY(angleY,0x200);

}


/********************************************************************************
		----------
		 hagetaka
		----------
 ********************************************************************************/

static void *hagetaka_modejmp[] = {
	
	 hagetaka_waitloop
	
};

extern void s_hagetaka(void)
{

	s_enemybgcheck();
	s_modejmp(hagetaka_modejmp);
	s_3Dmove();

}

/*################*/
#endif
/*################*/
/*===============================================================================
		end end end end end end end end 
===============================================================================*/



