135 lines
2.6 KiB
ArmAsm
135 lines
2.6 KiB
ArmAsm
/********************************************************************************
|
|
-------------------------
|
|
Ultra 64 MARIO Brothers
|
|
-------------------------
|
|
Tatefuda Strategy
|
|
|
|
Feburary 3 1996 programed by Iwamoto Daiki
|
|
********************************************************************************/
|
|
|
|
/*################*/
|
|
#ifdef ASSEMBLER
|
|
/*################*/
|
|
|
|
/********************************************************************************
|
|
e_Tatefuda
|
|
********************************************************************************/
|
|
|
|
e_tatefuda:
|
|
p_initialize(moveBG)
|
|
p_setbit( flag,stf_moveON)
|
|
p_setshapeinfo(tatefuda_check_info)
|
|
p_setobjname(FRIEND)
|
|
p_setd(enemyinfo,ENEMYINFO_KANBAN)
|
|
p_BGcheckYset
|
|
p_sethitbox(150,80)
|
|
p_setd(work0,0)
|
|
|
|
p_while
|
|
p_hitON
|
|
p_program(stMainMoveBG)
|
|
p_setd(mail,0)
|
|
p_loop
|
|
|
|
e_kanban:
|
|
p_initialize(moveBG)
|
|
p_setbit( flag,stf_moveON)
|
|
p_setobjname(FRIEND)
|
|
p_setd(enemyinfo,ENEMYINFO_KANBAN)
|
|
p_sethitbox(150,80)
|
|
p_setd(work0,0)
|
|
|
|
p_while
|
|
p_hitON
|
|
p_setd(mail,0)
|
|
p_loop
|
|
|
|
|
|
/*################*/
|
|
#else
|
|
/*################*/
|
|
|
|
|
|
/***************************************************************************************************
|
|
C Program
|
|
****************************************************************************************************/
|
|
#define tatefuda_messNo (execstp->s[stw_programselect].d)
|
|
#define tatefuda_trig (execstp->s[stw_work0].d)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
#if 0
|
|
/***************************************************************************************************
|
|
Main
|
|
***************************************************************************************************/
|
|
extern void s_tatefuda_main(void)
|
|
{
|
|
|
|
|
|
switch(obj_mode) {
|
|
|
|
case 0: if ( s_hitcheck(execstp,player1stp) == 1 ){
|
|
if (tatefuda_trig == 0) {
|
|
tatefuda_trig = 1;
|
|
obj_timer = 0;
|
|
Mbitset(execstp->s[stw_flag].d,stf_playerangleON);
|
|
}
|
|
|
|
if (tatefuda_trig == 1 && ShapeSameAngle(obj_angleY,player_angleY+0x8000,0x2000)==1
|
|
&& ShapeSameAngle(obj_angleY,obj_targetangle ,0x800)==1) {
|
|
|
|
obj_mode = 1;
|
|
}
|
|
}
|
|
else {
|
|
tatefuda_trig = 0;
|
|
Mbitclr(execstp->s[stw_flag].d,stf_playerangleON);
|
|
}
|
|
break;
|
|
|
|
case 1: if (obj_timer == 0) {
|
|
ViewingCam(VIEW_ON);
|
|
}
|
|
if (obj_timer == 20) {
|
|
CallMessageFuda(tatefuda_messNo);
|
|
obj_mode = 2;
|
|
}
|
|
break;
|
|
|
|
case 2: if ( s_hitcheck(execstp,player1stp) == 0 ){
|
|
tatefuda_trig = 0;
|
|
Mbitclr(execstp->s[stw_flag].d,stf_playerangleON);
|
|
obj_mode = 0;
|
|
}
|
|
break;
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
#endif
|
|
|
|
|
|
|
|
/*################*/
|
|
#endif
|
|
/*################*/
|
|
|
|
|