From aea0a41a687b495eeec601f8f8fe2646fd9c0b71 Mon Sep 17 00:00:00 2001 From: Glenn Maynard Date: Tue, 8 Jun 2004 22:27:37 +0000 Subject: [PATCH] clean up STYLE_TECHNO_VERSUS8 hack: Sprite really should not be depending on GameState --- stepmania/src/ArrowEffects.cpp | 9 +++++++++ stepmania/src/ArrowEffects.h | 2 ++ stepmania/src/GhostArrowRow.cpp | 5 +++++ stepmania/src/NoteDisplay.cpp | 8 ++++++++ stepmania/src/ReceptorArrowRow.cpp | 3 +++ stepmania/src/Sprite.cpp | 12 ------------ 6 files changed, 27 insertions(+), 12 deletions(-) diff --git a/stepmania/src/ArrowEffects.cpp b/stepmania/src/ArrowEffects.cpp index b883c14c1b..0e178f48c5 100644 --- a/stepmania/src/ArrowEffects.cpp +++ b/stepmania/src/ArrowEffects.cpp @@ -417,6 +417,15 @@ bool ArrowsNeedZBuffer( PlayerNumber pn ) return false; } +float ArrowGetZoom( PlayerNumber pn ) +{ + /* Hack: make STYLE_TECHNO_VERSUS8 fit. */ + if( GAMESTATE->m_CurGame == GAME_TECHNO && + GAMESTATE->m_CurStyle == STYLE_TECHNO_VERSUS8 ) + return 0.8f; + return 1.0f; +} + /* * (c) 2001-2004 Chris Danford * All rights reserved. diff --git a/stepmania/src/ArrowEffects.h b/stepmania/src/ArrowEffects.h index 9af998a74e..d7a415d8f2 100644 --- a/stepmania/src/ArrowEffects.h +++ b/stepmania/src/ArrowEffects.h @@ -51,6 +51,8 @@ float ArrowGetGlow( PlayerNumber pn, int iCol, float fYPos, float fPercentFadeTo // Depends on fYOffset. float ArrowGetBrightness( PlayerNumber pn, float fNoteBeat ); +// This is the zoom of the individual tracks, not of the whole Player. +float ArrowGetZoom( PlayerNumber pn ); #endif diff --git a/stepmania/src/GhostArrowRow.cpp b/stepmania/src/GhostArrowRow.cpp index 372ad620dc..53596b129c 100644 --- a/stepmania/src/GhostArrowRow.cpp +++ b/stepmania/src/GhostArrowRow.cpp @@ -69,6 +69,11 @@ void GhostArrowRow::Update( float fDeltaTime ) m_GhostDim[c].SetZ( fZ ); m_GhostBright[c].SetZ( fZ ); m_HoldGhost[c].SetZ( fZ ); + + const float fZoom = ArrowGetZoom( m_PlayerNumber ); + m_GhostDim[c].SetZoom( fZoom ); + m_GhostBright[c].SetZoom( fZoom ); + m_HoldGhost[c].SetZoom( fZoom ); } } diff --git a/stepmania/src/NoteDisplay.cpp b/stepmania/src/NoteDisplay.cpp index f6cb37efc3..d6b7b0cf04 100644 --- a/stepmania/src/NoteDisplay.cpp +++ b/stepmania/src/NoteDisplay.cpp @@ -461,6 +461,8 @@ void NoteDisplay::DrawHoldTopCap( const HoldNote& hn, const bool bIsBeingHeld, f static RageSpriteVertex queue[size]; Sprite* pSprTopCap = GetHoldTopCapSprite( hn.GetStartBeat(), bIsBeingHeld ); + pSprTopCap->SetZoom( ArrowGetZoom( m_PlayerNumber ) ); + // draw manually in small segments RageSpriteVertex *v = &queue[0]; RageTexture* pTexture = pSprTopCap->GetTexture(); @@ -527,6 +529,8 @@ void NoteDisplay::DrawHoldBody( const HoldNote& hn, const bool bIsBeingHeld, flo Sprite* pSprBody = GetHoldBodySprite( hn.GetStartBeat(), bIsBeingHeld ); + pSprBody->SetZoom( ArrowGetZoom( m_PlayerNumber ) ); + // draw manually in small segments RageSpriteVertex *v = &queue[0]; RageTexture* pTexture = pSprBody->GetTexture(); @@ -597,6 +601,8 @@ void NoteDisplay::DrawHoldBottomCap( const HoldNote& hn, const bool bIsBeingHeld Sprite* pBottomCap = GetHoldBottomCapSprite( hn.GetStartBeat(), bIsBeingHeld ); + pBottomCap->SetZoom( ArrowGetZoom( m_PlayerNumber ) ); + // draw manually in small segments RageSpriteVertex *v = &queue[0]; RageTexture* pTexture = pBottomCap->GetTexture(); @@ -823,6 +829,7 @@ void NoteDisplay::DrawActor( Actor* pActor, int iCol, float fBeat, float fPercen const float fAlpha = ArrowGetAlpha( m_PlayerNumber, iCol, fYOffset, fPercentFadeToFail, m_fYReverseOffsetPixels ); const float fGlow = ArrowGetGlow( m_PlayerNumber, iCol, fYOffset, fPercentFadeToFail, m_fYReverseOffsetPixels ); const float fColorScale = ArrowGetBrightness( m_PlayerNumber, fBeat ) * SCALE(fLife,0,1,0.2f,1); + const float fZoom = ArrowGetZoom( m_PlayerNumber ); RageColor diffuse = RageColor(fColorScale,fColorScale,fColorScale,fAlpha); RageColor glow = RageColor(1,1,1,fGlow); @@ -831,6 +838,7 @@ void NoteDisplay::DrawActor( Actor* pActor, int iCol, float fBeat, float fPercen pActor->SetZ( fZPos ); pActor->SetDiffuse( diffuse ); pActor->SetGlow( glow ); + pActor->SetZoom( fZoom ); if( bUseLighting ) { diff --git a/stepmania/src/ReceptorArrowRow.cpp b/stepmania/src/ReceptorArrowRow.cpp index 0088cf1da1..fad25c9543 100644 --- a/stepmania/src/ReceptorArrowRow.cpp +++ b/stepmania/src/ReceptorArrowRow.cpp @@ -41,6 +41,9 @@ void ReceptorArrowRow::Update( float fDeltaTime ) m_ReceptorArrow[c].SetX( fX ); m_ReceptorArrow[c].SetY( fY ); m_ReceptorArrow[c].SetZ( fZ ); + + const float fZoom = ArrowGetZoom( m_PlayerNumber ); + m_ReceptorArrow[c].SetZoom( fZoom ); } } diff --git a/stepmania/src/Sprite.cpp b/stepmania/src/Sprite.cpp index 5d544db6b0..ef39436803 100644 --- a/stepmania/src/Sprite.cpp +++ b/stepmania/src/Sprite.cpp @@ -12,9 +12,6 @@ #include "SDL_utils.h" #include "ActorUtil.h" #include "arch/ArchHooks/ArchHooks.h" -#include "Game.h" -#include "GameState.h" -#include "Style.h" Sprite::Sprite() { @@ -82,15 +79,6 @@ bool Sprite::Load( RageTextureID ID ) else result = LoadFromTexture( ID ); - // 2-player 8-panel gets crowded - this scaling emulates the arcade behaviour to account for this - if( GAMESTATE->m_CurGame == GAME_TECHNO && - GAMESTATE->m_CurStyle == STYLE_TECHNO_VERSUS8 && - ID.filename.find( "NoteSkin" ) != -1 ) - { - Actor::SetBaseZoomX( Actor::m_baseScale.x * (float)0.8 ); - Actor::SetBaseZoomY( Actor::m_baseScale.y * (float)0.8 ); - } - return result; };