diff options
author | Eugene Sandulenko | 2013-11-06 00:21:30 +0200 |
---|---|---|
committer | Eugene Sandulenko | 2013-11-06 00:41:35 +0200 |
commit | b895a88a4f2ad9e4755fb462f295333bf439634c (patch) | |
tree | edd8d76a8158f4660e8b2370698254a5d2cf25eb /engines/fullpipe/scenes.cpp | |
parent | 38dfb4da38a27368e787babab8f2996ad8674d95 (diff) | |
download | scummvm-rg350-b895a88a4f2ad9e4755fb462f295333bf439634c.tar.gz scummvm-rg350-b895a88a4f2ad9e4755fb462f295333bf439634c.tar.bz2 scummvm-rg350-b895a88a4f2ad9e4755fb462f295333bf439634c.zip |
FULLPIPE: Remaining scene03 functions
Diffstat (limited to 'engines/fullpipe/scenes.cpp')
-rw-r--r-- | engines/fullpipe/scenes.cpp | 50 |
1 files changed, 50 insertions, 0 deletions
diff --git a/engines/fullpipe/scenes.cpp b/engines/fullpipe/scenes.cpp index f951cac2ef..245bd02eea 100644 --- a/engines/fullpipe/scenes.cpp +++ b/engines/fullpipe/scenes.cpp @@ -1655,6 +1655,56 @@ void sceneHandler03_getCoin(ExCommand *ex) { } } +void sceneHandler03_goLadder() { + handleObjectInteraction(g_fullpipe->_aniMan, g_fullpipe->_currentScene->getPictureObjectById(PIC_SC3_LADDER, 0), 0); +} + +void sceneHandler03_pushEggStack() { + g_vars->swallowedEgg1->_value.intValue = g_vars->swallowedEgg2->_value.intValue; + g_vars->swallowedEgg2->_value.intValue = g_vars->swallowedEgg3->_value.intValue; + g_vars->swallowedEgg3->_value.intValue = 0; + + if (g_vars->swallowedEgg2->_value.intValue == ANI_INV_EGGBOOT + && g_vars->swallowedEgg1->_value.intValue == ANI_INV_EGGAPL) { + g_vars->swallowedEgg1->_value.intValue = ANI_INV_EGGBOOT; + g_vars->swallowedEgg2->_value.intValue = ANI_INV_EGGAPL; + } +} + +void sceneHandler03_releaseEgg() { + g_vars->scene03_eggeater->_flags &= 0xFF7F; + + g_vars->scene03_eggeater->show1(-1, -1, -1, 0); +} + +void sceneHandler03_takeEgg(ExCommand *ex) { + MessageQueue *mq = g_fullpipe->_globalMessageQueueList->getMessageQueueById(ex->_parId); + + if (mq && mq->getCount() > 0) { + ExCommand *ex0 = mq->getExCommandByIndex(0); + ExCommand *ex1 = mq->getExCommandByIndex(1); + + int egg1 = sceneHandler03_swallowedEgg1State(); + + if (egg1 && ex0) { + ex0->_parentId = egg1; + sceneHandler03_pushEggStack(); + } + + if ( g_vars->swallowedEgg1->_value.intValue == ANI_INV_EGGAPL + && !g_vars->swallowedEgg2->_value.intValue + && !g_vars->swallowedEgg3->_value.intValue + && ex1) { + + if (ex1->_objtype == kObjTypeObjstateCommand) { + ObjstateCommand *com = (ObjstateCommand *)ex1; + + com->_value = g_fullpipe->getObjectEnumState(sO_EggGulper, sO_WantsNothing); + } + } + } +} + int sceneHandler03(ExCommand *ex) { #if 0 if (ex->_messageKind != 17) { |