2002-02-24 01:43:11 +00:00
|
|
|
#include "stdafx.h"
|
|
|
|
|
/*
|
|
|
|
|
-----------------------------------------------------------------------------
|
2002-07-23 01:41:40 +00:00
|
|
|
Class: Judgement
|
2002-02-24 01:43:11 +00:00
|
|
|
|
2002-07-23 01:41:40 +00:00
|
|
|
Desc: See header
|
2002-02-24 01:43:11 +00:00
|
|
|
|
2002-05-19 01:59:48 +00:00
|
|
|
Copyright (c) 2001-2002 by the person(s) listed below. All rights reserved.
|
2002-07-23 01:41:40 +00:00
|
|
|
Chris Danford
|
2002-02-24 01:43:11 +00:00
|
|
|
-----------------------------------------------------------------------------
|
|
|
|
|
*/
|
|
|
|
|
|
|
|
|
|
#include "Judgement.h"
|
|
|
|
|
#include "RageUtil.h"
|
2002-05-01 19:14:55 +00:00
|
|
|
#include "GameConstantsAndTypes.h"
|
2002-07-23 01:41:40 +00:00
|
|
|
#include "PrefsManager.h"
|
|
|
|
|
#include "GameState.h"
|
2002-11-11 04:53:31 +00:00
|
|
|
#include "ThemeManager.h"
|
2002-02-24 01:43:11 +00:00
|
|
|
|
2002-05-19 01:59:48 +00:00
|
|
|
const float JUDGEMENT_DISPLAY_TIME = 0.8f;
|
2002-02-24 01:43:11 +00:00
|
|
|
|
|
|
|
|
|
|
|
|
|
Judgement::Judgement()
|
|
|
|
|
{
|
|
|
|
|
m_fDisplayCountdown = 0;
|
2003-01-13 08:31:34 +00:00
|
|
|
m_sprJudgement.Load( THEME->GetPathTo("Graphics","gameplay judgement 1x6") );
|
2002-02-24 01:43:11 +00:00
|
|
|
m_sprJudgement.StopAnimating();
|
2002-05-19 01:59:48 +00:00
|
|
|
m_sprJudgement.TurnShadowOn();
|
2002-09-02 21:59:58 +00:00
|
|
|
this->AddChild( &m_sprJudgement );
|
2002-02-24 01:43:11 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
|
|
void Judgement::Update( float fDeltaTime )
|
|
|
|
|
{
|
|
|
|
|
ActorFrame::Update( fDeltaTime );
|
|
|
|
|
|
|
|
|
|
m_fDisplayCountdown -= fDeltaTime;
|
|
|
|
|
if( m_fDisplayCountdown < 0 )
|
|
|
|
|
m_fDisplayCountdown = 0;
|
|
|
|
|
}
|
|
|
|
|
|
2002-05-19 01:59:48 +00:00
|
|
|
void Judgement::DrawPrimitives()
|
2002-02-24 01:43:11 +00:00
|
|
|
{
|
|
|
|
|
if( m_fDisplayCountdown > 0 )
|
|
|
|
|
{
|
2002-05-19 01:59:48 +00:00
|
|
|
ActorFrame::DrawPrimitives();
|
2002-02-24 01:43:11 +00:00
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
2002-03-19 07:09:49 +00:00
|
|
|
void Judgement::SetJudgement( TapNoteScore score )
|
2002-02-24 01:43:11 +00:00
|
|
|
{
|
2002-07-31 19:40:40 +00:00
|
|
|
//LOG->Trace( "Judgement::SetJudgement()" );
|
2002-02-24 01:43:11 +00:00
|
|
|
|
|
|
|
|
switch( score )
|
|
|
|
|
{
|
2003-01-11 08:55:21 +00:00
|
|
|
case TNS_MARVELOUS: m_sprJudgement.SetState( 0 ); break;
|
|
|
|
|
case TNS_PERFECT: m_sprJudgement.SetState( 1 ); break;
|
|
|
|
|
case TNS_GREAT: m_sprJudgement.SetState( 2 ); break;
|
|
|
|
|
case TNS_GOOD: m_sprJudgement.SetState( 3 ); break;
|
|
|
|
|
case TNS_BOO: m_sprJudgement.SetState( 4 ); break;
|
|
|
|
|
case TNS_MISS: m_sprJudgement.SetState( 5 ); break;
|
|
|
|
|
default: ASSERT(0);
|
2002-02-24 01:43:11 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
|
|
m_fDisplayCountdown = JUDGEMENT_DISPLAY_TIME;
|
|
|
|
|
|
2002-05-19 01:59:48 +00:00
|
|
|
m_sprJudgement.SetEffectNone();
|
2002-09-04 02:00:25 +00:00
|
|
|
m_sprJudgement.StopTweening();
|
2002-05-19 01:59:48 +00:00
|
|
|
|
2002-03-19 07:09:49 +00:00
|
|
|
if( score == TNS_MISS )
|
2002-02-24 01:43:11 +00:00
|
|
|
{
|
|
|
|
|
// falling down
|
2002-05-19 01:59:48 +00:00
|
|
|
m_sprJudgement.SetY( -20 );
|
2002-02-24 01:43:11 +00:00
|
|
|
m_sprJudgement.BeginTweening( JUDGEMENT_DISPLAY_TIME );
|
2002-05-19 01:59:48 +00:00
|
|
|
m_sprJudgement.SetTweenY( 20 );
|
2002-02-24 01:43:11 +00:00
|
|
|
}
|
2002-05-19 01:59:48 +00:00
|
|
|
else if( score == TNS_BOO )
|
|
|
|
|
{
|
|
|
|
|
// vibrate
|
|
|
|
|
m_sprJudgement.SetY( 0 );
|
|
|
|
|
m_sprJudgement.SetZoom( 1.0f );
|
|
|
|
|
m_sprJudgement.SetEffectVibrating();
|
|
|
|
|
}
|
2002-02-24 01:43:11 +00:00
|
|
|
else
|
|
|
|
|
{
|
|
|
|
|
// zooming out
|
2002-05-19 01:59:48 +00:00
|
|
|
float fMagnitudeX, fMagnitudeY;
|
|
|
|
|
switch( score )
|
|
|
|
|
{
|
2003-01-11 08:55:21 +00:00
|
|
|
case TNS_MARVELOUS: fMagnitudeX = 1.50f; fMagnitudeY = 2.00f; break;
|
2002-05-19 01:59:48 +00:00
|
|
|
case TNS_PERFECT: fMagnitudeX = 1.50f; fMagnitudeY = 2.00f; break;
|
|
|
|
|
case TNS_GREAT: fMagnitudeX = 1.30f; fMagnitudeY = 1.50f; break;
|
|
|
|
|
case TNS_GOOD: fMagnitudeX = 1.10f; fMagnitudeY = 1.25f; break;
|
|
|
|
|
default: ASSERT(false); // invalid score value
|
|
|
|
|
}
|
|
|
|
|
m_sprJudgement.SetY( 0 );
|
|
|
|
|
// m_sprJudgement.SetZoomY( fMagnitudeY );
|
|
|
|
|
// m_sprJudgement.SetZoomX( fMagnitudeX );
|
|
|
|
|
// m_sprJudgement.BeginTweening( JUDGEMENT_DISPLAY_TIME/5.0f );
|
|
|
|
|
// m_sprJudgement.SetTweenZoom( 1 );
|
2002-02-24 01:43:11 +00:00
|
|
|
}
|
2002-11-16 08:55:46 +00:00
|
|
|
}
|