diff --git a/stepmania/Themes/default/Graphics/GrooveGraph base.png b/stepmania/Themes/default/Graphics/GrooveGraph base.png new file mode 100644 index 0000000000..a344fead7b Binary files /dev/null and b/stepmania/Themes/default/Graphics/GrooveGraph base.png differ diff --git a/stepmania/Themes/default/metrics.ini b/stepmania/Themes/default/metrics.ini index 9ec860cddf..b1d6e149e2 100644 --- a/stepmania/Themes/default/metrics.ini +++ b/stepmania/Themes/default/metrics.ini @@ -424,10 +424,16 @@ AutogenIconP2X=272 AutogenIconP2Y=248 AutogenIconP2OnCommand=zoomy,0;linear,0.5;zoomy,1 AutogenIconP2OffCommand=linear,0.5;zoomy,0 +ShowRadar=1 RadarX=160 RadarY=334 RadarOnCommand= RadarOffCommand= +ShowGraph=0 +GraphX=160 +GraphY=334 +GraphOnCommand= +GraphOffCommand= SortIconX=350 SortIconY=70 SortIconOnCommand=zoomy,0;linear,0.5;zoomy,1 @@ -1520,6 +1526,27 @@ Label4OffsetY=66 Label5OffsetX=120 // chaos Label5OffsetY=-20 +[GrooveGraph] +EdgeWidth= +BeginnerColor= +EasyColor= +MediumColor= +HardColor= +ChallengeColor= +ShowStream= +ShowVoltage= +ShowAir= +ShowFreeze= +ShowChaos= +StreamX= +VoltageX= +AirX= +FreezeX= +ChaosX= +MountainsBaseY= +MountainWidth= +MountainHeight= + [OptionIcon] TextOffsetX=0 TextOffsetY=0 diff --git a/stepmania/src/GrooveGraph.cpp b/stepmania/src/GrooveGraph.cpp index 64639b2f26..1baf03011d 100644 --- a/stepmania/src/GrooveGraph.cpp +++ b/stepmania/src/GrooveGraph.cpp @@ -30,7 +30,7 @@ const float GRAPH_EDGE_WIDTH = 2; #define DIFFICULTY_COLORS(dc) THEME->GetMetricC("GrooveGraph",Capitalize(DifficultyToString(dc))+"Color") #define SHOW_CATEGORY(cat) THEME->GetMetricB("GrooveGraph","Show"+Capitalize(CategoryToString(cat))) #define CATEGORY_X(cat) THEME->GetMetricF("GrooveGraph",Capitalize(CategoryToString(cat))+"X") -#define MOUNTAINS_Y THEME->GetMetricF("GrooveGraph","MountainsY") +#define MOUNTAINS_BASE_Y THEME->GetMetricF("GrooveGraph","MountainsBaseY") CachedThemeMetricF MOUNTAIN_WIDTH ("GrooveGraph","MountainWidth"); CachedThemeMetricF MOUNTAIN_HEIGHT ("GrooveGraph","MountainHeight"); @@ -51,7 +51,7 @@ GrooveGraph::GrooveGraph() if( !SHOW_CATEGORY((RadarCategory)c) ) continue; - m_Mountains[c].SetXY( CATEGORY_X((RadarCategory)c), MOUNTAINS_Y ); + m_Mountains[c].SetXY( CATEGORY_X((RadarCategory)c), MOUNTAINS_BASE_Y ); this->AddChild( &m_Mountains[c] ); } } @@ -126,9 +126,9 @@ void GrooveGraph::Mountain::DrawPrimitives() { float fValue = SCALE(m_fPercentTowardNew, 0.f, 1.f, m_fValuesOld[i], m_fValuesNew[i] ); float fHeight = MOUNTAIN_HEIGHT*fValue; - v[0].p = RageVector3( -MOUNTAIN_WIDTH/2, MOUNTAIN_HEIGHT/2, 0 ); - v[1].p = RageVector3( MOUNTAIN_WIDTH/2, MOUNTAIN_HEIGHT/2, 0 ); - v[2].p = RageVector3( 0, (MOUNTAIN_HEIGHT/2)-fHeight, 0 ); + v[0].p = RageVector3( -MOUNTAIN_WIDTH/2, 0, 0 ); + v[1].p = RageVector3( MOUNTAIN_WIDTH/2, 0, 0 ); + v[2].p = RageVector3( 0, -fHeight, 0 ); v[0].c = v[1].c = v[2].c = g_DifficultyColorsCache[i]; DISPLAY->DrawFan( v, 3 ); } diff --git a/stepmania/src/MusicWheel.cpp b/stepmania/src/MusicWheel.cpp index 2df77fe9d7..589117a446 100644 --- a/stepmania/src/MusicWheel.cpp +++ b/stepmania/src/MusicWheel.cpp @@ -528,6 +528,8 @@ void MusicWheel::GetItemPosition( float fPosOffsetsFromMiddle, float& fX_out, fl fX_out = 0; fY_out = -radius*sinf(fRotationX_out); fZ_out = -100+radius*cosf(fRotationX_out); // getting werid results with acosf() + + fRotationX_out *= 180.f/PI; // to degrees } else { @@ -586,61 +588,71 @@ void MusicWheel::DrawPrimitives() { if( USE_3D ) { - DISPLAY->PushMatrix(); - DISPLAY->EnterPerspective(45, false); +// DISPLAY->PushMatrix(); +// DISPLAY->EnterPerspective(45, false); // construct view and project matrix - RageVector3 Up( 0.0f, 1.0f, 0.0f ); - RageVector3 Eye( CENTER_X, CENTER_Y, 550 ); - RageVector3 At( CENTER_X, CENTER_Y, 0 ); +// RageVector3 Up( 0.0f, 1.0f, 0.0f ); +// RageVector3 Eye( CENTER_X, CENTER_Y, 550 ); +// RageVector3 At( CENTER_X, CENTER_Y, 0 ); - DISPLAY->LookAt(Eye, At, Up); +// DISPLAY->LookAt(Eye, At, Up); } - for( int i=0; iinside + int i; + for( i=0; i=NUM_WHEEL_ITEMS/2; i-- ) + DrawItem( i ); - switch( m_WheelState ) - { - case STATE_SELECTING_MUSIC: - case STATE_ROULETTE_SPINNING: - case STATE_ROULETTE_SLOWING_DOWN: - case STATE_RANDOM_SPINNING: - case STATE_LOCKED: - { - float fThisBannerPositionOffsetFromSelection = i - NUM_WHEEL_ITEMS/2 + m_fPositionOffsetFromSelection; - - float fX, fY, fZ, fRotationX; - GetItemPosition( fThisBannerPositionOffsetFromSelection, fX, fY, fZ, fRotationX ); - - if( fY < -SCREEN_HEIGHT/2 || fY > SCREEN_HEIGHT/2 ) - continue; // skip - - display.SetXY( fX, fY ); - display.SetZ( fZ ); - display.SetRotationX( fRotationX ); - } - break; - } - - if( m_WheelState == STATE_LOCKED && i != NUM_WHEEL_ITEMS/2 ) - display.m_fPercentGray = 0.5f; - else - display.m_fPercentGray = 0; - - display.Draw(); - } ActorFrame::DrawPrimitives(); if( USE_3D ) { - DISPLAY->ExitPerspective(); - DISPLAY->PopMatrix(); +// DISPLAY->ExitPerspective(); +// DISPLAY->PopMatrix(); } } + +void MusicWheel::DrawItem( int i ) +{ + MusicWheelItem& display = m_MusicWheelItems[i]; + + switch( m_WheelState ) + { + case STATE_SELECTING_MUSIC: + case STATE_ROULETTE_SPINNING: + case STATE_ROULETTE_SLOWING_DOWN: + case STATE_RANDOM_SPINNING: + case STATE_LOCKED: + { + float fThisBannerPositionOffsetFromSelection = i - NUM_WHEEL_ITEMS/2 + m_fPositionOffsetFromSelection; + + float fX, fY, fZ, fRotationX; + GetItemPosition( fThisBannerPositionOffsetFromSelection, fX, fY, fZ, fRotationX ); + +// if( fY < -SCREEN_HEIGHT/2 || fY > SCREEN_HEIGHT/2 ) +// continue; // skip + + display.SetXY( fX, fY ); + display.SetZ( fZ ); + display.SetRotationX( fRotationX ); + } + break; + } + + if( m_WheelState == STATE_LOCKED && i != NUM_WHEEL_ITEMS/2 ) + display.m_fPercentGray = 0.5f; + else + display.m_fPercentGray = 0; + + display.Draw(); +} + + void MusicWheel::UpdateScrollbar() { int total_num_items = m_CurWheelItemData.size(); diff --git a/stepmania/src/MusicWheel.h b/stepmania/src/MusicWheel.h index a615505ecb..a5083fdf83 100644 --- a/stepmania/src/MusicWheel.h +++ b/stepmania/src/MusicWheel.h @@ -44,6 +44,7 @@ public: virtual void Update( float fDeltaTime ); virtual void DrawPrimitives(); + void DrawItem( int index ); virtual void TweenOnScreen(bool changing_sort); virtual void TweenOffScreen(bool changing_sort); diff --git a/stepmania/src/ScreenCredits.cpp b/stepmania/src/ScreenCredits.cpp index 8ed6624cdb..aeddf49bdb 100644 --- a/stepmania/src/ScreenCredits.cpp +++ b/stepmania/src/ScreenCredits.cpp @@ -69,6 +69,7 @@ const CreditLine CREDIT_LINES[] = {0,"Redcrusher (Michael Curry)"}, {0,"Steve 'healing_vision' Klise"}, {0,"Mauro Panichella"}, + {0,"Griever (Julian)"}, {0,""}, {0,""}, {0,""}, diff --git a/stepmania/src/ThemeManager.cpp b/stepmania/src/ThemeManager.cpp index 8ac76b53ae..5fcf1927d4 100644 --- a/stepmania/src/ThemeManager.cpp +++ b/stepmania/src/ThemeManager.cpp @@ -360,7 +360,6 @@ RageColor ThemeManager::GetMetricC( CString sClassName, CString sValueName ) if( result != 4 ) { LOG->Warn( "The color value '%s' for NoteSkin metric '%s : %s' is invalid.", GetMetricRaw(sClassName,sValueName).GetString(), sClassName.GetString(), sValueName.GetString() ); - ASSERT(0); } return RageColor(r,g,b,a);