sm64/data/iwa_path/tatefuda.s
2022-12-04 22:27:02 -05:00

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