diff options
| author | Eugene Sandulenko | 2014-02-03 15:33:41 +0200 | 
|---|---|---|
| committer | Eugene Sandulenko | 2014-02-03 15:46:39 +0200 | 
| commit | a7c0495d70f11981e6366a830c4b5178ab1e3ad1 (patch) | |
| tree | 3a44dfe143696003a1173958371fb43e3a22ce6a | |
| parent | 8f9bc161f46b1b337c8a64254811b144dfebd9cd (diff) | |
| download | scummvm-rg350-a7c0495d70f11981e6366a830c4b5178ab1e3ad1.tar.gz scummvm-rg350-a7c0495d70f11981e6366a830c4b5178ab1e3ad1.tar.bz2 scummvm-rg350-a7c0495d70f11981e6366a830c4b5178ab1e3ad1.zip | |
FULLPIPE: Implement sceneHandler27()
| -rw-r--r-- | engines/fullpipe/constants.h | 9 | ||||
| -rw-r--r-- | engines/fullpipe/scenes/scene27.cpp | 125 | 
2 files changed, 134 insertions, 0 deletions
| diff --git a/engines/fullpipe/constants.h b/engines/fullpipe/constants.h index cc09d9e4c9..b1480833b9 100644 --- a/engines/fullpipe/constants.h +++ b/engines/fullpipe/constants.h @@ -1088,7 +1088,16 @@ namespace Fullpipe {  #define ANI_BITAHANDLER 3349  #define ANI_MAID 2015  #define ANI_VODILLA 1994 +#define MSG_SC27_CLICKBET 2048 +#define MSG_SC27_HANDLERTOBACK 3372 +#define MSG_SC27_HANDLERTOFRONT 3371 +#define MSG_SC27_SHOWNEXTBET 3369 +#define MSG_SC27_STARTBET 2047 +#define MSG_SC27_STARTWIPE 2057 +#define MSG_SC27_TAKEVENT 4584 +#define MV_MAN27_FLOW 1990  #define PIC_SC27_HITZONE2 4756 +#define SND_27_027 4128  #define ST_MID_BROOM 2022  #define ST_MID_SPADE 3489  #define ST_MID_SWAB2 2019 diff --git a/engines/fullpipe/scenes/scene27.cpp b/engines/fullpipe/scenes/scene27.cpp index 2f00878f4f..c3cba7fc74 100644 --- a/engines/fullpipe/scenes/scene27.cpp +++ b/engines/fullpipe/scenes/scene27.cpp @@ -157,4 +157,129 @@ int scene27_updateCursor() {  	return g_fp->_cursorId;  } +void sceneHandler27_winArcade() { +	warning("STUB: sceneHandler27_winArcade()"); +} + +void sceneHandler27_takeVent() { +	warning("STUB: sceneHandler27_takeVent()"); +} + +void sceneHandler27_showNextBat() { +	warning("STUB: sceneHandler27_showNextBat()"); +} + +void sceneHandler27_clickBat(ExCommand *cmd) { +	warning("STUB: sceneHandler27_clickBat()"); +} + +void sceneHandler27_startBat(StaticANIObject *bat) { +	warning("STUB: sceneHandler27_startBat()"); +} + +void sceneHandler27_startAiming() { +	warning("STUB: sceneHandler27_startAiming()"); +} + +void sceneHandler27_sub04(ExCommand *cmd) { +	warning("STUB: sceneHandler27_sub04()"); +} + +void sceneHandler27_aimDude() { +	warning("STUB: sceneHandler27_aimDude()"); +} + +void sceneHandler27_throwBat() { +	warning("STUB: sceneHandler27_throwBat()"); +} + +void sceneHandler27_animateBats() { +	warning("STUB: sceneHandler27_animateBats()"); +} + + + +int sceneHandler27(ExCommand *cmd) { +	if (cmd->_messageKind != 17) +		return 0; + +	switch (cmd->_messageNum) { +	case MSG_CMN_WINARCADE: +		sceneHandler27_winArcade(); +		break; + +	case MSG_SC27_TAKEVENT: +		sceneHandler27_takeVent(); +		break; + +	case MSG_SC27_SHOWNEXTBET: +		sceneHandler27_showNextBat(); +		break; + +	case MSG_SC27_HANDLERTOFRONT: +		g_vars->scene27_batHandler->_priority = 1005; +		break; + +	case MSG_SC27_STARTWIPE: +		g_vars->scene27_var10 = 1; + +		g_fp->playSound(SND_27_027, 0); + +		break; + +	case MSG_SC27_CLICKBET: +		sceneHandler27_clickBat(cmd); +		break; + +	case MSG_SC27_STARTBET: +		if (g_vars->scene27_bat) +			sceneHandler27_startBat(g_vars->scene27_bat); + +		break; + +	case 30: +		if (g_vars->scene27_var08) +			sceneHandler27_startAiming(); + +		break; + +	case 29: +		if (g_fp->_aniMan == g_fp->_currentScene->getStaticANIObjectAtPos(g_fp->_sceneRect.left + cmd->_x, g_fp->_sceneRect.top + cmd->_y) +			&& g_vars->scene27_var09) +			sceneHandler27_sub04(cmd); + +		break; + +	case 33: +		if (g_fp->_aniMan2) { +			int x = g_fp->_aniMan2->_ox; + +			if (x < g_fp->_sceneRect.left + g_vars->scene27_var01) +				g_fp->_currentScene->_x = x - g_vars->scene27_var03 - g_fp->_sceneRect.left; + +			if (x > g_fp->_sceneRect.right - g_vars->scene27_var01) +				g_fp->_currentScene->_x = x + g_vars->scene27_var03 - g_fp->_sceneRect.right; +		} + +		if (g_vars->scene27_var08) +			sceneHandler27_aimDude(); + +		if (g_vars->scene27_var10) { +			sceneHandler27_throwBat(); + +			if (!g_fp->_aniMan->_movement && g_fp->_aniMan->_statics->_staticsId == ST_MAN_RIGHT) +				g_fp->_aniMan->startAnim(MV_MAN27_FLOW, 0, -1); +		} + +		sceneHandler27_animateBats(); + +		g_fp->_behaviorManager->updateBehaviors(); +		g_fp->startSceneTrack(); + +		break; +	} + +	return 0; +} +  } // End of namespace Fullpipe | 
