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

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