/******************************************************************************** ------------------------- Ultra 64 MARIO Brothers ------------------------- Kirai Strategy Feburary 14 1996 programed by Iwamoto Daiki ********************************************************************************/ /*################*/ #ifdef ASSEMBLER /*################*/ /******************************************************************************** Kirai Path Data ********************************************************************************/ e_kirai: p_initialize(enemyA) p_setbit(flag,stf_moveON ) p_hitON p_sethitbox2(40,40,40) p_wait(1) p_while p_hitON p_program(s_kirai_event) p_loop /*------------------------------------------------------------*/ e_kopakirai_fire: p_initialize(option) p_setbit(flag,stf_moveON ) p_softspritemodeON p_setf(animepositionY,-288) p_animereset p_while p_program(s_kopakirai_fire) p_loop /*------------------------------------------------------------*/ e_kopakirai_smoke: p_initialize(option) p_setbit(flag,stf_moveON ) p_softspritemodeON p_setf(animepositionY,-288) p_setd(alpha,255) p_animereset p_while p_program(s_kopakirai_smoke) p_loop /*################*/ #else /*################*/ /*************************************************************************************************** C Program ****************************************************************************************************/ /*************************************************************************************************** Kirai Event (Player Kirai) ***************************************************************************************************/ extern void s_kirai_event(void) { if ( s_hitcheck(execstp,player1stp) == 1 ){ Mbitclr(execstp->s[stw_mail].d,EMAIL_PLAYERHIT); s_makeobj_nowpos(execstp,S_bombfire,e_bombfire); execstp->status = 0; /* s_removeobj */ /* object remove */ } if ( execstp->s[stw_mail].d & EMAIL_KOPADOWN){ s_makeobj_nowpos(execstp,S_kopakirai_fire,e_kopakirai_fire); obj_remove_sound(NA_SE2_KUPPABOMB); //SOUND Viewshaking(VS_LARGE,obj_worldX,obj_worldY,obj_worldZ); execstp->status = 0; /* s_removeobj */ /* object remove */ } PlayerApproachOnOff(execstp,7000); } /*************************************************************************************************** Kuppa Kirai Fire (Kuppa Kirai) ***************************************************************************************************/ extern void s_kopakirai_fire(void) { StrategyRecord *stratp; s_set_scale(((float)obj_timer/14)*9. + 1.); if ((obj_timer & 0x03)==0 && obj_timer < 20) { stratp = s_makeobj_nowpos(execstp,S_kopakirai_smoke,e_kopakirai_smoke); stratp->s[stw_worldX].f += Randomf()*600 - 400; stratp->s[stw_worldZ].f += Randomf()*600 - 400; stratp->s[stw_speedY].f += Randomf()*10; } if ((obj_timer & 0x01)== 0) (execstp->s[stw_animecounter].d)++; if (obj_timer == 28) execstp->status = 0; } /*************************************************************************************************** Kuppa Kirai Fire (Kuppa Kirai) ***************************************************************************************************/ extern void s_kopakirai_smoke(void) { s_set_scale(((float)obj_timer/14)*9. + 1.); if ((obj_timer & 0x01)== 0) (execstp->s[stw_animecounter].d)++; (execstp->s[stw_alpha].d) -= 10; if (execstp->s[stw_alpha].d < 10 ) execstp->s[stw_alpha].d = 0; execstp->s[stw_worldY].f += execstp->s[stw_speedY].f; if (obj_timer == 28) execstp->status = 0; } /*################*/ #endif /*################*/