diff --git a/stepmania/src/ScreenOptions.cpp b/stepmania/src/ScreenOptions.cpp index 213c8b094f..5c99d45221 100644 --- a/stepmania/src/ScreenOptions.cpp +++ b/stepmania/src/ScreenOptions.cpp @@ -80,6 +80,9 @@ ScreenOptions::ScreenOptions( CString sClassName ) : ScreenWithMenuElements(sCla LABELS_ON_COMMAND (m_sName,"LabelsOnCommand"), NUM_ROWS_SHOWN (m_sName,"NumRowsShown"), ROW_Y (m_sName,ROW_Y_NAME,NUM_ROWS_SHOWN), + ROW_Y_OFF_SCREEN_TOP (m_sName,"RowYOffScreenTop"), + ROW_Y_OFF_SCREEN_CENTER (m_sName,"RowYOffScreenCenter"), + ROW_Y_OFF_SCREEN_BOTTOM (m_sName,"RowYOffScreenBottom"), ITEMS_ZOOM (m_sName,"ItemsZoom"), ITEMS_START_X (m_sName,"ItemsStartX"), ITEMS_END_X (m_sName,"ItemsEndX"), @@ -1017,21 +1020,20 @@ void ScreenOptions::PositionItems() int pos = 0; for( int i=0; i<(int) Rows.size(); i++ ) // foreach row { - float ItemPosition; + float fY; if( i < first_start ) - ItemPosition = -0.5f; + fY = ROW_Y_OFF_SCREEN_TOP; else if( i < first_end ) - ItemPosition = (float) pos++; + fY = ROW_Y.GetValue( pos++ ); else if( i < second_start ) - ItemPosition = halfsize - 0.5f; + fY = ROW_Y_OFF_SCREEN_CENTER; else if( i < second_end ) - ItemPosition = (float) pos++; + fY = ROW_Y.GetValue( pos++ ); else - ItemPosition = (float) total - 0.5f; + fY = ROW_Y_OFF_SCREEN_BOTTOM; OptionRow &row = *Rows[i]; - float fY = ROW_Y.GetValue( ItemPosition ); row.m_fY = fY; row.m_bHidden = i < first_start || (i >= first_end && i < second_start) || diff --git a/stepmania/src/ScreenOptions.h b/stepmania/src/ScreenOptions.h index 5f15a67fb6..476c86a2e8 100644 --- a/stepmania/src/ScreenOptions.h +++ b/stepmania/src/ScreenOptions.h @@ -118,6 +118,9 @@ protected: ThemeMetric LABELS_ON_COMMAND; ThemeMetric NUM_ROWS_SHOWN; ThemeMetric1D ROW_Y; + ThemeMetric ROW_Y_OFF_SCREEN_TOP; + ThemeMetric ROW_Y_OFF_SCREEN_CENTER; + ThemeMetric ROW_Y_OFF_SCREEN_BOTTOM; ThemeMetric ITEMS_ZOOM; ThemeMetric ITEMS_START_X; ThemeMetric ITEMS_END_X;