NEW FEATURE: Added 0.25x scroll speed

CHANGE:  Reorganized options on Player Options screen
NEW FEATURE:  New modifier: Acceleration-Land
NEW FEATURE:  New modifier: Acceleration-Expand
NEW FEATURE:  New modifier: Acceleration-Boomerang
CHANGE:  Tweaked Acceleration-Wave for more of a challenge
CHANGE:  Changed format  NoteSkin tap graphic format.  Existing NoteSkins will
	need to update the tap graphic.
This commit is contained in:
Chris Danford
2003-01-25 11:05:12 +00:00
parent 3d4d28eeb0
commit 559c3b7248
23 changed files with 331 additions and 179 deletions
+42 -8
View File
@@ -21,6 +21,9 @@
#include <math.h>
RageTimer g_timerExpand;
float g_fExpandSeconds = 0;
float ArrowGetYOffset( PlayerNumber pn, float fNoteBeat )
{
float fSongBeat = GAMESTATE->m_fSongBeat;
@@ -36,10 +39,33 @@ float ArrowGetYOffset( PlayerNumber pn, float fNoteBeat )
*
* I'm not sure which is better. - glenn
*/
if( GAMESTATE->m_PlayerOptions[pn].m_bBoost )
fYOffset *= 1.4f / ((fYOffset+SCREEN_HEIGHT/1.6f)/SCREEN_HEIGHT);
if( GAMESTATE->m_PlayerOptions[pn].m_bEffects[PlayerOptions::EFFECT_WAVE] )
fYOffset += 15.0f*sinf( fYOffset/38.0f );
/* Boost and wave can no longer be used at the same time. -Chris */
if( fYOffset < 0 )
return fYOffset; // don't mess with it after crossing the receptors
switch( GAMESTATE->m_PlayerOptions[pn].m_AccelType )
{
case PlayerOptions::ACCEL_BOOST:
fYOffset *= 1.5f / ((fYOffset+SCREEN_HEIGHT/1.2f)/SCREEN_HEIGHT);
break;
case PlayerOptions::ACCEL_LAND:
fYOffset *= SCALE( fYOffset, 0.f, SCREEN_HEIGHT, 0.25f, 1.5f );
break;
case PlayerOptions::ACCEL_WAVE:
fYOffset += 20.0f*sinf( fYOffset/38.0f );
break;
case PlayerOptions::ACCEL_EXPAND:
if( !GAMESTATE->m_bFreeze )
g_fExpandSeconds += g_timerExpand.GetDeltaTime();
else
g_timerExpand.GetDeltaTime(); // throw away
fYOffset *= SCALE( cosf(g_fExpandSeconds*3), -1, 1, 0.5f, 1.5f );
break;
case PlayerOptions::ACCEL_BOOMERANG:
fYOffset *= SCALE( fYOffset, 0.f, SCREEN_HEIGHT, 1.5f, 0.5f );
break;
}
return fYOffset;
}
@@ -72,19 +98,27 @@ float ArrowGetXPos( PlayerNumber pn, int iColNum, float fYPos )
return fPixelOffsetFromCenter;
}
float ArrowGetRotation( PlayerNumber pn, int iColNum, float fYOffset )
float ArrowGetRotation( PlayerNumber pn, float fNoteBeat )
{
float fRotation = 0; //StyleDef.m_ColumnToRotation[iColNum];
if( GAMESTATE->m_PlayerOptions[pn].m_bEffects[PlayerOptions::EFFECT_DIZZY] )
fRotation += fYOffset/SCREEN_HEIGHT*6;
{
float fSongBeat = GAMESTATE->m_fSongBeat;
float fBeatsUntilStep = fNoteBeat - fSongBeat;
fRotation += fBeatsUntilStep;
}
return fRotation;
}
float ArrowGetYPosWithoutReverse( PlayerNumber pn, float fYOffset )
{
return fYOffset * GAMESTATE->m_PlayerOptions[pn].m_fScrollSpeed;
}
float ArrowGetYPos( PlayerNumber pn, float fYOffset )
{
return fYOffset * GAMESTATE->m_PlayerOptions[pn].m_fArrowScrollSpeed * (GAMESTATE->m_PlayerOptions[pn].m_bReverseScroll ? -1 : 1 );
return ArrowGetYPosWithoutReverse(pn,fYOffset) * (GAMESTATE->m_PlayerOptions[pn].m_bReverseScroll ? -1 : 1 );
}