sm64/data/p/pathhagetaka.p
2022-12-04 22:27:02 -05:00

119 lines
2.7 KiB
OpenEdge ABL

/********************************************************************************
-------------------------
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
===============================================================================*/