119 lines
2.6 KiB
OpenEdge ABL
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
|
|
===============================================================================*/
|
|
|
|
|
|
|