working on perspective stuff for tilted menu items

This commit is contained in:
Chris Danford
2003-04-23 05:54:56 +00:00
parent ef89561fa9
commit ee47352dd0
7 changed files with 87 additions and 47 deletions
Binary file not shown.

After

Width:  |  Height:  |  Size: 1.9 KiB

+27
View File
@@ -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
+5 -5
View File
@@ -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 );
}
+53 -41
View File
@@ -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; i<NUM_WHEEL_ITEMS; i++ )
{
MusicWheelItem& display = m_MusicWheelItems[i];
// draw outside->inside
int i;
for( i=0; i<NUM_WHEEL_ITEMS/2; i++ )
DrawItem( i );
for( i=NUM_WHEEL_ITEMS-1; 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();
+1
View File
@@ -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);
+1
View File
@@ -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,""},
-1
View File
@@ -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);