From ee47352dd031f87d6045e19dac44c1435e7a0c91 Mon Sep 17 00:00:00 2001 From: Chris Danford Date: Wed, 23 Apr 2003 05:54:56 +0000 Subject: [PATCH] working on perspective stuff for tilted menu items --- .../default/Graphics/GrooveGraph base.png | Bin 0 -> 1925 bytes stepmania/Themes/default/metrics.ini | 27 +++++ stepmania/src/GrooveGraph.cpp | 10 +- stepmania/src/MusicWheel.cpp | 94 ++++++++++-------- stepmania/src/MusicWheel.h | 1 + stepmania/src/ScreenCredits.cpp | 1 + stepmania/src/ThemeManager.cpp | 1 - 7 files changed, 87 insertions(+), 47 deletions(-) create mode 100644 stepmania/Themes/default/Graphics/GrooveGraph base.png diff --git a/stepmania/Themes/default/Graphics/GrooveGraph base.png b/stepmania/Themes/default/Graphics/GrooveGraph base.png new file mode 100644 index 0000000000000000000000000000000000000000..a344fead7b845467a54d020b435ea7e5d0839044 GIT binary patch literal 1925 zcmeHI`%l|d6u)g5ZkUoyVOT&aZDE zmJ0|H@-mVj@(?i;E%Sbn6M|weAO=ixCYQryx7o=Ba!20Xl0vc&@bj|SI4=o)0bvLZ zBOxe>VgN$HW_u)xeuQvno}w6nFeAhpjRX`nAs^txZC2Vtyhzb3kMQdf?l83NEomDeCev8aL_jJV0Gq|A5OpC_iFsW8*dIJT)3N-J9hD-iK~@U z71yWrUBu1rEw?6|2J41p)w{wWmS!oNeSzkD6zwBSv%J7TL_V7(_vDHDqSeYTFY|6U@_2A3oQpU~NEnTw zP$(D-%Caos>~R@9&v6{XFf>hjJRY~(y|%Wty1Kf&yu7ru+S9B>FMe2?(XX9 z>gecbZ*OmFYins~X=-X}Y;0_3XsEBRudA!8t*zDT^))p$)z#HiRaKRhl{%fSqN1X_ zyu7TethBULtJRj2loS^iXJ==pr>Cc-rKP5(rlh1KCMG5%B*ewV#m2^JG@6*0nCR$e zJoy6_dJEq+@OeRAA$I@I3l#1=hu;k)o12+YbbaIF-FKqeBY?sjuZb`#n}J4sen^oH zIwN0lfiun7tv7YxWcqMMRx&t#$93nd21Gb@`KQ!CsY@Pfj|7TjO;M)m8SEJ)|GgGetMetricC("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);