//Stick bool Scene710::Object5::startAction(CursorType action, Event &event) { Scene710 *scene = (Scene710 *)BF_GLOBALS._sceneManager._scene; switch (action) { case CURSOR_LOOK: if (scene->_v1D64 <= 2) return NamedObject::startAction(action, event); else { SceneItem::display(710, 3); scene->_v1D66 = 1; return true; } case CURSOR_USE: if ((scene->_kid._position.x < 0) && (scene->_v1D62 == 1)) { scene->_v1D64++; if (scene->_v1D66 == 0) { BF_GLOBALS._player.disableControl(); scene->_v1D62 = 0; scene->_sceneMode = 7105; scene->setAction(&scene->_sequenceManager1, scene, 7105, &BF_GLOBALS._player, &scene->_stick, &scene->_dog, NULL); } else { BF_GLOBALS._player.disableControl(); scene->_sceneMode = 7101; scene->setAction(&scene->_sequenceManager1, scene, 7101, &BF_GLOBALS._player, &scene->_dog, &scene->_stick, NULL); } return true; } // No break on purpose default: return NamedObject::startAction(action, event); } }
//Stick bool Scene710::Object5::startAction(CursorType action, Event &event) { Scene710 *scene = (Scene710 *)BF_GLOBALS._sceneManager._scene; switch (action) { case CURSOR_LOOK: if (scene->_stickThrowCount <= 2) return NamedObject::startAction(action, event); else { SceneItem::display2(710, 3); scene->_watchCrate = true; return true; } case CURSOR_USE: if ((scene->_kid._position.x < 0) && (scene->_dogLying)) { scene->_stickThrowCount++; if (!scene->_watchCrate) { BF_GLOBALS._player.disableControl(); scene->_dogLying = false; scene->_sceneMode = 7105; scene->setAction(&scene->_sequenceManager1, scene, 7105, &BF_GLOBALS._player, &scene->_stick, &scene->_dog, NULL); } else { BF_GLOBALS._player.disableControl(); scene->_sceneMode = 7101; scene->setAction(&scene->_sequenceManager1, scene, 7101, &BF_GLOBALS._player, &scene->_dog, &scene->_stick, NULL); } return true; } // fall through default: return NamedObject::startAction(action, event); } }
void Scene710::Action1::signal() { Scene710 *scene = (Scene710 *)BF_GLOBALS._sceneManager._scene; switch (_actionIndex++) { case 0: BF_GLOBALS._player.disableControl(); _state = 7104; if (BF_INVENTORY.getObjectScene(INV_CRATE1) == 1) _state = 7105; setDelay(3); break; case 1: { PlayerMover *mover = new PlayerMover(); BF_GLOBALS._player.addMover(mover, &scene->_laura._position, scene); break; } case 2: BF_GLOBALS._player._strip = 2; scene->_stripManager.start(_state, this); break; case 3: if (_state == 7105) BF_GLOBALS._player.enableControl(); else { BF_GLOBALS._player.disableControl(); scene->_sceneMode = 7106; scene->setAction(&scene->_sequenceManager1, scene, 7106, &BF_GLOBALS._player, &scene->_laura, &scene->_kid, &scene->_dog, NULL); } if (_state < 7104) { _state++; if ((_state != 7104) && (BF_INVENTORY.getObjectScene(INV_CRATE1) == 1)) _state = 7105; } remove(); break; default: break; } }