From ef8d796c96a9fec690feeae297ba2fd3487a95d5 Mon Sep 17 00:00:00 2001 From: Glenn Maynard Date: Sat, 3 Mar 2007 01:38:42 +0000 Subject: [PATCH] same logic for combo positioning as judgement --- stepmania/Themes/default/Scripts/Other.lua | 16 ++++++++++ stepmania/Themes/default/metrics.ini | 15 +-------- stepmania/src/Player.cpp | 37 +++++++++++----------- stepmania/src/Player.h | 8 ++--- 4 files changed, 38 insertions(+), 38 deletions(-) diff --git a/stepmania/Themes/default/Scripts/Other.lua b/stepmania/Themes/default/Scripts/Other.lua index d110ac5a0b..376c438f5b 100644 --- a/stepmania/Themes/default/Scripts/Other.lua +++ b/stepmania/Themes/default/Scripts/Other.lua @@ -27,6 +27,22 @@ function JudgmentTransformSharedCommand( self, params ) self:y( y ) end +function ComboTransformCommand( self, params ) + local x = 0 + local y = 30 + if params.bReverse then y = y * -1 end + + if params.bCentered then + if params.bReverse then + y = y - 30 + else + y = y + 40 + end + end + self:x( x ) + self:y( y ) +end + function GetEditModeSubScreens() return "ScreenMiniMenuEditHelp," .. diff --git a/stepmania/Themes/default/metrics.ini b/stepmania/Themes/default/metrics.ini index 8af0392a60..21d356cbcf 100644 --- a/stepmania/Themes/default/metrics.ini +++ b/stepmania/Themes/default/metrics.ini @@ -2491,21 +2491,8 @@ ReceptorArrowsYStandard=-144 ReceptorArrowsYReverse=144 ReceptorNoSinkScoreCutoff=4 JudgmentTransformCommand=%JudgmentTransformCommand -JudgmentXOffsetOneSideP1=0 -JudgmentXOffsetOneSideP2=0 -JudgmentXOffsetBothSides=0 -JudgmentY=-30 -JudgmentYReverse=30 -JudgmentCenteredAddY=-20 -JudgmentCenteredAddYReverse=20 JudgmentOnCommand= -ComboXOffsetOneSideP1=0 -ComboXOffsetOneSideP2=0 -ComboXOffsetBothSides=0 -ComboY=30 -ComboYReverse=-30 -ComboCenteredAddY=40 -ComboCenteredAddYReverse=-30 +ComboTransformCommand=%ComboTransformCommand ComboOnCommand= AttackDisplayXOffsetOneSideP1=0 AttackDisplayXOffsetOneSideP2=0 diff --git a/stepmania/src/Player.cpp b/stepmania/src/Player.cpp index d2a2429118..4ecba82653 100644 --- a/stepmania/src/Player.cpp +++ b/stepmania/src/Player.cpp @@ -96,7 +96,6 @@ public: }; -RString COMBO_X_NAME( size_t p, size_t both_sides ) { return "ComboXOffset" + (both_sides ? RString("BothSides") : ssprintf("OneSideP%d",int(p+1)) ); } RString ATTACK_DISPLAY_X_NAME( size_t p, size_t both_sides ) { return "AttackDisplayXOffset" + (both_sides ? RString("BothSides") : ssprintf("OneSideP%d",int(p+1)) ); } /* Distance to search for a note in Step(), in seconds. */ @@ -199,11 +198,6 @@ void Player::Init( { GRAY_ARROWS_Y_STANDARD.Load( sType, "ReceptorArrowsYStandard" ); GRAY_ARROWS_Y_REVERSE.Load( sType, "ReceptorArrowsYReverse" ); - COMBO_X.Load( sType, COMBO_X_NAME, NUM_PLAYERS, 2 ); - COMBO_Y.Load( sType, "ComboY" ); - COMBO_Y_REVERSE.Load( sType, "ComboYReverse" ); - COMBO_CENTERED_ADDY.Load( sType, "ComboCenteredAddY" ); - COMBO_CENTERED_ADDY_REVERSE.Load( sType, "ComboCenteredAddYReverse" ); ATTACK_DISPLAY_X.Load( sType, ATTACK_DISPLAY_X_NAME, NUM_PLAYERS, 2 ); ATTACK_DISPLAY_Y.Load( sType, "AttackDisplayY" ); ATTACK_DISPLAY_Y_REVERSE.Load( sType, "AttackDisplayYReverse" ); @@ -222,9 +216,13 @@ void Player::Init( LuaReference expr = THEME->GetMetricR( sType,"JudgmentTransformCommand" ); bool bPlayerUsingBothSides = GAMESTATE->GetCurrentStyle()->m_StyleType==StyleType_OnePlayerTwoSides; - Actor temp; - temp.SetName( "Judgment" ); - ActorUtil::LoadCommand( temp, sType, "Transform" ); + Actor TempJudgment; + TempJudgment.SetName( "Judgment" ); + ActorUtil::LoadCommand( TempJudgment, sType, "Transform" ); + + Actor TempCombo; + TempCombo.SetName( "Combo" ); + ActorUtil::LoadCommand( TempCombo, sType, "Transform" ); int iEnabledPlayerIndex = -1; int iNumEnabledPlayers = 0; @@ -266,9 +264,11 @@ void Player::Init( msg.SetParam( "bReverse", !!i ); msg.SetParam( "bCentered", !!j ); - temp.HandleMessage( msg ); - - m_tsJudgment[i][j] = temp.DestTweenState(); + TempJudgment.HandleMessage( msg ); + m_tsJudgment[i][j] = TempJudgment.DestTweenState(); + + TempCombo.HandleMessage( msg ); + m_tsCombo[i][j] = TempCombo.DestTweenState(); } } } @@ -444,10 +444,7 @@ void Player::Load() m_pNoteField->Load( &m_NoteData, iDrawDistanceAfterTargetsPixels, iDrawDistanceBeforeTargetsPixels ); } - const bool bReverse = m_pPlayerState->m_PlayerOptions.GetStage().GetReversePercentForColumn( 0 ) == 1; bool bPlayerUsingBothSides = GAMESTATE->GetCurrentStyle()->m_StyleType==StyleType_OnePlayerTwoSides; - m_Combo->SetX( COMBO_X.GetValue(pn, bPlayerUsingBothSides) ); - m_Combo->SetY( bReverse ? COMBO_Y_REVERSE : COMBO_Y ); if( m_pAttackDisplay ) m_pAttackDisplay->SetX( ATTACK_DISPLAY_X.GetValue(pn, bPlayerUsingBothSides) - 40 ); // set this in Update //m_pAttackDisplay->SetY( bReverse ? ATTACK_DISPLAY_Y_REVERSE : ATTACK_DISPLAY_Y ); @@ -562,10 +559,6 @@ void Player::Update( float fDeltaTime ) const bool bReverse = m_pPlayerState->m_PlayerOptions.GetCurrent().GetReversePercentForColumn(0) == 1; float fPercentCentered = m_pPlayerState->m_PlayerOptions.GetCurrent().m_fScrolls[PlayerOptions::SCROLL_CENTERED]; - m_Combo->SetY( - bReverse ? - COMBO_Y_REVERSE + fPercentCentered * COMBO_CENTERED_ADDY_REVERSE : - COMBO_Y + fPercentCentered * COMBO_CENTERED_ADDY ); { const Actor::TweenState &ts1 = m_tsJudgment[bReverse?1:0][0]; @@ -573,6 +566,12 @@ void Player::Update( float fDeltaTime ) Actor::TweenState::MakeWeightedAverage( m_pJudgment->DestTweenState(), ts1, ts2, fPercentCentered ); } + { + const Actor::TweenState &ts1 = m_tsCombo[bReverse?1:0][0]; + const Actor::TweenState &ts2 = m_tsCombo[bReverse?1:0][1]; + Actor::TweenState::MakeWeightedAverage( m_Combo->DestTweenState(), ts1, ts2, fPercentCentered ); + } + float fNoteFieldZoom = 1 - fTinyPercent*0.5f; if( m_pNoteField ) m_pNoteField->SetZoom( fNoteFieldZoom ); diff --git a/stepmania/src/Player.h b/stepmania/src/Player.h index 8c8f53a1e6..d4a4120161 100644 --- a/stepmania/src/Player.h +++ b/stepmania/src/Player.h @@ -145,6 +145,8 @@ protected: AutoActor m_pJudgment; AutoActor m_Combo; + Actor *m_pActorWithJudgmentPosition; + Actor *m_pActorWithComboPosition; AttackDisplay *m_pAttackDisplay; @@ -176,11 +178,6 @@ protected: ThemeMetric GRAY_ARROWS_Y_STANDARD; ThemeMetric GRAY_ARROWS_Y_REVERSE; - ThemeMetric2D COMBO_X; - ThemeMetric COMBO_Y; - ThemeMetric COMBO_Y_REVERSE; - ThemeMetric COMBO_CENTERED_ADDY; - ThemeMetric COMBO_CENTERED_ADDY_REVERSE; ThemeMetric2D ATTACK_DISPLAY_X; ThemeMetric ATTACK_DISPLAY_Y; ThemeMetric ATTACK_DISPLAY_Y_REVERSE; @@ -195,6 +192,7 @@ protected: #define NUM_REVERSE 2 #define NUM_CENTERED 2 TweenState m_tsJudgment[NUM_REVERSE][NUM_CENTERED]; + TweenState m_tsCombo[NUM_REVERSE][NUM_CENTERED]; }; class PlayerPlus