106 lines
2.7 KiB
OpenEdge ABL
106 lines
2.7 KiB
OpenEdge ABL
/********************************************************************************
|
|
-------------------------
|
|
Ultra 64 MARIO Brothers
|
|
-------------------------
|
|
|
|
File : pathshark.s
|
|
Description :
|
|
Date : 1995.8.1
|
|
Author : H.yajima
|
|
|
|
********************************************************************************/
|
|
|
|
|
|
/********************************************************************************/
|
|
/* */
|
|
/* << OPTION >> */
|
|
/* */
|
|
/********************************************************************************/
|
|
|
|
/*################*/
|
|
#ifdef ASSEMBLER
|
|
/*################*/
|
|
|
|
/*------------------------------------------*/
|
|
/* shark main program */
|
|
/*------------------------------------------*/
|
|
e_shark:
|
|
p_initialize(enemyA)
|
|
p_setbit( flag,stf_moveON | stf_YangleSAME | stf_playerdistON )
|
|
p_set_pointer(skelanime,RCP_sharkAnime)
|
|
p_makeobj_child(S_NULL,e_sharkhead) /* hitcheck child object */
|
|
p_sethitbox2(100,50,50)
|
|
p_setobjname(DAMAGE)
|
|
p_setd(ap,3)
|
|
p_save_nowpos /* now poition save */
|
|
p_set_skelanime_number(0)
|
|
p_hitON
|
|
p_while
|
|
p_program(s_shark_move)
|
|
p_loop
|
|
|
|
/*------------------------------------------*/
|
|
/* shark head program */
|
|
/*------------------------------------------*/
|
|
e_sharkhead:
|
|
p_initialize(enemyA)
|
|
p_setbit(flag,stf_moveON)
|
|
p_shapeDISABLE
|
|
p_while
|
|
p_program(s_sharkhead)
|
|
p_loop
|
|
|
|
/*################*/
|
|
#else
|
|
/*################*/
|
|
|
|
|
|
/********************************************************************************/
|
|
/* shark head */
|
|
/********************************************************************************/
|
|
|
|
extern void s_sharkhead(void)
|
|
{
|
|
|
|
}
|
|
|
|
|
|
/********************************************************************************/
|
|
/* shark C program */
|
|
/********************************************************************************/
|
|
extern void s_shark_move(void)
|
|
{
|
|
|
|
float water = mcWaterCheck(obj_worldX,obj_worldZ);
|
|
float sound;
|
|
|
|
|
|
obj_worldX = obj_attX + 1700 * sin(execstp->s[stw_work0].d);
|
|
obj_worldZ = obj_attZ + 1700 * cos(execstp->s[stw_work0].d);
|
|
obj_worldY = water+obj_attY + 200 * sin(execstp->s[stw_work0].d);
|
|
|
|
obj_angleY = execstp->s[stw_work0].d + 0x4000;
|
|
|
|
execstp->s[stw_work0].d += 0x80;
|
|
|
|
if ( player1stp->s[stw_worldY].f - water > -500 ){
|
|
if ( obj_worldY - water > -200 ) s_makeobj_nowpos_scale(execstp,S_wave,e_enemywave,4.0);
|
|
}
|
|
|
|
if ( ( obj_timer & 0x0f ) == 0 ) objsound(NA_SE2_SHARK);
|
|
|
|
|
|
obj_mail = 0;
|
|
|
|
}
|
|
|
|
/*################*/
|
|
#endif
|
|
/*################*/
|
|
/*===============================================================================
|
|
end end end end end end end end
|
|
===============================================================================*/
|
|
|
|
|
|
|