diff --git a/stepmania/src/Combo.cpp b/stepmania/src/Combo.cpp index b6328f6f65..bc9973a039 100644 --- a/stepmania/src/Combo.cpp +++ b/stepmania/src/Combo.cpp @@ -4,58 +4,61 @@ #include "StatsManager.h" #include "GameState.h" #include "song.h" -#include "ThemeMetric.h" #include "Command.h" - -ThemeMetric LABEL_X ("Combo","LabelX"); -ThemeMetric LABEL_Y ("Combo","LabelY"); -ThemeMetric LABEL_HORIZ_ALIGN ("Combo","LabelHorizAlign"); -ThemeMetric LABEL_VERT_ALIGN ("Combo","LabelVertAlign"); -ThemeMetric NUMBER_X ("Combo","NumberX"); -ThemeMetric NUMBER_Y ("Combo","NumberY"); -ThemeMetric NUMBER_HORIZ_ALIGN ("Combo","NumberHorizAlign"); -ThemeMetric NUMBER_VERT_ALIGN ("Combo","NumberVertAlign"); -ThemeMetric SHOW_COMBO_AT ("Combo","ShowComboAt"); -ThemeMetric NUMBER_MIN_ZOOM ("Combo","NumberMinZoom"); -ThemeMetric NUMBER_MAX_ZOOM ("Combo","NumberMaxZoom"); -ThemeMetric NUMBER_MAX_ZOOM_AT ("Combo","NumberMaxZoomAt"); -ThemeMetric PULSE_ZOOM ("Combo","PulseZoom"); -ThemeMetric C_TWEEN_SECONDS ("Combo","TweenSeconds"); -ThemeMetric FULL_COMBO_GREATS_COMMAND ("Combo","FullComboGreatsCommand"); -ThemeMetric FULL_COMBO_PERFECTS_COMMAND ("Combo","FullComboPerfectsCommand"); -ThemeMetric FULL_COMBO_MARVELOUSES_COMMAND ("Combo","FullComboMarvelousesCommand"); -ThemeMetric FULL_COMBO_BROKEN_COMMAND ("Combo","FullComboBrokenCommand"); -ThemeMetric SHOW_MISS_COMBO ("Combo","ShowMissCombo"); - - Combo::Combo() { - m_sprComboLabel.Load( THEME->GetPathG("Combo","label") ); + this->AddChild( &m_sprComboLabel ); + this->AddChild( &m_sprMissesLabel ); + this->AddChild( &m_textNumber ); +} + +void Combo::Load( PlayerNumber pn ) +{ + m_PlayerNumber = pn; + + LABEL_X.Load(m_sName,"LabelX"); + LABEL_Y.Load(m_sName,"LabelY"); + LABEL_HORIZ_ALIGN.Load(m_sName,"LabelHorizAlign"); + LABEL_VERT_ALIGN.Load(m_sName,"LabelVertAlign"); + NUMBER_X.Load(m_sName,"NumberX"); + NUMBER_Y.Load(m_sName,"NumberY"); + NUMBER_HORIZ_ALIGN.Load(m_sName,"NumberHorizAlign"); + NUMBER_VERT_ALIGN.Load(m_sName,"NumberVertAlign"); + SHOW_COMBO_AT.Load(m_sName,"ShowComboAt"); + NUMBER_MIN_ZOOM.Load(m_sName,"NumberMinZoom"); + NUMBER_MAX_ZOOM.Load(m_sName,"NumberMaxZoom"); + NUMBER_MAX_ZOOM_AT.Load(m_sName,"NumberMaxZoomAt"); + PULSE_ZOOM.Load(m_sName,"PulseZoom"); + C_TWEEN_SECONDS.Load(m_sName,"TweenSeconds"); + FULL_COMBO_GREATS_COMMAND.Load(m_sName,"FullComboGreatsCommand"); + FULL_COMBO_PERFECTS_COMMAND.Load(m_sName,"FullComboPerfectsCommand"); + FULL_COMBO_MARVELOUSES_COMMAND.Load(m_sName,"FullComboMarvelousesCommand"); + FULL_COMBO_BROKEN_COMMAND.Load(m_sName,"FullComboBrokenCommand"); + SHOW_MISS_COMBO.Load(m_sName,"ShowMissCombo"); + + m_sprComboLabel.Load( THEME->GetPathG(m_sName,"label") ); m_sprComboLabel.SetShadowLength( 4 ); m_sprComboLabel.StopAnimating(); m_sprComboLabel.SetXY( LABEL_X, LABEL_Y ); m_sprComboLabel.SetHorizAlign( (Actor::HorizAlign)(int)LABEL_HORIZ_ALIGN ); m_sprComboLabel.SetVertAlign( (Actor::VertAlign)(int)LABEL_VERT_ALIGN ); m_sprComboLabel.SetHidden( true ); - this->AddChild( &m_sprComboLabel ); - m_sprMissesLabel.Load( THEME->GetPathG("Combo","misses") ); + m_sprMissesLabel.Load( THEME->GetPathG(m_sName,"misses") ); m_sprMissesLabel.SetShadowLength( 4 ); m_sprMissesLabel.StopAnimating(); m_sprMissesLabel.SetXY( LABEL_X, LABEL_Y ); m_sprMissesLabel.SetHorizAlign( (Actor::HorizAlign)(int)LABEL_HORIZ_ALIGN ); m_sprMissesLabel.SetVertAlign( (Actor::VertAlign)(int)LABEL_VERT_ALIGN ); m_sprMissesLabel.SetHidden( true ); - this->AddChild( &m_sprMissesLabel ); - m_textNumber.LoadFromFont( THEME->GetPathF("Combo","numbers") ); + m_textNumber.LoadFromFont( THEME->GetPathF(m_sName,"numbers") ); m_textNumber.SetShadowLength( 4 ); m_textNumber.SetXY( NUMBER_X, NUMBER_Y ); m_textNumber.SetHorizAlign( (Actor::HorizAlign)(int)NUMBER_HORIZ_ALIGN ); m_textNumber.SetVertAlign( (Actor::VertAlign)(int)NUMBER_VERT_ALIGN ); m_textNumber.SetHidden( true ); - this->AddChild( &m_textNumber ); } void Combo::SetCombo( int iCombo, int iMisses ) diff --git a/stepmania/src/Combo.h b/stepmania/src/Combo.h index 23f7d2a990..e85a2165e8 100644 --- a/stepmania/src/Combo.h +++ b/stepmania/src/Combo.h @@ -8,6 +8,7 @@ #include "BitmapText.h" #include "PlayerNumber.h" #include "GameConstantsAndTypes.h" // for TapNoteScore +#include "ThemeMetric.h" class Combo : public ActorFrame @@ -15,11 +16,30 @@ class Combo : public ActorFrame public: Combo(); - void Init( PlayerNumber pn ) { m_PlayerNumber = pn; } + void Load( PlayerNumber pn ); void SetCombo( int iCombo, int iMisses ); protected: + ThemeMetric LABEL_X; + ThemeMetric LABEL_Y; + ThemeMetric LABEL_HORIZ_ALIGN; + ThemeMetric LABEL_VERT_ALIGN; + ThemeMetric NUMBER_X; + ThemeMetric NUMBER_Y; + ThemeMetric NUMBER_HORIZ_ALIGN; + ThemeMetric NUMBER_VERT_ALIGN; + ThemeMetric SHOW_COMBO_AT; + ThemeMetric NUMBER_MIN_ZOOM; + ThemeMetric NUMBER_MAX_ZOOM; + ThemeMetric NUMBER_MAX_ZOOM_AT; + ThemeMetric PULSE_ZOOM; + ThemeMetric C_TWEEN_SECONDS; + ThemeMetric FULL_COMBO_GREATS_COMMAND; + ThemeMetric FULL_COMBO_PERFECTS_COMMAND; + ThemeMetric FULL_COMBO_MARVELOUSES_COMMAND; + ThemeMetric FULL_COMBO_BROKEN_COMMAND; + ThemeMetric SHOW_MISS_COMBO; PlayerNumber m_PlayerNumber; diff --git a/stepmania/src/Player.cpp b/stepmania/src/Player.cpp index d1faf6be7e..a7da660ca4 100644 --- a/stepmania/src/Player.cpp +++ b/stepmania/src/Player.cpp @@ -152,6 +152,9 @@ void Player::Init( m_soundMine.SetParams( p ); m_soundAttackLaunch.SetParams( p ); m_soundAttackEnding.SetParams( p ); + + m_Combo.SetName( "Combo" ); + m_Combo.Load( pn ); } void Player::Load( const NoteData& noteData ) @@ -178,8 +181,6 @@ void Player::Load( const NoteData& noteData ) * then we could just this->StopTweening()? -glenn */ m_Judgment.StopTweening(); // m_Combo.Reset(); // don't reset combos between songs in a course! - m_Combo.SetName( "Combo" ); - m_Combo.Init( pn ); if( m_pPlayerStageStats ) m_Combo.SetCombo( m_pPlayerStageStats->iCurCombo, m_pPlayerStageStats->iCurMissCombo ); // combo can persist between songs and games m_AttackDisplay.Init( m_pPlayerState );