support mini, reverse in rave
This commit is contained in:
@@ -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
|
||||||
|
|||||||
@@ -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 );
|
||||||
|
|||||||
@@ -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;
|
||||||
|
|||||||
+31
-14
@@ -33,12 +33,14 @@
|
|||||||
#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");
|
||||||
|
CachedThemeMetricF HOLD_JUDGMENT_Y_REVERSE ("Player","HoldJudgmentYReverse");
|
||||||
CachedThemeMetricI BRIGHT_GHOST_COMBO_THRESHOLD("Player","BrightGhostComboThreshold");
|
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")
|
||||||
@@ -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
|
||||||
//
|
//
|
||||||
|
|||||||
@@ -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
|
||||||
|
|||||||
Reference in New Issue
Block a user