diff options
| author | Eugene Sandulenko | 2014-01-01 15:08:58 +0200 | 
|---|---|---|
| committer | Eugene Sandulenko | 2014-01-01 15:08:58 +0200 | 
| commit | db98d92325b3b7b526d5bd3c5fe1fa3a2f01b084 (patch) | |
| tree | 2c0f79458980018c534aed22df439ce4e3bc0f59 | |
| parent | b2933f9c018a7366df21405df3161cf3c2148a87 (diff) | |
| download | scummvm-rg350-db98d92325b3b7b526d5bd3c5fe1fa3a2f01b084.tar.gz scummvm-rg350-db98d92325b3b7b526d5bd3c5fe1fa3a2f01b084.tar.bz2 scummvm-rg350-db98d92325b3b7b526d5bd3c5fe1fa3a2f01b084.zip | |
FULLPIPE: Implement sceneHandler16_putOnWheel()
| -rw-r--r-- | engines/fullpipe/constants.h | 2 | ||||
| -rw-r--r-- | engines/fullpipe/scenes/scene16.cpp | 40 | 
2 files changed, 39 insertions, 3 deletions
| diff --git a/engines/fullpipe/constants.h b/engines/fullpipe/constants.h index fa90756bce..fcd974e249 100644 --- a/engines/fullpipe/constants.h +++ b/engines/fullpipe/constants.h @@ -671,6 +671,8 @@ namespace Fullpipe {  #define QU_SC16_BOYOUT 1364  #define QU_SC16_GIRLLAUGH 1375  #define QU_SC16_GIRLOUT 1365 +#define QU_SC16_GOBOY 1347 +#define QU_SC16_GOGIRL 1348  #define QU_SC16_SHOWMUG 1361  #define SND_16_034 3854  #define SND_16_035 3855 diff --git a/engines/fullpipe/scenes/scene16.cpp b/engines/fullpipe/scenes/scene16.cpp index dafb932a33..fd764c2cfb 100644 --- a/engines/fullpipe/scenes/scene16.cpp +++ b/engines/fullpipe/scenes/scene16.cpp @@ -296,8 +296,42 @@ void sceneHandler16_showWire() {  	g_vars->scene16_wire->show1(-1, -1, -1, 0);  } -void sceneHandler16_sub01() { -	warning("STUB: sceneHandler16_sub01()"); +void sceneHandler16_putOnWheel() { +	StaticANIObject *ani = g_vars->scene16_var06; + +	if (!ani) +		ani = g_vars->scene16_var07; + +	if (ani) +		g_vars->scene16_var05.push_back(ani); + +	ani = g_vars->scene16_var05.front(); + +	g_vars->scene16_var05.pop_front(); + +	if (ani) { +		MessageQueue *mq; + +		if (ani->_id == ANI_BOY) { +			mq = new MessageQueue(g_fp->_currentScene->getMessageQueueById(QU_SC16_GOBOY), 0, 1); + +			mq->replaceKeyCode(-1, ani->_okeyCode); +			mq->chain(0); + +			g_vars->scene16_var06 = ani; +			g_vars->scene16_var07 = 0; +		} else if (ani->_id == ANI_GIRL) { +			if (g_fp->getObjectState(sO_Girl) == g_fp->getObjectEnumState(sO_Girl, sO_IsSwinging)) { +				mq = new MessageQueue(g_fp->_currentScene->getMessageQueueById(QU_SC16_GOGIRL), 0, 1); + +				mq->replaceKeyCode(-1, ani->_okeyCode); +				mq->chain(0); + +				g_vars->scene16_var06 = 0; +				g_vars->scene16_var07 = ani; +			} +		} +	}  }  void sceneHandler16_girlROTFL() { @@ -387,7 +421,7 @@ int sceneHandler16(ExCommand *cmd) {  			g_vars->scene16_var08++;  			if (g_vars->scene16_var08 < 280) { -				sceneHandler16_sub01(); +				sceneHandler16_putOnWheel();  				g_vars->scene16_var08 = 0;  			} | 
