Beispiel #1
0
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;

}
Beispiel #2
0
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();
}
Beispiel #3
0
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);
}
Beispiel #4
0
	void AudioDevice::stopAllAudio()
	{
		stopStreams();
		stopSounds();
		JL_DEBUG_LOG("Stopped all audio playback");

		audioCleanup();
	}
Beispiel #5
0
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);
    }
Beispiel #7
0
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();

}
Beispiel #8
0
void PlaybackManager::stop()
{
    mTimer->stop();
    stopSounds();
    emit playStateChanged(false);
}
void SoundManager::stopAllAudio(void)
{  	
   	stopMusic();
   	stopSounds();
   	
}
Beispiel #10
0
void PlaybackManager::stop()
{
    mTimer->stop();
    stopSounds();
}