diff --git a/src/Actor.cpp b/src/Actor.cpp index 0e487dcd9a..15eab5f0b5 100644 --- a/src/Actor.cpp +++ b/src/Actor.cpp @@ -370,21 +370,21 @@ void Actor::PreDraw() // calculate actor properties /* XXX: Should diffuse_blink and diffuse_shift multiply the tempState color? * (That would have the same effect with 1,1,1,1, and allow tweening the diffuse * while blinking and shifting.) */ - for(int i=0; i<4; i++) + for(int i=0; idiffuse[i]= diffuse; + m_pTempState->diffuse[i]= diffuse[i]; } SetStrokeColor(stroke); m_pTempState->crop.left= crop_left; @@ -40,16 +40,18 @@ void RollingNumbers::DrawPart(RageColor const& diffuse, RageColor const& stroke, void RollingNumbers::DrawPrimitives() { - RageColor c_orig = this->GetDiffuse(); - RageColor c2_orig = this->GetStrokeColor(); + RageColor diffuse_orig[NUM_DIFFUSE_COLORS]; + RageColor diffuse_temp[NUM_DIFFUSE_COLORS]; + RageColor stroke_orig= GetStrokeColor(); + RageColor stroke_temp= GetStrokeColor() * LEADING_ZERO_MULTIPLY_COLOR; + for(int i= 0; i < NUM_DIFFUSE_COLORS; ++i) + { + diffuse_orig[i]= m_pTempState->diffuse[i]; + diffuse_temp[i]= m_pTempState->diffuse[i] * LEADING_ZERO_MULTIPLY_COLOR; + } float original_crop_left= m_pTempState->crop.left; float original_crop_right= m_pTempState->crop.right; - RageColor c = this->GetDiffuse(); - c *= LEADING_ZERO_MULTIPLY_COLOR; - RageColor c2 = this->GetStrokeColor(); - c2 *= LEADING_ZERO_MULTIPLY_COLOR; - RString s = this->GetText(); int i; // find the first non-zero non-comma character, or the last character @@ -68,10 +70,11 @@ void RollingNumbers::DrawPrimitives() float f = i / (float)s.length(); // draw leading part - DrawPart(c, c2, max(0, original_crop_left), max(1-f, original_crop_right)); + DrawPart(diffuse_temp, stroke_temp, + max(0, original_crop_left), max(1-f, original_crop_right)); // draw regular color part - DrawPart(c_orig, c2_orig, max(f, original_crop_left), - max(0, original_crop_right)); + DrawPart(diffuse_orig, stroke_orig, + max(f, original_crop_left), max(0, original_crop_right)); m_pTempState->crop.left= original_crop_left; m_pTempState->crop.right= original_crop_right; diff --git a/src/RollingNumbers.h b/src/RollingNumbers.h index 6b1130c412..9dec441c37 100644 --- a/src/RollingNumbers.h +++ b/src/RollingNumbers.h @@ -13,7 +13,7 @@ public: void Load( const RString &sMetricsGroup ); virtual RollingNumbers *Copy() const; - void DrawPart(RageColor const& diffuse, RageColor const& stroke, + void DrawPart(RageColor const* diffuse, RageColor const& stroke, float crop_left, float crop_right); virtual void DrawPrimitives(); virtual void Update( float fDeltaTime ); diff --git a/src/ScreenOptions.cpp b/src/ScreenOptions.cpp index c91c44d520..72bedd4007 100644 --- a/src/ScreenOptions.cpp +++ b/src/ScreenOptions.cpp @@ -673,7 +673,7 @@ void ScreenOptions::PositionRows( bool bTween ) i < first_start || (i >= first_end && i < second_start) || i >= second_end; - for( int j=0; j<4; j++ ) + for( int j=0; jSetDestination( tsDestination, bTween ); }