chugging away at 3.0
This commit is contained in:
+21
-10
@@ -18,6 +18,8 @@
|
|||||||
|
|
||||||
Actor::Actor()
|
Actor::Actor()
|
||||||
{
|
{
|
||||||
|
m_iNumTweenStates = 0;
|
||||||
|
|
||||||
m_size = D3DXVECTOR2( 1, 1 );
|
m_size = D3DXVECTOR2( 1, 1 );
|
||||||
m_pos = m_start_pos = D3DXVECTOR3( 0, 0, 0 );
|
m_pos = m_start_pos = D3DXVECTOR3( 0, 0, 0 );
|
||||||
m_rotation = m_start_rotation = D3DXVECTOR3( 0, 0, 0 );
|
m_rotation = m_start_rotation = D3DXVECTOR3( 0, 0, 0 );
|
||||||
@@ -43,6 +45,7 @@ Actor::Actor()
|
|||||||
m_fShadowLength = 4;
|
m_fShadowLength = 4;
|
||||||
|
|
||||||
m_bBlendAdd = false;
|
m_bBlendAdd = false;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@@ -194,9 +197,9 @@ void Actor::Update( float fDeltaTime )
|
|||||||
|
|
||||||
|
|
||||||
// update tweening
|
// update tweening
|
||||||
if( m_QueuedTweens.GetSize() > 0 ) // we are performing some type of tweening
|
if( m_iNumTweenStates > 0 ) // we are performing a tween
|
||||||
{
|
{
|
||||||
TweenState &TS = m_QueuedTweens[0];
|
TweenState &TS = m_QueuedTweens[0]; // earliest tween
|
||||||
|
|
||||||
if( TS.m_fTimeLeftInTween == TS.m_fTweenTime ) // we are just beginning this tween
|
if( TS.m_fTimeLeftInTween == TS.m_fTweenTime ) // we are just beginning this tween
|
||||||
{
|
{
|
||||||
@@ -218,7 +221,10 @@ void Actor::Update( float fDeltaTime )
|
|||||||
for(int i=0; i<4; i++) m_colorDiffuse[i] = TS.m_end_colorDiffuse[i];
|
for(int i=0; i<4; i++) m_colorDiffuse[i] = TS.m_end_colorDiffuse[i];
|
||||||
m_colorAdd = TS.m_end_colorAdd;
|
m_colorAdd = TS.m_end_colorAdd;
|
||||||
|
|
||||||
m_QueuedTweens.RemoveAt( 0 );
|
// delete the head tween
|
||||||
|
for( int i=0; i<m_iNumTweenStates-1; i++ )
|
||||||
|
m_QueuedTweens[i] = m_QueuedTweens[i+1];
|
||||||
|
m_iNumTweenStates--;
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
else // in the middle of tweening. Recalcute the curent position.
|
else // in the middle of tweening. Recalcute the curent position.
|
||||||
@@ -234,7 +240,7 @@ void Actor::Update( float fDeltaTime )
|
|||||||
fPercentAlongPath = fPercentThroughTween;
|
fPercentAlongPath = fPercentThroughTween;
|
||||||
break;
|
break;
|
||||||
case TWEEN_BIAS_BEGIN:
|
case TWEEN_BIAS_BEGIN:
|
||||||
fPercentAlongPath = (float) sqrt( fPercentThroughTween );
|
fPercentAlongPath = 1 - (1-fPercentThroughTween) * (1-fPercentThroughTween);
|
||||||
break;
|
break;
|
||||||
case TWEEN_BIAS_END:
|
case TWEEN_BIAS_END:
|
||||||
fPercentAlongPath = fPercentThroughTween * fPercentThroughTween;
|
fPercentAlongPath = fPercentThroughTween * fPercentThroughTween;
|
||||||
@@ -249,7 +255,7 @@ void Actor::Update( float fDeltaTime )
|
|||||||
fPercentAlongPath = 1 - cosf( fPercentThroughTween*D3DX_PI*2.5f )/(1+fPercentThroughTween*3);
|
fPercentAlongPath = 1 - cosf( fPercentThroughTween*D3DX_PI*2.5f )/(1+fPercentThroughTween*3);
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
ASSERT( false );
|
ASSERT(0);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -267,7 +273,6 @@ void Actor::Update( float fDeltaTime )
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
void Actor::BeginTweening( float time, TweenType tt )
|
void Actor::BeginTweening( float time, TweenType tt )
|
||||||
{
|
{
|
||||||
StopTweening(); // cancel current tweens
|
StopTweening(); // cancel current tweens
|
||||||
@@ -279,13 +284,13 @@ void Actor::BeginTweeningQueued( float time, TweenType tt )
|
|||||||
ASSERT( time >= 0 );
|
ASSERT( time >= 0 );
|
||||||
|
|
||||||
// add a new TweenState to the tail, and initialize it
|
// add a new TweenState to the tail, and initialize it
|
||||||
m_QueuedTweens.Add( TweenState() );
|
m_iNumTweenStates++;
|
||||||
TweenState &TS = m_QueuedTweens[m_QueuedTweens.GetSize()-1];
|
TweenState &TS = m_QueuedTweens[m_iNumTweenStates-1]; // latest tween state
|
||||||
|
|
||||||
if( m_QueuedTweens.GetSize() >= 2 ) // if there was already a TS on the stack
|
if( m_iNumTweenStates >= 2 ) // if there was already a TS on the stack
|
||||||
{
|
{
|
||||||
// initialize the new TS from the last TS in the list
|
// initialize the new TS from the last TS in the list
|
||||||
TS = m_QueuedTweens[m_QueuedTweens.GetSize()-2];
|
TS = m_QueuedTweens[m_iNumTweenStates-2];
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
@@ -303,6 +308,12 @@ void Actor::BeginTweeningQueued( float time, TweenType tt )
|
|||||||
TS.m_fTimeLeftInTween = time;
|
TS.m_fTimeLeftInTween = time;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void Actor::StopTweening()
|
||||||
|
{
|
||||||
|
m_iNumTweenStates = 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
void Actor::SetTweenX( float x ) { GetLatestTween().m_end_pos.x = x; }
|
void Actor::SetTweenX( float x ) { GetLatestTween().m_end_pos.x = x; }
|
||||||
void Actor::SetTweenY( float y ) { GetLatestTween().m_end_pos.y = y; }
|
void Actor::SetTweenY( float y ) { GetLatestTween().m_end_pos.y = y; }
|
||||||
void Actor::SetTweenZ( float z ) { GetLatestTween().m_end_pos.z = z; }
|
void Actor::SetTweenZ( float z ) { GetLatestTween().m_end_pos.z = z; }
|
||||||
|
|||||||
@@ -13,6 +13,8 @@
|
|||||||
#include <d3dx8math.h>
|
#include <d3dx8math.h>
|
||||||
|
|
||||||
|
|
||||||
|
const int MAX_TWEEN_STATES = 10;
|
||||||
|
|
||||||
class Actor
|
class Actor
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
@@ -92,7 +94,7 @@ public:
|
|||||||
|
|
||||||
virtual void BeginTweening( float time, TweenType tt = TWEEN_LINEAR );
|
virtual void BeginTweening( float time, TweenType tt = TWEEN_LINEAR );
|
||||||
virtual void BeginTweeningQueued( float time, TweenType tt = TWEEN_LINEAR );
|
virtual void BeginTweeningQueued( float time, TweenType tt = TWEEN_LINEAR );
|
||||||
virtual void StopTweening() { m_QueuedTweens.RemoveAll(); };
|
virtual void StopTweening();
|
||||||
virtual void SetTweenX( float x );
|
virtual void SetTweenX( float x );
|
||||||
virtual void SetTweenY( float y );
|
virtual void SetTweenY( float y );
|
||||||
virtual void SetTweenZ( float z );
|
virtual void SetTweenZ( float z );
|
||||||
@@ -206,8 +208,9 @@ protected:
|
|||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
CArray<TweenState, TweenState&> m_QueuedTweens;
|
TweenState m_QueuedTweens[MAX_TWEEN_STATES];
|
||||||
TweenState& GetLatestTween() { return m_QueuedTweens[m_QueuedTweens.GetSize()-1]; };
|
int m_iNumTweenStates;
|
||||||
|
TweenState& GetLatestTween() { return m_QueuedTweens[m_iNumTweenStates-1]; };
|
||||||
|
|
||||||
|
|
||||||
//
|
//
|
||||||
|
|||||||
@@ -314,6 +314,48 @@ struct PlayerOptions
|
|||||||
bool m_bHoldNotes;
|
bool m_bHoldNotes;
|
||||||
enum DrainType { DRAIN_NORMAL=0, DRAIN_NO_RECOVER, DRAIN_SUDDEN_DEATH };
|
enum DrainType { DRAIN_NORMAL=0, DRAIN_NO_RECOVER, DRAIN_SUDDEN_DEATH };
|
||||||
DrainType m_DrainType;
|
DrainType m_DrainType;
|
||||||
|
|
||||||
|
CString GetString()
|
||||||
|
{
|
||||||
|
CString sReturn;
|
||||||
|
if( m_fArrowScrollSpeed != 1 )
|
||||||
|
sReturn += ssprintf( "%2.1fX, ", m_fArrowScrollSpeed );
|
||||||
|
switch( m_EffectType )
|
||||||
|
{
|
||||||
|
case EFFECT_NONE: break;
|
||||||
|
case EFFECT_BOOST: sReturn += "Boost, "; break;
|
||||||
|
case EFFECT_WAVE: sReturn += "Wave, "; break;
|
||||||
|
case EFFECT_DRUNK: sReturn += "Drunk, "; break;
|
||||||
|
case EFFECT_DIZZY: sReturn += "Dizzy, "; break;
|
||||||
|
case EFFECT_SPACE: sReturn += "Space, "; break;
|
||||||
|
default: ASSERT(0); // invalid EFFECT
|
||||||
|
}
|
||||||
|
switch( m_AppearanceType )
|
||||||
|
{
|
||||||
|
case APPEARANCE_VISIBLE: break;
|
||||||
|
case APPEARANCE_HIDDEN: sReturn += "Hidden, "; break;
|
||||||
|
case APPEARANCE_SUDDEN: sReturn += "Sudden, "; break;
|
||||||
|
case APPEARANCE_STEALTH: sReturn += "Stealth, "; break;
|
||||||
|
default: ASSERT(0); // invalid EFFECT
|
||||||
|
}
|
||||||
|
switch( m_TurnType )
|
||||||
|
{
|
||||||
|
case TURN_NONE: break;
|
||||||
|
case TURN_MIRROR: sReturn += "Mirror, "; break;
|
||||||
|
case TURN_LEFT: sReturn += "Left, "; break;
|
||||||
|
case TURN_RIGHT: sReturn += "Right, "; break;
|
||||||
|
case TURN_SHUFFLE: sReturn += "Shuffle, "; break;
|
||||||
|
default: ASSERT(0); // invalid EFFECT
|
||||||
|
}
|
||||||
|
if( m_bLittle )
|
||||||
|
sReturn += "Little, ";
|
||||||
|
if( m_bReverseScroll )
|
||||||
|
sReturn += "Reverse, ";
|
||||||
|
|
||||||
|
if( sReturn.GetLength() > 2 )
|
||||||
|
sReturn.Delete( sReturn.GetLength()-2, 2 ); // delete the trailing ", "
|
||||||
|
return sReturn;
|
||||||
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
struct SongOptions
|
struct SongOptions
|
||||||
@@ -332,8 +374,19 @@ struct SongOptions
|
|||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
struct ScoreSummary {
|
struct ScoreSummary
|
||||||
ScoreSummary() { perfect=great=good=boo=miss=ok=ng=max_combo=0; score=0; };
|
{
|
||||||
int perfect, great, good, boo, miss, ok, ng, max_combo;
|
int perfect, great, good, boo, miss, ok, ng, max_combo;
|
||||||
float score;
|
float score;
|
||||||
|
|
||||||
|
float fRadarActual[NUM_RADAR_VALUES];
|
||||||
|
float fRadarPossible[NUM_RADAR_VALUES];
|
||||||
|
|
||||||
|
ScoreSummary()
|
||||||
|
{
|
||||||
|
perfect=great=good=boo=miss=ok=ng=max_combo=0;
|
||||||
|
score=0;
|
||||||
|
for( int r=0; r<NUM_RADAR_VALUES; r++ )
|
||||||
|
fRadarActual[r] = fRadarPossible[r] = 0;
|
||||||
|
}
|
||||||
};
|
};
|
||||||
|
|||||||
@@ -366,6 +366,7 @@ GameDef* GameManager::GetCurrentGameDef()
|
|||||||
|
|
||||||
StyleDef* GameManager::GetCurrentStyleDef()
|
StyleDef* GameManager::GetCurrentStyleDef()
|
||||||
{
|
{
|
||||||
|
ASSERT( m_CurStyle != STYLE_NONE );
|
||||||
return &g_StyleDefs[ m_CurStyle ];
|
return &g_StyleDefs[ m_CurStyle ];
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -18,6 +18,9 @@
|
|||||||
|
|
||||||
|
|
||||||
const float SCROLL_TIME = 5.0f;
|
const float SCROLL_TIME = 5.0f;
|
||||||
|
const int NUM_GRADE_FRAMES = 7;
|
||||||
|
const float GRADE_FRAME_HEIGHT = 1/(float)NUM_GRADE_FRAMES;
|
||||||
|
const float GRADES_TO_SCROLL = NUM_GRADE_FRAMES*4;
|
||||||
|
|
||||||
|
|
||||||
GradeDisplay::GradeDisplay()
|
GradeDisplay::GradeDisplay()
|
||||||
@@ -37,7 +40,14 @@ void GradeDisplay::Update( float fDeltaTime )
|
|||||||
m_fTimeLeftInScroll -= fDeltaTime;
|
m_fTimeLeftInScroll -= fDeltaTime;
|
||||||
m_fTimeLeftInScroll = max( 0, m_fTimeLeftInScroll );
|
m_fTimeLeftInScroll = max( 0, m_fTimeLeftInScroll );
|
||||||
|
|
||||||
const float fPercentIntoScrolling = 1 - (m_fTimeLeftInScroll/SCROLL_TIME);
|
float fPercentIntoScrolling = 1 - (m_fTimeLeftInScroll/SCROLL_TIME);
|
||||||
|
if( fPercentIntoScrolling < 0.75 )
|
||||||
|
fPercentIntoScrolling = (fPercentIntoScrolling/0.75f) * (1 + 1.0f/NUM_GRADE_FRAMES);
|
||||||
|
else if( fPercentIntoScrolling < 0.9 )
|
||||||
|
fPercentIntoScrolling = 1 + 1.0f/NUM_GRADE_FRAMES;
|
||||||
|
else
|
||||||
|
fPercentIntoScrolling = (1 + 1.0f/NUM_GRADE_FRAMES) - ((fPercentIntoScrolling-0.9f)/0.1f) * 1.0f/NUM_GRADE_FRAMES;
|
||||||
|
|
||||||
FRECT frectCurrentTextureCoords;
|
FRECT frectCurrentTextureCoords;
|
||||||
frectCurrentTextureCoords.left = m_frectStartTexCoords.left*(1-fPercentIntoScrolling) + m_frectDestTexCoords.left*fPercentIntoScrolling;
|
frectCurrentTextureCoords.left = m_frectStartTexCoords.left*(1-fPercentIntoScrolling) + m_frectDestTexCoords.left*fPercentIntoScrolling;
|
||||||
frectCurrentTextureCoords.top = m_frectStartTexCoords.top*(1-fPercentIntoScrolling) + m_frectDestTexCoords.top*fPercentIntoScrolling;
|
frectCurrentTextureCoords.top = m_frectStartTexCoords.top*(1-fPercentIntoScrolling) + m_frectDestTexCoords.top*fPercentIntoScrolling;
|
||||||
@@ -79,9 +89,28 @@ void GradeDisplay::SetGrade( Grade g )
|
|||||||
|
|
||||||
void GradeDisplay::SpinAndSettleOn( Grade g )
|
void GradeDisplay::SpinAndSettleOn( Grade g )
|
||||||
{
|
{
|
||||||
|
ASSERT( g != GRADE_NO_DATA );
|
||||||
|
m_Grade = g;
|
||||||
|
|
||||||
SetDiffuseColor( D3DXCOLOR(1,1,1,1) );
|
SetDiffuseColor( D3DXCOLOR(1,1,1,1) );
|
||||||
|
|
||||||
m_frectStartTexCoords = *m_pTexture->GetTextureCoordRect( 0 );
|
int iFrameNo;
|
||||||
m_frectDestTexCoords = *m_pTexture->GetTextureCoordRect( 6 );
|
switch( g )
|
||||||
|
{
|
||||||
|
case GRADE_AAA: iFrameNo = 0; break;
|
||||||
|
case GRADE_AA: iFrameNo = 1; break;
|
||||||
|
case GRADE_A: iFrameNo = 2; break;
|
||||||
|
case GRADE_B: iFrameNo = 3; break;
|
||||||
|
case GRADE_C: iFrameNo = 4; break;
|
||||||
|
case GRADE_D: iFrameNo = 5; break;
|
||||||
|
case GRADE_E: iFrameNo = 6; break;
|
||||||
|
default: ASSERT(0);
|
||||||
|
}
|
||||||
|
|
||||||
|
m_frectDestTexCoords = *m_pTexture->GetTextureCoordRect( iFrameNo );
|
||||||
|
m_frectStartTexCoords = m_frectDestTexCoords;
|
||||||
|
m_frectStartTexCoords.top += GRADES_TO_SCROLL * GRADE_FRAME_HEIGHT;
|
||||||
|
m_frectStartTexCoords.bottom += GRADES_TO_SCROLL * GRADE_FRAME_HEIGHT;
|
||||||
|
|
||||||
m_fTimeLeftInScroll = SCROLL_TIME;
|
m_fTimeLeftInScroll = SCROLL_TIME;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -32,7 +32,6 @@ protected:
|
|||||||
Grade m_Grade;
|
Grade m_Grade;
|
||||||
|
|
||||||
// for scrolling
|
// for scrolling
|
||||||
void ScrollToVirtualFrame( int iFrameNo ); // a virtual frame is a tiled state number
|
|
||||||
FRECT m_frectStartTexCoords;
|
FRECT m_frectStartTexCoords;
|
||||||
FRECT m_frectDestTexCoords;
|
FRECT m_frectDestTexCoords;
|
||||||
float m_fTimeLeftInScroll;
|
float m_fTimeLeftInScroll;
|
||||||
|
|||||||
@@ -196,12 +196,12 @@ struct HardCodedMenuKey
|
|||||||
|
|
||||||
const HardCodedMenuKey g_HardCodedMenuKeys[] =
|
const HardCodedMenuKey g_HardCodedMenuKeys[] =
|
||||||
{
|
{
|
||||||
{ DEVICE_KEYBOARD, DIK_UP, PLAYER_2, MENU_BUTTON_UP },
|
{ DEVICE_KEYBOARD, DIK_UP, PLAYER_1, MENU_BUTTON_UP },
|
||||||
{ DEVICE_KEYBOARD, DIK_DOWN, PLAYER_2, MENU_BUTTON_DOWN },
|
{ DEVICE_KEYBOARD, DIK_DOWN, PLAYER_1, MENU_BUTTON_DOWN },
|
||||||
{ DEVICE_KEYBOARD, DIK_LEFT, PLAYER_2, MENU_BUTTON_LEFT },
|
{ DEVICE_KEYBOARD, DIK_LEFT, PLAYER_1, MENU_BUTTON_LEFT },
|
||||||
{ DEVICE_KEYBOARD, DIK_RIGHT, PLAYER_2, MENU_BUTTON_RIGHT },
|
{ DEVICE_KEYBOARD, DIK_RIGHT, PLAYER_1, MENU_BUTTON_RIGHT },
|
||||||
{ DEVICE_KEYBOARD, DIK_RETURN, PLAYER_2, MENU_BUTTON_START },
|
{ DEVICE_KEYBOARD, DIK_RETURN, PLAYER_1, MENU_BUTTON_START },
|
||||||
{ DEVICE_KEYBOARD, DIK_ESCAPE, PLAYER_2, MENU_BUTTON_BACK },
|
{ DEVICE_KEYBOARD, DIK_ESCAPE, PLAYER_1, MENU_BUTTON_BACK },
|
||||||
};
|
};
|
||||||
const int NUM_HARD_CODED_MENU_KEYS = sizeof(g_HardCodedMenuKeys) / sizeof(HardCodedMenuKey);
|
const int NUM_HARD_CODED_MENU_KEYS = sizeof(g_HardCodedMenuKeys) / sizeof(HardCodedMenuKey);
|
||||||
|
|
||||||
|
|||||||
@@ -33,20 +33,19 @@ void LifeMeterBar::ChangeLife( TapNoteScore score )
|
|||||||
|
|
||||||
switch( score )
|
switch( score )
|
||||||
{
|
{
|
||||||
case TNS_PERFECT: m_fLifePercentage += 0.03f; break;
|
case TNS_PERFECT: m_fLifePercentage += 0.02f; break;
|
||||||
case TNS_GREAT: m_fLifePercentage += 0.01f; break;
|
case TNS_GREAT: m_fLifePercentage += 0.01f; break;
|
||||||
case TNS_GOOD: m_fLifePercentage += 0.00f; break;
|
case TNS_GOOD: m_fLifePercentage += 0.00f; break;
|
||||||
case TNS_BOO: m_fLifePercentage -= 0.05f; break;
|
case TNS_BOO: m_fLifePercentage -= 0.05f; break;
|
||||||
case TNS_MISS: m_fLifePercentage -= 0.10f; break;
|
case TNS_MISS: m_fLifePercentage -= 0.10f; break;
|
||||||
}
|
}
|
||||||
|
m_fLifePercentage = clamp( m_fLifePercentage, 0, 1 );
|
||||||
|
|
||||||
bool bIsDoingGreat = IsDoingGreat();
|
bool bIsDoingGreat = IsDoingGreat();
|
||||||
|
|
||||||
if( bWasDoingGreat && !bIsDoingGreat )
|
if( bWasDoingGreat && !bIsDoingGreat )
|
||||||
m_fLifePercentage -= 0.10f; // make it take a while to get back to "doing great"
|
m_fLifePercentage -= 0.10f; // make it take a while to get back to "doing great"
|
||||||
|
|
||||||
m_fLifePercentage = clamp( m_fLifePercentage, 0, 1 );
|
|
||||||
|
|
||||||
ResetBarVelocity();
|
ResetBarVelocity();
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -60,7 +59,7 @@ void LifeMeterBar::ResetBarVelocity()
|
|||||||
|
|
||||||
bool LifeMeterBar::IsDoingGreat()
|
bool LifeMeterBar::IsDoingGreat()
|
||||||
{
|
{
|
||||||
return m_fLifePercentage == 1;
|
return m_fLifePercentage >= 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
bool LifeMeterBar::IsAboutToFail()
|
bool LifeMeterBar::IsAboutToFail()
|
||||||
@@ -77,15 +76,16 @@ void LifeMeterBar::Update( float fDeltaTime )
|
|||||||
{
|
{
|
||||||
m_fLifeVelocity *= 1-fDeltaTime*2; // dampen
|
m_fLifeVelocity *= 1-fDeltaTime*2; // dampen
|
||||||
|
|
||||||
if( fabsf(m_fLifeVelocity) < 0.01f )
|
// there are some cases where we want to snap the meter
|
||||||
|
bool bSnap = m_fTrailingLifePercentage >= 1;
|
||||||
|
|
||||||
|
if( bSnap )
|
||||||
{
|
{
|
||||||
// snap
|
|
||||||
m_fTrailingLifePercentage = m_fLifePercentage;
|
m_fTrailingLifePercentage = m_fLifePercentage;
|
||||||
m_fLifeVelocity = 0;
|
m_fLifeVelocity = 0;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
|
||||||
m_fTrailingLifePercentage += m_fLifeVelocity * fDeltaTime;
|
m_fTrailingLifePercentage += m_fLifeVelocity * fDeltaTime;
|
||||||
m_fTrailingLifePercentage = clamp( m_fTrailingLifePercentage, 0, 1 );
|
m_fTrailingLifePercentage = clamp( m_fTrailingLifePercentage, 0, 1 );
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -19,19 +19,21 @@
|
|||||||
#include "GameConstantsAndTypes.h"
|
#include "GameConstantsAndTypes.h"
|
||||||
#include "ThemeManager.h"
|
#include "ThemeManager.h"
|
||||||
#include "RageLog.h"
|
#include "RageLog.h"
|
||||||
|
#include "RageLog.h"
|
||||||
|
#include "GameManager.h"
|
||||||
|
|
||||||
|
|
||||||
const float HELP_X = CENTER_X;
|
const float HELP_X = CENTER_X;
|
||||||
const float HELP_Y = SCREEN_HEIGHT-28;
|
const float HELP_Y = SCREEN_BOTTOM-28;
|
||||||
|
|
||||||
const float STYLE_LOCAL_X = 160;
|
const float STYLE_ICON_LOCAL_X = 130;
|
||||||
const float STYLE_LOCAL_Y = 6;
|
const float STYLE_ICON_LOCAL_Y = 6;
|
||||||
|
|
||||||
const float TIMER_LOCAL_X = 270;
|
const float TIMER_LOCAL_X = 270;
|
||||||
const float TIMER_LOCAL_Y = 0;
|
const float TIMER_LOCAL_Y = 0;
|
||||||
|
|
||||||
const float CREDIT_X[NUM_PLAYERS] = {160,480};
|
const float CREDIT_X[NUM_PLAYERS] = {160,480};
|
||||||
const float CREDIT_Y[NUM_PLAYERS] = {SCREEN_BOTTOM-20, SCREEN_BOTTOM-20};
|
const float CREDIT_Y[NUM_PLAYERS] = {SCREEN_BOTTOM-8, SCREEN_BOTTOM-8};
|
||||||
|
|
||||||
|
|
||||||
MenuElements::MenuElements()
|
MenuElements::MenuElements()
|
||||||
@@ -47,7 +49,15 @@ MenuElements::MenuElements()
|
|||||||
this->AddActor( &m_frameBottomBar );
|
this->AddActor( &m_frameBottomBar );
|
||||||
this->AddActor( &m_textHelp );
|
this->AddActor( &m_textHelp );
|
||||||
for( int p=0; p<NUM_PLAYERS; p++ )
|
for( int p=0; p<NUM_PLAYERS; p++ )
|
||||||
this->AddActor( &m_sprCreditInfo[p] );
|
this->AddActor( &m_textCreditInfo[p] );
|
||||||
|
|
||||||
|
m_KeepAlive.SetZ( -2 );
|
||||||
|
m_KeepAlive.SetOpened();
|
||||||
|
this->AddActor( &m_KeepAlive );
|
||||||
|
|
||||||
|
m_Wipe.SetZ( -2 );
|
||||||
|
m_Wipe.SetOpened();
|
||||||
|
this->AddActor( &m_Wipe );
|
||||||
}
|
}
|
||||||
|
|
||||||
void MenuElements::Load( CString sBackgroundPath, CString sTopEdgePath, CString sHelpText )
|
void MenuElements::Load( CString sBackgroundPath, CString sTopEdgePath, CString sHelpText )
|
||||||
@@ -66,8 +76,12 @@ void MenuElements::Load( CString sBackgroundPath, CString sTopEdgePath, CString
|
|||||||
|
|
||||||
m_sprStyleIcon.Load( THEME->GetPathTo(GRAPHIC_MENU_STYLE_ICONS) );
|
m_sprStyleIcon.Load( THEME->GetPathTo(GRAPHIC_MENU_STYLE_ICONS) );
|
||||||
m_sprStyleIcon.StopAnimating();
|
m_sprStyleIcon.StopAnimating();
|
||||||
m_sprStyleIcon.SetXY( STYLE_LOCAL_X, STYLE_LOCAL_Y );
|
m_sprStyleIcon.SetXY( STYLE_ICON_LOCAL_X, STYLE_ICON_LOCAL_Y );
|
||||||
m_sprStyleIcon.SetZ( -1 );
|
m_sprStyleIcon.SetZ( -1 );
|
||||||
|
if( GAMEMAN->m_CurStyle == STYLE_NONE )
|
||||||
|
m_sprStyleIcon.SetDiffuseColor( D3DXCOLOR(1,1,1,0) );
|
||||||
|
else
|
||||||
|
m_sprStyleIcon.SetState( GAMEMAN->m_CurStyle );
|
||||||
|
|
||||||
m_MenuTimer.SetXY( TIMER_LOCAL_X, TIMER_LOCAL_Y );
|
m_MenuTimer.SetXY( TIMER_LOCAL_X, TIMER_LOCAL_Y );
|
||||||
m_MenuTimer.SetZ( -1 );
|
m_MenuTimer.SetZ( -1 );
|
||||||
@@ -83,58 +97,76 @@ void MenuElements::Load( CString sBackgroundPath, CString sTopEdgePath, CString
|
|||||||
m_textHelp.SetText( sHelpText );
|
m_textHelp.SetText( sHelpText );
|
||||||
m_textHelp.SetZoom( 0.5f );
|
m_textHelp.SetZoom( 0.5f );
|
||||||
m_textHelp.SetEffectBlinking();
|
m_textHelp.SetEffectBlinking();
|
||||||
m_textHelp.SetShadowLength( 2 );
|
m_textHelp.TurnShadowOff();
|
||||||
|
|
||||||
for( int p=0; p<NUM_PLAYERS; p++ )
|
for( int p=0; p<NUM_PLAYERS; p++ )
|
||||||
{
|
{
|
||||||
m_sprCreditInfo[p].Load( THEME->GetPathTo(FONT_NORMAL) );
|
m_textCreditInfo[p].Load( THEME->GetPathTo(FONT_NORMAL) );
|
||||||
m_sprCreditInfo[p].SetXY( CREDIT_X[p], CREDIT_Y[p] );
|
m_textCreditInfo[p].SetXY( CREDIT_X[p], CREDIT_Y[p] );
|
||||||
m_sprCreditInfo[p].SetZ( -1 );
|
m_textCreditInfo[p].SetZ( -1 );
|
||||||
m_sprCreditInfo[p].SetText( "FREE PLAY" );
|
|
||||||
m_sprCreditInfo[p].SetZoom( 0.5f );
|
if( GAMEMAN->m_CurStyle == STYLE_NONE )
|
||||||
m_sprCreditInfo[p].TurnShadowOff();
|
m_textCreditInfo[p].SetText( "PRESS START" );
|
||||||
|
else if( GAMEMAN->IsPlayerEnabled( (PlayerNumber)p ) )
|
||||||
|
m_textCreditInfo[p].SetText( "PRESENT" );
|
||||||
|
else // not enabled
|
||||||
|
m_textCreditInfo[p].SetText( "CREDIT(S): 0 / 0" );
|
||||||
|
|
||||||
|
|
||||||
|
m_textCreditInfo[p].SetZoom( 0.5f );
|
||||||
|
m_textCreditInfo[p].SetDiffuseColor( D3DXCOLOR(0,0,0,1) );
|
||||||
|
m_textCreditInfo[p].TurnShadowOff();
|
||||||
}
|
}
|
||||||
|
|
||||||
m_soundSwoosh.Load( THEME->GetPathTo(SOUND_MENU_SWOOSH) );
|
m_soundSwoosh.Load( THEME->GetPathTo(SOUND_MENU_SWOOSH) );
|
||||||
m_soundBack.Load( THEME->GetPathTo(SOUND_MENU_BACK) );
|
m_soundBack.Load( THEME->GetPathTo(SOUND_MENU_BACK) );
|
||||||
|
|
||||||
|
|
||||||
SetTopEdgeOnScreen();
|
|
||||||
SetBackgroundOnScreen();
|
m_frameTopBar.SetXY( CENTER_X, m_sprTopEdge.GetZoomedHeight()/2 );
|
||||||
|
|
||||||
|
m_frameBottomBar.SetXY( CENTER_X, SCREEN_HEIGHT - m_sprBottomEdge.GetZoomedHeight()/2 );
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void MenuElements::TweenTopLayerOnScreen()
|
||||||
void MenuElements::TweenTopEdgeOnScreen()
|
|
||||||
{
|
{
|
||||||
SetTopEdgeOffScreen();
|
m_frameTopBar.SetXY( CENTER_X+SCREEN_WIDTH, m_sprTopEdge.GetZoomedHeight()/2 );
|
||||||
|
|
||||||
m_frameTopBar.BeginTweening( MENU_ELEMENTS_TWEEN_TIME*2, TWEEN_SPRING );
|
m_frameTopBar.BeginTweening( MENU_ELEMENTS_TWEEN_TIME*2, TWEEN_SPRING );
|
||||||
m_frameTopBar.SetTweenX( CENTER_X );
|
m_frameTopBar.SetTweenX( CENTER_X );
|
||||||
|
|
||||||
float fOriginalZoomY = m_textHelp.GetZoomY();
|
float fOriginalZoom = m_textHelp.GetZoomY();
|
||||||
m_textHelp.SetZoomY( 0 );
|
m_textHelp.SetZoomY( 0 );
|
||||||
m_textHelp.BeginTweening( MENU_ELEMENTS_TWEEN_TIME );
|
m_textHelp.BeginTweening( MENU_ELEMENTS_TWEEN_TIME );
|
||||||
m_textHelp.SetTweenZoomY( fOriginalZoomY );
|
m_textHelp.SetTweenZoomY( fOriginalZoom );
|
||||||
|
}
|
||||||
|
|
||||||
|
void MenuElements::TweenOnScreenFromMenu( ScreenMessage smSendWhenDone )
|
||||||
|
{
|
||||||
|
TweenTopLayerOnScreen();
|
||||||
|
m_KeepAlive.OpenWipingRight( smSendWhenDone );
|
||||||
m_soundSwoosh.Play();
|
m_soundSwoosh.Play();
|
||||||
}
|
}
|
||||||
|
|
||||||
void MenuElements::TweenTopEdgeOffScreen()
|
void MenuElements::TweenTopLayerOffScreen()
|
||||||
{
|
{
|
||||||
m_frameTopBar.BeginTweening( MENU_ELEMENTS_TWEEN_TIME*2, TWEEN_BIAS_END );
|
m_frameTopBar.BeginTweening( MENU_ELEMENTS_TWEEN_TIME*2, TWEEN_BIAS_END );
|
||||||
m_frameTopBar.SetTweenX( SCREEN_WIDTH*1.5f );
|
m_frameTopBar.SetTweenX( SCREEN_WIDTH*1.5f );
|
||||||
|
|
||||||
|
|
||||||
m_textHelp.BeginTweening( MENU_ELEMENTS_TWEEN_TIME );
|
m_textHelp.BeginTweening( MENU_ELEMENTS_TWEEN_TIME );
|
||||||
m_textHelp.SetTweenZoomY( 0 );
|
m_textHelp.SetTweenZoomY( 0 );
|
||||||
|
}
|
||||||
|
|
||||||
|
void MenuElements::TweenOffScreenToMenu( ScreenMessage smSendWhenDone )
|
||||||
|
{
|
||||||
|
TweenTopLayerOffScreen();
|
||||||
|
m_KeepAlive.CloseWipingRight( smSendWhenDone );
|
||||||
m_soundSwoosh.Play();
|
m_soundSwoosh.Play();
|
||||||
}
|
}
|
||||||
|
|
||||||
void MenuElements::TweenBackgroundOnScreen()
|
|
||||||
{
|
|
||||||
SetBackgroundOffScreen();
|
|
||||||
|
|
||||||
|
void MenuElements::TweenBottomLayerOnScreen()
|
||||||
|
{
|
||||||
|
m_frameBottomBar.SetXY( CENTER_X, SCREEN_HEIGHT + m_sprBottomEdge.GetZoomedHeight()/2 );
|
||||||
m_frameBottomBar.BeginTweening( MENU_ELEMENTS_TWEEN_TIME );
|
m_frameBottomBar.BeginTweening( MENU_ELEMENTS_TWEEN_TIME );
|
||||||
m_frameBottomBar.SetTweenY( SCREEN_HEIGHT - m_sprBottomEdge.GetZoomedHeight()/2 );
|
m_frameBottomBar.SetTweenY( SCREEN_HEIGHT - m_sprBottomEdge.GetZoomedHeight()/2 );
|
||||||
|
|
||||||
@@ -142,10 +174,9 @@ void MenuElements::TweenBackgroundOnScreen()
|
|||||||
m_sprBG.BeginTweening( MENU_ELEMENTS_TWEEN_TIME );
|
m_sprBG.BeginTweening( MENU_ELEMENTS_TWEEN_TIME );
|
||||||
m_sprBG.SetTweenDiffuseColor( D3DXCOLOR(1,1,1,1) );
|
m_sprBG.SetTweenDiffuseColor( D3DXCOLOR(1,1,1,1) );
|
||||||
|
|
||||||
m_soundSwoosh.Play();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void MenuElements::TweenBackgroundOffScreen()
|
void MenuElements::TweenBottomLayerOffScreen()
|
||||||
{
|
{
|
||||||
m_frameBottomBar.BeginTweening( MENU_ELEMENTS_TWEEN_TIME );
|
m_frameBottomBar.BeginTweening( MENU_ELEMENTS_TWEEN_TIME );
|
||||||
m_frameBottomBar.SetTweenY( SCREEN_HEIGHT + m_sprTopEdge.GetZoomedHeight() );
|
m_frameBottomBar.SetTweenY( SCREEN_HEIGHT + m_sprTopEdge.GetZoomedHeight() );
|
||||||
@@ -153,43 +184,28 @@ void MenuElements::TweenBackgroundOffScreen()
|
|||||||
m_sprBG.SetDiffuseColor( D3DXCOLOR(1,1,1,1) );
|
m_sprBG.SetDiffuseColor( D3DXCOLOR(1,1,1,1) );
|
||||||
m_sprBG.BeginTweening( MENU_ELEMENTS_TWEEN_TIME );
|
m_sprBG.BeginTweening( MENU_ELEMENTS_TWEEN_TIME );
|
||||||
m_sprBG.SetTweenDiffuseColor( D3DXCOLOR(0,0,0,1) );
|
m_sprBG.SetTweenDiffuseColor( D3DXCOLOR(0,0,0,1) );
|
||||||
|
|
||||||
m_soundBack.Play();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void MenuElements::TweenAllOnScreen()
|
void MenuElements::TweenOnScreenFromBlack( ScreenMessage smSendWhenDone )
|
||||||
{
|
{
|
||||||
TweenTopEdgeOnScreen();
|
TweenTopLayerOnScreen();
|
||||||
TweenBackgroundOnScreen();
|
TweenBottomLayerOnScreen();
|
||||||
|
m_Wipe.OpenWipingRight( smSendWhenDone );
|
||||||
|
m_soundSwoosh.Play();
|
||||||
}
|
}
|
||||||
|
|
||||||
void MenuElements::TweenAllOffScreen()
|
void MenuElements::TweenOffScreenToBlack( ScreenMessage smSendWhenDone, bool bPlayBackSound )
|
||||||
{
|
{
|
||||||
TweenTopEdgeOffScreen();
|
if( !bPlayBackSound )
|
||||||
TweenBackgroundOffScreen();
|
{
|
||||||
|
TweenTopLayerOffScreen();
|
||||||
|
TweenBottomLayerOffScreen();
|
||||||
|
}
|
||||||
|
m_Wipe.CloseWipingRight( smSendWhenDone );
|
||||||
|
if( bPlayBackSound )
|
||||||
|
m_soundBack.Play();
|
||||||
}
|
}
|
||||||
|
|
||||||
void MenuElements::SetBackgroundOnScreen()
|
|
||||||
{
|
|
||||||
m_frameBottomBar.SetXY( CENTER_X, SCREEN_HEIGHT - m_sprBottomEdge.GetZoomedHeight()/2 );
|
|
||||||
}
|
|
||||||
|
|
||||||
void MenuElements::SetBackgroundOffScreen()
|
|
||||||
{
|
|
||||||
m_frameBottomBar.SetXY( CENTER_X, SCREEN_HEIGHT + m_sprBottomEdge.GetZoomedHeight()/2 );
|
|
||||||
}
|
|
||||||
|
|
||||||
void MenuElements::SetTopEdgeOnScreen()
|
|
||||||
{
|
|
||||||
m_frameTopBar.SetXY( CENTER_X, m_sprTopEdge.GetZoomedHeight()/2 );
|
|
||||||
}
|
|
||||||
|
|
||||||
void MenuElements::SetTopEdgeOffScreen()
|
|
||||||
{
|
|
||||||
m_frameTopBar.SetXY( CENTER_X+SCREEN_WIDTH, m_sprTopEdge.GetZoomedHeight()/2 );
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
void MenuElements::DrawPrimitives()
|
void MenuElements::DrawPrimitives()
|
||||||
{
|
{
|
||||||
// do nothing. Call DrawBottomLayer() and DrawTopLayer() instead.
|
// do nothing. Call DrawBottomLayer() and DrawTopLayer() instead.
|
||||||
@@ -200,6 +216,11 @@ void MenuElements::DrawTopLayer()
|
|||||||
m_frameTopBar.Draw();
|
m_frameTopBar.Draw();
|
||||||
m_frameBottomBar.Draw();
|
m_frameBottomBar.Draw();
|
||||||
m_textHelp.Draw();
|
m_textHelp.Draw();
|
||||||
|
for( int p=0; p<NUM_PLAYERS; p++ )
|
||||||
|
m_textCreditInfo[p].Draw();
|
||||||
|
|
||||||
|
m_KeepAlive.Draw();
|
||||||
|
m_Wipe.Draw();
|
||||||
}
|
}
|
||||||
|
|
||||||
void MenuElements::DrawBottomLayer()
|
void MenuElements::DrawBottomLayer()
|
||||||
|
|||||||
@@ -18,6 +18,8 @@
|
|||||||
#include "RandomSample.h"
|
#include "RandomSample.h"
|
||||||
#include "TransitionFade.h"
|
#include "TransitionFade.h"
|
||||||
#include "MenuTimer.h"
|
#include "MenuTimer.h"
|
||||||
|
#include "TransitionFadeWipe.h"
|
||||||
|
#include "TransitionKeepAlive.h"
|
||||||
|
|
||||||
|
|
||||||
const float MENU_ELEMENTS_TWEEN_TIME = 0.30f;
|
const float MENU_ELEMENTS_TWEEN_TIME = 0.30f;
|
||||||
@@ -35,21 +37,20 @@ public:
|
|||||||
void DrawTopLayer();
|
void DrawTopLayer();
|
||||||
void DrawBottomLayer();
|
void DrawBottomLayer();
|
||||||
|
|
||||||
void TweenTopEdgeOnScreen();
|
void TweenOnScreenFromMenu( ScreenMessage smSendWhenDone );
|
||||||
void TweenTopEdgeOffScreen();
|
void TweenOffScreenToMenu( ScreenMessage smSendWhenDone );
|
||||||
|
|
||||||
void TweenAllOnScreen(); // tween top edge + background
|
void TweenOnScreenFromBlack( ScreenMessage smSendWhenDone );
|
||||||
void TweenAllOffScreen();
|
void TweenOffScreenToBlack( ScreenMessage smSendWhenDone, bool bPlayBackSound );
|
||||||
|
|
||||||
|
bool IsClosing() { return m_Wipe.IsClosing() || m_KeepAlive.IsClosing(); };
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
void TweenBackgroundOnScreen();
|
void TweenTopLayerOnScreen();
|
||||||
void TweenBackgroundOffScreen();
|
void TweenTopLayerOffScreen();
|
||||||
|
|
||||||
void SetBackgroundOnScreen();
|
void TweenBottomLayerOnScreen();
|
||||||
void SetBackgroundOffScreen();
|
void TweenBottomLayerOffScreen();
|
||||||
|
|
||||||
void SetTopEdgeOnScreen();
|
|
||||||
void SetTopEdgeOffScreen();
|
|
||||||
|
|
||||||
|
|
||||||
// stuff in the top bar
|
// stuff in the top bar
|
||||||
@@ -65,8 +66,10 @@ protected:
|
|||||||
// stuff in the main frame
|
// stuff in the main frame
|
||||||
Sprite m_sprBG;
|
Sprite m_sprBG;
|
||||||
BitmapText m_textHelp;
|
BitmapText m_textHelp;
|
||||||
BitmapText m_sprCreditInfo[NUM_PLAYERS];
|
BitmapText m_textCreditInfo[NUM_PLAYERS];
|
||||||
|
|
||||||
|
TransitionFadeWipe m_Wipe;
|
||||||
|
TransitionKeepAlive m_KeepAlive;
|
||||||
|
|
||||||
RageSoundSample m_soundSwoosh;
|
RageSoundSample m_soundSwoosh;
|
||||||
RageSoundSample m_soundBack;
|
RageSoundSample m_soundBack;
|
||||||
|
|||||||
@@ -24,13 +24,15 @@ MenuTimer::MenuTimer()
|
|||||||
|
|
||||||
m_textDigit1.Load( THEME->GetPathTo(FONT_TIMER_NUMBERS) );
|
m_textDigit1.Load( THEME->GetPathTo(FONT_TIMER_NUMBERS) );
|
||||||
m_textDigit1.TurnShadowOff();
|
m_textDigit1.TurnShadowOff();
|
||||||
m_textDigit1.SetXY( -20, 0 );
|
m_textDigit1.SetXY( -18, 0 );
|
||||||
this->AddActor( &m_textDigit1 );
|
this->AddActor( &m_textDigit1 );
|
||||||
|
|
||||||
m_textDigit2.Load( THEME->GetPathTo(FONT_TIMER_NUMBERS) );
|
m_textDigit2.Load( THEME->GetPathTo(FONT_TIMER_NUMBERS) );
|
||||||
m_textDigit2.TurnShadowOff();
|
m_textDigit2.TurnShadowOff();
|
||||||
m_textDigit2.SetXY( +20, 0 );
|
m_textDigit2.SetXY( +18, 0 );
|
||||||
this->AddActor( &m_textDigit2 );
|
this->AddActor( &m_textDigit2 );
|
||||||
|
|
||||||
|
m_soundBeep.Load( THEME->GetPathTo(SOUND_MENU_TIMER) );
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@@ -45,17 +47,24 @@ void MenuTimer::Update( float fDeltaTime )
|
|||||||
{
|
{
|
||||||
m_textDigit1.SetEffectGlowing( 10, D3DXCOLOR(1,0,0,0), D3DXCOLOR(1,0,0,1) );
|
m_textDigit1.SetEffectGlowing( 10, D3DXCOLOR(1,0,0,0), D3DXCOLOR(1,0,0,1) );
|
||||||
m_textDigit2.SetEffectGlowing( 10, D3DXCOLOR(1,0,0,0), D3DXCOLOR(1,0,0,1) );
|
m_textDigit2.SetEffectGlowing( 10, D3DXCOLOR(1,0,0,0), D3DXCOLOR(1,0,0,1) );
|
||||||
|
m_soundBeep.Play();
|
||||||
}
|
}
|
||||||
|
else if( fOldSecondsLeft > 4 && fNewSecondsLeft < 4 ) // transition to below 4
|
||||||
|
m_soundBeep.Play();
|
||||||
|
else if( fOldSecondsLeft > 3 && fNewSecondsLeft < 3 ) // transition to below 3
|
||||||
|
m_soundBeep.Play();
|
||||||
|
else if( fOldSecondsLeft > 2 && fNewSecondsLeft < 2 ) // transition to below 2
|
||||||
|
m_soundBeep.Play();
|
||||||
|
else if( fOldSecondsLeft > 1 && fNewSecondsLeft < 1 ) // transition to below 1
|
||||||
|
m_soundBeep.Play();
|
||||||
else if( fOldSecondsLeft > 0 && fNewSecondsLeft < 0 ) // transition to below 0
|
else if( fOldSecondsLeft > 0 && fNewSecondsLeft < 0 ) // transition to below 0
|
||||||
{
|
|
||||||
SCREENMAN->SendMessageToTopScreen( SM_MenuTimer, 0 );
|
SCREENMAN->SendMessageToTopScreen( SM_MenuTimer, 0 );
|
||||||
}
|
|
||||||
|
|
||||||
m_fSecondsLeft = fNewSecondsLeft;
|
m_fSecondsLeft = fNewSecondsLeft;
|
||||||
m_fSecondsLeft = max( 0, m_fSecondsLeft );
|
m_fSecondsLeft = max( 0, m_fSecondsLeft );
|
||||||
|
|
||||||
m_textDigit1.SetText( ssprintf("%d", ((int)m_fSecondsLeft)/10) );
|
m_textDigit1.SetText( ssprintf("%d", ((int)m_fSecondsLeft+1)/10) );
|
||||||
m_textDigit2.SetText( ssprintf("%d", ((int)m_fSecondsLeft)%10) );
|
m_textDigit2.SetText( ssprintf("%d", ((int)m_fSecondsLeft+1)%10) );
|
||||||
|
|
||||||
// "flip" the numbers
|
// "flip" the numbers
|
||||||
float fRemainder = m_fSecondsLeft - (int)m_fSecondsLeft;
|
float fRemainder = m_fSecondsLeft - (int)m_fSecondsLeft;
|
||||||
|
|||||||
@@ -14,7 +14,7 @@
|
|||||||
#include "Song.h"
|
#include "Song.h"
|
||||||
#include "ActorFrame.h"
|
#include "ActorFrame.h"
|
||||||
#include "BitmapText.h"
|
#include "BitmapText.h"
|
||||||
#include "Quad.h"
|
#include "RageSoundSample.h"
|
||||||
|
|
||||||
|
|
||||||
class MenuTimer : public ActorFrame
|
class MenuTimer : public ActorFrame
|
||||||
@@ -31,4 +31,6 @@ protected:
|
|||||||
|
|
||||||
BitmapText m_textDigit1;
|
BitmapText m_textDigit1;
|
||||||
BitmapText m_textDigit2;
|
BitmapText m_textDigit2;
|
||||||
|
|
||||||
|
RageSoundSample m_soundBeep;
|
||||||
};
|
};
|
||||||
|
|||||||
@@ -21,6 +21,7 @@
|
|||||||
#include "GameConstantsAndTypes.h"
|
#include "GameConstantsAndTypes.h"
|
||||||
|
|
||||||
|
|
||||||
|
const float FADE_TIME = 1.0f;
|
||||||
|
|
||||||
const float SWITCH_MUSIC_TIME = 0.3f;
|
const float SWITCH_MUSIC_TIME = 0.3f;
|
||||||
|
|
||||||
@@ -190,6 +191,8 @@ void WheelItemDisplay::RefreshGrades()
|
|||||||
|
|
||||||
void WheelItemDisplay::Update( float fDeltaTime )
|
void WheelItemDisplay::Update( float fDeltaTime )
|
||||||
{
|
{
|
||||||
|
Actor::Update( fDeltaTime );
|
||||||
|
|
||||||
switch( m_WheelItemType )
|
switch( m_WheelItemType )
|
||||||
{
|
{
|
||||||
case TYPE_SECTION:
|
case TYPE_SECTION:
|
||||||
@@ -238,6 +241,12 @@ MusicWheel::MusicWheel()
|
|||||||
{
|
{
|
||||||
LOG->WriteLine( "MusicWheel::MusicWheel()" );
|
LOG->WriteLine( "MusicWheel::MusicWheel()" );
|
||||||
|
|
||||||
|
|
||||||
|
// for debugging
|
||||||
|
if( GAMEMAN->m_CurStyle == STYLE_NONE )
|
||||||
|
GAMEMAN->m_CurStyle = STYLE_DANCE_SINGLE;
|
||||||
|
|
||||||
|
|
||||||
for( int p=0; p<NUM_PLAYERS; p++ )
|
for( int p=0; p<NUM_PLAYERS; p++ )
|
||||||
{
|
{
|
||||||
m_sprHighScoreFrame[p].Load( THEME->GetPathTo(GRAPHIC_SELECT_MUSIC_SCORE_FRAME) );
|
m_sprHighScoreFrame[p].Load( THEME->GetPathTo(GRAPHIC_SELECT_MUSIC_SCORE_FRAME) );
|
||||||
@@ -515,44 +524,6 @@ float MusicWheel::GetBannerX( float fPosOffsetsFromMiddle )
|
|||||||
{
|
{
|
||||||
float fX = (1-cosf((fPosOffsetsFromMiddle)/3))*95.0f;
|
float fX = (1-cosf((fPosOffsetsFromMiddle)/3))*95.0f;
|
||||||
|
|
||||||
float fPercentOffScreen = 0;
|
|
||||||
switch( m_WheelState )
|
|
||||||
{
|
|
||||||
case STATE_FLYING_OFF_BEFORE_NEXT_SORT:
|
|
||||||
case STATE_TWEENING_OFF_SCREEN:
|
|
||||||
fPercentOffScreen = 1 - (m_fTimeLeftInState / FADE_TIME);
|
|
||||||
break;
|
|
||||||
case STATE_FLYING_ON_AFTER_NEXT_SORT:
|
|
||||||
case STATE_TWEENING_ON_SCREEN:
|
|
||||||
fPercentOffScreen = m_fTimeLeftInState / FADE_TIME;
|
|
||||||
break;
|
|
||||||
default:
|
|
||||||
fPercentOffScreen = 1;
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
|
|
||||||
switch( m_WheelState )
|
|
||||||
{
|
|
||||||
case STATE_FLYING_OFF_BEFORE_NEXT_SORT:
|
|
||||||
case STATE_TWEENING_OFF_SCREEN:
|
|
||||||
case STATE_FLYING_ON_AFTER_NEXT_SORT:
|
|
||||||
case STATE_TWEENING_ON_SCREEN:
|
|
||||||
{
|
|
||||||
/*
|
|
||||||
float fDistFromCenter = fabsf( fPosOffsetsFromMiddle );
|
|
||||||
float fPercentOffScreen = 1- (m_fTimeLeftInState / FADE_TIME);
|
|
||||||
float fXLogicalOffset = max( 0, fPercentOffScreen - 1 + (fDistFromCenter+3)/6 );
|
|
||||||
fXLogicalOffset = powf( fXLogicalOffset, 1.7f ); // accelerate
|
|
||||||
float fXPixelOffset = fXLogicalOffset * 600;
|
|
||||||
fX += fXPixelOffset;
|
|
||||||
*/
|
|
||||||
const float fShift = fPosOffsetsFromMiddle/NUM_WHEEL_ITEMS_TO_DRAW - 0.5f; // this is always < 0
|
|
||||||
const float fXTween = fShift * 800 + fPercentOffScreen * 1200;
|
|
||||||
fX = max( fX, fXTween );
|
|
||||||
}
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
|
|
||||||
return (float)roundf( fX );
|
return (float)roundf( fX );
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -622,19 +593,23 @@ void MusicWheel::DrawPrimitives()
|
|||||||
{
|
{
|
||||||
WheelItemDisplay& display = m_WheelItemDisplays[i];
|
WheelItemDisplay& display = m_WheelItemDisplays[i];
|
||||||
|
|
||||||
float fThisBannerPositionOffsetFromSelection = i - NUM_WHEEL_ITEMS_TO_DRAW/2 + m_fPositionOffsetFromSelection;
|
switch( m_WheelState )
|
||||||
|
{
|
||||||
|
case STATE_IDLE:
|
||||||
|
case STATE_SWITCHING_MUSIC:
|
||||||
|
{
|
||||||
|
float fThisBannerPositionOffsetFromSelection = i - NUM_WHEEL_ITEMS_TO_DRAW/2 + m_fPositionOffsetFromSelection;
|
||||||
|
|
||||||
float fY = GetBannerY( fThisBannerPositionOffsetFromSelection );
|
float fY = GetBannerY( fThisBannerPositionOffsetFromSelection );
|
||||||
if( fY < -SCREEN_HEIGHT/2 || fY > SCREEN_HEIGHT/2 )
|
if( fY < -SCREEN_HEIGHT/2 || fY > SCREEN_HEIGHT/2 )
|
||||||
continue; // skip
|
continue; // skip
|
||||||
|
|
||||||
float fX = GetBannerX( fThisBannerPositionOffsetFromSelection );
|
float fX = GetBannerX( fThisBannerPositionOffsetFromSelection );
|
||||||
display.SetXY( fX, fY );
|
display.SetXY( fX, fY );
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
};
|
||||||
|
|
||||||
float fBrightness = GetBannerBrightness( m_fPositionOffsetFromSelection );
|
|
||||||
float fAlpha = GetBannerAlpha( m_fPositionOffsetFromSelection );
|
|
||||||
|
|
||||||
display.SetDiffuseColor( D3DXCOLOR(fBrightness, fBrightness, fBrightness, fAlpha) );
|
|
||||||
display.Draw();
|
display.Draw();
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -717,6 +692,8 @@ void MusicWheel::Update( float fDeltaTime )
|
|||||||
|
|
||||||
RebuildWheelItemDisplays();
|
RebuildWheelItemDisplays();
|
||||||
|
|
||||||
|
TweenOnScreen();
|
||||||
|
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case STATE_FLYING_ON_AFTER_NEXT_SORT:
|
case STATE_FLYING_ON_AFTER_NEXT_SORT:
|
||||||
@@ -840,6 +817,8 @@ void MusicWheel::NextSort()
|
|||||||
m_MusicSortDisplay.BeginTweening( FADE_TIME, TWEEN_BIAS_END );
|
m_MusicSortDisplay.BeginTweening( FADE_TIME, TWEEN_BIAS_END );
|
||||||
m_MusicSortDisplay.SetTweenXY( SORT_ICON_OFF_SCREEN_X, SORT_ICON_OFF_SCREEN_Y );
|
m_MusicSortDisplay.SetTweenXY( SORT_ICON_OFF_SCREEN_X, SORT_ICON_OFF_SCREEN_Y );
|
||||||
|
|
||||||
|
TweenOffScreen();
|
||||||
|
|
||||||
m_WheelState = STATE_FLYING_OFF_BEFORE_NEXT_SORT;
|
m_WheelState = STATE_FLYING_OFF_BEFORE_NEXT_SORT;
|
||||||
m_fTimeLeftInState = FADE_TIME;
|
m_fTimeLeftInState = FADE_TIME;
|
||||||
}
|
}
|
||||||
@@ -892,23 +871,83 @@ void MusicWheel::TweenOnScreen()
|
|||||||
m_WheelState = STATE_TWEENING_ON_SCREEN;
|
m_WheelState = STATE_TWEENING_ON_SCREEN;
|
||||||
m_fTimeLeftInState = FADE_TIME;
|
m_fTimeLeftInState = FADE_TIME;
|
||||||
|
|
||||||
float fOriginalZoomY;
|
|
||||||
fOriginalZoomY = m_sprSelectionOverlay.GetZoomY();
|
|
||||||
m_sprSelectionOverlay.SetZoomY( 0 );
|
|
||||||
m_sprSelectionOverlay.BeginTweening( FADE_TIME );
|
|
||||||
m_sprSelectionOverlay.SetTweenZoomY( fOriginalZoomY );
|
|
||||||
|
|
||||||
|
m_MusicSortDisplay.SetDiffuseColor( D3DXCOLOR(1,1,1,0) );
|
||||||
|
m_MusicSortDisplay.BeginTweening( FADE_TIME );
|
||||||
|
m_MusicSortDisplay.SetTweenDiffuseColor( D3DXCOLOR(1,1,1,1) );
|
||||||
|
|
||||||
|
|
||||||
|
for( int p=0; p<NUM_PLAYERS; p++ )
|
||||||
|
{
|
||||||
|
float fOriginalX = m_HighScore[p].GetX();
|
||||||
|
m_HighScore[p].SetX( fOriginalX+320 );
|
||||||
|
m_HighScore[p].BeginTweening( 0.2f, Actor::TWEEN_BIAS_END );
|
||||||
|
m_HighScore[p].SetTweenX( fOriginalX );
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
float fX = GetBannerX(0);
|
||||||
|
float fY = GetBannerY(0);
|
||||||
|
m_sprSelectionOverlay.SetXY( fX+320, fY );
|
||||||
|
m_sprSelectionOverlay.BeginTweeningQueued( 0.5f ); // sleep
|
||||||
|
m_sprSelectionOverlay.BeginTweeningQueued( 0.2f, Actor::TWEEN_BIAS_BEGIN );
|
||||||
|
m_sprSelectionOverlay.SetTweenX( fX );
|
||||||
|
|
||||||
|
|
||||||
|
for( int i=0; i<NUM_WHEEL_ITEMS_TO_DRAW; i++ )
|
||||||
|
{
|
||||||
|
WheelItemDisplay& display = m_WheelItemDisplays[i];
|
||||||
|
float fThisBannerPositionOffsetFromSelection = i - NUM_WHEEL_ITEMS_TO_DRAW/2 + m_fPositionOffsetFromSelection;
|
||||||
|
|
||||||
|
float fX = GetBannerX(fThisBannerPositionOffsetFromSelection);
|
||||||
|
float fY = GetBannerY(fThisBannerPositionOffsetFromSelection);
|
||||||
|
display.SetXY( fX+320, fY );
|
||||||
|
display.BeginTweeningQueued( 0.04f*i ); // sleep
|
||||||
|
display.BeginTweeningQueued( 0.2f, Actor::TWEEN_BIAS_BEGIN );
|
||||||
|
display.SetTweenX( fX );
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
void MusicWheel::TweenOffScreen()
|
void MusicWheel::TweenOffScreen()
|
||||||
{
|
{
|
||||||
m_WheelState = STATE_TWEENING_OFF_SCREEN;
|
m_WheelState = STATE_TWEENING_OFF_SCREEN;
|
||||||
m_fTimeLeftInState = FADE_TIME;
|
m_fTimeLeftInState = FADE_TIME;
|
||||||
|
|
||||||
m_sprSelectionOverlay.BeginTweening( FADE_TIME );
|
|
||||||
m_sprSelectionOverlay.SetTweenZoomY( 0 );
|
|
||||||
|
|
||||||
m_MusicSortDisplay.BeginTweening( FADE_TIME, TWEEN_BIAS_END );
|
m_MusicSortDisplay.SetDiffuseColor( D3DXCOLOR(1,1,1,1) );
|
||||||
m_MusicSortDisplay.SetTweenXY( SORT_ICON_OFF_SCREEN_X, SORT_ICON_OFF_SCREEN_Y );
|
m_MusicSortDisplay.SetEffectNone();
|
||||||
|
m_MusicSortDisplay.BeginTweening( FADE_TIME );
|
||||||
|
m_MusicSortDisplay.SetTweenDiffuseColor( D3DXCOLOR(1,1,1,0) );
|
||||||
|
|
||||||
|
|
||||||
|
for( int p=0; p<NUM_PLAYERS; p++ )
|
||||||
|
{
|
||||||
|
m_HighScore[p].BeginTweening( 0.2f, Actor::TWEEN_BIAS_END );
|
||||||
|
m_HighScore[p].SetTweenX( m_HighScore[p].GetX()+320 );
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
float fX = GetBannerX(0);
|
||||||
|
float fY = GetBannerY(0);
|
||||||
|
m_sprSelectionOverlay.SetXY( fX, fY );
|
||||||
|
m_sprSelectionOverlay.BeginTweeningQueued( 0 ); // sleep
|
||||||
|
m_sprSelectionOverlay.BeginTweeningQueued( 0.2f, Actor::TWEEN_BIAS_END );
|
||||||
|
m_sprSelectionOverlay.SetTweenX( fX+320 );
|
||||||
|
|
||||||
|
|
||||||
|
for( int i=0; i<NUM_WHEEL_ITEMS_TO_DRAW; i++ )
|
||||||
|
{
|
||||||
|
WheelItemDisplay& display = m_WheelItemDisplays[i];
|
||||||
|
float fThisBannerPositionOffsetFromSelection = i - NUM_WHEEL_ITEMS_TO_DRAW/2 + m_fPositionOffsetFromSelection;
|
||||||
|
|
||||||
|
float fX = GetBannerX(fThisBannerPositionOffsetFromSelection);
|
||||||
|
float fY = GetBannerY(fThisBannerPositionOffsetFromSelection);
|
||||||
|
display.SetXY( fX, fY );
|
||||||
|
display.BeginTweeningQueued( 0.04f*i ); // sleep
|
||||||
|
display.BeginTweeningQueued( 0.2f, Actor::TWEEN_BIAS_END );
|
||||||
|
display.SetTweenX( fX+320 );
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
+11
-12
@@ -29,7 +29,6 @@
|
|||||||
|
|
||||||
const int NUM_WHEEL_ITEMS_TO_DRAW = 13;
|
const int NUM_WHEEL_ITEMS_TO_DRAW = 13;
|
||||||
|
|
||||||
const float FADE_TIME = 0.7f;
|
|
||||||
|
|
||||||
const ScreenMessage SM_SongChanged = ScreenMessage(SM_User+47); // this should be unique!
|
const ScreenMessage SM_SongChanged = ScreenMessage(SM_User+47); // this should be unique!
|
||||||
const ScreenMessage SM_PlaySongSample = ScreenMessage(SM_User+48);
|
const ScreenMessage SM_PlaySongSample = ScreenMessage(SM_User+48);
|
||||||
@@ -102,15 +101,15 @@ public:
|
|||||||
void NextSort();
|
void NextSort();
|
||||||
void NotesChanged( PlayerNumber pn ); // update grade graphics and top score
|
void NotesChanged( PlayerNumber pn ); // update grade graphics and top score
|
||||||
|
|
||||||
|
float GetBannerX( float fPosOffsetsFromMiddle );
|
||||||
float GetBannerY( float fPosOffsetsFromMiddle );
|
float GetBannerY( float fPosOffsetsFromMiddle );
|
||||||
float GetBannerBrightness( float fPosOffsetsFromMiddle );
|
float GetBannerBrightness( float fPosOffsetsFromMiddle );
|
||||||
float GetBannerAlpha( float fPosOffsetsFromMiddle );
|
float GetBannerAlpha( float fPosOffsetsFromMiddle );
|
||||||
float GetBannerX( float fPosOffsetsFromMiddle );
|
|
||||||
|
|
||||||
bool Select(); // return true if the selected item is a music, otherwise false
|
bool Select(); // return true if the selected item is a music, otherwise false
|
||||||
WheelItemType GetSelectedType() { return GetCurWheelItemDatas()[m_iSelection].m_WheelItemType; };
|
WheelItemType GetSelectedType() { return GetCurWheelItemDatas()[m_iSelection].m_WheelItemType; };
|
||||||
Song* GetSelectedSong() { return GetCurWheelItemDatas()[m_iSelection].m_pSong; };
|
Song* GetSelectedSong() { return GetCurWheelItemDatas()[m_iSelection].m_pSong; };
|
||||||
CString GetSelectedSection() { return GetCurWheelItemDatas()[m_iSelection].m_sSectionName; };
|
CString GetSelectedSection(){ return GetCurWheelItemDatas()[m_iSelection].m_sSectionName; };
|
||||||
|
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
@@ -127,15 +126,15 @@ protected:
|
|||||||
Sprite m_sprHighScoreFrame[NUM_PLAYERS];
|
Sprite m_sprHighScoreFrame[NUM_PLAYERS];
|
||||||
ScoreDisplayRolling m_HighScore[NUM_PLAYERS];
|
ScoreDisplayRolling m_HighScore[NUM_PLAYERS];
|
||||||
|
|
||||||
SongSortOrder m_SortOrder;
|
SongSortOrder m_SortOrder;
|
||||||
|
|
||||||
CArray<WheelItemData, WheelItemData&> m_WheelItemDatas[NUM_SORT_ORDERS];
|
CArray<WheelItemData, WheelItemData&> m_WheelItemDatas[NUM_SORT_ORDERS];
|
||||||
CArray<WheelItemData, WheelItemData&> &GetCurWheelItemDatas() { return m_WheelItemDatas[m_SortOrder]; };
|
CArray<WheelItemData, WheelItemData&> &GetCurWheelItemDatas() { return m_WheelItemDatas[m_SortOrder]; };
|
||||||
|
|
||||||
WheelItemDisplay m_WheelItemDisplays[NUM_WHEEL_ITEMS_TO_DRAW];
|
WheelItemDisplay m_WheelItemDisplays[NUM_WHEEL_ITEMS_TO_DRAW];
|
||||||
|
|
||||||
int m_iSelection; // index into GetCurWheelItemDatas()
|
int m_iSelection; // index into GetCurWheelItemDatas()
|
||||||
CString m_sExpandedSectionName;
|
CString m_sExpandedSectionName;
|
||||||
|
|
||||||
|
|
||||||
enum WheelState {
|
enum WheelState {
|
||||||
@@ -147,9 +146,9 @@ protected:
|
|||||||
STATE_TWEENING_OFF_SCREEN,
|
STATE_TWEENING_OFF_SCREEN,
|
||||||
STATE_WAITING_OFF_SCREEN
|
STATE_WAITING_OFF_SCREEN
|
||||||
};
|
};
|
||||||
WheelState m_WheelState;
|
WheelState m_WheelState;
|
||||||
float m_fTimeLeftInState;
|
float m_fTimeLeftInState;
|
||||||
float m_fPositionOffsetFromSelection;
|
float m_fPositionOffsetFromSelection;
|
||||||
|
|
||||||
|
|
||||||
// having sounds here causes a crash in Bass. What the heck!?!?!
|
// having sounds here causes a crash in Bass. What the heck!?!?!
|
||||||
|
|||||||
@@ -496,7 +496,7 @@ bool Notes::LoadFromDWITokens(
|
|||||||
mapDanceNoteToNoteDataColumn[DANCE_NOTE_PAD1_RIGHT] = 5;
|
mapDanceNoteToNoteDataColumn[DANCE_NOTE_PAD1_RIGHT] = 5;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
ASSERT( false );
|
ASSERT(0);
|
||||||
|
|
||||||
m_sDescription = sDescription;
|
m_sDescription = sDescription;
|
||||||
|
|
||||||
@@ -623,6 +623,8 @@ bool Notes::LoadFromDWITokens(
|
|||||||
|
|
||||||
m_pNoteData->Convert2sAnd3sToHoldNotes(); // this will expand the HoldNote begin markers we wrote into actual HoldNotes
|
m_pNoteData->Convert2sAnd3sToHoldNotes(); // this will expand the HoldNote begin markers we wrote into actual HoldNotes
|
||||||
|
|
||||||
|
ASSERT( m_pNoteData->m_iNumTracks > 0 );
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -20,7 +20,7 @@ PrefsManager* PREFSMAN = NULL; // global and accessable from anywhere in our pro
|
|||||||
|
|
||||||
PrefsManager::PrefsManager()
|
PrefsManager::PrefsManager()
|
||||||
{
|
{
|
||||||
m_WindowMode = WINDOW_MODE_FULLSCREEN;
|
m_bWindowed = false;
|
||||||
m_bHighDetail = true;
|
m_bHighDetail = true;
|
||||||
m_bHighTextureDetail = true;
|
m_bHighTextureDetail = true;
|
||||||
m_bIgnoreJoyAxes = false;
|
m_bIgnoreJoyAxes = false;
|
||||||
@@ -52,7 +52,7 @@ void PrefsManager::ReadPrefsFromDisk()
|
|||||||
if( !ini.ReadFile() )
|
if( !ini.ReadFile() )
|
||||||
return; // could not read config file, load nothing
|
return; // could not read config file, load nothing
|
||||||
|
|
||||||
ini.GetValueI( "Options", "WindowMode", (int&)m_WindowMode );
|
ini.GetValueB( "Options", "Windowed", m_bWindowed );
|
||||||
ini.GetValueB( "Options", "HighDetail", m_bHighDetail );
|
ini.GetValueB( "Options", "HighDetail", m_bHighDetail );
|
||||||
ini.GetValueB( "Options", "HighTextureDetail", m_bHighTextureDetail );
|
ini.GetValueB( "Options", "HighTextureDetail", m_bHighTextureDetail );
|
||||||
ini.GetValueB( "Options", "IgnoreJoyAxes", m_bIgnoreJoyAxes );
|
ini.GetValueB( "Options", "IgnoreJoyAxes", m_bIgnoreJoyAxes );
|
||||||
@@ -70,7 +70,7 @@ void PrefsManager::SavePrefsToDisk()
|
|||||||
IniFile ini;
|
IniFile ini;
|
||||||
ini.SetPath( "StepMania.ini" );
|
ini.SetPath( "StepMania.ini" );
|
||||||
|
|
||||||
ini.SetValueI( "Options", "WindowMode", (int)m_WindowMode );
|
ini.SetValueB( "Options", "Windowed", m_bWindowed );
|
||||||
ini.SetValueB( "Options", "HighDetail", m_bHighDetail );
|
ini.SetValueB( "Options", "HighDetail", m_bHighDetail );
|
||||||
ini.GetValueB( "Options", "HighTextureDetail", m_bHighTextureDetail );
|
ini.GetValueB( "Options", "HighTextureDetail", m_bHighTextureDetail );
|
||||||
ini.SetValueB( "Options", "IgnoreJoyAxes", m_bIgnoreJoyAxes );
|
ini.SetValueB( "Options", "IgnoreJoyAxes", m_bIgnoreJoyAxes );
|
||||||
|
|||||||
@@ -16,7 +16,7 @@
|
|||||||
|
|
||||||
|
|
||||||
const int NUM_PAD_TO_DEVICE_SLOTS = 3; // three device inputs may map to one pad input
|
const int NUM_PAD_TO_DEVICE_SLOTS = 3; // three device inputs may map to one pad input
|
||||||
|
const int MAX_NUM_STAGES = 10;
|
||||||
|
|
||||||
class PrefsManager
|
class PrefsManager
|
||||||
{
|
{
|
||||||
@@ -25,17 +25,16 @@ public:
|
|||||||
~PrefsManager();
|
~PrefsManager();
|
||||||
|
|
||||||
// Options that ARE saved between sessions
|
// Options that ARE saved between sessions
|
||||||
enum WindowMode{ WINDOW_MODE_FULLSCREEN, WINDOW_MODE_WINDOWED, WINDOW_MODE_MAXIMIZED, NUM_WINDOW_MODES };
|
bool m_bWindowed;
|
||||||
WindowMode m_WindowMode;
|
bool m_bHighDetail;
|
||||||
bool m_bHighDetail;
|
bool m_bHighTextureDetail;
|
||||||
bool m_bHighTextureDetail;
|
bool m_bIgnoreJoyAxes;
|
||||||
bool m_bIgnoreJoyAxes;
|
bool m_bShowFPS;
|
||||||
bool m_bShowFPS;
|
bool m_bUseRandomVis;
|
||||||
bool m_bUseRandomVis;
|
bool m_bAnnouncer;
|
||||||
bool m_bAnnouncer;
|
bool m_bEventMode;
|
||||||
bool m_bEventMode;
|
int m_iNumArcadeStages;
|
||||||
int m_iNumArcadeStages;
|
int m_iDifficulty;
|
||||||
int m_iDifficulty;
|
|
||||||
|
|
||||||
void ReadPrefsFromDisk();
|
void ReadPrefsFromDisk();
|
||||||
void SavePrefsToDisk();
|
void SavePrefsToDisk();
|
||||||
@@ -55,9 +54,7 @@ public:
|
|||||||
PlayerOptions m_PlayerOptions[NUM_PLAYERS];
|
PlayerOptions m_PlayerOptions[NUM_PLAYERS];
|
||||||
SongOptions m_SongOptions;
|
SongOptions m_SongOptions;
|
||||||
|
|
||||||
ScoreSummary m_ScoreSummary[NUM_PLAYERS]; // for passing from Dancing to Results
|
ScoreSummary m_ScoreSummary[NUM_PLAYERS][MAX_NUM_STAGES]; // for passing from Dancing to Results
|
||||||
|
|
||||||
|
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -327,8 +327,9 @@ HRESULT RageDisplay::BeginFrame()
|
|||||||
m_pd3dDevice->SetRenderState( D3DRS_SRCBLEND, D3DBLEND_SRCALPHA );
|
m_pd3dDevice->SetRenderState( D3DRS_SRCBLEND, D3DBLEND_SRCALPHA );
|
||||||
m_pd3dDevice->SetRenderState( D3DRS_DESTBLEND, D3DBLEND_INVSRCALPHA );
|
m_pd3dDevice->SetRenderState( D3DRS_DESTBLEND, D3DBLEND_INVSRCALPHA );
|
||||||
|
|
||||||
m_pd3dDevice->SetRenderState( D3DRS_ZENABLE, TRUE );
|
m_pd3dDevice->SetRenderState( D3DRS_ZENABLE, FALSE );
|
||||||
m_pd3dDevice->SetRenderState( D3DRS_ZWRITEENABLE, TRUE );
|
// m_pd3dDevice->SetRenderState( D3DRS_ZENABLE, TRUE );
|
||||||
|
// m_pd3dDevice->SetRenderState( D3DRS_ZWRITEENABLE, TRUE );
|
||||||
|
|
||||||
|
|
||||||
m_pd3dDevice->SetTextureStageState( 0, D3DTSS_MINFILTER, D3DTEXF_LINEAR );
|
m_pd3dDevice->SetTextureStageState( 0, D3DTSS_MINFILTER, D3DTEXF_LINEAR );
|
||||||
|
|||||||
@@ -72,6 +72,7 @@ RageSound::RageSound( HWND hWnd )
|
|||||||
|
|
||||||
RageSound::~RageSound()
|
RageSound::~RageSound()
|
||||||
{
|
{
|
||||||
|
BASS_Stop();
|
||||||
BASS_Free();
|
BASS_Free();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -61,7 +61,9 @@ void RageTexture::CreateFrameRects()
|
|||||||
///////////////////////////////////
|
///////////////////////////////////
|
||||||
// Fill in the m_FrameRects with the bounds of each frame in the animation.
|
// Fill in the m_FrameRects with the bounds of each frame in the animation.
|
||||||
///////////////////////////////////
|
///////////////////////////////////
|
||||||
|
m_TextureCoordRects.SetSize( 1, 10 ); // most textures will have only one frame
|
||||||
m_TextureCoordRects.RemoveAll();
|
m_TextureCoordRects.RemoveAll();
|
||||||
|
|
||||||
for( int j=0; j<m_iFramesHigh; j++ ) // traverse along Y
|
for( int j=0; j<m_iFramesHigh; j++ ) // traverse along Y
|
||||||
{
|
{
|
||||||
for( int i=0; i<m_iFramesWide; i++ ) // traverse along X (important that this is the inner loop)
|
for( int i=0; i<m_iFramesWide; i++ ) // traverse along X (important that this is the inner loop)
|
||||||
|
|||||||
@@ -50,12 +50,12 @@ protected:
|
|||||||
public:
|
public:
|
||||||
|
|
||||||
// let subclass override if they want
|
// let subclass override if they want
|
||||||
virtual void MenuUp( const PlayerNumber p, const InputEventType type ) { MenuUp(p); };
|
virtual void MenuUp( const PlayerNumber p, const InputEventType type ) { if( type==IET_FIRST_PRESS) MenuUp(p); };
|
||||||
virtual void MenuDown( const PlayerNumber p, const InputEventType type ) { MenuDown(p); };
|
virtual void MenuDown( const PlayerNumber p, const InputEventType type ) { if( type==IET_FIRST_PRESS) MenuDown(p); };
|
||||||
virtual void MenuLeft( const PlayerNumber p, const InputEventType type ) { MenuLeft(p); };
|
virtual void MenuLeft( const PlayerNumber p, const InputEventType type ) { if( type==IET_FIRST_PRESS) MenuLeft(p); };
|
||||||
virtual void MenuRight( const PlayerNumber p, const InputEventType type ) { MenuRight(p); };
|
virtual void MenuRight( const PlayerNumber p, const InputEventType type ) { if( type==IET_FIRST_PRESS) MenuRight(p); };
|
||||||
virtual void MenuStart( const PlayerNumber p, const InputEventType type ) { MenuStart(p); };
|
virtual void MenuStart( const PlayerNumber p, const InputEventType type ) { if( type==IET_FIRST_PRESS) MenuStart(p); };
|
||||||
virtual void MenuBack( const PlayerNumber p, const InputEventType type ) { MenuBack(p); };
|
virtual void MenuBack( const PlayerNumber p, const InputEventType type ) { if( type==IET_FIRST_PRESS) MenuBack(p); };
|
||||||
|
|
||||||
virtual void MenuUp( const PlayerNumber p ) {};
|
virtual void MenuUp( const PlayerNumber p ) {};
|
||||||
virtual void MenuDown( const PlayerNumber p ) {};
|
virtual void MenuDown( const PlayerNumber p ) {};
|
||||||
|
|||||||
@@ -95,7 +95,7 @@ ScreenEditMenu::ScreenEditMenu()
|
|||||||
|
|
||||||
m_Menu.Load(
|
m_Menu.Load(
|
||||||
THEME->GetPathTo(GRAPHIC_EDIT_BACKGROUND),
|
THEME->GetPathTo(GRAPHIC_EDIT_BACKGROUND),
|
||||||
THEME->GetPathTo(GRAPHIC_SELECT_MUSIC_TOP_EDGE),
|
THEME->GetPathTo(GRAPHIC_EDIT_TOP_EDGE),
|
||||||
ssprintf("%s %s change music NEXT to continue", CString(char(1)), CString(char(2)) )
|
ssprintf("%s %s change music NEXT to continue", CString(char(1)), CString(char(2)) )
|
||||||
);
|
);
|
||||||
this->AddActor( &m_Menu );
|
this->AddActor( &m_Menu );
|
||||||
@@ -112,7 +112,7 @@ ScreenEditMenu::ScreenEditMenu()
|
|||||||
MUSIC->Play( true );
|
MUSIC->Play( true );
|
||||||
|
|
||||||
|
|
||||||
m_Menu.TweenAllOnScreen();
|
m_Menu.TweenOnScreenFromBlack( SM_None );
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@@ -306,7 +306,7 @@ void ScreenEditMenu::MenuRight( const PlayerNumber p )
|
|||||||
|
|
||||||
void ScreenEditMenu::MenuStart( const PlayerNumber p )
|
void ScreenEditMenu::MenuStart( const PlayerNumber p )
|
||||||
{
|
{
|
||||||
m_Menu.TweenAllOffScreen();
|
m_Menu.TweenOffScreenToBlack( SM_None, false );
|
||||||
|
|
||||||
MUSIC->Stop();
|
MUSIC->Stop();
|
||||||
|
|
||||||
@@ -321,7 +321,7 @@ void ScreenEditMenu::MenuStart( const PlayerNumber p )
|
|||||||
|
|
||||||
void ScreenEditMenu::MenuBack( const PlayerNumber p )
|
void ScreenEditMenu::MenuBack( const PlayerNumber p )
|
||||||
{
|
{
|
||||||
m_Menu.TweenAllOffScreen();
|
m_Menu.TweenOffScreenToBlack( SM_None, true );
|
||||||
|
|
||||||
|
|
||||||
MUSIC->Stop();
|
MUSIC->Stop();
|
||||||
|
|||||||
@@ -18,38 +18,48 @@
|
|||||||
#include "AnnouncerManager.h"
|
#include "AnnouncerManager.h"
|
||||||
#include "ScreenManager.h"
|
#include "ScreenManager.h"
|
||||||
#include "ScreenTitleMenu.h"
|
#include "ScreenTitleMenu.h"
|
||||||
|
#include "AnnouncerManager.h"
|
||||||
|
|
||||||
const ScreenMessage SM_StartFadingOut = ScreenMessage(SM_User + 1);
|
const ScreenMessage SM_StartFadingOut = ScreenMessage(SM_User + 1);
|
||||||
const ScreenMessage SM_GoToNextState = ScreenMessage(SM_User + 2);
|
const ScreenMessage SM_GoToNextState = ScreenMessage(SM_User + 2);
|
||||||
|
const ScreenMessage SM_PlayAnnouncer = ScreenMessage(SM_User + 3);
|
||||||
|
|
||||||
|
|
||||||
ScreenGameOver::ScreenGameOver()
|
ScreenGameOver::ScreenGameOver()
|
||||||
{
|
{
|
||||||
m_psprGameOver = new Sprite;
|
m_sprGameOver.Load( THEME->GetPathTo(GRAPHIC_GAME_OVER) );
|
||||||
m_psprGameOver->Load( THEME->GetPathTo(GRAPHIC_GAME_OVER) );
|
m_sprGameOver.SetXY( CENTER_X, CENTER_Y );
|
||||||
m_psprGameOver->SetXY( CENTER_X, CENTER_Y );
|
this->AddActor( &m_sprGameOver );
|
||||||
this->AddActor( m_psprGameOver );
|
|
||||||
|
|
||||||
m_pWipe = new TransitionFadeWipe;
|
// tween game over
|
||||||
m_pWipe->OpenWipingRight();
|
m_sprGameOver.SetAddColor( D3DXCOLOR(1,1,1,0) );
|
||||||
|
m_sprGameOver.SetDiffuseColor( D3DXCOLOR(1,1,1,0) );
|
||||||
|
|
||||||
|
m_sprGameOver.BeginTweeningQueued( 0.5f ); // fade to white
|
||||||
|
m_sprGameOver.SetTweenAddColor( D3DXCOLOR(1,1,1,1) );
|
||||||
|
|
||||||
|
m_sprGameOver.BeginTweeningQueued( 0.01f ); // turn color on
|
||||||
|
m_sprGameOver.SetTweenDiffuseColor( D3DXCOLOR(1,1,1,1) );
|
||||||
|
|
||||||
|
m_sprGameOver.BeginTweeningQueued( 0.5f ); // fade to color
|
||||||
|
m_sprGameOver.SetTweenAddColor( D3DXCOLOR(1,1,1,0) );
|
||||||
|
|
||||||
|
|
||||||
|
this->SendScreenMessage( SM_PlayAnnouncer, 0.5 );
|
||||||
this->SendScreenMessage( SM_StartFadingOut, 5 );
|
this->SendScreenMessage( SM_StartFadingOut, 5 );
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
ScreenGameOver::~ScreenGameOver()
|
|
||||||
{
|
|
||||||
delete m_psprGameOver;
|
|
||||||
delete m_pWipe;
|
|
||||||
}
|
|
||||||
|
|
||||||
void ScreenGameOver::HandleScreenMessage( const ScreenMessage SM )
|
void ScreenGameOver::HandleScreenMessage( const ScreenMessage SM )
|
||||||
{
|
{
|
||||||
switch( SM )
|
switch( SM )
|
||||||
{
|
{
|
||||||
|
case SM_PlayAnnouncer:
|
||||||
|
SOUND->PlayOnceStreamedFromDir( ANNOUNCER->GetPathTo(ANNOUNCER_GAME_OVER) );
|
||||||
|
break;
|
||||||
case SM_StartFadingOut:
|
case SM_StartFadingOut:
|
||||||
m_psprGameOver->BeginTweening( 0.8f );
|
m_sprGameOver.BeginTweening( 0.8f );
|
||||||
m_psprGameOver->SetTweenDiffuseColor( D3DXCOLOR(1,1,1,0) );
|
m_sprGameOver.SetTweenDiffuseColor( D3DXCOLOR(1,1,1,0) );
|
||||||
this->SendScreenMessage( SM_GoToNextState, 0.8f );
|
this->SendScreenMessage( SM_GoToNextState, 0.8f );
|
||||||
break;
|
break;
|
||||||
case SM_GoToNextState:
|
case SM_GoToNextState:
|
||||||
@@ -58,3 +68,8 @@ void ScreenGameOver::HandleScreenMessage( const ScreenMessage SM )
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void ScreenGameOver::MenuStart( PlayerNumber p )
|
||||||
|
{
|
||||||
|
this->ClearMessageQueue();
|
||||||
|
this->SendScreenMessage( SM_StartFadingOut, 0 );
|
||||||
|
}
|
||||||
|
|||||||
@@ -10,9 +10,7 @@
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
#include "Screen.h"
|
#include "Screen.h"
|
||||||
|
#include "Sprite.h"
|
||||||
class Sprite;
|
|
||||||
class TransitionFadeWipe;
|
|
||||||
|
|
||||||
|
|
||||||
class ScreenGameOver : public Screen
|
class ScreenGameOver : public Screen
|
||||||
@@ -20,15 +18,12 @@ class ScreenGameOver : public Screen
|
|||||||
public:
|
public:
|
||||||
ScreenGameOver();
|
ScreenGameOver();
|
||||||
|
|
||||||
~ScreenGameOver();
|
|
||||||
|
|
||||||
virtual void HandleScreenMessage( const ScreenMessage SM );
|
virtual void HandleScreenMessage( const ScreenMessage SM );
|
||||||
|
|
||||||
|
virtual void MenuStart( const PlayerNumber p );
|
||||||
|
|
||||||
private:
|
private:
|
||||||
|
Sprite m_sprGameOver;
|
||||||
Sprite* m_psprGameOver;
|
|
||||||
|
|
||||||
TransitionFadeWipe* m_pWipe;
|
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -34,7 +34,10 @@ const float LIFE_Y = SCREEN_TOP+28;
|
|||||||
const float SCORE_X[NUM_PLAYERS] = { CENTER_X-214, CENTER_X+214 };
|
const float SCORE_X[NUM_PLAYERS] = { CENTER_X-214, CENTER_X+214 };
|
||||||
const float SCORE_Y = SCREEN_BOTTOM-38;
|
const float SCORE_Y = SCREEN_BOTTOM-38;
|
||||||
|
|
||||||
const float DIFFICULTY_X[NUM_PLAYERS] = { SCREEN_LEFT+50, SCREEN_RIGHT-50 };
|
const float PLAYER_OPTIONS_X[NUM_PLAYERS] = { CENTER_X-214, CENTER_X+214 };
|
||||||
|
const float PLAYER_OPTIONS_Y[NUM_PLAYERS] = { SCREEN_BOTTOM-60, SCREEN_BOTTOM-40 };
|
||||||
|
|
||||||
|
const float DIFFICULTY_X[NUM_PLAYERS] = { SCREEN_LEFT+70, SCREEN_RIGHT-70 };
|
||||||
const float DIFFICULTY_Y = SCREEN_BOTTOM-80;
|
const float DIFFICULTY_Y = SCREEN_BOTTOM-80;
|
||||||
|
|
||||||
const float MAX_SECONDS_CAN_BE_OFF_BY = 0.20f;
|
const float MAX_SECONDS_CAN_BE_OFF_BY = 0.20f;
|
||||||
@@ -107,19 +110,26 @@ ScreenGameplay::ScreenGameplay()
|
|||||||
&m_ScoreDisplay[p]
|
&m_ScoreDisplay[p]
|
||||||
);
|
);
|
||||||
|
|
||||||
|
|
||||||
this->AddActor( &m_Player[p] );
|
this->AddActor( &m_Player[p] );
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
for( p=0; p<NUM_PLAYERS; p++ )
|
for( p=0; p<NUM_PLAYERS; p++ )
|
||||||
{
|
{
|
||||||
|
m_quadLifeMeterBG[p].SetXY( LIFE_X[p], LIFE_Y );
|
||||||
|
m_quadLifeMeterBG[p].SetDiffuseColor( D3DXCOLOR(0,0,0,1) );
|
||||||
|
m_quadLifeMeterBG[p].SetZoomX( 256 );
|
||||||
|
m_quadLifeMeterBG[p].SetZoomY( (p==PLAYER_1) ? 20.0f : -20.0f );
|
||||||
|
this->AddActor( &m_quadLifeMeterBG[p] );
|
||||||
|
|
||||||
if( !GAMEMAN->IsPlayerEnabled(PlayerNumber(p)) )
|
if( !GAMEMAN->IsPlayerEnabled(PlayerNumber(p)) )
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
m_LifeMeter[p].SetPlayerOptions( PREFSMAN->m_PlayerOptions[p] );
|
m_LifeMeter[p].SetPlayerOptions( PREFSMAN->m_PlayerOptions[p] );
|
||||||
m_LifeMeter[p].SetXY( LIFE_X[p], LIFE_Y );
|
m_LifeMeter[p].SetXY( LIFE_X[p], LIFE_Y );
|
||||||
m_LifeMeter[p].SetZoomX( 256 );
|
m_LifeMeter[p].SetZoomX( 256 );
|
||||||
m_LifeMeter[p].SetZoomY( 20 );
|
m_LifeMeter[p].SetZoomY( (p==PLAYER_1) ? 20.0f : -20.0f );
|
||||||
this->AddActor( &m_LifeMeter[p] );
|
this->AddActor( &m_LifeMeter[p] );
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -131,12 +141,12 @@ ScreenGameplay::ScreenGameplay()
|
|||||||
m_sprBottomFrame.SetXY( CENTER_X, SCREEN_BOTTOM - m_sprBottomFrame.GetZoomedHeight()/2 );
|
m_sprBottomFrame.SetXY( CENTER_X, SCREEN_BOTTOM - m_sprBottomFrame.GetZoomedHeight()/2 );
|
||||||
this->AddActor( &m_sprBottomFrame );
|
this->AddActor( &m_sprBottomFrame );
|
||||||
|
|
||||||
m_textSmallStage.Load( THEME->GetPathTo(FONT_HEADER1) );
|
m_textStageNumber.Load( THEME->GetPathTo(FONT_HEADER1) );
|
||||||
m_textSmallStage.TurnShadowOff();
|
m_textStageNumber.TurnShadowOff();
|
||||||
m_textSmallStage.SetXY( CENTER_X, 60 );
|
m_textStageNumber.SetXY( CENTER_X, 60 );
|
||||||
m_textSmallStage.SetDiffuseColor( D3DXCOLOR(0.3f,1,1,1) );
|
m_textStageNumber.SetDiffuseColor( D3DXCOLOR(0.3f,1,1,1) );
|
||||||
m_textSmallStage.SetText( PREFSMAN->GetStageText() );
|
m_textStageNumber.SetText( PREFSMAN->GetStageText() );
|
||||||
this->AddActor( &m_textSmallStage );
|
this->AddActor( &m_textStageNumber );
|
||||||
|
|
||||||
|
|
||||||
for( p=0; p<NUM_PLAYERS; p++ )
|
for( p=0; p<NUM_PLAYERS; p++ )
|
||||||
@@ -147,6 +157,14 @@ ScreenGameplay::ScreenGameplay()
|
|||||||
m_ScoreDisplay[p].SetXY( SCORE_X[p], SCORE_Y );
|
m_ScoreDisplay[p].SetXY( SCORE_X[p], SCORE_Y );
|
||||||
m_ScoreDisplay[p].SetZoom( 0.8f );
|
m_ScoreDisplay[p].SetZoom( 0.8f );
|
||||||
this->AddActor( &m_ScoreDisplay[p] );
|
this->AddActor( &m_ScoreDisplay[p] );
|
||||||
|
|
||||||
|
m_textPlayerOptions[p].Load( THEME->GetPathTo(FONT_NORMAL) );
|
||||||
|
m_textPlayerOptions[p].TurnShadowOff();
|
||||||
|
m_textPlayerOptions[p].SetXY( PLAYER_OPTIONS_X[p], PLAYER_OPTIONS_Y[p] );
|
||||||
|
m_textPlayerOptions[p].SetZoom( 0.5f );
|
||||||
|
m_textPlayerOptions[p].SetDiffuseColor( D3DXCOLOR(1,1,1,1) );
|
||||||
|
m_textPlayerOptions[p].SetText( PREFSMAN->m_PlayerOptions[p].GetString() );
|
||||||
|
this->AddActor( &m_textPlayerOptions[p] );
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@@ -377,7 +395,8 @@ void ScreenGameplay::Input( const DeviceInput& DeviceI, const InputEventType typ
|
|||||||
{
|
{
|
||||||
if( StyleI.IsValid() )
|
if( StyleI.IsValid() )
|
||||||
{
|
{
|
||||||
m_Player[StyleI.player].HandlePlayerStep( fSongBeat, StyleI.col, fMaxBeatsCanBeOffBy );
|
if( GAMEMAN->IsPlayerEnabled( StyleI.player ) )
|
||||||
|
m_Player[StyleI.player].HandlePlayerStep( fSongBeat, StyleI.col, fMaxBeatsCanBeOffBy );
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -455,9 +474,9 @@ void ScreenGameplay::HandleScreenMessage( const ScreenMessage SM )
|
|||||||
break;
|
break;
|
||||||
case SM_GoToResults:
|
case SM_GoToResults:
|
||||||
// send score summaries to the PREFSMAN object so ScreenResults can grab it.
|
// send score summaries to the PREFSMAN object so ScreenResults can grab it.
|
||||||
PREFSMAN->m_ScoreSummary[PLAYER_1] = m_Player[PLAYER_1].GetScoreSummary();
|
PREFSMAN->m_ScoreSummary[PLAYER_1][PREFSMAN->m_iNumArcadeStages-1] = m_Player[PLAYER_1].GetScoreSummary();
|
||||||
PREFSMAN->m_ScoreSummary[PLAYER_2] = m_Player[PLAYER_2].GetScoreSummary();
|
PREFSMAN->m_ScoreSummary[PLAYER_2][PREFSMAN->m_iNumArcadeStages-1] = m_Player[PLAYER_2].GetScoreSummary();
|
||||||
SCREENMAN->SetNewScreen( new ScreenResults );
|
SCREENMAN->SetNewScreen( new ScreenResults(false) );
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -55,15 +55,17 @@ private:
|
|||||||
|
|
||||||
Background m_Background;
|
Background m_Background;
|
||||||
|
|
||||||
|
Quad m_quadLifeMeterBG[NUM_PLAYERS];
|
||||||
LifeMeterBar m_LifeMeter[NUM_PLAYERS];
|
LifeMeterBar m_LifeMeter[NUM_PLAYERS];
|
||||||
|
|
||||||
Sprite m_sprTopFrame;
|
Sprite m_sprTopFrame;
|
||||||
Sprite m_sprBottomFrame;
|
Sprite m_sprBottomFrame;
|
||||||
|
BitmapText m_textPlayerOptions[NUM_PLAYERS];
|
||||||
|
|
||||||
ScoreDisplayRolling m_ScoreDisplay[NUM_PLAYERS];
|
ScoreDisplayRolling m_ScoreDisplay[NUM_PLAYERS];
|
||||||
|
|
||||||
|
|
||||||
BitmapText m_textSmallStage;
|
BitmapText m_textStageNumber;
|
||||||
|
|
||||||
TransitionStarWipe m_StarWipe;
|
TransitionStarWipe m_StarWipe;
|
||||||
|
|
||||||
|
|||||||
@@ -38,13 +38,6 @@ const CString CREDIT_LINES[] =
|
|||||||
"",
|
"",
|
||||||
"",
|
"",
|
||||||
"",
|
"",
|
||||||
"CREDITS",
|
|
||||||
"",
|
|
||||||
"",
|
|
||||||
"",
|
|
||||||
"",
|
|
||||||
"",
|
|
||||||
"",
|
|
||||||
"",
|
"",
|
||||||
"",
|
"",
|
||||||
"GRAPHICS:",
|
"GRAPHICS:",
|
||||||
@@ -52,12 +45,16 @@ const CString CREDIT_LINES[] =
|
|||||||
"Brian 'Bork' Bugh",
|
"Brian 'Bork' Bugh",
|
||||||
"DJ McFox (Ryan McKanna)",
|
"DJ McFox (Ryan McKanna)",
|
||||||
"",
|
"",
|
||||||
|
"",
|
||||||
|
"",
|
||||||
"WEB DESIGN:",
|
"WEB DESIGN:",
|
||||||
"Brian 'Bork' Bugh",
|
"Brian 'Bork' Bugh",
|
||||||
"",
|
"",
|
||||||
|
"",
|
||||||
|
"",
|
||||||
"PROGRAMMING:",
|
"PROGRAMMING:",
|
||||||
"Parasyte (Chris Gomez)",
|
"Parasyte (Chris Gomez)",
|
||||||
"Frieza (Andrew Livy)",
|
"Lord Frieza (Andrew Livy)",
|
||||||
"Ben Nordstrom",
|
"Ben Nordstrom",
|
||||||
"Chris Danford",
|
"Chris Danford",
|
||||||
"angedelamort (Sauleil Lamarre)",
|
"angedelamort (Sauleil Lamarre)",
|
||||||
@@ -75,6 +72,8 @@ const CString CREDIT_LINES[] =
|
|||||||
"WarriorBob (David H)",
|
"WarriorBob (David H)",
|
||||||
"Mike Waltson",
|
"Mike Waltson",
|
||||||
"",
|
"",
|
||||||
|
"",
|
||||||
|
"",
|
||||||
"SPECIAL THANKS TO:",
|
"SPECIAL THANKS TO:",
|
||||||
"SimWolf",
|
"SimWolf",
|
||||||
"Dance With Intensity",
|
"Dance With Intensity",
|
||||||
@@ -102,8 +101,11 @@ const CString CREDIT_LINES[] =
|
|||||||
"",
|
"",
|
||||||
"",
|
"",
|
||||||
"",
|
"",
|
||||||
"If your name is missing from this list,"
|
"If your name is missing from this list,",
|
||||||
" I apologize! -Chris"
|
"",
|
||||||
|
" I apologize!",
|
||||||
|
"",
|
||||||
|
" -Chris"
|
||||||
};
|
};
|
||||||
const int NUM_CREDIT_LINES = sizeof(CREDIT_LINES) / sizeof(CString);
|
const int NUM_CREDIT_LINES = sizeof(CREDIT_LINES) / sizeof(CString);
|
||||||
|
|
||||||
|
|||||||
@@ -51,7 +51,7 @@ ScreenOptions::ScreenOptions( CString sBackgroundPath, CString sTopEdgePath )
|
|||||||
ssprintf("%s %s to change line %s %s to select between options then press NEXT", CString(char(3)), CString(char(4)), CString(char(1)), CString(char(2)) )
|
ssprintf("%s %s to change line %s %s to select between options then press NEXT", CString(char(3)), CString(char(4)), CString(char(1)), CString(char(2)) )
|
||||||
);
|
);
|
||||||
this->AddActor( &m_Menu );
|
this->AddActor( &m_Menu );
|
||||||
m_Menu.TweenAllOnScreen();
|
m_Menu.TweenOnScreenFromBlack( SM_None );
|
||||||
|
|
||||||
// init row numbers and element colors
|
// init row numbers and element colors
|
||||||
for( int p=0; p<NUM_PLAYERS; p++ )
|
for( int p=0; p<NUM_PLAYERS; p++ )
|
||||||
@@ -297,7 +297,7 @@ void ScreenOptions::MenuBack( const PlayerNumber p )
|
|||||||
{
|
{
|
||||||
Screen::MenuBack( p );
|
Screen::MenuBack( p );
|
||||||
|
|
||||||
m_Menu.TweenAllOffScreen();
|
m_Menu.TweenOffScreenToBlack( SM_None, true );
|
||||||
|
|
||||||
m_Wipe.CloseWipingLeft( SM_GoToPrevState );
|
m_Wipe.CloseWipingLeft( SM_GoToPrevState );
|
||||||
}
|
}
|
||||||
@@ -307,7 +307,7 @@ void ScreenOptions::MenuStart( const PlayerNumber p )
|
|||||||
{
|
{
|
||||||
Screen::MenuStart( p );
|
Screen::MenuStart( p );
|
||||||
|
|
||||||
m_Menu.TweenAllOffScreen();
|
m_Menu.TweenOffScreenToBlack( SM_None, false );
|
||||||
|
|
||||||
m_SoundNext.PlayRandom();
|
m_SoundNext.PlayRandom();
|
||||||
m_Wipe.CloseWipingRight( SM_GoToNextState );
|
m_Wipe.CloseWipingRight( SM_GoToNextState );
|
||||||
|
|||||||
@@ -100,6 +100,9 @@ ScreenSelectDifficulty::ScreenSelectDifficulty()
|
|||||||
|
|
||||||
for( int p=0; p<NUM_PLAYERS; p++ )
|
for( int p=0; p<NUM_PLAYERS; p++ )
|
||||||
{
|
{
|
||||||
|
m_iSelection[p] = 0;
|
||||||
|
m_bChosen[p] = false;
|
||||||
|
|
||||||
if( !GAMEMAN->IsPlayerEnabled((PlayerNumber)p) )
|
if( !GAMEMAN->IsPlayerEnabled((PlayerNumber)p) )
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
@@ -123,15 +126,9 @@ ScreenSelectDifficulty::ScreenSelectDifficulty()
|
|||||||
|
|
||||||
m_sprOK[p].Load( THEME->GetPathTo(GRAPHIC_SELECT_DIFFICULTY_OK) );
|
m_sprOK[p].Load( THEME->GetPathTo(GRAPHIC_SELECT_DIFFICULTY_OK) );
|
||||||
this->AddActor( &m_sprOK[p] );
|
this->AddActor( &m_sprOK[p] );
|
||||||
|
|
||||||
m_iSelection[p] = 0;
|
|
||||||
m_bChosen[p] = false;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
m_Fade.SetZ( -2 );
|
|
||||||
this->AddActor( &m_Fade );
|
|
||||||
|
|
||||||
m_soundChange.Load( THEME->GetPathTo(SOUND_SELECT_DIFFICULTY_CHANGE) );
|
m_soundChange.Load( THEME->GetPathTo(SOUND_SELECT_DIFFICULTY_CHANGE) );
|
||||||
m_soundSelect.Load( THEME->GetPathTo(SOUND_MENU_START) );
|
m_soundSelect.Load( THEME->GetPathTo(SOUND_MENU_START) );
|
||||||
|
|
||||||
@@ -145,7 +142,7 @@ ScreenSelectDifficulty::ScreenSelectDifficulty()
|
|||||||
MUSIC->Play( true );
|
MUSIC->Play( true );
|
||||||
}
|
}
|
||||||
|
|
||||||
m_Fade.OpenWipingRight();
|
m_Menu.TweenOnScreenFromMenu( SM_None );
|
||||||
TweenOnScreen();
|
TweenOnScreen();
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -161,7 +158,7 @@ void ScreenSelectDifficulty::Input( const DeviceInput& DeviceI, const InputEvent
|
|||||||
{
|
{
|
||||||
LOG->WriteLine( "ScreenSelectDifficulty::Input()" );
|
LOG->WriteLine( "ScreenSelectDifficulty::Input()" );
|
||||||
|
|
||||||
if( m_Fade.IsClosing() )
|
if( m_Menu.IsClosing() )
|
||||||
return;
|
return;
|
||||||
|
|
||||||
Screen::Input( DeviceI, type, GameI, MenuI, StyleI ); // default input handler
|
Screen::Input( DeviceI, type, GameI, MenuI, StyleI ); // default input handler
|
||||||
@@ -195,7 +192,7 @@ void ScreenSelectDifficulty::HandleScreenMessage( const ScreenMessage SM )
|
|||||||
this->SendScreenMessage( SM_StartFadingOut, 0.8f );
|
this->SendScreenMessage( SM_StartFadingOut, 0.8f );
|
||||||
break;
|
break;
|
||||||
case SM_StartFadingOut:
|
case SM_StartFadingOut:
|
||||||
m_Fade.CloseWipingRight( SM_GoToNextState );
|
m_Menu.TweenOffScreenToMenu( SM_GoToNextState );
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -279,7 +276,7 @@ void ScreenSelectDifficulty::MenuStart( PlayerNumber pn )
|
|||||||
// check to see if everyone has chosen
|
// check to see if everyone has chosen
|
||||||
for( int p=0; p<NUM_PLAYERS; p++ )
|
for( int p=0; p<NUM_PLAYERS; p++ )
|
||||||
{
|
{
|
||||||
if( m_bChosen[p] == false )
|
if( GAMEMAN->IsPlayerEnabled((PlayerNumber)p) && m_bChosen[p] == false )
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
this->SendScreenMessage( SM_StartTweeningOffScreen, 0.7f );
|
this->SendScreenMessage( SM_StartTweeningOffScreen, 0.7f );
|
||||||
@@ -287,15 +284,11 @@ void ScreenSelectDifficulty::MenuStart( PlayerNumber pn )
|
|||||||
|
|
||||||
void ScreenSelectDifficulty::MenuBack( const PlayerNumber p )
|
void ScreenSelectDifficulty::MenuBack( const PlayerNumber p )
|
||||||
{
|
{
|
||||||
m_Fade.CloseWipingLeft( SM_GoToPrevState );
|
m_Menu.TweenOffScreenToBlack( SM_GoToPrevState, true );
|
||||||
|
|
||||||
TweenOffScreen();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void ScreenSelectDifficulty::TweenOffScreen()
|
void ScreenSelectDifficulty::TweenOffScreen()
|
||||||
{
|
{
|
||||||
m_Menu.TweenTopEdgeOffScreen();
|
|
||||||
|
|
||||||
m_sprExplanation.SetXY( EXPLANATION_X, EXPLANATION_Y );
|
m_sprExplanation.SetXY( EXPLANATION_X, EXPLANATION_Y );
|
||||||
m_sprExplanation.BeginTweening( 0.5, Actor::TWEEN_BOUNCE_BEGIN );
|
m_sprExplanation.BeginTweening( 0.5, Actor::TWEEN_BOUNCE_BEGIN );
|
||||||
m_sprExplanation.SetTweenXY( EXPLANATION_X-400, EXPLANATION_Y );
|
m_sprExplanation.SetTweenXY( EXPLANATION_X-400, EXPLANATION_Y );
|
||||||
@@ -341,7 +334,7 @@ void ScreenSelectDifficulty::TweenOffScreen()
|
|||||||
|
|
||||||
void ScreenSelectDifficulty::TweenOnScreen()
|
void ScreenSelectDifficulty::TweenOnScreen()
|
||||||
{
|
{
|
||||||
m_Menu.TweenTopEdgeOnScreen();
|
m_Menu.TweenOnScreenFromMenu( SM_None );
|
||||||
|
|
||||||
m_sprExplanation.SetXY( EXPLANATION_X-400, EXPLANATION_Y );
|
m_sprExplanation.SetXY( EXPLANATION_X-400, EXPLANATION_Y );
|
||||||
m_sprExplanation.BeginTweening( 0.3f, Actor::TWEEN_BOUNCE_END );
|
m_sprExplanation.BeginTweening( 0.3f, Actor::TWEEN_BOUNCE_END );
|
||||||
|
|||||||
@@ -10,7 +10,6 @@
|
|||||||
|
|
||||||
#include "Screen.h"
|
#include "Screen.h"
|
||||||
#include "Sprite.h"
|
#include "Sprite.h"
|
||||||
#include "TransitionKeepAlive.h"
|
|
||||||
#include "RandomSample.h"
|
#include "RandomSample.h"
|
||||||
#include "Screen.h"
|
#include "Screen.h"
|
||||||
#include "Quad.h"
|
#include "Quad.h"
|
||||||
@@ -52,8 +51,6 @@ private:
|
|||||||
|
|
||||||
int m_iSelection[NUM_PLAYERS];
|
int m_iSelection[NUM_PLAYERS];
|
||||||
bool m_bChosen[NUM_PLAYERS];
|
bool m_bChosen[NUM_PLAYERS];
|
||||||
|
|
||||||
TransitionKeepAlive m_Fade;
|
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -112,9 +112,6 @@ ScreenSelectGroup::ScreenSelectGroup()
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
m_Fade.SetZ( -2 );
|
|
||||||
this->AddActor( &m_Fade );
|
|
||||||
|
|
||||||
m_soundChange.Load( THEME->GetPathTo(SOUND_SELECT_GROUP_CHANGE) );
|
m_soundChange.Load( THEME->GetPathTo(SOUND_SELECT_GROUP_CHANGE) );
|
||||||
m_soundSelect.Load( THEME->GetPathTo(SOUND_MENU_START) );
|
m_soundSelect.Load( THEME->GetPathTo(SOUND_MENU_START) );
|
||||||
|
|
||||||
@@ -127,7 +124,7 @@ ScreenSelectGroup::ScreenSelectGroup()
|
|||||||
MUSIC->Play( true );
|
MUSIC->Play( true );
|
||||||
}
|
}
|
||||||
|
|
||||||
m_Fade.OpenWipingRight();
|
m_Menu.TweenOnScreenFromMenu( SM_None );
|
||||||
TweenOnScreen();
|
TweenOnScreen();
|
||||||
AfterChange();
|
AfterChange();
|
||||||
}
|
}
|
||||||
@@ -144,7 +141,7 @@ void ScreenSelectGroup::Input( const DeviceInput& DeviceI, const InputEventType
|
|||||||
{
|
{
|
||||||
LOG->WriteLine( "ScreenSelectGroup::Input()" );
|
LOG->WriteLine( "ScreenSelectGroup::Input()" );
|
||||||
|
|
||||||
if( m_Fade.IsClosing() || m_bChosen )
|
if( m_Menu.IsClosing() || m_bChosen )
|
||||||
return;
|
return;
|
||||||
|
|
||||||
Screen::Input( DeviceI, type, GameI, MenuI, StyleI ); // default input handler
|
Screen::Input( DeviceI, type, GameI, MenuI, StyleI ); // default input handler
|
||||||
@@ -171,7 +168,7 @@ void ScreenSelectGroup::HandleScreenMessage( const ScreenMessage SM )
|
|||||||
SCREENMAN->SetNewScreen( new ScreenSelectMusic );
|
SCREENMAN->SetNewScreen( new ScreenSelectMusic );
|
||||||
break;
|
break;
|
||||||
case SM_StartFadingOut:
|
case SM_StartFadingOut:
|
||||||
m_Fade.CloseWipingRight( SM_GoToNextState );
|
m_Menu.TweenOffScreenToMenu( SM_GoToNextState );
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -293,20 +290,17 @@ void ScreenSelectGroup::MenuStart( const PlayerNumber p )
|
|||||||
|
|
||||||
|
|
||||||
TweenOffScreen();
|
TweenOffScreen();
|
||||||
|
|
||||||
this->SendScreenMessage( SM_StartFadingOut, 0.8f );
|
this->SendScreenMessage( SM_StartFadingOut, 0.8f );
|
||||||
}
|
}
|
||||||
|
|
||||||
void ScreenSelectGroup::MenuBack( const PlayerNumber p )
|
void ScreenSelectGroup::MenuBack( const PlayerNumber p )
|
||||||
{
|
{
|
||||||
m_Fade.CloseWipingLeft( SM_GoToPrevState );
|
m_Menu.TweenOffScreenToBlack( SM_GoToPrevState, true );
|
||||||
|
|
||||||
TweenOffScreen();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void ScreenSelectGroup::TweenOffScreen()
|
void ScreenSelectGroup::TweenOffScreen()
|
||||||
{
|
{
|
||||||
m_Menu.TweenTopEdgeOffScreen();
|
|
||||||
|
|
||||||
m_sprExplanation.BeginTweeningQueued( 0.8f );
|
m_sprExplanation.BeginTweeningQueued( 0.8f );
|
||||||
m_sprExplanation.BeginTweeningQueued( 0.5f, TWEEN_BOUNCE_BEGIN );
|
m_sprExplanation.BeginTweeningQueued( 0.5f, TWEEN_BOUNCE_BEGIN );
|
||||||
m_sprExplanation.SetTweenX( EXPLANATION_X-400 );
|
m_sprExplanation.SetTweenX( EXPLANATION_X-400 );
|
||||||
@@ -349,7 +343,7 @@ void ScreenSelectGroup::TweenOffScreen()
|
|||||||
|
|
||||||
void ScreenSelectGroup::TweenOnScreen()
|
void ScreenSelectGroup::TweenOnScreen()
|
||||||
{
|
{
|
||||||
m_Menu.TweenTopEdgeOnScreen();
|
m_Menu.TweenOnScreenFromMenu( SM_None );
|
||||||
|
|
||||||
m_sprExplanation.SetX( EXPLANATION_X-400 );
|
m_sprExplanation.SetX( EXPLANATION_X-400 );
|
||||||
m_sprExplanation.BeginTweening( 0.5f, TWEEN_BOUNCE_END );
|
m_sprExplanation.BeginTweening( 0.5f, TWEEN_BOUNCE_END );
|
||||||
|
|||||||
@@ -11,7 +11,6 @@
|
|||||||
|
|
||||||
#include "Screen.h"
|
#include "Screen.h"
|
||||||
#include "Sprite.h"
|
#include "Sprite.h"
|
||||||
#include "TransitionKeepAlive.h"
|
|
||||||
#include "RandomSample.h"
|
#include "RandomSample.h"
|
||||||
#include "Screen.h"
|
#include "Screen.h"
|
||||||
#include "Quad.h"
|
#include "Quad.h"
|
||||||
@@ -63,8 +62,6 @@ private:
|
|||||||
CStringArray m_arrayGroupNames;
|
CStringArray m_arrayGroupNames;
|
||||||
int m_iSelection;
|
int m_iSelection;
|
||||||
bool m_bChosen;
|
bool m_bChosen;
|
||||||
|
|
||||||
TransitionKeepAlive m_Fade;
|
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -63,6 +63,10 @@ ScreenSelectMusic::ScreenSelectMusic()
|
|||||||
{
|
{
|
||||||
LOG->WriteLine( "ScreenSelectMusic::ScreenSelectMusic()" );
|
LOG->WriteLine( "ScreenSelectMusic::ScreenSelectMusic()" );
|
||||||
|
|
||||||
|
// for debugging
|
||||||
|
if( GAMEMAN->m_CurStyle == STYLE_NONE )
|
||||||
|
GAMEMAN->m_CurStyle = STYLE_DANCE_SINGLE;
|
||||||
|
|
||||||
int p;
|
int p;
|
||||||
|
|
||||||
m_Menu.Load(
|
m_Menu.Load(
|
||||||
@@ -104,18 +108,13 @@ ScreenSelectMusic::ScreenSelectMusic()
|
|||||||
m_MusicWheel.SetXY( WHEEL_X, WHEEL_Y );
|
m_MusicWheel.SetXY( WHEEL_X, WHEEL_Y );
|
||||||
this->AddActor( &m_MusicWheel );
|
this->AddActor( &m_MusicWheel );
|
||||||
|
|
||||||
m_Wipe.SetZ( -2 );
|
|
||||||
this->AddActor( &m_Wipe );
|
|
||||||
|
|
||||||
m_Fade.SetZ( -2 );
|
|
||||||
this->AddActor( &m_Fade );
|
|
||||||
|
|
||||||
m_textHoldForOptions.Load( THEME->GetPathTo(FONT_STAGE) );
|
m_textHoldForOptions.Load( THEME->GetPathTo(FONT_STAGE) );
|
||||||
m_textHoldForOptions.SetXY( CENTER_X, CENTER_Y );
|
m_textHoldForOptions.SetXY( CENTER_X, CENTER_Y );
|
||||||
m_textHoldForOptions.SetText( "hold NEXT for options" );
|
m_textHoldForOptions.SetText( "hold NEXT for options" );
|
||||||
m_textHoldForOptions.SetZoom( 1 );
|
m_textHoldForOptions.SetZoom( 1 );
|
||||||
m_textHoldForOptions.SetZoomY( 0 );
|
m_textHoldForOptions.SetZoomY( 0 );
|
||||||
m_textHoldForOptions.SetDiffuseColor( D3DXCOLOR(1,1,1,0) );
|
m_textHoldForOptions.SetDiffuseColor( D3DXCOLOR(1,1,1,0) );
|
||||||
|
m_textHoldForOptions.SetZ( -4 );
|
||||||
this->AddActor( &m_textHoldForOptions );
|
this->AddActor( &m_textHoldForOptions );
|
||||||
|
|
||||||
|
|
||||||
@@ -127,7 +126,7 @@ ScreenSelectMusic::ScreenSelectMusic()
|
|||||||
|
|
||||||
AfterMusicChange();
|
AfterMusicChange();
|
||||||
TweenOnScreen();
|
TweenOnScreen();
|
||||||
m_Wipe.OpenWipingRight();
|
m_Menu.TweenOnScreenFromMenu( SM_None );
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@@ -146,8 +145,6 @@ void ScreenSelectMusic::DrawPrimitives()
|
|||||||
|
|
||||||
void ScreenSelectMusic::TweenOnScreen()
|
void ScreenSelectMusic::TweenOnScreen()
|
||||||
{
|
{
|
||||||
m_Menu.TweenTopEdgeOnScreen();
|
|
||||||
|
|
||||||
float fOriginalZoomY;
|
float fOriginalZoomY;
|
||||||
|
|
||||||
m_SongInfoFrame.SetXY( SONG_INFO_FRAME_X - 400, SONG_INFO_FRAME_Y );
|
m_SongInfoFrame.SetXY( SONG_INFO_FRAME_X - 400, SONG_INFO_FRAME_Y );
|
||||||
@@ -181,8 +178,6 @@ void ScreenSelectMusic::TweenOnScreen()
|
|||||||
|
|
||||||
void ScreenSelectMusic::TweenOffScreen()
|
void ScreenSelectMusic::TweenOffScreen()
|
||||||
{
|
{
|
||||||
m_Menu.TweenAllOffScreen();
|
|
||||||
|
|
||||||
m_SongInfoFrame.BeginTweening( TWEEN_TIME, Actor::TWEEN_BOUNCE_END );
|
m_SongInfoFrame.BeginTweening( TWEEN_TIME, Actor::TWEEN_BOUNCE_END );
|
||||||
m_SongInfoFrame.SetTweenXY( SONG_INFO_FRAME_X - 400, SONG_INFO_FRAME_Y );
|
m_SongInfoFrame.SetTweenXY( SONG_INFO_FRAME_X - 400, SONG_INFO_FRAME_Y );
|
||||||
|
|
||||||
@@ -219,7 +214,7 @@ void ScreenSelectMusic::Input( const DeviceInput& DeviceI, const InputEventType
|
|||||||
{
|
{
|
||||||
LOG->WriteLine( "ScreenSelectMusic::Input()" );
|
LOG->WriteLine( "ScreenSelectMusic::Input()" );
|
||||||
|
|
||||||
if( m_Wipe.IsClosing() || m_Fade.IsClosing() )
|
if( m_Menu.IsClosing() )
|
||||||
return; // ignore
|
return; // ignore
|
||||||
|
|
||||||
if( MenuI.player == PLAYER_NONE )
|
if( MenuI.player == PLAYER_NONE )
|
||||||
@@ -323,7 +318,7 @@ void ScreenSelectMusic::HandleScreenMessage( const ScreenMessage SM )
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void ScreenSelectMusic::MenuLeft( const PlayerNumber p )
|
void ScreenSelectMusic::MenuLeft( const PlayerNumber p, const InputEventType type )
|
||||||
{
|
{
|
||||||
m_MusicWheel.PrevMusic();
|
m_MusicWheel.PrevMusic();
|
||||||
|
|
||||||
@@ -331,7 +326,7 @@ void ScreenSelectMusic::MenuLeft( const PlayerNumber p )
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
void ScreenSelectMusic::MenuRight( const PlayerNumber p )
|
void ScreenSelectMusic::MenuRight( const PlayerNumber p, const InputEventType type )
|
||||||
{
|
{
|
||||||
m_MusicWheel.NextMusic();
|
m_MusicWheel.NextMusic();
|
||||||
|
|
||||||
@@ -354,6 +349,8 @@ void ScreenSelectMusic::MenuStart( const PlayerNumber p )
|
|||||||
}
|
}
|
||||||
|
|
||||||
TweenOffScreen();
|
TweenOffScreen();
|
||||||
|
m_Menu.TweenOffScreenToBlack( SM_None, false );
|
||||||
|
|
||||||
m_soundSelect.PlayRandom();
|
m_soundSelect.PlayRandom();
|
||||||
|
|
||||||
bool bIsNew = m_MusicWheel.GetSelectedSong()->IsNew();
|
bool bIsNew = m_MusicWheel.GetSelectedSong()->IsNew();
|
||||||
@@ -362,7 +359,7 @@ void ScreenSelectMusic::MenuStart( const PlayerNumber p )
|
|||||||
{
|
{
|
||||||
if( !GAMEMAN->IsPlayerEnabled( (PlayerNumber)p ) )
|
if( !GAMEMAN->IsPlayerEnabled( (PlayerNumber)p ) )
|
||||||
continue; // skip
|
continue; // skip
|
||||||
if( SONGMAN->m_pCurNotes[p]->m_iMeter >= 9 )
|
if( SONGMAN->m_pCurNotes[p] && SONGMAN->m_pCurNotes[p]->m_iMeter >= 9 )
|
||||||
bIsHard = true;
|
bIsHard = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -376,16 +373,17 @@ void ScreenSelectMusic::MenuStart( const PlayerNumber p )
|
|||||||
;
|
;
|
||||||
|
|
||||||
// show "hold NEXT for options"
|
// show "hold NEXT for options"
|
||||||
|
m_textHoldForOptions.SetDiffuseColor( D3DXCOLOR(1,1,1,0) );
|
||||||
m_textHoldForOptions.BeginTweeningQueued( 0.25f ); // fade in
|
m_textHoldForOptions.BeginTweeningQueued( 0.25f ); // fade in
|
||||||
m_textHoldForOptions.SetTweenDiffuseColor( D3DXCOLOR(1,1,1,1) );
|
|
||||||
m_textHoldForOptions.SetTweenZoomY( 1 );
|
m_textHoldForOptions.SetTweenZoomY( 1 );
|
||||||
m_textHoldForOptions.BeginTweeningQueued( 1.0f ); // sleep
|
m_textHoldForOptions.BeginTweeningQueued( 2.0f ); // sleep
|
||||||
m_textHoldForOptions.BeginTweeningQueued( 0.25f ); // fade out
|
m_textHoldForOptions.BeginTweeningQueued( 0.25f ); // fade out
|
||||||
m_textHoldForOptions.SetTweenDiffuseColor( D3DXCOLOR(1,1,1,0) );
|
m_textHoldForOptions.SetTweenDiffuseColor( D3DXCOLOR(1,1,1,0) );
|
||||||
m_textHoldForOptions.SetTweenZoomY( 0 );
|
m_textHoldForOptions.SetTweenZoomY( 0 );
|
||||||
|
|
||||||
m_Fade.SetTransitionTime( 1.5f ); // give enough time for m_textHoldForOptions to complete its tweens
|
m_Menu.TweenOffScreenToBlack( SM_None, false );
|
||||||
m_Fade.CloseWipingRight( SM_GoToNextState );
|
|
||||||
|
this->SendScreenMessage( SM_GoToNextState, 2.5f );
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case TYPE_SECTION:
|
case TYPE_SECTION:
|
||||||
@@ -400,13 +398,9 @@ void ScreenSelectMusic::MenuStart( const PlayerNumber p )
|
|||||||
|
|
||||||
void ScreenSelectMusic::MenuBack( const PlayerNumber p )
|
void ScreenSelectMusic::MenuBack( const PlayerNumber p )
|
||||||
{
|
{
|
||||||
Screen::MenuBack( p );
|
|
||||||
|
|
||||||
MUSIC->Stop();
|
MUSIC->Stop();
|
||||||
|
|
||||||
m_Wipe.CloseWipingLeft( SM_GoToPrevState );
|
m_Menu.TweenOffScreenToBlack( SM_GoToPrevState, true );
|
||||||
|
|
||||||
TweenOffScreen();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void ScreenSelectMusic::AfterNotesChange( const PlayerNumber p )
|
void ScreenSelectMusic::AfterNotesChange( const PlayerNumber p )
|
||||||
|
|||||||
@@ -15,7 +15,6 @@
|
|||||||
#include "GameConstantsAndTypes.h"
|
#include "GameConstantsAndTypes.h"
|
||||||
#include "MusicWheel.h"
|
#include "MusicWheel.h"
|
||||||
#include "Banner.h"
|
#include "Banner.h"
|
||||||
#include "TransitionKeepAlive.h"
|
|
||||||
#include "SongInfoFrame.h"
|
#include "SongInfoFrame.h"
|
||||||
#include "MenuElements.h"
|
#include "MenuElements.h"
|
||||||
#include "GrooveRadar.h"
|
#include "GrooveRadar.h"
|
||||||
@@ -37,14 +36,15 @@ public:
|
|||||||
void TweenOnScreen();
|
void TweenOnScreen();
|
||||||
void TweenOffScreen();
|
void TweenOffScreen();
|
||||||
|
|
||||||
void MenuLeft( const PlayerNumber p );
|
void MenuLeft( const PlayerNumber p, const InputEventType type );
|
||||||
void MenuRight( const PlayerNumber p );
|
void MenuRight( const PlayerNumber p, const InputEventType type );
|
||||||
void EasierDifficulty( const PlayerNumber p );
|
|
||||||
void HarderDifficulty( const PlayerNumber p );
|
|
||||||
void MenuStart( const PlayerNumber p );
|
void MenuStart( const PlayerNumber p );
|
||||||
void MenuBack( const PlayerNumber p );
|
void MenuBack( const PlayerNumber p );
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
|
void EasierDifficulty( const PlayerNumber p );
|
||||||
|
void HarderDifficulty( const PlayerNumber p );
|
||||||
|
|
||||||
void AfterNotesChange( const PlayerNumber p );
|
void AfterNotesChange( const PlayerNumber p );
|
||||||
void AfterMusicChange();
|
void AfterMusicChange();
|
||||||
void PlayMusicSample();
|
void PlayMusicSample();
|
||||||
@@ -66,9 +66,6 @@ protected:
|
|||||||
|
|
||||||
RandomSample m_soundSelect;
|
RandomSample m_soundSelect;
|
||||||
RandomSample m_soundChangeNotes;
|
RandomSample m_soundChangeNotes;
|
||||||
|
|
||||||
TransitionKeepAlive m_Wipe;
|
|
||||||
TransitionFade m_Fade;
|
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -30,10 +30,10 @@ const float ICONS_SPACING_X = 76;
|
|||||||
const float ICON_Y = SCREEN_TOP + 100;
|
const float ICON_Y = SCREEN_TOP + 100;
|
||||||
|
|
||||||
const float EXPLANATION_X = SCREEN_RIGHT - 160;
|
const float EXPLANATION_X = SCREEN_RIGHT - 160;
|
||||||
const float EXPLANATION_Y = CENTER_Y;
|
const float EXPLANATION_Y = CENTER_Y-70;
|
||||||
|
|
||||||
const float INFO_X = SCREEN_RIGHT - 160;
|
const float INFO_X = SCREEN_RIGHT - 160;
|
||||||
const float INFO_Y = CENTER_Y+200;
|
const float INFO_Y = CENTER_Y+40;
|
||||||
|
|
||||||
const float PREVIEW_X = SCREEN_LEFT + 160;
|
const float PREVIEW_X = SCREEN_LEFT + 160;
|
||||||
const float PREVIEW_Y = CENTER_Y;
|
const float PREVIEW_Y = CENTER_Y;
|
||||||
@@ -83,9 +83,6 @@ ScreenSelectStyle::ScreenSelectStyle()
|
|||||||
);
|
);
|
||||||
this->AddActor( &m_Menu );
|
this->AddActor( &m_Menu );
|
||||||
|
|
||||||
m_Fade.SetZ( -2 );
|
|
||||||
this->AddActor( &m_Fade );
|
|
||||||
|
|
||||||
m_soundChange.Load( THEME->GetPathTo(SOUND_SELECT_STYLE_CHANGE) );
|
m_soundChange.Load( THEME->GetPathTo(SOUND_SELECT_STYLE_CHANGE) );
|
||||||
m_soundSelect.Load( THEME->GetPathTo(SOUND_MENU_START) );
|
m_soundSelect.Load( THEME->GetPathTo(SOUND_MENU_START) );
|
||||||
|
|
||||||
@@ -99,10 +96,9 @@ ScreenSelectStyle::ScreenSelectStyle()
|
|||||||
MUSIC->Play( true );
|
MUSIC->Play( true );
|
||||||
}
|
}
|
||||||
|
|
||||||
m_soundChange.PlayRandom();
|
|
||||||
AfterChange();
|
AfterChange();
|
||||||
TweenOnScreen();
|
TweenOnScreen();
|
||||||
m_Menu.TweenAllOnScreen();
|
m_Menu.TweenOnScreenFromBlack( SM_None );
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@@ -122,7 +118,7 @@ void ScreenSelectStyle::Input( const DeviceInput& DeviceI, const InputEventType
|
|||||||
{
|
{
|
||||||
LOG->WriteLine( "ScreenSelectStyle::Input()" );
|
LOG->WriteLine( "ScreenSelectStyle::Input()" );
|
||||||
|
|
||||||
if( m_Fade.IsClosing() )
|
if( m_Menu.IsClosing() )
|
||||||
return;
|
return;
|
||||||
|
|
||||||
Screen::Input( DeviceI, type, GameI, MenuI, StyleI ); // default input handler
|
Screen::Input( DeviceI, type, GameI, MenuI, StyleI ); // default input handler
|
||||||
@@ -135,7 +131,7 @@ void ScreenSelectStyle::HandleScreenMessage( const ScreenMessage SM )
|
|||||||
switch( SM )
|
switch( SM )
|
||||||
{
|
{
|
||||||
case SM_MenuTimer:
|
case SM_MenuTimer:
|
||||||
MenuStart(PLAYER_1);
|
MenuStart(PLAYER_NONE);
|
||||||
break;
|
break;
|
||||||
case SM_GoToPrevState:
|
case SM_GoToPrevState:
|
||||||
MUSIC->Stop();
|
MUSIC->Stop();
|
||||||
@@ -158,16 +154,34 @@ void ScreenSelectStyle::AfterChange()
|
|||||||
|
|
||||||
ThemeElement te;
|
ThemeElement te;
|
||||||
|
|
||||||
|
// Tween Preview
|
||||||
te = (ThemeElement)(GRAPHIC_SELECT_STYLE_PREVIEW_0+GetSelectedStyle());
|
te = (ThemeElement)(GRAPHIC_SELECT_STYLE_PREVIEW_0+GetSelectedStyle());
|
||||||
m_sprPreview.Load( THEME->GetPathTo(te) );
|
m_sprPreview.Load( THEME->GetPathTo(te) );
|
||||||
m_sprPreview.SetZoomX( 0 );
|
|
||||||
m_sprPreview.BeginTweening( 0.3f, Actor::TWEEN_BOUNCE_END );
|
|
||||||
m_sprPreview.SetTweenZoomX( 1 );
|
|
||||||
|
|
||||||
|
m_sprPreview.StopTweening();
|
||||||
|
m_sprPreview.SetAddColor( D3DXCOLOR(1,1,1,0) );
|
||||||
|
m_sprPreview.SetDiffuseColor( D3DXCOLOR(1,1,1,0) );
|
||||||
|
|
||||||
|
m_sprPreview.BeginTweeningQueued( 0.25f ); // sleep
|
||||||
|
|
||||||
|
m_sprPreview.BeginTweeningQueued( 0.2f ); // fade to white
|
||||||
|
m_sprPreview.SetTweenAddColor( D3DXCOLOR(1,1,1,1) );
|
||||||
|
m_sprPreview.SetTweenDiffuseColor( D3DXCOLOR(1,1,1,0) );
|
||||||
|
|
||||||
|
m_sprPreview.BeginTweeningQueued( 0.01f ); // turn color on
|
||||||
|
m_sprPreview.SetTweenDiffuseColor( D3DXCOLOR(1,1,1,1) );
|
||||||
|
|
||||||
|
m_sprPreview.BeginTweeningQueued( 0.2f ); // fade to color
|
||||||
|
m_sprPreview.SetTweenAddColor( D3DXCOLOR(1,1,1,0) );
|
||||||
|
m_sprPreview.SetTweenDiffuseColor( D3DXCOLOR(1,1,1,1) );
|
||||||
|
|
||||||
|
|
||||||
|
// Tween Info
|
||||||
te = (ThemeElement)(GRAPHIC_SELECT_STYLE_INFO_0+GetSelectedStyle());
|
te = (ThemeElement)(GRAPHIC_SELECT_STYLE_INFO_0+GetSelectedStyle());
|
||||||
m_sprInfo.Load( THEME->GetPathTo(te) );
|
m_sprInfo.Load( THEME->GetPathTo(te) );
|
||||||
|
m_sprInfo.StopTweening();
|
||||||
m_sprInfo.SetZoomY( 0 );
|
m_sprInfo.SetZoomY( 0 );
|
||||||
m_sprInfo.BeginTweening( 0.3f, Actor::TWEEN_BOUNCE_END );
|
m_sprInfo.BeginTweeningQueued( 0.5f, Actor::TWEEN_BOUNCE_END );
|
||||||
m_sprInfo.SetTweenZoomY( 1 );
|
m_sprInfo.SetTweenZoomY( 1 );
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -196,7 +210,8 @@ void ScreenSelectStyle::MenuRight( const PlayerNumber p )
|
|||||||
|
|
||||||
void ScreenSelectStyle::MenuStart( const PlayerNumber p )
|
void ScreenSelectStyle::MenuStart( const PlayerNumber p )
|
||||||
{
|
{
|
||||||
GAMEMAN->m_sMasterPlayerNumber = p;
|
if( p != PLAYER_NONE )
|
||||||
|
GAMEMAN->m_sMasterPlayerNumber = p;
|
||||||
GAMEMAN->m_CurStyle = GetSelectedStyle();
|
GAMEMAN->m_CurStyle = GetSelectedStyle();
|
||||||
|
|
||||||
AnnouncerElement ae;
|
AnnouncerElement ae;
|
||||||
@@ -214,12 +229,10 @@ void ScreenSelectStyle::MenuStart( const PlayerNumber p )
|
|||||||
}
|
}
|
||||||
SOUND->PlayOnceStreamedFromDir( ANNOUNCER->GetPathTo(ae) );
|
SOUND->PlayOnceStreamedFromDir( ANNOUNCER->GetPathTo(ae) );
|
||||||
|
|
||||||
m_Menu.TweenTopEdgeOffScreen();
|
m_Menu.TweenOffScreenToMenu( SM_GoToNextState );
|
||||||
|
|
||||||
m_soundSelect.PlayRandom();
|
m_soundSelect.PlayRandom();
|
||||||
|
|
||||||
m_Fade.CloseWipingRight( SM_GoToNextState );
|
|
||||||
|
|
||||||
TweenOffScreen();
|
TweenOffScreen();
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -227,11 +240,11 @@ void ScreenSelectStyle::MenuBack( const PlayerNumber p )
|
|||||||
{
|
{
|
||||||
MUSIC->Stop();
|
MUSIC->Stop();
|
||||||
|
|
||||||
m_Menu.TweenAllOffScreen();
|
m_Menu.TweenOffScreenToBlack( SM_GoToPrevState, true );
|
||||||
|
|
||||||
m_Fade.CloseWipingLeft( SM_GoToPrevState );
|
// m_Fade.CloseWipingLeft( SM_GoToPrevState );
|
||||||
|
|
||||||
TweenOffScreen();
|
// TweenOffScreen();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@@ -271,6 +284,9 @@ void ScreenSelectStyle::TweenOnScreen()
|
|||||||
m_sprExplanation.BeginTweening( MENU_ELEMENTS_TWEEN_TIME );
|
m_sprExplanation.BeginTweening( MENU_ELEMENTS_TWEEN_TIME );
|
||||||
m_sprExplanation.SetTweenZoomY( fOriginalZoom );
|
m_sprExplanation.SetTweenZoomY( fOriginalZoom );
|
||||||
|
|
||||||
|
|
||||||
|
// let AfterChange tween Preview and Info
|
||||||
|
/*
|
||||||
fOriginalZoom = m_sprPreview.GetZoomY();
|
fOriginalZoom = m_sprPreview.GetZoomY();
|
||||||
m_sprPreview.SetZoomY( 0 );
|
m_sprPreview.SetZoomY( 0 );
|
||||||
m_sprPreview.BeginTweening( MENU_ELEMENTS_TWEEN_TIME );
|
m_sprPreview.BeginTweening( MENU_ELEMENTS_TWEEN_TIME );
|
||||||
@@ -280,4 +296,5 @@ void ScreenSelectStyle::TweenOnScreen()
|
|||||||
m_sprInfo.SetZoomY( 0 );
|
m_sprInfo.SetZoomY( 0 );
|
||||||
m_sprInfo.BeginTweening( MENU_ELEMENTS_TWEEN_TIME );
|
m_sprInfo.BeginTweening( MENU_ELEMENTS_TWEEN_TIME );
|
||||||
m_sprInfo.SetTweenZoomY( fOriginalZoom );
|
m_sprInfo.SetTweenZoomY( fOriginalZoom );
|
||||||
|
*/
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -15,7 +15,6 @@
|
|||||||
#include "Quad.h"
|
#include "Quad.h"
|
||||||
#include "RandomSample.h"
|
#include "RandomSample.h"
|
||||||
#include "Quad.h"
|
#include "Quad.h"
|
||||||
#include "TransitionKeepAlive.h"
|
|
||||||
#include "MenuElements.h"
|
#include "MenuElements.h"
|
||||||
|
|
||||||
|
|
||||||
@@ -54,8 +53,6 @@ private:
|
|||||||
CArray<Style,Style> m_aPossibleStyles;
|
CArray<Style,Style> m_aPossibleStyles;
|
||||||
|
|
||||||
Style GetSelectedStyle() { return m_aPossibleStyles[m_iSelection]; };
|
Style GetSelectedStyle() { return m_aPossibleStyles[m_iSelection]; };
|
||||||
|
|
||||||
TransitionKeepAlive m_Fade;
|
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -26,24 +26,19 @@
|
|||||||
#include "AnnouncerManager.h"
|
#include "AnnouncerManager.h"
|
||||||
|
|
||||||
const ScreenMessage SM_StartFadingOut = ScreenMessage(SM_User + 1);
|
const ScreenMessage SM_StartFadingOut = ScreenMessage(SM_User + 1);
|
||||||
const ScreenMessage SM_LoadNoteData = ScreenMessage(SM_User + 2); // this is a super-hack. We'll load the note data from cache while the message is displaying
|
|
||||||
const ScreenMessage SM_GoToNextState = ScreenMessage(SM_User + 3);
|
const ScreenMessage SM_GoToNextState = ScreenMessage(SM_User + 3);
|
||||||
|
|
||||||
const float BASE_X = CENTER_X;
|
|
||||||
const float BASE_Y = CENTER_Y + 36;
|
|
||||||
const float BASE_HEIGHT = 6;
|
|
||||||
|
|
||||||
ScreenStage::ScreenStage( bool bTryExtraStage )
|
ScreenStage::ScreenStage( bool bTryExtraStage )
|
||||||
{
|
{
|
||||||
m_bTryExtraStage = false;
|
m_bTryExtraStage = false;
|
||||||
|
|
||||||
m_ptextStage = new BitmapText();
|
m_textStage.Load( THEME->GetPathTo(FONT_STAGE) );
|
||||||
m_ptextStage->Load( THEME->GetPathTo(FONT_STAGE) );
|
m_textStage.TurnShadowOff();
|
||||||
m_ptextStage->TurnShadowOff();
|
|
||||||
if( bTryExtraStage )
|
if( bTryExtraStage )
|
||||||
{
|
{
|
||||||
m_ptextStage->SetText( "Try Extra Stage!" );
|
m_textStage.SetText( "Try Extra Stage!" );
|
||||||
m_ptextStage->SetDiffuseColor( D3DXCOLOR(1,0.1f,0.1f,1) );
|
m_textStage.SetDiffuseColor( D3DXCOLOR(1,0.1f,0.1f,1) );
|
||||||
SOUND->PlayOnceStreamedFromDir( ANNOUNCER->GetPathTo(ANNOUNCER_STAGE_EXTRA) );
|
SOUND->PlayOnceStreamedFromDir( ANNOUNCER->GetPathTo(ANNOUNCER_STAGE_EXTRA) );
|
||||||
}
|
}
|
||||||
else // !bTryExtraStage
|
else // !bTryExtraStage
|
||||||
@@ -52,8 +47,8 @@ ScreenStage::ScreenStage( bool bTryExtraStage )
|
|||||||
bool bFinal = PREFSMAN->IsFinalStage();
|
bool bFinal = PREFSMAN->IsFinalStage();
|
||||||
|
|
||||||
CString sStagePrefix = PREFSMAN->GetStageText();
|
CString sStagePrefix = PREFSMAN->GetStageText();
|
||||||
m_ptextStage->SetText( sStagePrefix + " Stage" );
|
m_textStage.SetText( sStagePrefix + " Stage" );
|
||||||
m_ptextStage->SetDiffuseColor( D3DXCOLOR(1,1,1,1) );
|
m_textStage.SetDiffuseColor( D3DXCOLOR(1,1,1,1) );
|
||||||
|
|
||||||
if( bFinal )
|
if( bFinal )
|
||||||
SOUND->PlayOnceStreamedFromDir( ANNOUNCER->GetPathTo(ANNOUNCER_STAGE_FINAL) );
|
SOUND->PlayOnceStreamedFromDir( ANNOUNCER->GetPathTo(ANNOUNCER_STAGE_FINAL) );
|
||||||
@@ -69,61 +64,31 @@ ScreenStage::ScreenStage( bool bTryExtraStage )
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
m_ptextStage->SetXY( BASE_X, BASE_Y );
|
m_textStage.SetXY( CENTER_X, CENTER_Y );
|
||||||
m_ptextStage->SetVertAlign( Actor::align_top );
|
m_textStage.SetZoomX( 2 );
|
||||||
m_ptextStage->SetZoomX( 2 );
|
m_textStage.SetZoomY( 0 );
|
||||||
m_ptextStage->SetZoomY( 0 );
|
m_textStage.SetDiffuseColor( D3DXCOLOR(0,0,0,1) );
|
||||||
m_ptextStage->BeginTweeningQueued( 0.6f ); // sleep
|
m_textStage.BeginTweening( 0.5f );
|
||||||
m_ptextStage->BeginTweeningQueued( 0.3f ); // sleep
|
m_textStage.SetTweenZoom( 2 );
|
||||||
m_ptextStage->SetTweenZoom( 2 );
|
m_textStage.SetTweenDiffuseColor( D3DXCOLOR(1,1,1,1) );
|
||||||
m_ptextStage->SetTweenXY( CENTER_X, CENTER_Y );
|
this->AddActor( &m_textStage );
|
||||||
this->AddActor( m_ptextStage );
|
|
||||||
|
|
||||||
|
|
||||||
m_psprUnderscore = new Sprite;
|
|
||||||
m_psprUnderscore->Load( THEME->GetPathTo(GRAPHIC_STAGE_UNDERSCORE) );
|
|
||||||
m_psprUnderscore->SetXY( BASE_X, BASE_Y );
|
|
||||||
m_psprUnderscore->SetZoomX( 0 );
|
|
||||||
m_psprUnderscore->SetDiffuseColor( bTryExtraStage ? D3DXCOLOR(1,0.1f,0.1f,1) : D3DXCOLOR(1,1,1,1) );
|
|
||||||
m_psprUnderscore->BeginTweeningQueued( 0.4f ); // open
|
|
||||||
float fDestZoom = m_ptextStage->GetWidestLineWidthInSourcePixels() * m_ptextStage->GetZoomX() / m_psprUnderscore->GetUnzoomedWidth();
|
|
||||||
m_psprUnderscore->SetTweenZoomX( fDestZoom );
|
|
||||||
m_psprUnderscore->BeginTweeningQueued( 0.3f ); // sleep
|
|
||||||
m_psprUnderscore->BeginTweeningQueued( 0.4f ); // close
|
|
||||||
m_psprUnderscore->SetTweenZoomX( 0 );
|
|
||||||
this->AddActor( m_psprUnderscore );
|
|
||||||
|
|
||||||
|
|
||||||
m_pWipe = new TransitionFadeWipe;
|
|
||||||
m_pWipe->OpenWipingRight();
|
|
||||||
this->AddActor( m_ptextStage );
|
|
||||||
|
|
||||||
this->SendScreenMessage( SM_LoadNoteData, 1 );
|
|
||||||
this->SendScreenMessage( SM_StartFadingOut, 3 );
|
this->SendScreenMessage( SM_StartFadingOut, 3 );
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
ScreenStage::~ScreenStage()
|
|
||||||
{
|
|
||||||
delete m_ptextStage;
|
|
||||||
delete m_pWipe;
|
|
||||||
}
|
|
||||||
|
|
||||||
void ScreenStage::HandleScreenMessage( const ScreenMessage SM )
|
void ScreenStage::HandleScreenMessage( const ScreenMessage SM )
|
||||||
{
|
{
|
||||||
switch( SM )
|
switch( SM )
|
||||||
{
|
{
|
||||||
case SM_StartFadingOut:
|
case SM_StartFadingOut:
|
||||||
m_ptextStage->BeginTweening( 0.8f );
|
m_textStage.BeginTweening( 0.8f );
|
||||||
m_ptextStage->SetTweenDiffuseColor( D3DXCOLOR(1,1,1,0) );
|
m_textStage.SetTweenDiffuseColor( D3DXCOLOR(1,1,1,0) );
|
||||||
this->SendScreenMessage( SM_GoToNextState, 0.8f );
|
this->SendScreenMessage( SM_GoToNextState, 0.8f );
|
||||||
break;
|
break;
|
||||||
case SM_GoToNextState:
|
case SM_GoToNextState:
|
||||||
SCREENMAN->SetNewScreen( new ScreenGameplay );
|
SCREENMAN->SetNewScreen( new ScreenGameplay );
|
||||||
break;
|
break;
|
||||||
case SM_LoadNoteData:
|
|
||||||
SONGMAN->m_pCurSong->LoadFromCacheFile( true ); // load note data
|
|
||||||
break;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -10,10 +10,7 @@
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
#include "Screen.h"
|
#include "Screen.h"
|
||||||
|
#include "BitmapText.h"
|
||||||
class BitmapText;
|
|
||||||
class Sprite;
|
|
||||||
class TransitionFadeWipe;
|
|
||||||
|
|
||||||
|
|
||||||
class ScreenStage : public Screen
|
class ScreenStage : public Screen
|
||||||
@@ -21,18 +18,13 @@ class ScreenStage : public Screen
|
|||||||
public:
|
public:
|
||||||
ScreenStage();
|
ScreenStage();
|
||||||
ScreenStage( bool bTryExtraStage );
|
ScreenStage( bool bTryExtraStage );
|
||||||
~ScreenStage();
|
|
||||||
|
|
||||||
virtual void HandleScreenMessage( const ScreenMessage SM );
|
virtual void HandleScreenMessage( const ScreenMessage SM );
|
||||||
|
|
||||||
private:
|
private:
|
||||||
bool m_bTryExtraStage;
|
bool m_bTryExtraStage;
|
||||||
|
|
||||||
BitmapText* m_ptextStage;
|
BitmapText m_textStage;
|
||||||
|
|
||||||
Sprite* m_psprUnderscore;
|
|
||||||
|
|
||||||
TransitionFadeWipe* m_pWipe;
|
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -1,11 +1,12 @@
|
|||||||
#include "stdafx.h"
|
#include "stdafx.h"
|
||||||
/*
|
/*
|
||||||
-----------------------------------------------------------------------------
|
-----------------------------------------------------------------------------
|
||||||
File: ScreenTitleMenu.h
|
Class: ScreenTitleMenu
|
||||||
|
|
||||||
Desc: The main title screen and menu.
|
Desc: See header.
|
||||||
|
|
||||||
Copyright (c) 2001-2002 by the person(s) listed below. All rights reserved.
|
Copyright (c) 2001-2002 by the person(s) listed below. All rights reserved.
|
||||||
|
Chris Danford
|
||||||
-----------------------------------------------------------------------------
|
-----------------------------------------------------------------------------
|
||||||
*/
|
*/
|
||||||
|
|
||||||
@@ -27,6 +28,7 @@
|
|||||||
#include "SongManager.h"
|
#include "SongManager.h"
|
||||||
#include "AnnouncerManager.h"
|
#include "AnnouncerManager.h"
|
||||||
#include "ErrorCatcher/ErrorCatcher.h"
|
#include "ErrorCatcher/ErrorCatcher.h"
|
||||||
|
#include "GameManager.h"
|
||||||
|
|
||||||
|
|
||||||
//
|
//
|
||||||
@@ -34,10 +36,7 @@
|
|||||||
//
|
//
|
||||||
|
|
||||||
const CString CHOICE_TEXT[ScreenTitleMenu::NUM_TITLE_MENU_CHOICES] = {
|
const CString CHOICE_TEXT[ScreenTitleMenu::NUM_TITLE_MENU_CHOICES] = {
|
||||||
"GAME MODE",
|
"GAME START",
|
||||||
"NONSTOP MODE",
|
|
||||||
"ENDLESS MODE",
|
|
||||||
"ONI MODE",
|
|
||||||
"SWITCH GAME",
|
"SWITCH GAME",
|
||||||
"CONFIG INSTRUMENTS",
|
"CONFIG INSTRUMENTS",
|
||||||
"GAME OPTIONS",
|
"GAME OPTIONS",
|
||||||
@@ -46,8 +45,8 @@ const CString CHOICE_TEXT[ScreenTitleMenu::NUM_TITLE_MENU_CHOICES] = {
|
|||||||
"EXIT",
|
"EXIT",
|
||||||
};
|
};
|
||||||
|
|
||||||
const float CHOICES_START_Y = 52;
|
const float CHOICES_START_Y = 66;
|
||||||
const float CHOICES_GAP_Y = 38;
|
const float CHOICES_GAP_Y = 50;
|
||||||
|
|
||||||
const float HELP_X = CENTER_X;
|
const float HELP_X = CENTER_X;
|
||||||
const float HELP_Y = SCREEN_HEIGHT-55;
|
const float HELP_Y = SCREEN_HEIGHT-55;
|
||||||
@@ -136,28 +135,9 @@ ScreenTitleMenu::ScreenTitleMenu()
|
|||||||
this->SendScreenMessage( SM_PlayAttract, (float)15+i*15 );
|
this->SendScreenMessage( SM_PlayAttract, (float)15+i*15 );
|
||||||
|
|
||||||
|
|
||||||
m_TitleMenuChoice = CHOICE_GAME_MODE;
|
m_TitleMenuChoice = CHOICE_GAME_START;
|
||||||
GainFocus( m_TitleMenuChoice );
|
GainFocus( m_TitleMenuChoice );
|
||||||
|
|
||||||
/*
|
|
||||||
MUSIC->Stop();
|
|
||||||
|
|
||||||
// find a random song and play it
|
|
||||||
if( GAMEINFO->m_pSongs.GetSize() > 0 )
|
|
||||||
{
|
|
||||||
for( i=0; i<50; i++ ) // try 50 times to find a song with music
|
|
||||||
{
|
|
||||||
int iRandomSongIndex = rand() % GAMEINFO->m_pSongs.GetSize();
|
|
||||||
Song* pSong = GAMEINFO->m_pSongs[iRandomSongIndex];
|
|
||||||
if( pSong->HasMusic() )
|
|
||||||
{
|
|
||||||
MUSIC->Load( pSong->GetMusicPath() );
|
|
||||||
MUSIC->Play();
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
*/
|
|
||||||
|
|
||||||
MUSIC->Stop();
|
MUSIC->Stop();
|
||||||
|
|
||||||
@@ -265,10 +245,11 @@ void ScreenTitleMenu::MenuDown( const PlayerNumber p )
|
|||||||
|
|
||||||
void ScreenTitleMenu::MenuStart( const PlayerNumber p )
|
void ScreenTitleMenu::MenuStart( const PlayerNumber p )
|
||||||
{
|
{
|
||||||
|
GAMEMAN->m_sMasterPlayerNumber = p;
|
||||||
|
|
||||||
switch( m_TitleMenuChoice )
|
switch( m_TitleMenuChoice )
|
||||||
{
|
{
|
||||||
case CHOICE_GAME_MODE:
|
case CHOICE_GAME_START:
|
||||||
m_soundSelect.PlayRandom();
|
m_soundSelect.PlayRandom();
|
||||||
m_Fade.CloseWipingRight( SM_GoToCaution );
|
m_Fade.CloseWipingRight( SM_GoToCaution );
|
||||||
return;
|
return;
|
||||||
@@ -288,11 +269,6 @@ void ScreenTitleMenu::MenuStart( const PlayerNumber p )
|
|||||||
m_soundSelect.PlayRandom();
|
m_soundSelect.PlayRandom();
|
||||||
m_Fade.CloseWipingRight( SM_GoToSynchronize );
|
m_Fade.CloseWipingRight( SM_GoToSynchronize );
|
||||||
return;
|
return;
|
||||||
case CHOICE_NONSTOP_MODE:
|
|
||||||
case CHOICE_ENDLESS_MODE:
|
|
||||||
case CHOICE_ONI_MODE:
|
|
||||||
m_soundInvalid.PlayRandom();
|
|
||||||
return;
|
|
||||||
case CHOICE_EDIT:
|
case CHOICE_EDIT:
|
||||||
m_soundSelect.PlayRandom();
|
m_soundSelect.PlayRandom();
|
||||||
m_Fade.CloseWipingRight( SM_GoToEdit );
|
m_Fade.CloseWipingRight( SM_GoToEdit );
|
||||||
|
|||||||
@@ -1,10 +1,11 @@
|
|||||||
/*
|
/*
|
||||||
-----------------------------------------------------------------------------
|
-----------------------------------------------------------------------------
|
||||||
File: ScreenTitleMenu.h
|
Class: ScreenTitleMenu
|
||||||
|
|
||||||
Desc: The main title screen and menu.
|
Desc: The main title screen and menu.
|
||||||
|
|
||||||
Copyright (c) 2001-2002 by the person(s) listed below. All rights reserved.
|
Copyright (c) 2001-2002 by the person(s) listed below. All rights reserved.
|
||||||
|
Chris Danford
|
||||||
-----------------------------------------------------------------------------
|
-----------------------------------------------------------------------------
|
||||||
*/
|
*/
|
||||||
|
|
||||||
@@ -28,10 +29,7 @@ public:
|
|||||||
virtual void HandleScreenMessage( const ScreenMessage SM );
|
virtual void HandleScreenMessage( const ScreenMessage SM );
|
||||||
|
|
||||||
enum TitleMenuChoice {
|
enum TitleMenuChoice {
|
||||||
CHOICE_GAME_MODE = 0,
|
CHOICE_GAME_START = 0,
|
||||||
CHOICE_NONSTOP_MODE,
|
|
||||||
CHOICE_ENDLESS_MODE,
|
|
||||||
CHOICE_ONI_MODE,
|
|
||||||
CHOICE_SELECT_GAME,
|
CHOICE_SELECT_GAME,
|
||||||
CHOICE_MAP_INSTRUMENTS,
|
CHOICE_MAP_INSTRUMENTS,
|
||||||
CHOICE_GAME_OPTIONS,
|
CHOICE_GAME_OPTIONS,
|
||||||
|
|||||||
+9
-35
@@ -215,8 +215,8 @@ bool Song::LoadFromSongDir( CString sDir )
|
|||||||
//
|
//
|
||||||
// First look in the cache for this song (without loading NoteData)
|
// First look in the cache for this song (without loading NoteData)
|
||||||
//
|
//
|
||||||
if( LoadFromCacheFile(false) )
|
//if( LoadFromCacheFile(false) )
|
||||||
return true;
|
// return true;
|
||||||
|
|
||||||
|
|
||||||
//
|
//
|
||||||
@@ -255,8 +255,8 @@ bool Song::LoadFromSongDir( CString sDir )
|
|||||||
// In order to save memory, we're going to save the file back to the cache,
|
// In order to save memory, we're going to save the file back to the cache,
|
||||||
// then unload all the large NoteData.
|
// then unload all the large NoteData.
|
||||||
//
|
//
|
||||||
SaveToCacheFile();
|
//SaveToCacheFile();
|
||||||
LoadFromCacheFile( false );
|
//LoadFromCacheFile( false );
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
@@ -454,31 +454,9 @@ bool Song::LoadFromDWIFile( CString sPath )
|
|||||||
|
|
||||||
// get group name
|
// get group name
|
||||||
sDir.MakeLower();
|
sDir.MakeLower();
|
||||||
if( sDir.Find( "dwi support" ) != -1 ) // loading from DWI support
|
CStringArray sDirectoryParts;
|
||||||
{
|
split( m_sSongDir, "\\", sDirectoryParts, true );
|
||||||
int iIndexOfFirstBackslash = sDir.Find('\\');
|
m_sGroupName = sDirectoryParts[1];
|
||||||
int iIndexOfSecondBackslash = sDir.Find('\\', iIndexOfFirstBackslash+1);
|
|
||||||
int iIndexOfThirdBackslash = sDir.Find('\\', iIndexOfSecondBackslash+1);
|
|
||||||
m_sGroupName = sDir.Mid( iIndexOfSecondBackslash+1, iIndexOfThirdBackslash-iIndexOfSecondBackslash-1 );
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
// get group name
|
|
||||||
CStringArray sDirectoryParts;
|
|
||||||
split( m_sSongDir, "\\", sDirectoryParts, true );
|
|
||||||
m_sGroupName = sDirectoryParts[1];
|
|
||||||
}
|
|
||||||
|
|
||||||
// save probable image paths
|
|
||||||
m_sBackgroundPath = ssprintf(".\\DWI Support\\Backgrounds\\%s\\%s.avi", m_sGroupName, sFName);
|
|
||||||
if( !DoesFileExist( GetBackgroundPath() ) )
|
|
||||||
m_sBackgroundPath = ssprintf(".\\DWI Support\\Backgrounds\\%s\\%s.mpg", m_sGroupName, sFName);
|
|
||||||
if( !DoesFileExist( GetBackgroundPath() ) )
|
|
||||||
m_sBackgroundPath = ssprintf(".\\DWI Support\\Backgrounds\\%s\\%s.mpeg", m_sGroupName, sFName);
|
|
||||||
if( !DoesFileExist( GetBackgroundPath() ) )
|
|
||||||
m_sBackgroundPath = ssprintf(".\\DWI Support\\Backgrounds\\%s\\%s.png", m_sGroupName, sFName);
|
|
||||||
|
|
||||||
m_sBannerPath = ssprintf(".\\DWI Support\\Banners\\%s\\%s.png", m_sGroupName, sFName);
|
|
||||||
|
|
||||||
|
|
||||||
CStdioFile file;
|
CStdioFile file;
|
||||||
@@ -486,9 +464,6 @@ bool Song::LoadFromDWIFile( CString sPath )
|
|||||||
FatalError( ssprintf("Error opening DWI file '%s'.", GetSongFilePath()) );
|
FatalError( ssprintf("Error opening DWI file '%s'.", GetSongFilePath()) );
|
||||||
|
|
||||||
|
|
||||||
// MessageBox( NULL, sFName, sFName, MB_OK );
|
|
||||||
|
|
||||||
|
|
||||||
// read the whole file into a sFileText
|
// read the whole file into a sFileText
|
||||||
CString sFileText;
|
CString sFileText;
|
||||||
CString buffer;
|
CString buffer;
|
||||||
@@ -518,12 +493,11 @@ bool Song::LoadFromDWIFile( CString sPath )
|
|||||||
|
|
||||||
// handle the data
|
// handle the data
|
||||||
if( sValueName == "#FILE" )
|
if( sValueName == "#FILE" )
|
||||||
m_sMusicPath = CString("DWI Support\\") + arrayValueTokens[1];
|
m_sMusicPath = arrayValueTokens[1];
|
||||||
|
|
||||||
else if( sValueName == "#TITLE" )
|
else if( sValueName == "#TITLE" )
|
||||||
{
|
|
||||||
GetMainAndSubTitlesFromFullTitle( arrayValueTokens[1], m_sMainTitle, m_sSubTitle );
|
GetMainAndSubTitlesFromFullTitle( arrayValueTokens[1], m_sMainTitle, m_sSubTitle );
|
||||||
}
|
|
||||||
else if( sValueName == "#ARTIST" )
|
else if( sValueName == "#ARTIST" )
|
||||||
m_sArtist = arrayValueTokens[1];
|
m_sArtist = arrayValueTokens[1];
|
||||||
|
|
||||||
|
|||||||
@@ -416,9 +416,7 @@ LRESULT CALLBACK WndProc( HWND hWnd, UINT msg, WPARAM wParam, LPARAM lParam )
|
|||||||
switch( LOWORD(wParam) )
|
switch( LOWORD(wParam) )
|
||||||
{
|
{
|
||||||
case IDM_TOGGLEFULLSCREEN:
|
case IDM_TOGGLEFULLSCREEN:
|
||||||
PREFSMAN->m_WindowMode = PrefsManager::WindowMode( PREFSMAN->m_WindowMode+1 );
|
PREFSMAN->m_bWindowed = !PREFSMAN->m_bWindowed;
|
||||||
if( PREFSMAN->m_WindowMode >= PrefsManager::NUM_WINDOW_MODES )
|
|
||||||
PREFSMAN->m_WindowMode = PrefsManager::WindowMode( 0 );
|
|
||||||
ApplyGraphicOptions();
|
ApplyGraphicOptions();
|
||||||
return 0;
|
return 0;
|
||||||
case IDM_CHANGEDETAIL:
|
case IDM_CHANGEDETAIL:
|
||||||
@@ -516,15 +514,14 @@ HRESULT CreateObjects( HWND hWnd )
|
|||||||
TEXTUREMAN = new RageTextureManager( DISPLAY );
|
TEXTUREMAN = new RageTextureManager( DISPLAY );
|
||||||
|
|
||||||
// These things depend on the TextureManager, so do them last!
|
// These things depend on the TextureManager, so do them last!
|
||||||
FONT = new FontManager;
|
FONT = new FontManager;
|
||||||
SCREENMAN = new ScreenManager;
|
SCREENMAN = new ScreenManager;
|
||||||
|
|
||||||
// SCREENMAN->SystemMessage( ssprintf("Found %d songs.", SONGMAN->m_pSongs.GetSize()) );
|
|
||||||
|
|
||||||
|
|
||||||
//SCREENMAN->SetNewScreen( new ScreenLoading );
|
//SCREENMAN->SetNewScreen( new ScreenLoading );
|
||||||
//SCREENMAN->SetNewScreen( new ScreenSandbox );
|
//SCREENMAN->SetNewScreen( new ScreenSandbox );
|
||||||
//SCREENMAN->SetNewScreen( new ScreenResults );
|
//SCREENMAN->SetNewScreen( new ScreenResults(false) );
|
||||||
//SCREENMAN->SetNewScreen( new ScreenPlayerOptions );
|
//SCREENMAN->SetNewScreen( new ScreenPlayerOptions );
|
||||||
//SCREENMAN->SetNewScreen( new ScreenTitleMenu );
|
//SCREENMAN->SetNewScreen( new ScreenTitleMenu );
|
||||||
//SCREENMAN->SetNewScreen( new ScreenGameplay );
|
//SCREENMAN->SetNewScreen( new ScreenGameplay );
|
||||||
@@ -598,6 +595,7 @@ HRESULT RestoreObjects()
|
|||||||
0 );
|
0 );
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
///////////////////////////
|
///////////////////////////
|
||||||
// Restore all game objects
|
// Restore all game objects
|
||||||
///////////////////////////
|
///////////////////////////
|
||||||
@@ -756,8 +754,7 @@ void ApplyGraphicOptions()
|
|||||||
{
|
{
|
||||||
InvalidateObjects();
|
InvalidateObjects();
|
||||||
|
|
||||||
bool bWindowed = PREFSMAN->m_WindowMode != PrefsManager::WINDOW_MODE_FULLSCREEN;
|
bool bWindowed = PREFSMAN->m_bWindowed;
|
||||||
bool bMaximized = PREFSMAN->m_WindowMode == PrefsManager::WINDOW_MODE_MAXIMIZED;
|
|
||||||
CString sProfileName = PREFSMAN->m_bHighDetail ? "High Detail" : "Low Detail";
|
CString sProfileName = PREFSMAN->m_bHighDetail ? "High Detail" : "Low Detail";
|
||||||
DWORD dwWidth = PREFSMAN->m_bHighDetail ? 640 : 320;
|
DWORD dwWidth = PREFSMAN->m_bHighDetail ? 640 : 320;
|
||||||
DWORD dwHeight = PREFSMAN->m_bHighDetail ? 480 : 240;
|
DWORD dwHeight = PREFSMAN->m_bHighDetail ? 480 : 240;
|
||||||
|
|||||||
@@ -400,14 +400,6 @@ SOURCE=.\TransitionRectWipe.h
|
|||||||
# End Source File
|
# End Source File
|
||||||
# Begin Source File
|
# Begin Source File
|
||||||
|
|
||||||
SOURCE=.\TransitionStarburst.cpp
|
|
||||||
# End Source File
|
|
||||||
# Begin Source File
|
|
||||||
|
|
||||||
SOURCE=.\TransitionStarburst.h
|
|
||||||
# End Source File
|
|
||||||
# Begin Source File
|
|
||||||
|
|
||||||
SOURCE=.\TransitionStarWipe.cpp
|
SOURCE=.\TransitionStarWipe.cpp
|
||||||
# End Source File
|
# End Source File
|
||||||
# Begin Source File
|
# Begin Source File
|
||||||
|
|||||||
@@ -471,12 +471,6 @@
|
|||||||
<File
|
<File
|
||||||
RelativePath=".\TransitionStarWipe.h">
|
RelativePath=".\TransitionStarWipe.h">
|
||||||
</File>
|
</File>
|
||||||
<File
|
|
||||||
RelativePath=".\TransitionStarburst.cpp">
|
|
||||||
</File>
|
|
||||||
<File
|
|
||||||
RelativePath=".\TransitionStarburst.h">
|
|
||||||
</File>
|
|
||||||
</Filter>
|
</Filter>
|
||||||
<Filter
|
<Filter
|
||||||
Name="Actors used in Menus"
|
Name="Actors used in Menus"
|
||||||
|
|||||||
@@ -90,6 +90,7 @@ CString ThemeManager::GetPathTo( ThemeElement te )
|
|||||||
case GRAPHIC_DANCER_P2: sAssetPrefix = "Graphics\\dancer p2"; break;
|
case GRAPHIC_DANCER_P2: sAssetPrefix = "Graphics\\dancer p2"; break;
|
||||||
case GRAPHIC_DIFFICULTY_ICONS: sAssetPrefix = "Graphics\\select music difficulty icons"; break;
|
case GRAPHIC_DIFFICULTY_ICONS: sAssetPrefix = "Graphics\\select music difficulty icons"; break;
|
||||||
case GRAPHIC_EDIT_BACKGROUND: sAssetPrefix = "Graphics\\edit background"; break;
|
case GRAPHIC_EDIT_BACKGROUND: sAssetPrefix = "Graphics\\edit background"; break;
|
||||||
|
case GRAPHIC_EDIT_TOP_EDGE: sAssetPrefix = "Graphics\\edit top edge"; break;
|
||||||
case GRAPHIC_EDIT_SNAP_INDICATOR: sAssetPrefix = "Graphics\\edit snap indicator"; break;
|
case GRAPHIC_EDIT_SNAP_INDICATOR: sAssetPrefix = "Graphics\\edit snap indicator"; break;
|
||||||
case GRAPHIC_FALLBACK_BACKGROUND: sAssetPrefix = "Graphics\\Fallback Background"; break;
|
case GRAPHIC_FALLBACK_BACKGROUND: sAssetPrefix = "Graphics\\Fallback Background"; break;
|
||||||
case GRAPHIC_FALLBACK_BANNER: sAssetPrefix = "Graphics\\Fallback Banner"; break;
|
case GRAPHIC_FALLBACK_BANNER: sAssetPrefix = "Graphics\\Fallback Banner"; break;
|
||||||
@@ -110,8 +111,6 @@ CString ThemeManager::GetPathTo( ThemeElement te )
|
|||||||
case GRAPHIC_GAMEPLAY_OPENING_STAR: sAssetPrefix = "Graphics\\gameplay opening star"; break;
|
case GRAPHIC_GAMEPLAY_OPENING_STAR: sAssetPrefix = "Graphics\\gameplay opening star"; break;
|
||||||
case GRAPHIC_GAMEPLAY_READY: sAssetPrefix = "Graphics\\gameplay Ready"; break;
|
case GRAPHIC_GAMEPLAY_READY: sAssetPrefix = "Graphics\\gameplay Ready"; break;
|
||||||
case GRAPHIC_GAMEPLAY_TOP_FRAME: sAssetPrefix = "Graphics\\gameplay top frame"; break;
|
case GRAPHIC_GAMEPLAY_TOP_FRAME: sAssetPrefix = "Graphics\\gameplay top frame"; break;
|
||||||
case GRAPHIC_GRAPHIC_OPTIONS_BACKGROUND: sAssetPrefix = "Graphics\\graphic options background"; break;
|
|
||||||
case GRAPHIC_GRAPHIC_OPTIONS_TOP_EDGE: sAssetPrefix = "Graphics\\graphic options top edge"; break;
|
|
||||||
case GRAPHIC_KEEP_ALIVE: sAssetPrefix = "Graphics\\keep alive"; break;
|
case GRAPHIC_KEEP_ALIVE: sAssetPrefix = "Graphics\\keep alive"; break;
|
||||||
case GRAPHIC_LIFEMETER_FRAME: sAssetPrefix = "Graphics\\Life Meter Frame"; break;
|
case GRAPHIC_LIFEMETER_FRAME: sAssetPrefix = "Graphics\\Life Meter Frame"; break;
|
||||||
case GRAPHIC_LIFEMETER_PILLS: sAssetPrefix = "Graphics\\life meter pills 17x1"; break;
|
case GRAPHIC_LIFEMETER_PILLS: sAssetPrefix = "Graphics\\life meter pills 17x1"; break;
|
||||||
@@ -133,6 +132,7 @@ CString ThemeManager::GetPathTo( ThemeElement te )
|
|||||||
case GRAPHIC_RESULTS_GRADES: sAssetPrefix = "Graphics\\results grades 1x7"; break;
|
case GRAPHIC_RESULTS_GRADES: sAssetPrefix = "Graphics\\results grades 1x7"; break;
|
||||||
case GRAPHIC_RESULTS_JUDGE_LABELS: sAssetPrefix = "Graphics\\results judge labels 1x6"; break;
|
case GRAPHIC_RESULTS_JUDGE_LABELS: sAssetPrefix = "Graphics\\results judge labels 1x6"; break;
|
||||||
case GRAPHIC_RESULTS_SCORE_LABELS: sAssetPrefix = "Graphics\\results score labels 1x2"; break;
|
case GRAPHIC_RESULTS_SCORE_LABELS: sAssetPrefix = "Graphics\\results score labels 1x2"; break;
|
||||||
|
case GRAPHIC_RESULTS_SUMMARY_TOP_EDGE: sAssetPrefix = "Graphics\\results summary top edge"; break;
|
||||||
case GRAPHIC_RESULTS_TOP_EDGE: sAssetPrefix = "Graphics\\results top edge"; break;
|
case GRAPHIC_RESULTS_TOP_EDGE: sAssetPrefix = "Graphics\\results top edge"; break;
|
||||||
case GRAPHIC_SELECT_DIFFICULTY_ARROW_P1: sAssetPrefix = "Graphics\\select difficulty arrow p1"; break;
|
case GRAPHIC_SELECT_DIFFICULTY_ARROW_P1: sAssetPrefix = "Graphics\\select difficulty arrow p1"; break;
|
||||||
case GRAPHIC_SELECT_DIFFICULTY_ARROW_P2: sAssetPrefix = "Graphics\\select difficulty arrow p2"; break;
|
case GRAPHIC_SELECT_DIFFICULTY_ARROW_P2: sAssetPrefix = "Graphics\\select difficulty arrow p2"; break;
|
||||||
@@ -210,6 +210,7 @@ CString ThemeManager::GetPathTo( ThemeElement te )
|
|||||||
case SOUND_MENU_PROMPT: sAssetPrefix = "Sounds\\menu prompt"; break;
|
case SOUND_MENU_PROMPT: sAssetPrefix = "Sounds\\menu prompt"; break;
|
||||||
case SOUND_MENU_START: sAssetPrefix = "Sounds\\menu start"; break;
|
case SOUND_MENU_START: sAssetPrefix = "Sounds\\menu start"; break;
|
||||||
case SOUND_MENU_SWOOSH: sAssetPrefix = "Sounds\\menu swoosh"; break;
|
case SOUND_MENU_SWOOSH: sAssetPrefix = "Sounds\\menu swoosh"; break;
|
||||||
|
case SOUND_MENU_TIMER: sAssetPrefix = "Sounds\\menu timer"; break;
|
||||||
case SOUND_MUSIC_SCROLL_MUSIC: sAssetPrefix = "Sounds\\music scroll music"; break;
|
case SOUND_MUSIC_SCROLL_MUSIC: sAssetPrefix = "Sounds\\music scroll music"; break;
|
||||||
case SOUND_OPTION_CHANGE_COL: sAssetPrefix = "Sounds\\option change col"; break;
|
case SOUND_OPTION_CHANGE_COL: sAssetPrefix = "Sounds\\option change col"; break;
|
||||||
case SOUND_OPTION_CHANGE_ROW: sAssetPrefix = "Sounds\\option change row"; break;
|
case SOUND_OPTION_CHANGE_ROW: sAssetPrefix = "Sounds\\option change row"; break;
|
||||||
|
|||||||
@@ -27,6 +27,7 @@ enum ThemeElement {
|
|||||||
GRAPHIC_GAMEPLAY_TOP_FRAME,
|
GRAPHIC_GAMEPLAY_TOP_FRAME,
|
||||||
GRAPHIC_DIFFICULTY_ICONS,
|
GRAPHIC_DIFFICULTY_ICONS,
|
||||||
GRAPHIC_EDIT_BACKGROUND,
|
GRAPHIC_EDIT_BACKGROUND,
|
||||||
|
GRAPHIC_EDIT_TOP_EDGE,
|
||||||
GRAPHIC_EDIT_SNAP_INDICATOR,
|
GRAPHIC_EDIT_SNAP_INDICATOR,
|
||||||
GRAPHIC_MUSIC_SCROLL_BACKGROUND,
|
GRAPHIC_MUSIC_SCROLL_BACKGROUND,
|
||||||
GRAPHIC_FALLBACK_BACKGROUND,
|
GRAPHIC_FALLBACK_BACKGROUND,
|
||||||
@@ -42,8 +43,6 @@ enum ThemeElement {
|
|||||||
GRAPHIC_GAMEPLAY_FAILED,
|
GRAPHIC_GAMEPLAY_FAILED,
|
||||||
GRAPHIC_GAMEPLAY_JUDGEMENT,
|
GRAPHIC_GAMEPLAY_JUDGEMENT,
|
||||||
GRAPHIC_GAMEPLAY_READY,
|
GRAPHIC_GAMEPLAY_READY,
|
||||||
GRAPHIC_GRAPHIC_OPTIONS_BACKGROUND,
|
|
||||||
GRAPHIC_GRAPHIC_OPTIONS_TOP_EDGE,
|
|
||||||
GRAPHIC_GAMEPLAY_HERE_WE_GO,
|
GRAPHIC_GAMEPLAY_HERE_WE_GO,
|
||||||
GRAPHIC_KEEP_ALIVE,
|
GRAPHIC_KEEP_ALIVE,
|
||||||
GRAPHIC_LIFEMETER_FRAME,
|
GRAPHIC_LIFEMETER_FRAME,
|
||||||
@@ -66,6 +65,7 @@ enum ThemeElement {
|
|||||||
GRAPHIC_RESULTS_GRADES,
|
GRAPHIC_RESULTS_GRADES,
|
||||||
GRAPHIC_RESULTS_JUDGE_LABELS,
|
GRAPHIC_RESULTS_JUDGE_LABELS,
|
||||||
GRAPHIC_RESULTS_SCORE_LABELS,
|
GRAPHIC_RESULTS_SCORE_LABELS,
|
||||||
|
GRAPHIC_RESULTS_SUMMARY_TOP_EDGE,
|
||||||
GRAPHIC_RESULTS_TOP_EDGE,
|
GRAPHIC_RESULTS_TOP_EDGE,
|
||||||
GRAPHIC_SELECT_DIFFICULTY_ARROW_P1,
|
GRAPHIC_SELECT_DIFFICULTY_ARROW_P1,
|
||||||
GRAPHIC_SELECT_DIFFICULTY_ARROW_P2,
|
GRAPHIC_SELECT_DIFFICULTY_ARROW_P2,
|
||||||
@@ -143,6 +143,7 @@ enum ThemeElement {
|
|||||||
SOUND_MENU_PROMPT,
|
SOUND_MENU_PROMPT,
|
||||||
SOUND_MENU_START,
|
SOUND_MENU_START,
|
||||||
SOUND_MENU_SWOOSH,
|
SOUND_MENU_SWOOSH,
|
||||||
|
SOUND_MENU_TIMER,
|
||||||
SOUND_MUSIC_SCROLL_MUSIC,
|
SOUND_MUSIC_SCROLL_MUSIC,
|
||||||
SOUND_OPTION_CHANGE_COL,
|
SOUND_OPTION_CHANGE_COL,
|
||||||
SOUND_OPTION_CHANGE_ROW,
|
SOUND_OPTION_CHANGE_ROW,
|
||||||
|
|||||||
@@ -73,11 +73,11 @@ protected:
|
|||||||
return m_fPercentThroughTransition;
|
return m_fPercentThroughTransition;
|
||||||
case closing_right:
|
case closing_right:
|
||||||
case closing_left:
|
case closing_left:
|
||||||
return 1.0f - m_fPercentThroughTransition;
|
return 1 - m_fPercentThroughTransition;
|
||||||
case opened:
|
case opened:
|
||||||
return 0;
|
|
||||||
case closed:
|
|
||||||
return 1;
|
return 1;
|
||||||
|
case closed:
|
||||||
|
return 0;
|
||||||
default:
|
default:
|
||||||
ASSERT( false );
|
ASSERT( false );
|
||||||
return 0;
|
return 0;
|
||||||
|
|||||||
@@ -15,9 +15,6 @@
|
|||||||
#include "GameConstantsAndTypes.h"
|
#include "GameConstantsAndTypes.h"
|
||||||
#include "ThemeManager.h"
|
#include "ThemeManager.h"
|
||||||
|
|
||||||
//#define RECTANGLE_WIDTH 20
|
|
||||||
//#define NUM_RECTANGLES (SCREEN_WIDTH/RECTANGLE_WIDTH)
|
|
||||||
//#define FADE_RECTS_WIDE (NUM_RECTANGLES/4) // number of rects from fade start to fade end
|
|
||||||
const float FADE_RECT_WIDTH = SCREEN_WIDTH/2;
|
const float FADE_RECT_WIDTH = SCREEN_WIDTH/2;
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -38,32 +38,17 @@ void TransitionKeepAlive::Update( float fDeltaTime )
|
|||||||
|
|
||||||
void TransitionKeepAlive::DrawPrimitives()
|
void TransitionKeepAlive::DrawPrimitives()
|
||||||
{
|
{
|
||||||
if( m_TransitionState == closing_left ) // we're going back
|
// draw keep alive graphic
|
||||||
{
|
|
||||||
// Draw a fade
|
|
||||||
|
|
||||||
const float fPercentageOpaque = 1 - GetPercentageOpen();
|
float fPercentClosed = 1 - this->GetPercentageOpen();
|
||||||
if( fPercentageOpaque == 0 )
|
fPercentClosed = min( 1, fPercentClosed*2 );
|
||||||
return; // draw nothing
|
const float fPercentColor = fPercentClosed;
|
||||||
|
const float fPercentAlpha = min( fPercentClosed * 2, 1 );
|
||||||
|
|
||||||
D3DXCOLOR colorTemp = m_Color * fPercentageOpaque;
|
m_sprLogo.SetDiffuseColor( D3DXCOLOR(fPercentColor,fPercentColor,fPercentColor,fPercentAlpha) );
|
||||||
m_rect.SetDiffuseColor( colorTemp );
|
m_sprLogo.SetZoomY( fPercentClosed );
|
||||||
m_rect.Draw();
|
if( fPercentClosed > 0 )
|
||||||
}
|
m_sprLogo.Draw();
|
||||||
else // we're going forward
|
|
||||||
{
|
|
||||||
// draw keep alive graphic
|
|
||||||
|
|
||||||
float fPercentClosed = 1 - this->GetPercentageOpen();
|
|
||||||
fPercentClosed = min( 1, fPercentClosed*2 );
|
|
||||||
const float fPercentColor = fPercentClosed;
|
|
||||||
const float fPercentAlpha = min( fPercentClosed * 2, 1 );
|
|
||||||
|
|
||||||
m_sprLogo.SetDiffuseColor( D3DXCOLOR(fPercentColor,fPercentColor,fPercentColor,fPercentAlpha) );
|
|
||||||
m_sprLogo.SetZoomY( fPercentClosed );
|
|
||||||
if( fPercentClosed > 0 )
|
|
||||||
m_sprLogo.Draw();
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -37,20 +37,7 @@ void TransitionStarWipe::DrawPrimitives()
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
float fPercentOpen = 1-GetPercentageOpen();
|
float fPercentClosed = 1 - GetPercentageOpen();
|
||||||
/*
|
|
||||||
switch( m_TransitionState )
|
|
||||||
{
|
|
||||||
case opening_right:
|
|
||||||
case opening_left:
|
|
||||||
fPercentOpen = (1.0f - m_fPercentThroughTransition);
|
|
||||||
break;
|
|
||||||
case closing_right:
|
|
||||||
case closing_left:
|
|
||||||
fPercentOpen = m_fPercentThroughTransition;
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
*/
|
|
||||||
|
|
||||||
|
|
||||||
int iNumStars = SCREEN_HEIGHT/m_iStarHeight + 1;
|
int iNumStars = SCREEN_HEIGHT/m_iStarHeight + 1;
|
||||||
@@ -76,7 +63,7 @@ void TransitionStarWipe::DrawPrimitives()
|
|||||||
x_tilt = 0;
|
x_tilt = 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
int x_offset = (int)(fPercentOpen*(SCREEN_WIDTH+SCREEN_HEIGHT+m_iStarWidth));
|
int x_offset = (int)(fPercentClosed*(SCREEN_WIDTH+SCREEN_HEIGHT+m_iStarWidth));
|
||||||
|
|
||||||
int x = bIsAnEvenRow ?
|
int x = bIsAnEvenRow ?
|
||||||
-SCREEN_HEIGHT/2 + x_offset + x_tilt :
|
-SCREEN_HEIGHT/2 + x_offset + x_tilt :
|
||||||
|
|||||||
Reference in New Issue
Block a user