sm64/data/p/pathchimney.p
2022-12-04 22:27:02 -05:00

119 lines
2.6 KiB
OpenEdge ABL

/********************************************************************************
-------------------------
Ultra 64 MARIO Brothers
-------------------------
File : pathchimney.s
Description :
Date : 1995.10.9
Author : H.yajima
********************************************************************************/
/*################*/
#ifdef ASSEMBLER
/*################*/
/********************************************************************************
chimny pathdata
********************************************************************************/
e_tripchimney:
p_initialize(moveBG)
p_setbit( flag,stf_moveON | stf_YangleSAME)
p_setd(objname,OBJNAME_TRIPCHIMNEY)
p_BGcheckYset
p_setf(movebg_checkdist,8000)
p_setshapeinfo(endoor_info)
p_hitON
p_sethitbox(50,50)
p_while
p_program(stMainMoveBG)
p_setd(mail,0)
p_loop
e_warp:
p_initialize(item)
p_setd( enemyinfo,1)
p_setbit( flag,stf_moveON | stf_YangleSAME)
p_setd(objname,OBJNAME_TRIPCHIMNEY)
p_hitON
p_while
p_program(s_warp)
p_loop
e_tripchimney2:
p_initialize(item)
p_setbit( flag,stf_moveON | stf_YangleSAME)
p_setd(objname,OBJNAME_TRIPCHIMNEY)
p_hitON
p_while
p_program(s_tripchimney2)
p_loop
e_dokan:
p_initialize(moveBG)
p_setbit( flag,stf_moveON | stf_YangleSAME)
p_setd(objname,OBJNAME_TRIPCHIMNEY)
p_setshapeinfo(dokan_check_info)
p_setf(shapeLOD,16000)
p_hitON
p_sethitbox(70,50)
p_while
p_program(s_tripchimney2)
p_program(stMainMoveBG)
p_loop
/*################*/
#else
/*################*/
/********************************************************************************
chimny program
********************************************************************************/
extern void s_tripchimney2(void)
{
unsigned short R;
if ( obj_timer == 0 ){
R = (( execstp->s[stw_actorcode].d ) >> 24 )&0xff;
if ( R == 0 ) execstp->myobj_R = 50;
else if ( R == 255 ) execstp->myobj_R = 10000;
else execstp->myobj_R = R * 10.0;
execstp->myobj_height = 50;
}
obj_mail = 0;
}
extern void s_warp(void)
{
unsigned short R;
if ( obj_timer == 0 ){
R = (( execstp->s[stw_actorcode].d ) >> 24 )&0xff;
if ( R == 0 ) execstp->myobj_R = 85;
else if ( R == 255 ) execstp->myobj_R = 10000;
else execstp->myobj_R = R * 10.0;
execstp->myobj_height = 50;
}
obj_mail = 0;
}
/*################*/
#endif
/*################*/
/*===============================================================================
end end end end end end end end
===============================================================================*/