diff --git a/stepmania/src/NoteDisplay.cpp b/stepmania/src/NoteDisplay.cpp index 7dfbf1d5f9..902f499ecd 100644 --- a/stepmania/src/NoteDisplay.cpp +++ b/stepmania/src/NoteDisplay.cpp @@ -446,7 +446,7 @@ void NoteDisplay::DrawHoldTopCap( const TapNote& tn, int iCol, float fBeat, bool queue.v[0].p = RageVector3(fXLeft, fY, fZ); queue.v[0].c = color; queue.v[0].t = RageVector2(fTexCoordLeft, fTexCoordTop); queue.v[1].p = RageVector3(fXRight, fY, fZ); queue.v[1].c = color; queue.v[1].t = RageVector2(fTexCoordRight, fTexCoordTop); queue.v+=2; - if( queue.Free() < 2 ) + if( queue.Free() < 2 || bLast ) { /* The queue is full. Render it, clear the buffer, and move back a step to * start off the quad strip again. */ @@ -465,17 +465,6 @@ void NoteDisplay::DrawHoldTopCap( const TapNote& tn, int iCol, float fBeat, bool fY -= fYStep; } } - - if( !bAllAreTransparent ) - { - FOREACH( Sprite*, vpSpr, spr ) - { - RageTexture* pTexture = (*spr)->GetTexture(); - DISPLAY->SetTexture( TextureUnit_1, pTexture->GetTexHandle() ); - DISPLAY->SetBlendMode( spr == vpSpr.begin() ? BLEND_NORMAL : BLEND_ADD ); - queue.Draw(); - } - } } @@ -566,7 +555,7 @@ void NoteDisplay::DrawHoldBody( const TapNote& tn, int iCol, float fBeat, bool b queue.v[0].p = RageVector3(fXLeft, fY, fZ); queue.v[0].c = color; queue.v[0].t = RageVector2(fTexCoordLeft, fTexCoordTop); queue.v[1].p = RageVector3(fXRight, fY, fZ); queue.v[1].c = color; queue.v[1].t = RageVector2(fTexCoordRight, fTexCoordTop); queue.v+=2; - if( queue.Free() < 2 ) + if( queue.Free() < 2 || bLast ) { /* The queue is full. Render it, clear the buffer, and move back a step to * start off the quad strip again. */ @@ -587,19 +576,6 @@ void NoteDisplay::DrawHoldBody( const TapNote& tn, int iCol, float fBeat, bool b fY -= fYStep; } } - - if( !bAllAreTransparent ) - { - FOREACH( Sprite*, vpSpr, spr ) - { - RageTexture* pTexture = (*spr)->GetTexture(); - DISPLAY->SetTexture( TextureUnit_1, pTexture->GetTexHandle() ); - DISPLAY->SetBlendMode( spr == vpSpr.begin() ? BLEND_NORMAL : BLEND_ADD ); - DISPLAY->SetCullMode( CULL_NONE ); - DISPLAY->SetTextureWrapping( true ); - queue.Draw(); - } - } } void NoteDisplay::DrawHoldBottomCap( const TapNote& tn, int iCol, float fBeat, bool bIsBeingHeld, float fYHead, float fYTail, int fYStep, bool bIsAddition, float fPercentFadeToFail, float fColorScale, @@ -678,7 +654,7 @@ void NoteDisplay::DrawHoldBottomCap( const TapNote& tn, int iCol, float fBeat, b queue.v[0].p = RageVector3(fXLeft, fY, fZ); queue.v[0].c = color; queue.v[0].t = RageVector2(fTexCoordLeft, fTexCoordTop); queue.v[1].p = RageVector3(fXRight, fY, fZ); queue.v[1].c = color; queue.v[1].t = RageVector2(fTexCoordRight, fTexCoordTop); queue.v+=2; - if( queue.Free() < 2 ) + if( queue.Free() < 2 || bLast ) { /* The queue is full. Render it, clear the buffer, and move back a step to * start off the quad strip again. */ @@ -697,17 +673,6 @@ void NoteDisplay::DrawHoldBottomCap( const TapNote& tn, int iCol, float fBeat, b fY -= fYStep; } } - - if( !bAllAreTransparent ) - { - FOREACH( Sprite*, vpSpr, spr ) - { - RageTexture* pTexture = (*spr)->GetTexture(); - DISPLAY->SetTexture( TextureUnit_1, pTexture->GetTexHandle() ); - DISPLAY->SetBlendMode( spr == vpSpr.begin() ? BLEND_NORMAL : BLEND_ADD ); - queue.Draw(); - } - } } void NoteDisplay::DrawHoldHeadTail( const TapNote& tn, Actor* pActor, NotePart part, int iCol, float fBeat, float fY, bool bIsAddition, float fPercentFadeToFail, float fColorScale,