/******************************************************************************** ------------------------- Ultra 64 MARIO Brothers ------------------------- File : pathbikkuriswitch.s Description : Date : 1995. Author : H.yajima ********************************************************************************/ /*################*/ #ifdef ASSEMBLER /*################*/ /*----------------------------------------------*/ /* */ /* bikkuri switch */ /* */ /*----------------------------------------------*/ e_bikkuri_dodai: p_initialize(moveBG) p_setbit(flag,stf_moveON | stf_YangleSAME ) p_setshapeinfo(bikkuri_dodai_info) p_while p_program(stMainMoveBG) p_loop e_bikkuri_switch: p_initialize(moveBG) p_setbit(flag,stf_moveON | stf_YangleSAME ) p_setshapeinfo(bikkuri_button_info) p_while p_program(s_bikkuri) p_program(stMainMoveBG) p_loop /*################*/ #else /*################*/ /******************************************************************************** bikkuri switch ( BACKUP PARAMETER ) ********************************************************************************/ #define BIKKURI_MINSCALE 0.1f #define BIKKURI_SCALE 0.5f #define BIKKURI_YOFFSET (142*BIKKURI_SCALE) static unsigned char backup_switchmessage[] = { 10,11,12 }; #define bikkuri_timer (execstp->s[stw_work0].d) /******************************************************************************** bikkuri switch initialize ********************************************************************************/ static void bikkuri_init(void) { obj_animecounter = obj_programselect; s_set_scale(BIKKURI_SCALE); obj_worldY += BIKKURI_YOFFSET; s_makeobj_chain_scale(0,0,-BIKKURI_YOFFSET,0,BIKKURI_SCALE,execstp,S_bikkuri_dodai , e_bikkuri_dodai); if ( activeStageNo != 32 ){ if ( BuGetItemFlag() & backup_switchtable[obj_programselect] ){ obj_mode = mode_bikkuri_off; execstp->map.scale[1] = BIKKURI_MINSCALE; } else obj_mode = mode_bikkuri_oncheck; } else { obj_mode = mode_bikkuri_oncheck; } } /******************************************************************************** bikkuri switch ON check ********************************************************************************/ static void bikkuri_oncheck(void) { if ( s_rideon_player() ){ BuSetItemFlag(backup_switchtable[obj_programselect] ); obj_mode = mode_bikkuri_on; objsound(NA_SE2_BIGSWITCH ); } } /******************************************************************************** bikkuri switch ON Animation ********************************************************************************/ static void bikkuri_on(void) { int data; if ( obj_timer < 5 ){ s_scale_timezoom(TIMESCALE_Y,4,BIKKURI_SCALE,BIKKURI_MINSCALE); if ( obj_timer == 4 ){ s_call_Viewshake(VS_SMALL); s_kemuri(); s_boxeffect(60,S_polygon_hoshi,0.3,obj_programselect); SendMotorEvent(5,80); /* MOTOR 1997.5.30 */ } } else { if ( data = s_call_talkdemo( DLOG_LOOKFRONT, ENEMYDEMO_SETMESSAGE_YESNO+ENEMYDEMO_CAMERA, CAM_DEMO_ITEM,0) ){ obj_mode = mode_bikkuri_off; } } } /******************************************************************************** bikkuri switch OFF ********************************************************************************/ static void bikkuri_off(void) { } /******************************************************************************** bikkuri program ********************************************************************************/ static void *bikkuri_modejmp[] = { bikkuri_init, bikkuri_oncheck, bikkuri_on, bikkuri_off }; extern void s_bikkuri(void) { s_modejmp(bikkuri_modejmp); } /*################*/ #endif /*################*/ /*=============================================================================== end end end end end end end end ===============================================================================*/