Пример #1
0
void FePresent::post_run()
{
#ifndef NO_MOVIE
    //
    // Re-establish openAL stuff now that we are back from the emulator
    //
    sf::AudioDevice::release_audio( false );

    for ( std::vector<FeBaseTextureContainer *>::iterator itm=m_texturePool.begin();
            itm != m_texturePool.end(); ++itm )
        (*itm)->release_audio( false );

    for ( std::vector<FeSound *>::iterator its=m_sounds.begin();
            its != m_sounds.end(); ++its )
        (*its)->release_audio( false );
#endif

    for ( std::vector<FeBaseTextureContainer *>::iterator itm=m_texturePool.begin();
            itm != m_texturePool.end(); ++itm )
        (*itm)->set_vol( m_feSettings->get_play_volume( FeSoundInfo::Movie ) );

    set_video_play_state( m_playMovies );
    on_transition( FromGame, FromToNoValue );

    reset_screen_saver();
    update( true );
}
Пример #2
0
void FePresent::post_run()
{
	set_video_play_state( m_playMovies );
	on_transition( FromGame, FromToNoValue );

	reset_screen_saver();
	update( true );
}
Пример #3
0
bool FePresent::handle_event( FeInputMap::Command c )
{
	if ( reset_screen_saver() )
		return true;

	switch( c )
	{
	case FeInputMap::Down:
		change_selection( 1, false );
		break;

	case FeInputMap::Up:
		change_selection( -1, false );
		break;

	case FeInputMap::PageDown:
		change_selection( get_page_size(), false );
		break;

	case FeInputMap::PageUp:
		change_selection( -get_page_size(), false );
		break;

	case FeInputMap::RandomGame:
		{
			int ls = m_feSettings->get_filter_size( m_feSettings->get_current_filter_index() );
			if ( ls > 0 )
			{
				int step = rand() % ls;
				if ( step != 0 )
					change_selection( step );
			}
		}
		break;

	case FeInputMap::ToggleRotateRight:
		toggle_rotate( FeSettings::RotateRight );
		break;

	case FeInputMap::ToggleFlip:
		toggle_rotate( FeSettings::RotateFlip );
		break;

	case FeInputMap::ToggleRotateLeft:
		toggle_rotate( FeSettings::RotateLeft );
		break;

	case FeInputMap::ToggleMovie:
		toggle_movie();
		break;

	case FeInputMap::NextDisplay:
	case FeInputMap::PrevDisplay:
		if ( m_feSettings->navigate_display( ( c == FeInputMap::NextDisplay ) ? 1 : -1 ) )
			load_layout();
		else
			update_to_new_list( 0, true );

		break;

	case FeInputMap::NextFilter:
	case FeInputMap::PrevFilter:
		{
			int offset = ( c == FeInputMap::NextFilter ) ? 1 : -1;
			if ( m_feSettings->navigate_filter( offset ) )
				load_layout();
			else
				update_to_new_list( offset );
		}
		break;

	case FeInputMap::ToggleLayout:
		m_feSettings->toggle_layout();
		load_layout();
		break;

	case FeInputMap::PrevFavourite:
	case FeInputMap::NextFavourite:
	case FeInputMap::PrevLetter:
	case FeInputMap::NextLetter:
		{
			int step( 0 );
			switch ( c )
			{
				case FeInputMap::PrevFavourite:
					step = m_feSettings->get_prev_fav_offset();
					break;

				case FeInputMap::NextFavourite:
					step = m_feSettings->get_next_fav_offset();
					break;

				case FeInputMap::PrevLetter:
					step = m_feSettings->get_next_letter_offset( -1 );
					break;

				case FeInputMap::NextLetter:
					step = m_feSettings->get_next_letter_offset( 1 );
					break;

				default:
					break;
			}

			if ( step != 0 )
				change_selection( step, false );
		}
		break;

	case FeInputMap::ScreenSaver:
		load_screensaver();
		break;

	case FeInputMap::Intro:
		if ( !load_intro() )
			load_layout();
		break;

	case FeInputMap::LAST_COMMAND:
	default:
		// Not handled by us, return false so calling function knows
		//
		return false;
	}

	return true;
}