337 lines
8.3 KiB
OpenEdge ABL
337 lines
8.3 KiB
OpenEdge ABL
/********************************************************************************
|
|
-------------------------
|
|
Ultra 64 MARIO Brothers
|
|
-------------------------
|
|
|
|
File : pathsplash.s
|
|
Description :
|
|
Date : 1995.7.27
|
|
Author : H.yajima
|
|
|
|
********************************************************************************/
|
|
|
|
|
|
/*################*/
|
|
#ifdef ASSEMBLER
|
|
/*################*/
|
|
/********************************************************************************/
|
|
/* */
|
|
/* << OPTION >> */
|
|
/* */
|
|
/********************************************************************************/
|
|
|
|
|
|
/********************************************************************************/
|
|
/* */
|
|
/* PLAYER GA RIPPLE SURU */
|
|
/* */
|
|
/********************************************************************************/
|
|
|
|
/********************************************************************************/
|
|
/* */
|
|
/* PLAYER WATER RIPPLE */
|
|
/* */
|
|
/********************************************************************************/
|
|
|
|
e_rtest:
|
|
p_initialize(option)
|
|
p_setbit(flag,stf_moveON)
|
|
p_setf(animeangleX,0)
|
|
p_setf(animeangleY,0)
|
|
p_setf(animeangleZ,0)
|
|
p_animereset
|
|
|
|
p_while
|
|
p_animeinc
|
|
p_wait(6)
|
|
p_loop
|
|
|
|
|
|
e_waterrippleB:
|
|
p_initialize(option)
|
|
p_setbit(flag,stf_moveON)
|
|
p_setf(animeangleX,0)
|
|
p_setf(animeangleY,0)
|
|
p_setf(animeangleZ,0)
|
|
p_animereset
|
|
p_program(s_playerripple_init) /* PlayerRipple Initialize */
|
|
|
|
p_animeinc
|
|
p_wait(6)
|
|
|
|
p_while
|
|
p_program(s_playerripple_main)
|
|
p_animeinc
|
|
p_do(6)
|
|
p_program(s_playerripple_main)
|
|
p_next
|
|
p_loop
|
|
|
|
|
|
/********************************************************************************/
|
|
/* */
|
|
/* PLAYER bubble wave */
|
|
/* */
|
|
/********************************************************************************/
|
|
|
|
e_playerwave:
|
|
p_initialize(option) /* intital */
|
|
p_setbit(flag,stf_moveON) /* move mode ON */
|
|
p_mother_clrbit(effect,stf_wave)
|
|
|
|
p_program(s_playerripple_init) /* PlayerRipple Initialize */
|
|
p_program(s_playerwave_init) /* PlayerRipple Initialize */
|
|
|
|
p_setf(animeangleX,0)
|
|
p_setf(animeangleY,0)
|
|
p_setf(animeangleZ,0)
|
|
p_animereset
|
|
|
|
p_do(8)
|
|
p_animeinc
|
|
p_wait(2)
|
|
p_next
|
|
|
|
p_killshape
|
|
|
|
|
|
e_enemywave:
|
|
p_initialize(option) /* intital */
|
|
p_setbit(flag,stf_moveON) /* move mode ON */
|
|
p_program(s_enemyripple_init) /* PlayerRipple Initialize */
|
|
p_setf(animeangleX,0)
|
|
p_setf(animeangleY,0)
|
|
p_setf(animeangleZ,0)
|
|
p_animereset
|
|
p_do(8)
|
|
p_animeinc
|
|
p_wait(2)
|
|
p_next
|
|
p_killshape
|
|
|
|
|
|
|
|
/********************************************************************************/
|
|
/* */
|
|
/* PLAYER Water Ripple (A) */
|
|
/* */
|
|
/********************************************************************************/
|
|
|
|
e_rippleA:
|
|
p_initialize(option)
|
|
p_setbit(flag,stf_moveON)
|
|
p_setf(animeangleX,0)
|
|
p_setf(animeangleY,0)
|
|
p_setf(animeangleZ,0)
|
|
p_animereset
|
|
p_do(6)
|
|
p_animeinc
|
|
p_next
|
|
p_killshape
|
|
|
|
|
|
/********************************************************************************/
|
|
/* */
|
|
/* PLAYER GA SPLASH SURU */
|
|
/* */
|
|
/********************************************************************************/
|
|
/********************************************************************************/
|
|
/* player splash */
|
|
/********************************************************************************/
|
|
|
|
e_splashanime:
|
|
p_initialize(option)
|
|
p_softspritemodeON
|
|
p_setbit(flag,stf_moveON)
|
|
p_setf(animepositionY,100)
|
|
p_animereset
|
|
p_do(3)
|
|
p_animeinc
|
|
p_next
|
|
p_mother_clrbit(effect,stf_splash)
|
|
p_killshape
|
|
|
|
|
|
|
|
/********************************************************************************/
|
|
/* */
|
|
/* MIZU NO BAKUHATSU !!!!! */
|
|
/* */
|
|
/********************************************************************************/
|
|
/********************************************************************************/
|
|
/* Water Column */
|
|
/********************************************************************************/
|
|
|
|
e_watercoloumn:
|
|
p_initialize(option)
|
|
p_setbit(flag,stf_moveON)
|
|
p_softspritemodeON
|
|
p_setbit(flag,stf_moveON)
|
|
p_animereset
|
|
p_program(s_divinginit)
|
|
|
|
watercoloumn_main:
|
|
p_do(3)
|
|
p_animeinc
|
|
p_makeshape(S_waterdrop,e_waterdrop)
|
|
p_makeshape(S_waterdrop,e_waterdrop)
|
|
p_makeshape(S_waterdrop,e_waterdrop)
|
|
p_wait(1)
|
|
p_makeshape(S_waterdrop,e_waterdrop)
|
|
p_makeshape(S_waterdrop,e_waterdrop)
|
|
p_makeshape(S_waterdrop,e_waterdrop)
|
|
p_next
|
|
|
|
p_do(5)
|
|
p_animeinc
|
|
p_wait(1)
|
|
p_next
|
|
|
|
p_mother_clrbit(effect,stf_diving)
|
|
p_killshape
|
|
|
|
|
|
/********************************************************************************/
|
|
/* Water Drop */
|
|
/********************************************************************************/
|
|
|
|
e_waterdrop:
|
|
|
|
p_initialize(option)
|
|
p_setbit(flag,stf_moveON | stf_FspeedON | stf_YspeedON )
|
|
p_softspritemodeON
|
|
p_setbit(flag,stf_moveON)
|
|
p_animereset
|
|
|
|
p_setf(groundY,-8000)
|
|
p_setf(gravity,-5)
|
|
p_setf_random(speedF,2,5)
|
|
p_setf_random(speedY,20,30)
|
|
p_setangle_random(angleY,0,0)
|
|
|
|
p_wait(1)
|
|
p_while
|
|
p_program(s_dropmain) /* Water DropMain */
|
|
p_loop
|
|
|
|
|
|
|
|
|
|
/********************************************************************************/
|
|
/* Water Drop Ripple */
|
|
/********************************************************************************/
|
|
|
|
e_dropripple:
|
|
p_initialize(option)
|
|
p_setbit(flag,stf_moveON)
|
|
p_setf(animeangleX,0)
|
|
p_setf(animeangleY,0)
|
|
p_setf(animeangleZ,0)
|
|
p_animereset
|
|
p_program(s_drop_init)
|
|
p_do(6)
|
|
p_animeinc
|
|
p_next
|
|
p_killshape
|
|
|
|
/*################*/
|
|
#else
|
|
/*################*/
|
|
|
|
/********************************************************************************/
|
|
/* */
|
|
/* C Program */
|
|
/* */
|
|
/********************************************************************************/
|
|
/********************************************************************************/
|
|
/* player ripple */
|
|
/********************************************************************************/
|
|
|
|
/*------------------------------------------------------------------------------*/
|
|
extern void s_playerripple_init(void)
|
|
{
|
|
execstp->s[stw_worldY].f = playerWorks[0].water + 5;
|
|
}
|
|
|
|
extern void s_playerwave_init(void)
|
|
{
|
|
|
|
if ( frameCounter % 2 ) s_remove_obj(execstp);
|
|
|
|
}
|
|
|
|
/*------------------------------------------------------------------------------*/
|
|
extern void s_enemyripple_init(void)
|
|
{
|
|
float water = mcWaterCheck(obj_worldX,obj_worldZ);
|
|
execstp->s[stw_worldY].f = water + 5;
|
|
s_set_scale(4.0);
|
|
}
|
|
|
|
/*------------------------------------------------------------------------------*/
|
|
extern void s_playerripple_main(void)
|
|
{
|
|
|
|
execstp->s[stw_worldX].f = player1stp->s[stw_worldX].f;
|
|
execstp->s[stw_worldZ].f = player1stp->s[stw_worldZ].f;
|
|
|
|
/*---- End Check ----*/
|
|
if ( ( player1stp->s[stw_work0].d & PLAYER_RIPPLE ) == 0 ){
|
|
player1stp->s[stw_effect].d = player1stp->s[stw_effect].d & (stf_ripple^0xffff );
|
|
execstp->status = 0; /* Shape Remove */
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
/********************************************************************************/
|
|
/* water drop Program */
|
|
/********************************************************************************/
|
|
|
|
extern void s_divinginit(void)
|
|
{
|
|
|
|
float bgY = playerWorks[0].water;
|
|
execstp->s[stw_worldY].f = bgY;
|
|
|
|
}
|
|
|
|
|
|
extern void s_dropmain(void)
|
|
{
|
|
|
|
StrategyRecord *stratp;
|
|
float bgY = playerWorks[0].water;
|
|
|
|
if ( bgY > (execstp->s[stw_worldY].f) ){
|
|
|
|
stratp = s_makeobj(execstp,0,S_rippleA,e_dropripple);
|
|
stratp->s[stw_worldX].f = execstp->s[stw_worldX].f;
|
|
stratp->s[stw_worldY].f = bgY + 5;
|
|
stratp->s[stw_worldZ].f = execstp->s[stw_worldZ].f;
|
|
|
|
execstp->status = 0; /* s_removeobj */ /* object remove */
|
|
|
|
}
|
|
|
|
}
|
|
|
|
/********************************************************************************/
|
|
/* water drop Program */
|
|
/********************************************************************************/
|
|
|
|
extern void s_drop_init(void)
|
|
{
|
|
stSetScale(execstp,0.5,1.0,0.5);
|
|
}
|
|
|
|
/*################*/
|
|
#endif
|
|
/*################*/
|
|
/*===============================================================================
|
|
end end end end end end end end
|
|
===============================================================================*/
|
|
|
|
|