per-judgement step commands
This commit is contained in:
@@ -50,3 +50,9 @@ GoodCommand=diffuse,0.3,0.8,1.0,1;zoom,1;linear,0.06;zoom,1.1;linear,0.06;diffus
|
||||
GreatCommand=diffuse,0.0,1.0,0.4,1;zoom,1;linear,0.06;zoom,1.1;linear,0.06;diffusealpha,0
|
||||
PerfectCommand=diffuse,1.0,1.0,0.3,1;zoom,1;linear,0.06;zoom,1.1;linear,0.06;diffusealpha,0
|
||||
MarvelousCommand=diffuse,1.0,1.0,1.0,1;zoom,1;linear,0.06;zoom,1.1;linear,0.06;diffusealpha,0
|
||||
|
||||
[ReceptorArrow]
|
||||
GreatCommand=
|
||||
PerfectCommand=
|
||||
MarvelousCommand=
|
||||
|
||||
|
||||
@@ -654,7 +654,7 @@ void NoteField::FadeToFail()
|
||||
// don't fade all over again if this is called twice
|
||||
}
|
||||
|
||||
void NoteField::Step( int iCol ) { SearchForSongBeat()->m_ReceptorArrowRow.Step( iCol ); }
|
||||
void NoteField::Step( int iCol, TapNoteScore score ) { SearchForSongBeat()->m_ReceptorArrowRow.Step( iCol, score ); }
|
||||
void NoteField::SetPressed( int iCol ) { SearchForSongBeat()->m_ReceptorArrowRow.SetPressed( iCol ); }
|
||||
void NoteField::DidTapNote( int iCol, TapNoteScore score, bool bBright ) { SearchForSongBeat()->m_GhostArrowRow.DidTapNote( iCol, score, bBright ); }
|
||||
void NoteField::DidHoldNote( int iCol ) { /*SearchForSongBeat()->m_GhostArrowRow.DidHoldNote( iCol );*/ }
|
||||
|
||||
@@ -37,7 +37,7 @@ public:
|
||||
void CacheAllUsedNoteSkins();
|
||||
void CacheNoteSkin( CString skin );
|
||||
|
||||
void Step( int iCol );
|
||||
void Step( int iCol, TapNoteScore score );
|
||||
void SetPressed( int iCol );
|
||||
void DidTapNote( int iCol, TapNoteScore score, bool bBright );
|
||||
void DidHoldNote( int iCol );
|
||||
|
||||
@@ -44,7 +44,6 @@ CachedThemeMetricB HOLD_JUDGMENTS_UNDER_FIELD ("Player","HoldJudgmentsUnderField
|
||||
#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")
|
||||
CachedThemeMetricI RECEPTOR_CUTOFF ("Player","ReceptorNoSinkScoreCutoff");
|
||||
|
||||
/* Distance to search for a note in Step(). */
|
||||
/* Units? */
|
||||
@@ -63,7 +62,6 @@ PlayerMinus::PlayerMinus()
|
||||
BRIGHT_GHOST_COMBO_THRESHOLD.Refresh();
|
||||
TAP_JUDGMENTS_UNDER_FIELD.Refresh();
|
||||
HOLD_JUDGMENTS_UNDER_FIELD.Refresh();
|
||||
RECEPTOR_CUTOFF.Refresh();
|
||||
|
||||
m_PlayerNumber = PLAYER_INVALID;
|
||||
m_fNoteFieldHeight = 0;
|
||||
@@ -886,12 +884,10 @@ void PlayerMinus::Step( int col, RageTimer tm )
|
||||
m_iDCState = AS2D_FEVER; // super celebrate time :)
|
||||
}
|
||||
}
|
||||
m_pNoteField->Step( col, score );
|
||||
}
|
||||
|
||||
//Don't blink arrows if the score is higher than what the theme
|
||||
//says should not blink
|
||||
if (RECEPTOR_CUTOFF>=score)
|
||||
m_pNoteField->Step( col );
|
||||
else
|
||||
m_pNoteField->Step( col, TNS_NONE );
|
||||
}
|
||||
|
||||
void PlayerMinus::HandleAutosync(float fNoteOffset)
|
||||
|
||||
@@ -28,7 +28,12 @@ bool ReceptorArrow::Load( CString NoteSkin, PlayerNumber pn, int iColNo )
|
||||
CString sPath;
|
||||
m_pReceptorWaiting.Load( NOTESKIN->GetPathToFromNoteSkinAndButton(NoteSkin,sButton,"receptor waiting") );
|
||||
m_pReceptorGo.Load( NOTESKIN->GetPathToFromNoteSkinAndButton(NoteSkin,sButton,"receptor go") );
|
||||
m_sStepCommand = NOTESKIN->GetMetric(GAMESTATE->m_PlayerOptions[pn].m_sNoteSkin,"ReceptorArrow","StepCommand");
|
||||
for( int i=0; i<NUM_TAP_NOTE_SCORES; i++ )
|
||||
{
|
||||
CString sJudge = TapNoteScoreToString( (TapNoteScore)i );
|
||||
CString sCommand = Capitalize(sJudge)+"Command";
|
||||
m_sScoreCommand[i] = NOTESKIN->GetMetric( NoteSkin, m_sName, sCommand );
|
||||
}
|
||||
|
||||
m_pPressBlock.Load( NOTESKIN->GetPathToFromNoteSkinAndButton(NoteSkin,sButton,"KeypressBlock") );
|
||||
|
||||
@@ -67,12 +72,12 @@ void ReceptorArrow::DrawPrimitives()
|
||||
ActorFrame::DrawPrimitives();
|
||||
}
|
||||
|
||||
void ReceptorArrow::Step()
|
||||
void ReceptorArrow::Step( TapNoteScore score )
|
||||
{
|
||||
m_pReceptorGo->FinishTweening();
|
||||
m_pReceptorWaiting->FinishTweening();
|
||||
m_pReceptorGo->Command( m_sStepCommand );
|
||||
m_pReceptorWaiting->Command( m_sStepCommand );
|
||||
m_pReceptorGo->Command( m_sScoreCommand[score] );
|
||||
m_pReceptorWaiting->Command( m_sScoreCommand[score] );
|
||||
}
|
||||
|
||||
/*
|
||||
|
||||
@@ -6,6 +6,7 @@
|
||||
#include "ActorFrame.h"
|
||||
#include "ActorUtil.h"
|
||||
#include "PlayerNumber.h"
|
||||
#include "GameConstantsAndTypes.h"
|
||||
|
||||
class ReceptorArrow : public ActorFrame
|
||||
{
|
||||
@@ -15,7 +16,7 @@ public:
|
||||
|
||||
virtual void DrawPrimitives();
|
||||
virtual void Update( float fDeltaTime );
|
||||
void Step();
|
||||
void Step( TapNoteScore score );
|
||||
void SetPressed() { m_bIsPressed = true; };
|
||||
private:
|
||||
|
||||
@@ -24,7 +25,7 @@ private:
|
||||
|
||||
AutoActor m_pReceptorWaiting;
|
||||
AutoActor m_pReceptorGo;
|
||||
CString m_sStepCommand;
|
||||
CString m_sScoreCommand[NUM_TAP_NOTE_SCORES];
|
||||
|
||||
AutoActor m_pPressBlock;
|
||||
bool m_bIsPressed;
|
||||
|
||||
@@ -24,7 +24,10 @@ void ReceptorArrowRow::Load( PlayerNumber pn, CString NoteSkin, float fYReverseO
|
||||
m_iNumCols = pStyle->m_iColsPerPlayer;
|
||||
|
||||
for( int c=0; c<m_iNumCols; c++ )
|
||||
{
|
||||
m_ReceptorArrow[c].SetName( "ReceptorArrow" );
|
||||
m_ReceptorArrow[c].Load( NoteSkin, m_PlayerNumber, c );
|
||||
}
|
||||
}
|
||||
|
||||
void ReceptorArrowRow::Update( float fDeltaTime )
|
||||
@@ -57,10 +60,10 @@ void ReceptorArrowRow::DrawPrimitives()
|
||||
}
|
||||
}
|
||||
|
||||
void ReceptorArrowRow::Step( int iCol )
|
||||
void ReceptorArrowRow::Step( int iCol, TapNoteScore score )
|
||||
{
|
||||
ASSERT( iCol >= 0 && iCol < m_iNumCols );
|
||||
m_ReceptorArrow[iCol].Step();
|
||||
m_ReceptorArrow[iCol].Step( score );
|
||||
}
|
||||
|
||||
void ReceptorArrowRow::SetPressed( int iCol )
|
||||
|
||||
@@ -20,7 +20,7 @@ public:
|
||||
virtual void DrawPrimitives();
|
||||
virtual void CopyTweening( const ReceptorArrowRow &from );
|
||||
|
||||
void Step( int iCol );
|
||||
void Step( int iCol, TapNoteScore score );
|
||||
void SetPressed( int iCol );
|
||||
|
||||
protected:
|
||||
|
||||
@@ -1210,7 +1210,7 @@ void ScreenEdit::InputRecord( const DeviceInput& DeviceI, const InputEventType t
|
||||
break;
|
||||
|
||||
m_NoteFieldRecord.SetTapNote(iCol, iRow, TAP_TAP);
|
||||
m_NoteFieldRecord.Step( iCol );
|
||||
m_NoteFieldRecord.Step( iCol, TNS_MARVELOUS );
|
||||
}
|
||||
break;
|
||||
case IET_SLOW_REPEAT:
|
||||
|
||||
@@ -356,7 +356,7 @@ void ScreenNameEntry::Input( const DeviceInput& DeviceI, const InputEventType ty
|
||||
int StringIndex = m_ColToStringIndex[StyleI.player][StyleI.col];
|
||||
if(StringIndex != -1)
|
||||
{
|
||||
m_ReceptorArrowRow[StyleI.player].Step( StyleI.col );
|
||||
m_ReceptorArrowRow[StyleI.player].Step( StyleI.col, TNS_MARVELOUS );
|
||||
m_soundStep.Play();
|
||||
char c = NAME_CHARS[GetClosestCharIndex(m_fFakeBeat)];
|
||||
m_textSelectedChars[StyleI.player][StyleI.col].SetText( ssprintf("%c",c) );
|
||||
|
||||
Reference in New Issue
Block a user