119 lines
2.7 KiB
OpenEdge ABL
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
|
|
===============================================================================*/
|
|
|
|
|
|
|