Files
itgmania212121/stepmania/src/Combo.cpp
T

106 lines
2.8 KiB
C++
Raw Normal View History

2002-02-24 01:43:11 +00:00
#include "stdafx.h"
/*
-----------------------------------------------------------------------------
File: Combo.h
Desc: A graphic displayed in the Combo during Dancing.
2002-05-19 01:59:48 +00:00
Copyright (c) 2001-2002 by the person(s) listed below. All rights reserved.
2002-02-24 01:43:11 +00:00
-----------------------------------------------------------------------------
*/
#include "Combo.h"
#include "ThemeManager.h"
2002-07-11 19:02:26 +00:00
#include "ScreenManager.h"
#include "ScreenGameplay.h"
2002-02-24 01:43:11 +00:00
Combo::Combo()
{
m_iCurCombo = 0;
m_iMaxCombo = 0;
2002-05-19 01:59:48 +00:00
m_sprCombo.Load( THEME->GetPathTo(GRAPHIC_GAMEPLAY_COMBO) );
m_sprCombo.TurnShadowOn();
2002-02-24 01:43:11 +00:00
m_sprCombo.StopAnimating();
m_sprCombo.SetX( 40 );
m_sprCombo.SetZoom( 1.0f );
m_textComboNumber.Load( THEME->GetPathTo(FONT_COMBO_NUMBERS) );
2002-05-19 01:59:48 +00:00
m_textComboNumber.TurnShadowOn();
m_textComboNumber.SetHorizAlign( Actor::align_right );
2002-06-14 22:25:22 +00:00
m_textComboNumber.SetX( -0 );
2002-02-24 01:43:11 +00:00
m_textComboNumber.SetDiffuseColor( D3DXCOLOR(1,1,1,0) ); // invisible
m_sprCombo.SetDiffuseColor( D3DXCOLOR(1,1,1,0) ); // invisible
this->AddActor( &m_textComboNumber );
this->AddActor( &m_sprCombo );
}
2002-06-24 22:04:31 +00:00
void Combo::ContinueCombo()
2002-02-24 01:43:11 +00:00
{
2002-06-24 22:04:31 +00:00
m_iCurCombo++;
2002-02-24 01:43:11 +00:00
// new max combo
if( m_iCurCombo > m_iMaxCombo )
m_iMaxCombo = m_iCurCombo;
2002-07-11 19:02:26 +00:00
switch( m_iMaxCombo )
{
case 100: SCREENMAN->SendMessageToTopScreen( SM_100Combo, 0 ); break;
case 200: SCREENMAN->SendMessageToTopScreen( SM_200Combo, 0 ); break;
case 300: SCREENMAN->SendMessageToTopScreen( SM_300Combo, 0 ); break;
case 400: SCREENMAN->SendMessageToTopScreen( SM_400Combo, 0 ); break;
case 500: SCREENMAN->SendMessageToTopScreen( SM_500Combo, 0 ); break;
case 600: SCREENMAN->SendMessageToTopScreen( SM_600Combo, 0 ); break;
case 700: SCREENMAN->SendMessageToTopScreen( SM_700Combo, 0 ); break;
case 800: SCREENMAN->SendMessageToTopScreen( SM_800Combo, 0 ); break;
case 900: SCREENMAN->SendMessageToTopScreen( SM_900Combo, 0 ); break;
case 1000: SCREENMAN->SendMessageToTopScreen( SM_1000Combo, 0 ); break;
}
2002-02-24 01:43:11 +00:00
if( m_iCurCombo <= 4 )
{
m_textComboNumber.SetDiffuseColor( D3DXCOLOR(1,1,1,0) ); // invisible
m_sprCombo.SetDiffuseColor( D3DXCOLOR(1,1,1,0) ); // invisible
}
else
{
m_textComboNumber.SetDiffuseColor( D3DXCOLOR(1,1,1,1) ); // visible
m_sprCombo.SetDiffuseColor( D3DXCOLOR(1,1,1,1) ); // visible
m_textComboNumber.SetText( ssprintf("%d", m_iCurCombo) );
2002-07-11 19:02:26 +00:00
float fNewZoom = min( 0.5f + m_iCurCombo/800.0f, 1.1f );
2002-02-24 01:43:11 +00:00
m_textComboNumber.SetZoom( fNewZoom );
2002-05-19 01:59:48 +00:00
//this->SetZoom( 1.2f );
//this->BeginTweening( 0.3f );
//this->SetTweenZoom( 1 );
2002-02-24 01:43:11 +00:00
}
}
void Combo::EndCombo()
{
2002-07-11 19:02:26 +00:00
if( m_iCurCombo > 50 )
SCREENMAN->SendMessageToTopScreen( SM_ComboStopped, 0 );
2002-02-24 01:43:11 +00:00
m_iCurCombo = 0;
m_textComboNumber.SetDiffuseColor( D3DXCOLOR(1,1,1,0) ); // invisible
m_sprCombo.SetDiffuseColor( D3DXCOLOR(1,1,1,0) ); // invisible
}
int Combo::GetCurrentCombo()
{
return m_iCurCombo;
}
int Combo::GetMaxCombo()
{
return m_iMaxCombo;
}