bool BbvsEngine::changeScene() { writeContinueSavegame(); if (_newSceneNum >= 27 && _newSceneNum <= 30) { // Run minigames stopSpeech(); stopSounds(); _sceneVisited[_currSceneNum] = 1; if (runMinigame(_newSceneNum - 27)) { SWAP(_currSceneNum, _newSceneNum); } } else if (_newSceneNum >= 31 && _newSceneNum <= 43) { // Play video stopSpeech(); stopSounds(); _sceneVisited[_currSceneNum] = 1; _playVideoNumber = _newSceneNum - 30; _currSceneNum = _newSceneNum; _newSceneNum = kAfterVideoSceneNum[_playVideoNumber]; } else if (_newSceneNum >= 100 && _currSceneNum == kCredits) { // Play secret video stopSounds(); _playVideoNumber = _newSceneNum; _currSceneNum = 49; _newSceneNum = kCredits; } else { // Normal scene initScene(true); } return true; }
void Level::update(float time) { if (!started_) { restart(); started_ = true; } if (player_->restarting && !drone_->restarting) drone_->restarting = true; else if (!player_->restarting && drone_->restarting) player_->restarting = true; player_->update(time, grid_, sf::Vector2i(tileSet_.tileWidth, tileSet_.tileHeight)); drone_->nextLocation_ = sf::Vector2f(player_->getPosition().x + player_->getBounds().width / 2, player_->getPosition().y + player_->getBounds().height / 2); drone_->update(time); //Parallax effect if (player_->getState() != State::SLIDING_LEFT && player_->getState() != State::SLIDING_RIGHT) background_->setPosition(sf::Vector2f(player_->getPosition().x - background_->getBounds().width / 3 - player_->getPosition().x / PARALLAX_MODIFIER, player_->getPosition().y - background_->getBounds().height / 3 - player_->getPosition().y / PARALLAX_MODIFIER)); else background_->setPosition(sf::Vector2f(player_->getPosition().x - background_->getBounds().width / 3 - player_->getPosition().x / PARALLAX_MODIFIER, player_->getPosition().y + player_->crouchHeight - player_->standardHeight - background_->getBounds().height / 3 - (player_->getPosition().y + player_->crouchHeight - player_->standardHeight) / PARALLAX_MODIFIER)); checkComplete(); sf::Listener::setPosition(player_->getPosition().x + player_->getBounds().width / 2, 0, player_->getPosition().y + player_->getBounds().height / 2); if (sound_.getStatus() != sf::SoundSource::Status::Playing && !died_ && !completed_) { sound_.setBuffer(buffer_); sound_.play(); } else if (died_ || completed_) stopSounds(); sound_.setPosition(drone_->getPosition().x, 0, drone_->getPosition().y); sound_.setMinDistance(500.f); if (music_.getStatus() != sf::SoundSource::Playing && reverseMusic_.getStatus() != sf::SoundSource::Playing) music_.play(); if (music_.getStatus() == sf::SoundSource::Playing) musicTimer_ = music_.getPlayingOffset(); else if (reverseMusic_.getStatus() == sf::SoundSource::Playing) musicTimer_ = reverseMusic_.getPlayingOffset(); if (!died_ && !completed_) { if (player_->timeTraveling_ && music_.getStatus() == sf::SoundSource::Playing) { music_.pause(); reverseMusic_.setPlayingOffset(reverseMusic_.getDuration() - music_.getPlayingOffset()); reverseMusic_.play(); } else if (!player_->timeTraveling_ && reverseMusic_.getStatus() == sf::SoundSource::Playing) { music_.setPlayingOffset(music_.getDuration() - reverseMusic_.getPlayingOffset()); reverseMusic_.pause(); music_.play(); } } else if (completed_) stopSounds(); }
void Cutscene::update(float time) { player_->update(time, grid_, sf::Vector2i(tileSet_.tileWidth, tileSet_.tileHeight)); if (droneEnabled_) { drone_->nextLocation_ = sf::Vector2f(player_->getPosition().x + player_->getBounds().width / 2, player_->getPosition().y + player_->getBounds().height / 2); drone_->update(time); if (sound_.getStatus() != sf::SoundSource::Status::Playing && !died_ && !completed_) { sound_.setBuffer(buffer_); sound_.play(); } else if (died_ || completed_) stopSounds(); sound_.setPosition(drone_->getPosition().x, 0, drone_->getPosition().y); sound_.setMinDistance(500.f); if (alarm_.getStatus() != sf::SoundSource::Status::Playing && !died_ && !completed_) { alarm_.setBuffer(alarmBuffer_); alarm_.play(); } } //Parallax effect if (player_->getState() != State::SLIDING_LEFT && player_->getState() != State::SLIDING_RIGHT) background_->setPosition(sf::Vector2f(player_->getPosition().x - background_->getBounds().width / 3 - player_->getPosition().x / PARALLAX_MODIFIER, player_->getPosition().y - background_->getBounds().height / 3 - player_->getPosition().y / PARALLAX_MODIFIER)); else background_->setPosition(sf::Vector2f(player_->getPosition().x - background_->getBounds().width / 3 - player_->getPosition().x / PARALLAX_MODIFIER, player_->getPosition().y + player_->crouchHeight - player_->standardHeight - background_->getBounds().height / 3 - (player_->getPosition().y + player_->crouchHeight - player_->standardHeight) / PARALLAX_MODIFIER)); checkWalk(); if (player_->restarting) player_->setState(State::IDLE_RIGHT); }
void AudioDevice::stopAllAudio() { stopStreams(); stopSounds(); JL_DEBUG_LOG("Stopped all audio playback"); audioCleanup(); }
bool SoundGen2GS::playSampleSound(const IIgsSampleHeader &sampleHeader, const int8 *sample) { stopSounds(); IIgsMidiChannel &channel = _midiChannels[kSfxMidiChannel]; channel.setInstrument(&sampleHeader.instrument, sample); channel.setVolume(sampleHeader.volume); channel.noteOn(sampleHeader.pitch, 64); // Use default velocity (i.e. 64) return true; }
void SoundManager::clear() { stopSounds(); sounds.clear(); sound_buffers.clear(); stopMusics(); musics.clear(); setIdGenBase(1); setSoundsVolume(100.0f); setMusicsVolume(100.0f); }
void BbvsEngine::initScene(bool sounds) { stopSpeech(); stopSounds(); _sound->unloadSounds(); _gameState = kGSScene; _prevSceneNum = _currSceneNum; _sceneVisited[_currSceneNum] = 1; _mouseCursorSpriteIndex = 0; _verbPos.x = -1; _verbPos.y = -1; _activeItemType = kITEmpty; _activeItemIndex = 0; _cameraPos.x = 0; _cameraPos.y = 0; _newCameraPos.x = 0; _newCameraPos.y = 0; _inventoryButtonIndex = -1; _currTalkObjectIndex = -1; _currCameraNum = 0; _walkMousePos.x = -1; _walkMousePos.y = -1; _currAction = 0; _currActionCommandIndex = -1; _currActionCommandTimeStamp = 0; _dialogSlotCount = 0; _buttheadObject = 0; _beavisObject = 0; memset(_backgroundSoundsActive, 0, sizeof(_backgroundSoundsActive)); memset(_sceneObjects, 0, sizeof(_sceneObjects)); for (int i = 0; i < kSceneObjectsCount; ++i) { _sceneObjects[i].walkDestPt.x = -1; _sceneObjects[i].walkDestPt.y = -1; } memset(_dialogItemStatus, 0, sizeof(_dialogItemStatus)); _sceneObjectActions.clear(); loadScene(_newSceneNum); _currSceneNum = _newSceneNum; _newSceneNum = 0; for (int i = 0; i < _gameModule->getSceneObjectDefsCount(); ++i) _sceneObjects[i].sceneObjectDef = _gameModule->getSceneObjectDef(i); for (int i = 0; i < _gameModule->getSceneObjectInitsCount(); ++i) { SceneObjectInit *soInit = _gameModule->getSceneObjectInit(i); if (evalCondition(soInit->conditions)) { SceneObject *sceneObject = &_sceneObjects[soInit->sceneObjectIndex]; sceneObject->anim = _gameModule->getAnimation(soInit->animIndex); sceneObject->animIndex = soInit->animIndex; sceneObject->frameIndex = sceneObject->anim->frameCount - 1; sceneObject->frameTicks = 1; sceneObject->x = soInit->x << 16; sceneObject->y = soInit->y << 16; } } if (_gameModule->getButtheadObjectIndex() >= 0) { _buttheadObject = &_sceneObjects[_gameModule->getButtheadObjectIndex()]; // Search for the Beavis object for (int i = 0; i < _gameModule->getSceneObjectDefsCount(); ++i) if (!strcmp(_sceneObjects[i].sceneObjectDef->name, "Beavis")) { _beavisObject = &_sceneObjects[i]; break; } } updateSceneObjectsTurnValue(); updateWalkableRects(); _currCameraNum = 0; if (_buttheadObject) { int minDistance = 0xFFFFFF; for (int cameraNum = 0; cameraNum < 4; ++cameraNum) { CameraInit *cameraInit = _gameModule->getCameraInit(cameraNum); int curDistance = ABS(cameraInit->cameraPos.x - (int)(_buttheadObject->x >> 16) + 160); if (curDistance < minDistance) { minDistance = curDistance; _currCameraNum = cameraNum; } } } _cameraPos = _gameModule->getCameraInit(_currCameraNum)->cameraPos; _newCameraPos = _cameraPos; _walkAreaActions.clear(); for (int i = 0; i < _gameModule->getActionsCount(); ++i) { Action *action = _gameModule->getAction(i); for (int j = 0; j < 8; ++j) if (action->conditions.conditions[j].cond == kCondIsButtheadAtBgObject) _walkAreaActions.push_back(action); } _mouseCursorSpriteIndex = 0; _activeItemIndex = 0; _activeItemType = kITEmpty; for (int i = 0; i < _gameModule->getActionsCount(); ++i) { Action *action = _gameModule->getAction(i); if (evalCondition(action->conditions)) { _gameState = kGSWait; _currAction = action; for (uint j = 0; j < action->actionCommands.size(); ++j) { ActionCommand *actionCommand = &action->actionCommands[j]; if (actionCommand->cmd == kActionCmdSetCameraPos) { _currCameraNum = actionCommand->param; _cameraPos = _gameModule->getCameraInit(_currCameraNum)->cameraPos; _newCameraPos = _cameraPos; break; } } break; } } if (sounds) updateBackgroundSounds(); }
void PlaybackManager::stop() { mTimer->stop(); stopSounds(); emit playStateChanged(false); }
void SoundManager::stopAllAudio(void) { stopMusic(); stopSounds(); }
void PlaybackManager::stop() { mTimer->stop(); stopSounds(); }