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