134 lines
3.6 KiB
ArmAsm
134 lines
3.6 KiB
ArmAsm
/********************************************************************************
|
|
-------------------------
|
|
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
|
|
/*################*/
|
|
|
|
|