Пример #1
0
RString CourseEntry::GetTextDescription() const
{
	vector<RString> vsEntryDescription;
	Song *pSong = songID.ToSong();
	if( pSong )
		vsEntryDescription.push_back( pSong->GetTranslitFullTitle() ); 
	else
		vsEntryDescription.push_back( "Random" );
	if( !songCriteria.m_sGroupName.empty() )
		vsEntryDescription.push_back( songCriteria.m_sGroupName );
	if( songCriteria.m_bUseSongGenreAllowedList )
		vsEntryDescription.push_back( join(",",songCriteria.m_vsSongGenreAllowedList) );
	if( stepsCriteria.m_difficulty != Difficulty_Invalid  &&  stepsCriteria.m_difficulty != Difficulty_Medium )
		vsEntryDescription.push_back( CourseDifficultyToLocalizedString(stepsCriteria.m_difficulty) );
	if( stepsCriteria.m_iLowMeter != -1 )
		vsEntryDescription.push_back( ssprintf("Low meter: %d", stepsCriteria.m_iLowMeter) );
	if( stepsCriteria.m_iHighMeter != -1 )
		vsEntryDescription.push_back( ssprintf("High meter: %d", stepsCriteria.m_iHighMeter) );
	if( songSort != SongSort_Randomize )
		vsEntryDescription.push_back( "Sort: %d" + SongSortToLocalizedString(songSort) );
	if( songSort != SongSort_Randomize && iChooseIndex != 0 )
		vsEntryDescription.push_back( "Choose " + FormatNumberAndSuffix(iChooseIndex) + " match" );
	int iNumModChanges = GetNumModChanges();
	if( iNumModChanges != 0 )
		vsEntryDescription.push_back( ssprintf("%d mod changes", iNumModChanges) );
	if( fGainSeconds != 0 )
		vsEntryDescription.push_back( ssprintf("Low meter: %.0f", fGainSeconds) );

	RString s = join( ",", vsEntryDescription );
	return s;
}
Пример #2
0
static CString GetPromptText()
{
    CString s;

    {
        float fOld = GAMESTATE->m_fGlobalOffsetSecondsOriginal;
        float fNew = PREFSMAN->m_fGlobalOffsetSeconds;
        float fDelta = fNew - fOld;

        if( fabs(fDelta) > 0.00001 )
        {
            s += ssprintf(
                     "You have changed the Global Offset\nfrom %+.3f to %+.3f (change of %+.3f, notes %s).\n\n",
                     fOld,
                     fNew,
                     fDelta,
                     fDelta > 0 ? "earlier":"later"  );
        }
    }

    vector<CString> vsSongChanges;

    {
        float fOld = GAMESTATE->m_pTimingDataOriginal->m_fBeat0OffsetInSeconds;
        float fNew = GAMESTATE->m_pCurSong->m_Timing.m_fBeat0OffsetInSeconds;
        float fDelta = fNew - fOld;

        if( fabs(fDelta) > 0.00001 )
        {
            vsSongChanges.push_back( ssprintf(
                                         "The song offset changed from %+.3f to %+.3f (change of %+.3f, notes %s).\n\n",
                                         fOld,
                                         fNew,
                                         fDelta,
                                         fDelta > 0 ? "earlier":"later" ) );
        }
    }

    for( unsigned i=0; i<GAMESTATE->m_pCurSong->m_Timing.m_BPMSegments.size(); i++ )
    {
        float fOld = GAMESTATE->m_pTimingDataOriginal->m_BPMSegments[i].m_fBPS;
        float fNew = GAMESTATE->m_pCurSong->m_Timing.m_BPMSegments[i].m_fBPS;
        float fDelta = fNew - fOld;

        if( fabs(fDelta) > 0.00001 )
        {
            vsSongChanges.push_back( ssprintf(
                                         "The %s BPM segment changed from %+.3f BPS to %+.3f BPS (change of %+.3f).\n\n",
                                         FormatNumberAndSuffix(i+1).c_str(),
                                         fOld,
                                         fNew,
                                         fDelta ) );
        }
    }

    for( unsigned i=0; i<GAMESTATE->m_pCurSong->m_Timing.m_StopSegments.size(); i++ )
    {
        float fOld = GAMESTATE->m_pTimingDataOriginal->m_StopSegments[i].m_fStopSeconds;
        float fNew = GAMESTATE->m_pCurSong->m_Timing.m_StopSegments[i].m_fStopSeconds;
        float fDelta = fNew - fOld;

        if( fabs(fDelta) > 0.00001 )
        {
            vsSongChanges.push_back( ssprintf(
                                         "The %s Stop segment changed from %+.3f seconds to %+.3f seconds (change of %+.3f).\n\n",
                                         FormatNumberAndSuffix(i+1).c_str(),
                                         fOld,
                                         fNew,
                                         fDelta ) );
        }
    }


    if( !vsSongChanges.empty() )
    {
        s += ssprintf(
                 "You have changed the timing of\n"
                 "%s:\n"
                 "\n",
                 GAMESTATE->m_pCurSong->GetDisplayFullTitle().c_str() );

        s += join( "\n", vsSongChanges );
    }

    s +="\n\n"
        "Would you like to save these changes to the song file?\n"
        "Choosing NO will discard your changes.";

    return s;
}
Пример #3
0
void ScreenSyncOverlay::UpdateText()
{
	CString s;

	switch( PREFSMAN->m_AutoPlay )
	{
	case PC_HUMAN:							break;
	case PC_AUTOPLAY:	s+="AutoPlay\n";	break;
	case PC_CPU:		s+="AutoPlayCPU\n";	break;
	default:	ASSERT(0);
	}

	switch( GAMESTATE->m_SongOptions.m_AutosyncType )
	{
	case SongOptions::AUTOSYNC_OFF:								break;
	case SongOptions::AUTOSYNC_SONG:	s+="AutoSync Song\n";	break;
	case SongOptions::AUTOSYNC_MACHINE:	s+="AutoSync Machine\n";break;
	default:	ASSERT(0);
	}

	if( GAMESTATE->m_pCurSong == NULL  ||  GAMESTATE->IsCourseMode() )	// sync controls not available
	{
		m_textStatus.SetText( s );
		return;
	}
	
	{
		float fOld = GAMESTATE->m_fGlobalOffsetSecondsOriginal;
		float fNew = PREFSMAN->m_fGlobalOffsetSeconds;
		float fDelta = fNew - fOld;

		if( fabsf(fDelta) > 0.00001f )
		{
			s += ssprintf( 
				"Global Offset from %+.3f to %+.3f (notes %s)\n",
				fOld, 
				fNew,
				fDelta > 0 ? "earlier":"later" );
		}
	}

	{
		float fOld = GAMESTATE->m_pTimingDataOriginal->m_fBeat0OffsetInSeconds;
		float fNew = GAMESTATE->m_pCurSong->m_Timing.m_fBeat0OffsetInSeconds;
		float fDelta = fNew - fOld;

		if( fabsf(fDelta) > 0.00001f )
		{
			s += ssprintf( 
				"Song offset from %+.3f to %+.3f (notes %s)\n",
				fOld, 
				fNew,
				fDelta > 0 ? "earlier":"later" );
		}
	}

	ASSERT( GAMESTATE->m_pTimingDataOriginal->m_BPMSegments.size() == GAMESTATE->m_pCurSong->m_Timing.m_BPMSegments.size() );

	for( unsigned i=0; i<GAMESTATE->m_pCurSong->m_Timing.m_BPMSegments.size(); i++ )
	{
		float fOld = GAMESTATE->m_pTimingDataOriginal->m_BPMSegments[i].m_fBPS;
		float fNew = GAMESTATE->m_pCurSong->m_Timing.m_BPMSegments[i].m_fBPS;
		float fDelta = fNew - fOld;

		if( fabsf(fDelta) > 0.00001f )
		{
			s += ssprintf( 
				"%s tempo segment from %+.3f BPS to %+.3f BPS\n",
				FormatNumberAndSuffix(i+1).c_str(),
				fOld, 
				fNew );
		}
	}	
	

	m_textStatus.SetText( s );
}
Пример #4
0
void AdjustSync::GetSyncChangeTextSong( vector<RString> &vsAddTo )
{
	if( GAMESTATE->m_pCurSong.Get() )
	{
		unsigned int iOriginalSize = vsAddTo.size();

		{
			float fOld = Quantize( AdjustSync::s_pTimingDataOriginal->m_fBeat0OffsetInSeconds, 0.001f );
			float fNew = Quantize( GAMESTATE->m_pCurSong->m_Timing.m_fBeat0OffsetInSeconds, 0.001f );
			float fDelta = fNew - fOld;

			if( fabsf(fDelta) > 0.0001f )
			{
				vsAddTo.push_back( ssprintf( 
					SONG_OFFSET_FROM.GetValue(),
					fOld, 
					fNew,
					(fDelta > 0 ? EARLIER:LATER).GetValue().c_str() ) );
			}
		}

		for( unsigned i=0; i<GAMESTATE->m_pCurSong->m_Timing.m_BPMSegments.size(); i++ )
		{
			float fOld = Quantize( AdjustSync::s_pTimingDataOriginal->m_BPMSegments[i].GetBPM(), 0.001f );
			float fNew = Quantize( GAMESTATE->m_pCurSong->m_Timing.m_BPMSegments[i].GetBPM(), 0.001f );
			float fDelta = fNew - fOld;

			if( fabsf(fDelta) > 0.0001f )
			{
				if ( i >= 4 ) 
				{
					vsAddTo.push_back(ETC.GetValue());
					break;
				}
				vsAddTo.push_back( ssprintf( 
					TEMPO_SEGMENT_FROM.GetValue(),
					FormatNumberAndSuffix(i+1).c_str(),
					fOld, 
					fNew ) );
			}
		}

		for( unsigned i=0; i<GAMESTATE->m_pCurSong->m_Timing.m_StopSegments.size(); i++ )
		{
			float fOld = Quantize( AdjustSync::s_pTimingDataOriginal->m_StopSegments[i].m_fStopSeconds, 0.001f );
			float fNew = Quantize( GAMESTATE->m_pCurSong->m_Timing.m_StopSegments[i].m_fStopSeconds, 0.001f );
			float fDelta = fNew - fOld;

			if( fabsf(fDelta) > 0.0001f )
			{
				if ( i >= 4 )
				{
					vsAddTo.push_back(ETC.GetValue());
					break;
				}
				vsAddTo.push_back( ssprintf(
					CHANGED_STOP.GetValue(),
					i+1,
					fOld, 
					fNew ) );
			}
		}

		if( vsAddTo.size() > iOriginalSize && s_fAverageError > 0.0f )
		{
			vsAddTo.push_back( ssprintf(ERROR.GetValue(), s_fAverageError) );
		}
		if( vsAddTo.size() > iOriginalSize && s_iStepsFiltered > 0 )
		{
			vsAddTo.push_back( ssprintf(TAPS_IGNORED.GetValue(), s_iStepsFiltered) );
		}
	}
}