support mini, reverse in rave

This commit is contained in:
Chris Danford
2003-08-14 08:13:08 +00:00
parent 7385c15e8e
commit 10610e75ce
5 changed files with 41 additions and 23 deletions
+5 -4
View File
@@ -220,8 +220,7 @@ NextScreen=ScreenSelectGroup
HelpText= HelpText=
[ScreenSelectDifficulty] [ScreenSelectDifficulty]
Choices=arcade-beginner,arcade-easy,arcade-medium,arcade-hard,nonstop,oni,endless Choices=arcade-beginner,arcade-easy,arcade-medium,arcade-hard,nonstop,oni,endless,rave
#,rave
NumChoicesOnPage1=4 NumChoicesOnPage1=4
HelpText=Use &LEFT; &RIGHT; to select, then press START HelpText=Use &LEFT; &RIGHT; to select, then press START
TimerSeconds=40 TimerSeconds=40
@@ -1781,7 +1780,8 @@ NGCommand=shadowlength,4;diffusealpha,1;zoom,1;y,-10;linear,0.8;y,10;sleep,0.5;l
OKCommand=shadowlength,4;diffusealpha,1;zoom,1.25;linear,0.3;zoomx,1;zoomy,1;sleep,0.5;linear,0;diffusealpha,0 OKCommand=shadowlength,4;diffusealpha,1;zoom,1.25;linear,0.3;zoomx,1;zoomy,1;sleep,0.5;linear,0;diffusealpha,0
[Player] [Player]
GrayArrowsY=96 GrayArrowsYStandard=96
GrayArrowsYReverse=384
JudgmentXOffsetOneSideP1=0 JudgmentXOffsetOneSideP1=0
JudgmentXOffsetOneSideP2=0 JudgmentXOffsetOneSideP2=0
JudgmentXOffsetBothSides=0 JudgmentXOffsetBothSides=0
@@ -1790,7 +1790,8 @@ ComboXOffsetOneSideP1=0
ComboXOffsetOneSideP2=0 ComboXOffsetOneSideP2=0
ComboXOffsetBothSides=0 ComboXOffsetBothSides=0
ComboY=270 ComboY=270
HoldJudgmentY=150 HoldJudgmentYStandard=150
HoldJudgmentYReverse=330
BrightGhostComboThreshold=100 BrightGhostComboThreshold=100
StartDrawingAtPixels=-60 StartDrawingAtPixels=-60
StopDrawingAtPixels=350 StopDrawingAtPixels=350
+1 -1
View File
@@ -760,7 +760,7 @@ void NoteDisplay::DrawHold( const HoldNote& hn, const bool bActive, const float
{ {
// bDrawGlowOnly is a little hacky. We need to draw the diffuse part and the glow part one pass at a time to minimize state changes // bDrawGlowOnly is a little hacky. We need to draw the diffuse part and the glow part one pass at a time to minimize state changes
const bool bReverse = GAMESTATE->m_CurrentPlayerOptions[m_PlayerNumber].m_fReverseScroll == 1; const bool bReverse = GAMESTATE->m_CurrentPlayerOptions[m_PlayerNumber].m_fReverseScroll > 0.5;
const int iCol = hn.iTrack; const int iCol = hn.iTrack;
const float fStartYOffset = ArrowGetYOffset( m_PlayerNumber, hn.fStartBeat ); const float fStartYOffset = ArrowGetYOffset( m_PlayerNumber, hn.fStartBeat );
+2 -2
View File
@@ -229,8 +229,8 @@ void NoteField::DrawPrimitives()
int iLastPixelToDraw = m_iLastPixelToDraw; int iLastPixelToDraw = m_iLastPixelToDraw;
float fDrawScale = 1; float fDrawScale = 1;
fDrawScale *= 1 + 0.5f * fabsf( GAMESTATE->m_PlayerOptions[m_PlayerNumber].m_fPerspectiveTilt ); fDrawScale *= 1 + 0.5f * fabsf( GAMESTATE->m_CurrentPlayerOptions[m_PlayerNumber].m_fPerspectiveTilt );
fDrawScale *= 1 + fabsf( GAMESTATE->m_PlayerOptions[m_PlayerNumber].m_fEffects[PlayerOptions::EFFECT_MINI] ); fDrawScale *= 1 + fabsf( GAMESTATE->m_CurrentPlayerOptions[m_PlayerNumber].m_fEffects[PlayerOptions::EFFECT_MINI] );
float fFirstDrawScale = g_NoteFieldMode[m_PlayerNumber].m_fFirstPixelToDrawScale; float fFirstDrawScale = g_NoteFieldMode[m_PlayerNumber].m_fFirstPixelToDrawScale;
float fLastDrawScale = g_NoteFieldMode[m_PlayerNumber].m_fLastPixelToDrawScale; float fLastDrawScale = g_NoteFieldMode[m_PlayerNumber].m_fLastPixelToDrawScale;
+32 -15
View File
@@ -33,13 +33,15 @@
#include "NoteFieldPositioning.h" #include "NoteFieldPositioning.h"
#include "NoteDataUtil.h" #include "NoteDataUtil.h"
#define GRAY_ARROWS_Y THEME->GetMetricF("Player","GrayArrowsY") CachedThemeMetricF GRAY_ARROWS_Y_STANDARD ("Player","GrayArrowsYStandard");
CachedThemeMetricF GRAY_ARROWS_Y_REVERSE ("Player","GrayArrowsYReverse");
#define JUDGMENT_X( p, both_sides ) THEME->GetMetricF("Player",both_sides ? "JudgmentXOffsetBothSides" : ssprintf("JudgmentXOffsetOneSideP%d",p+1)) #define JUDGMENT_X( p, both_sides ) THEME->GetMetricF("Player",both_sides ? "JudgmentXOffsetBothSides" : ssprintf("JudgmentXOffsetOneSideP%d",p+1))
#define JUDGMENT_Y THEME->GetMetricF("Player","JudgmentY") #define JUDGMENT_Y THEME->GetMetricF("Player","JudgmentY")
#define COMBO_X( p, both_sides ) THEME->GetMetricF("Player",both_sides ? "ComboXOffsetBothSides" : ssprintf("ComboXOffsetOneSideP%d",p+1)) #define COMBO_X( p, both_sides ) THEME->GetMetricF("Player",both_sides ? "ComboXOffsetBothSides" : ssprintf("ComboXOffsetOneSideP%d",p+1))
#define COMBO_Y THEME->GetMetricF("Player","ComboY") #define COMBO_Y THEME->GetMetricF("Player","ComboY")
#define HOLD_JUDGMENT_Y THEME->GetMetricF("Player","HoldJudgmentY") CachedThemeMetricF HOLD_JUDGMENT_Y_STANDARD ("Player","HoldJudgmentYStandard");
CachedThemeMetricI BRIGHT_GHOST_COMBO_THRESHOLD("Player","BrightGhostComboThreshold"); CachedThemeMetricF HOLD_JUDGMENT_Y_REVERSE ("Player","HoldJudgmentYReverse");
CachedThemeMetricI BRIGHT_GHOST_COMBO_THRESHOLD("Player","BrightGhostComboThreshold");
#define START_DRAWING_AT_PIXELS THEME->GetMetricI("Player","StartDrawingAtPixels") #define START_DRAWING_AT_PIXELS THEME->GetMetricI("Player","StartDrawingAtPixels")
#define STOP_DRAWING_AT_PIXELS THEME->GetMetricI("Player","StopDrawingAtPixels") #define STOP_DRAWING_AT_PIXELS THEME->GetMetricI("Player","StopDrawingAtPixels")
#define MAX_PRO_TIMING_ERROR THEME->GetMetricI("Player","MaxProTimingError") #define MAX_PRO_TIMING_ERROR THEME->GetMetricI("Player","MaxProTimingError")
@@ -53,6 +55,10 @@ static const float StepSearchDistanceForwards = 1.0f;
Player::Player() Player::Player()
{ {
GRAY_ARROWS_Y_STANDARD.Refresh();
GRAY_ARROWS_Y_REVERSE.Refresh();
HOLD_JUDGMENT_Y_STANDARD.Refresh();
HOLD_JUDGMENT_Y_REVERSE.Refresh();
BRIGHT_GHOST_COMBO_THRESHOLD.Refresh(); BRIGHT_GHOST_COMBO_THRESHOLD.Refresh();
m_PlayerNumber = PLAYER_INVALID; m_PlayerNumber = PLAYER_INVALID;
@@ -156,22 +162,12 @@ void Player::Load( PlayerNumber pn, NoteData* pNoteData, LifeMeter* pLM, Combine
int c; int c;
for( c=0; c<pStyleDef->m_iColsPerPlayer; c++ ) for( c=0; c<pStyleDef->m_iColsPerPlayer; c++ )
{ {
m_HoldJudgment[c].SetY( bReverse ? SCREEN_BOTTOM-HOLD_JUDGMENT_Y : SCREEN_TOP+HOLD_JUDGMENT_Y );
m_HoldJudgment[c].SetX( (float)pStyleDef->m_ColumnInfo[pn][c].fXOffset ); m_HoldJudgment[c].SetX( (float)pStyleDef->m_ColumnInfo[pn][c].fXOffset );
m_HoldJudgment[c].Command( g_NoteFieldMode[pn].m_HoldJudgmentCmd[c] ); m_HoldJudgment[c].Command( g_NoteFieldMode[pn].m_HoldJudgmentCmd[c] );
} }
m_ArrowBackdrop.SetY( bReverse ? SCREEN_BOTTOM-GRAY_ARROWS_Y : SCREEN_TOP+GRAY_ARROWS_Y ); // Need to set Y positions of all these elements in Update since
m_NoteField.SetY( bReverse ? SCREEN_BOTTOM-GRAY_ARROWS_Y : SCREEN_TOP+GRAY_ARROWS_Y ); // they change depending on PlayerOptions.
m_GrayArrowRow.SetY( bReverse ? SCREEN_BOTTOM-GRAY_ARROWS_Y : SCREEN_TOP+GRAY_ARROWS_Y );
m_GhostArrowRow.SetY( bReverse ? SCREEN_BOTTOM-GRAY_ARROWS_Y : SCREEN_TOP+GRAY_ARROWS_Y );
if( GAMESTATE->m_PlayerOptions[pn].m_fEffects[PlayerOptions::EFFECT_MINI] == 1 )
{
m_NoteField.SetZoom( 0.5f );
m_GrayArrowRow.SetZoom( 0.5f );
m_GhostArrowRow.SetZoom( 0.5f );
}
m_sLastSeenNoteSkin = GAMESTATE->m_PlayerOptions[m_PlayerNumber].m_sNoteSkin; m_sLastSeenNoteSkin = GAMESTATE->m_PlayerOptions[m_PlayerNumber].m_sNoteSkin;
@@ -187,6 +183,27 @@ void Player::Update( float fDeltaTime )
const float fSongBeat = GAMESTATE->m_fSongBeat; const float fSongBeat = GAMESTATE->m_fSongBeat;
//
// Update Y positions
//
float fPercentReverse = GAMESTATE->m_CurrentPlayerOptions[m_PlayerNumber].m_fReverseScroll;
float fHoldJudgeYPos = SCALE( fPercentReverse, 0.f, 1.f, HOLD_JUDGMENT_Y_STANDARD, HOLD_JUDGMENT_Y_REVERSE );
float fGrayYPos = SCALE( fPercentReverse, 0.f, 1.f, GRAY_ARROWS_Y_STANDARD, GRAY_ARROWS_Y_REVERSE );
int c;
for( c=0; c<GAMESTATE->GetCurrentStyleDef()->m_iColsPerPlayer; c++ )
m_HoldJudgment[c].SetY( fGrayYPos );
m_ArrowBackdrop.SetY( fGrayYPos );
m_NoteField.SetY( fGrayYPos );
m_GrayArrowRow.SetY( fGrayYPos );
m_GhostArrowRow.SetY( fGrayYPos );
float fMiniPercent = GAMESTATE->m_CurrentPlayerOptions[m_PlayerNumber].m_fEffects[PlayerOptions::EFFECT_MINI];
float fZoom = 1 - fMiniPercent*0.5;
m_NoteField.SetZoom( fZoom );
m_GrayArrowRow.SetZoom( fZoom );
m_GhostArrowRow.SetZoom( fZoom );
// //
// Check for TapNote misses // Check for TapNote misses
// //
+1 -1
View File
@@ -2,7 +2,7 @@
; Don't forget to also change ProductInfo.h! ; Don't forget to also change ProductInfo.h!
!define PRODUCT_NAME "StepMania" !define PRODUCT_NAME "StepMania"
!define PRODUCT_VER "3.9 alpha 2" !define PRODUCT_VER "3.9 alpha 3"
!define PRODUCT_NAME_VER "${PRODUCT_NAME} ${PRODUCT_VER}" !define PRODUCT_NAME_VER "${PRODUCT_NAME} ${PRODUCT_VER}"
; String used for the install directory and registry locations ; String used for the install directory and registry locations