diff options
| author | Eugene Sandulenko | 2013-12-28 00:09:52 +0200 | 
|---|---|---|
| committer | Eugene Sandulenko | 2013-12-28 00:09:52 +0200 | 
| commit | 98598d2ec3d17e866ced96f52007a93ccd0e7bd9 (patch) | |
| tree | eaf6812915af4d07ac60261a0aa76bf2ce0a011a | |
| parent | b03e329bc70dca1871e597b9545d6f1a64d11e2f (diff) | |
| download | scummvm-rg350-98598d2ec3d17e866ced96f52007a93ccd0e7bd9.tar.gz scummvm-rg350-98598d2ec3d17e866ced96f52007a93ccd0e7bd9.tar.bz2 scummvm-rg350-98598d2ec3d17e866ced96f52007a93ccd0e7bd9.zip  | |
FULLPIPE: Implement sceneHandler11_sub10()
| -rw-r--r-- | engines/fullpipe/constants.h | 3 | ||||
| -rw-r--r-- | engines/fullpipe/scenes/scene11.cpp | 113 | 
2 files changed, 74 insertions, 42 deletions
diff --git a/engines/fullpipe/constants.h b/engines/fullpipe/constants.h index d3ff241b03..15f73e45eb 100644 --- a/engines/fullpipe/constants.h +++ b/engines/fullpipe/constants.h @@ -503,6 +503,7 @@ namespace Fullpipe {  #define MSG_SC11_SITSWINGER 5198  #define MV_KCH_MOVE2 1099  #define MV_KCH_START 1121 +#define MV_MAN11_JUMPOVER 1131  #define MV_MAN11_SWING_0 1109  #define MV_MAN11_SWING_1 1111  #define MV_MAN11_SWING_2 1112 @@ -511,11 +512,13 @@ namespace Fullpipe {  #define QU_SC11_PUTBOOT1 2709  #define QU_SC11_PUTBOOT2 2710  #define QU_SC11_RESTARTMAN 1134 +#define SND_11_022 3706  #define ST_BTS11_2 2707  #define ST_BTS11_ONE 2706  #define ST_KCH_0 1096  #define ST_KCH_EMPTY 1132  #define ST_KCH_STATIC 1122 +#define ST_MAN_1PIX 518  #define ST_MAN11_EMPTY 1110  #define ST_SWR_SIT 1147  #define ST_SWR_SITBALD 1153 diff --git a/engines/fullpipe/scenes/scene11.cpp b/engines/fullpipe/scenes/scene11.cpp index 34693611e8..4336432357 100644 --- a/engines/fullpipe/scenes/scene11.cpp +++ b/engines/fullpipe/scenes/scene11.cpp @@ -256,36 +256,6 @@ void sceneHandler11_sub12() {  	warning("STUB: sceneHandler11_sub12()");  } -void sceneHandler11_sub10(double angle) { -	warning("STUB: sceneHandler11_sub10()"); -} - -void sceneHandler11_sub11(double angle) { -	warning("STUB: sceneHandler11_sub11()"); -} - -void sceneHandler11_swingLogic() { -	if (g_vars->scene11_dudeOnSwing->_movement) { -		int ph = g_vars->scene11_dudeOnSwing->_movement->_currDynamicPhaseIndex; -		if (ph > 53 && ph < 90) { -			if (ph < 70 && g_vars->scene11_var10 >= 22.0) { -				sceneHandler11_sub10((double)ph * 0.01428571428571429);  // = 1 / 70 -			} else if (ph <= 80 && g_vars->scene11_var10 >= 22.0) { -				sceneHandler11_sub08(); -			} else { -				sceneHandler11_sub11((double)ph * g_vars->scene11_var10 * 0.0006493506493506494); // = 1/1540 -			} - -			g_vars->scene11_var02 = 0; -			g_vars->scene11_hint->_flags &= 0xFFFB; -			return; -		} - -		if (ph > 38 && ph < 53 && fabs(g_vars->scene11_var10) <= 5.0) -			sceneHandler11_sub12(); -	} -} -  void sceneHandler11_swing0() {  	g_vars->scene11_dudeOnSwing->_statics = g_vars->scene11_dudeOnSwing->getStaticsById(ST_MAN11_EMPTY);  	g_vars->scene11_dudeOnSwing->_movement = 0; @@ -322,18 +292,6 @@ void sceneHandler11_swing2() {  	g_vars->scene11_var09 = fabs(g_vars->scene11_var08) * 0.075 + 0.12;  } -void sceneHandler11_sub05() { -	warning("STUB: sceneHandler11_sub05()"); -} - -void sceneHandler11_sub06() { -	warning("STUB: sceneHandler11_sub06()"); -} - -void sceneHandler11_sub07() { -	warning("STUB: sceneHandler11_sub07()"); -} -  void sceneHandler11_sub09() {  	if (g_vars->scene11_var17)  		sceneHandler11_swing0(); @@ -349,6 +307,77 @@ void sceneHandler11_sub09() {  	g_vars->scene11_var12 = 1.9881250;  } +void sceneHandler11_sub10(double angle) { +	MGMInfo mgminfo; + +	sceneHandler11_sub09(); + +	g_fp->_aniMan->show1(690 - (int)(sin(g_vars->scene11_var08) * -267.0), 215 - (int)(cos(g_vars->scene11_var08) * -267.0), +						  MV_MAN11_JUMPOVER, 0); +	g_fp->_aniMan->_priority = 0; + +	mgminfo.staticsId2 = ST_MAN_1PIX; +	mgminfo.ani = g_fp->_aniMan; +	mgminfo.x1 = 1163; +	mgminfo.y1 = 837 - (int)(angle * 153.0); +	mgminfo.field_1C = 0; +	mgminfo.field_10 = 1; +	mgminfo.flags = 78; +	mgminfo.movementId = MV_MAN11_JUMPOVER; + +	MessageQueue *mq = g_vars->scene11_var01.genMovement(&mgminfo); + +	if (mq) { +		g_vars->scene11_var07 = SND_11_022; + +		ExCommand *ex = new ExCommand(0, 17, MSG_SC11_RESTARTMAN, 0, 0, 0, 1, 0, 0, 0); +		ex->_excFlags = 2; + +		mq->addExCommandToEnd(ex); + +		if (!mq->chain(g_fp->_aniMan) ) +			delete mq; +	} +} + +void sceneHandler11_sub11(double angle) { +	warning("STUB: sceneHandler11_sub11()"); +} + +void sceneHandler11_swingLogic() { +	if (g_vars->scene11_dudeOnSwing->_movement) { +		int ph = g_vars->scene11_dudeOnSwing->_movement->_currDynamicPhaseIndex; +		if (ph > 53 && ph < 90) { +			if (ph < 70 && g_vars->scene11_var10 >= 22.0) { +				sceneHandler11_sub10((double)ph * 0.01428571428571429);  // = 1 / 70 +			} else if (ph <= 80 && g_vars->scene11_var10 >= 22.0) { +				sceneHandler11_sub08(); +			} else { +				sceneHandler11_sub11((double)ph * g_vars->scene11_var10 * 0.0006493506493506494); // = 1/1540 +			} + +			g_vars->scene11_var02 = 0; +			g_vars->scene11_hint->_flags &= 0xFFFB; +			return; +		} + +		if (ph > 38 && ph < 53 && fabs(g_vars->scene11_var10) <= 5.0) +			sceneHandler11_sub12(); +	} +} + +void sceneHandler11_sub05() { +	warning("STUB: sceneHandler11_sub05()"); +} + +void sceneHandler11_sub06() { +	warning("STUB: sceneHandler11_sub06()"); +} + +void sceneHandler11_sub07() { +	warning("STUB: sceneHandler11_sub07()"); +} +  void sceneHandler11_winArcade() {  	if (g_vars->scene11_var02) {  		g_vars->scene11_var02 = 0;  | 
