support mini, reverse in rave
This commit is contained in:
@@ -220,8 +220,7 @@ NextScreen=ScreenSelectGroup
|
||||
HelpText=
|
||||
|
||||
[ScreenSelectDifficulty]
|
||||
Choices=arcade-beginner,arcade-easy,arcade-medium,arcade-hard,nonstop,oni,endless
|
||||
#,rave
|
||||
Choices=arcade-beginner,arcade-easy,arcade-medium,arcade-hard,nonstop,oni,endless,rave
|
||||
NumChoicesOnPage1=4
|
||||
HelpText=Use &LEFT; &RIGHT; to select, then press START
|
||||
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
|
||||
|
||||
[Player]
|
||||
GrayArrowsY=96
|
||||
GrayArrowsYStandard=96
|
||||
GrayArrowsYReverse=384
|
||||
JudgmentXOffsetOneSideP1=0
|
||||
JudgmentXOffsetOneSideP2=0
|
||||
JudgmentXOffsetBothSides=0
|
||||
@@ -1790,7 +1790,8 @@ ComboXOffsetOneSideP1=0
|
||||
ComboXOffsetOneSideP2=0
|
||||
ComboXOffsetBothSides=0
|
||||
ComboY=270
|
||||
HoldJudgmentY=150
|
||||
HoldJudgmentYStandard=150
|
||||
HoldJudgmentYReverse=330
|
||||
BrightGhostComboThreshold=100
|
||||
StartDrawingAtPixels=-60
|
||||
StopDrawingAtPixels=350
|
||||
|
||||
@@ -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
|
||||
|
||||
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 float fStartYOffset = ArrowGetYOffset( m_PlayerNumber, hn.fStartBeat );
|
||||
|
||||
@@ -229,8 +229,8 @@ void NoteField::DrawPrimitives()
|
||||
int iLastPixelToDraw = m_iLastPixelToDraw;
|
||||
|
||||
float fDrawScale = 1;
|
||||
fDrawScale *= 1 + 0.5f * fabsf( GAMESTATE->m_PlayerOptions[m_PlayerNumber].m_fPerspectiveTilt );
|
||||
fDrawScale *= 1 + fabsf( GAMESTATE->m_PlayerOptions[m_PlayerNumber].m_fEffects[PlayerOptions::EFFECT_MINI] );
|
||||
fDrawScale *= 1 + 0.5f * fabsf( GAMESTATE->m_CurrentPlayerOptions[m_PlayerNumber].m_fPerspectiveTilt );
|
||||
fDrawScale *= 1 + fabsf( GAMESTATE->m_CurrentPlayerOptions[m_PlayerNumber].m_fEffects[PlayerOptions::EFFECT_MINI] );
|
||||
|
||||
float fFirstDrawScale = g_NoteFieldMode[m_PlayerNumber].m_fFirstPixelToDrawScale;
|
||||
float fLastDrawScale = g_NoteFieldMode[m_PlayerNumber].m_fLastPixelToDrawScale;
|
||||
|
||||
+32
-15
@@ -33,13 +33,15 @@
|
||||
#include "NoteFieldPositioning.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_Y THEME->GetMetricF("Player","JudgmentY")
|
||||
#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 HOLD_JUDGMENT_Y THEME->GetMetricF("Player","HoldJudgmentY")
|
||||
CachedThemeMetricI BRIGHT_GHOST_COMBO_THRESHOLD("Player","BrightGhostComboThreshold");
|
||||
CachedThemeMetricF HOLD_JUDGMENT_Y_STANDARD ("Player","HoldJudgmentYStandard");
|
||||
CachedThemeMetricF HOLD_JUDGMENT_Y_REVERSE ("Player","HoldJudgmentYReverse");
|
||||
CachedThemeMetricI BRIGHT_GHOST_COMBO_THRESHOLD("Player","BrightGhostComboThreshold");
|
||||
#define START_DRAWING_AT_PIXELS THEME->GetMetricI("Player","StartDrawingAtPixels")
|
||||
#define STOP_DRAWING_AT_PIXELS THEME->GetMetricI("Player","StopDrawingAtPixels")
|
||||
#define MAX_PRO_TIMING_ERROR THEME->GetMetricI("Player","MaxProTimingError")
|
||||
@@ -53,6 +55,10 @@ static const float StepSearchDistanceForwards = 1.0f;
|
||||
|
||||
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();
|
||||
|
||||
m_PlayerNumber = PLAYER_INVALID;
|
||||
@@ -156,22 +162,12 @@ void Player::Load( PlayerNumber pn, NoteData* pNoteData, LifeMeter* pLM, Combine
|
||||
int 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].Command( g_NoteFieldMode[pn].m_HoldJudgmentCmd[c] );
|
||||
}
|
||||
|
||||
m_ArrowBackdrop.SetY( bReverse ? SCREEN_BOTTOM-GRAY_ARROWS_Y : SCREEN_TOP+GRAY_ARROWS_Y );
|
||||
m_NoteField.SetY( bReverse ? SCREEN_BOTTOM-GRAY_ARROWS_Y : SCREEN_TOP+GRAY_ARROWS_Y );
|
||||
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 );
|
||||
}
|
||||
// Need to set Y positions of all these elements in Update since
|
||||
// they change depending on PlayerOptions.
|
||||
|
||||
m_sLastSeenNoteSkin = GAMESTATE->m_PlayerOptions[m_PlayerNumber].m_sNoteSkin;
|
||||
|
||||
@@ -187,6 +183,27 @@ void Player::Update( float fDeltaTime )
|
||||
|
||||
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
|
||||
//
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
; Don't forget to also change ProductInfo.h!
|
||||
|
||||
!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}"
|
||||
|
||||
; String used for the install directory and registry locations
|
||||
|
||||
Reference in New Issue
Block a user