add Tiny (the same effect as the old Mini)
make calories less generous
This commit is contained in:
@@ -280,8 +280,16 @@ float ArrowEffects::GetYOffset( const PlayerState* pPlayerState, int iCol, float
|
||||
|
||||
static void ArrowGetReverseShiftAndScale( const PlayerState* pPlayerState, int iCol, float fYReverseOffsetPixels, float &fShiftOut, float &fScaleOut )
|
||||
{
|
||||
/* XXX: Hack: we need to scale the reverse shift by the zoom. */
|
||||
float fTinyPercent = pPlayerState->m_CurrentPlayerOptions.m_fEffects[PlayerOptions::EFFECT_TINY];
|
||||
float fZoom = 1 - fTinyPercent*0.5f;
|
||||
|
||||
// don't divide by 0
|
||||
if( fabsf(fZoom) < 0.01 )
|
||||
fZoom = 0.01f;
|
||||
|
||||
float fPercentReverse = pPlayerState->m_CurrentPlayerOptions.GetReversePercentForColumn(iCol);
|
||||
fShiftOut = SCALE( fPercentReverse, 0.f, 1.f, -fYReverseOffsetPixels/2, fYReverseOffsetPixels/2 );
|
||||
fShiftOut = SCALE( fPercentReverse, 0.f, 1.f, -fYReverseOffsetPixels/fZoom/2, fYReverseOffsetPixels/fZoom/2 );
|
||||
float fPercentCentered = pPlayerState->m_CurrentPlayerOptions.m_fScrolls[PlayerOptions::SCROLL_CENTERED];
|
||||
fShiftOut = SCALE( fPercentCentered, 0.f, 1.f, fShiftOut, 0.0f );
|
||||
|
||||
@@ -394,7 +402,11 @@ float ArrowEffects::GetRotation( const PlayerState* pPlayerState, float fNoteBea
|
||||
|
||||
static float GetCenterLine( const PlayerState* pPlayerState )
|
||||
{
|
||||
return CENTER_LINE_Y;
|
||||
/* Another mini hack: if EFFECT_MINI is on, then our center line is at eg. 320,
|
||||
* not 160. */
|
||||
const float fMiniPercent = pPlayerState->m_CurrentPlayerOptions.m_fEffects[PlayerOptions::EFFECT_TINY];
|
||||
const float fZoom = 1 - fMiniPercent*0.5f;
|
||||
return CENTER_LINE_Y / fZoom;
|
||||
}
|
||||
|
||||
static float GetHiddenSudden( const PlayerState* pPlayerState )
|
||||
|
||||
@@ -453,6 +453,7 @@ void NoteField::DrawPrimitives()
|
||||
|
||||
float fDrawScale = 1;
|
||||
fDrawScale *= 1 + 0.5f * fabsf( current_po.m_fPerspectiveTilt );
|
||||
fDrawScale *= 1 + fabsf( current_po.m_fEffects[PlayerOptions::EFFECT_TINY] );
|
||||
|
||||
iFirstPixelToDraw = (int)(iFirstPixelToDraw * fDrawScale);
|
||||
iLastPixelToDraw = (int)(iLastPixelToDraw * fDrawScale);
|
||||
|
||||
@@ -19,8 +19,9 @@ void NoteFieldMode::BeginDrawTrack( const PlayerState* pPlayerState, int iTrack
|
||||
// TODO: Remove indexing by PlayerNumber.
|
||||
float fPixelXOffsetFromCenter = s->m_ColumnInfo[pPlayerState->m_PlayerNumber][iTrack].fXOffset;
|
||||
|
||||
/* Allow Mini to pull tracks together, but not to push them apart. */
|
||||
const float* fEffects = pPlayerState->m_CurrentPlayerOptions.m_fEffects;
|
||||
|
||||
/* Allow Mini to pull tracks together, but not to push them apart. */
|
||||
float fMiniPercent = fEffects[PlayerOptions::EFFECT_MINI];
|
||||
fMiniPercent = min( powf(0.5f, fMiniPercent), 1.0f );
|
||||
fPixelXOffsetFromCenter *= fMiniPercent;
|
||||
|
||||
@@ -517,7 +517,11 @@ void Player::Update( float fDeltaTime )
|
||||
|
||||
|
||||
float fMiniPercent = m_pPlayerState->m_CurrentPlayerOptions.m_fEffects[PlayerOptions::EFFECT_MINI];
|
||||
float fJudgmentZoom = min( powf(0.5f, fMiniPercent), 1.0f );
|
||||
float fTinyPercent = m_pPlayerState->m_CurrentPlayerOptions.m_fEffects[PlayerOptions::EFFECT_TINY];
|
||||
float fNoteFieldZoom = 1 - fTinyPercent*0.5f;
|
||||
float fJudgmentZoom = min( powf(0.5f, fMiniPercent+fTinyPercent), 1.0f );
|
||||
if( m_pNoteField )
|
||||
m_pNoteField->SetZoom( fNoteFieldZoom );
|
||||
if( m_pJudgment )
|
||||
m_pJudgment->SetZoom( m_pJudgment->GetZoom() * fJudgmentZoom );
|
||||
if( m_sprJudgmentFrame.IsLoaded() )
|
||||
@@ -816,6 +820,12 @@ void Player::DrawPrimitives()
|
||||
|
||||
float fTiltDegrees = SCALE(fTilt,-1.f,+1.f,+30,-30) * (bReverse?-1:1);
|
||||
|
||||
float fZoom = SCALE( m_pPlayerState->m_CurrentPlayerOptions.m_fEffects[PlayerOptions::EFFECT_TINY], 0.f, 1.f, 1.f, 0.5f );
|
||||
if( fTilt > 0 )
|
||||
fZoom *= SCALE( fTilt, 0.f, 1.f, 1.f, 0.9f );
|
||||
else
|
||||
fZoom *= SCALE( fTilt, 0.f, -1.f, 1.f, 0.9f );
|
||||
|
||||
float fYOffset;
|
||||
if( fTilt > 0 )
|
||||
fYOffset = SCALE( fTilt, 0.f, 1.f, 0.f, -45.f ) * (bReverse?-1:1);
|
||||
@@ -823,6 +833,7 @@ void Player::DrawPrimitives()
|
||||
fYOffset = SCALE( fTilt, 0.f, -1.f, 0.f, -20.f ) * (bReverse?-1:1);
|
||||
|
||||
m_pNoteField->SetY( fOriginalY + fYOffset );
|
||||
m_pNoteField->SetZoom( fZoom );
|
||||
m_pNoteField->SetRotationX( fTiltDegrees );
|
||||
m_pNoteField->Draw();
|
||||
|
||||
@@ -1040,8 +1051,8 @@ void Player::HandleStep( int col, const RageTimer &tm, bool bHeld )
|
||||
// fall through
|
||||
default:
|
||||
{
|
||||
float fCalsFor100Lbs = SCALE( iNumTracksHeld, 1, 2, 0.029f, 0.097f );
|
||||
float fCalsFor200Lbs = SCALE( iNumTracksHeld, 1, 2, 0.052f, 0.167f );
|
||||
float fCalsFor100Lbs = SCALE( iNumTracksHeld, 1, 2, 0.023f, 0.077f );
|
||||
float fCalsFor200Lbs = SCALE( iNumTracksHeld, 1, 2, 0.041f, 0.133f );
|
||||
fCals = SCALE( pProfile->GetCalculatedWeightPounds(), 100.f, 200.f, fCalsFor100Lbs, fCalsFor200Lbs );
|
||||
}
|
||||
break;
|
||||
|
||||
@@ -119,6 +119,7 @@ void PlayerOptions::GetMods( vector<RString> &AddTo ) const
|
||||
AddPart( AddTo, m_fEffects[EFFECT_DRUNK], "Drunk" );
|
||||
AddPart( AddTo, m_fEffects[EFFECT_DIZZY], "Dizzy" );
|
||||
AddPart( AddTo, m_fEffects[EFFECT_MINI], "Mini" );
|
||||
AddPart( AddTo, m_fEffects[EFFECT_TINY], "Tiny" );
|
||||
AddPart( AddTo, m_fEffects[EFFECT_FLIP], "Flip" );
|
||||
AddPart( AddTo, m_fEffects[EFFECT_INVERT], "Invert" );
|
||||
AddPart( AddTo, m_fEffects[EFFECT_TORNADO], "Tornado" );
|
||||
@@ -282,6 +283,7 @@ void PlayerOptions::FromString( const RString &sOptions, bool bWarnOnInvalid )
|
||||
else if( sBit == "drunk" ) SET_FLOAT( fEffects[EFFECT_DRUNK] )
|
||||
else if( sBit == "dizzy" ) SET_FLOAT( fEffects[EFFECT_DIZZY] )
|
||||
else if( sBit == "mini" ) SET_FLOAT( fEffects[EFFECT_MINI] )
|
||||
else if( sBit == "tiny" ) SET_FLOAT( fEffects[EFFECT_TINY] )
|
||||
else if( sBit == "flip" ) SET_FLOAT( fEffects[EFFECT_FLIP] )
|
||||
else if( sBit == "invert" ) SET_FLOAT( fEffects[EFFECT_INVERT] )
|
||||
else if( sBit == "tornado" ) SET_FLOAT( fEffects[EFFECT_TORNADO] )
|
||||
|
||||
@@ -41,6 +41,7 @@ public:
|
||||
EFFECT_DRUNK,
|
||||
EFFECT_DIZZY,
|
||||
EFFECT_MINI,
|
||||
EFFECT_TINY,
|
||||
EFFECT_FLIP,
|
||||
EFFECT_INVERT,
|
||||
EFFECT_TORNADO,
|
||||
|
||||
Reference in New Issue
Block a user